DesignMD Maker logo ← Home Report · Code analysis
L
Design System

Local Studio

Design system extracted from https://localstudio.ai/ on 2026-08-09 (code-based analysis).

Source · https://localstudio.ai/ Engine · Code analysis Created · Aug 9, 2026 09:14 Cost · $0.0000
Detected Language

Design Style

gradient-rich / aurora
many gradient definitions
rounded / pill-heavy
many large radii & pills
technical / mono accents
monospace font in use
Palette

Colors

primary
#40C977
2.13 on white · 9.84 on black · 144° 56% 52%
secondary
#000000
21 on white · 1 on black · 0° 0% 0%
accent
#FFFFFF
1 on white · 21 on black · 0° 0% 100%
Token Roles 8 tokens
background
#181818 · 17.76:1 vs white
surface
#212121 · 16.1:1 vs white
border
#FFFFFF · 21:1 vs black
text-primary
#000000 · 21:1 vs white
text-secondary
#050505 · 20.38:1 vs white
on-primary
#000000 · 21:1 vs white
on-secondary
#FFFFFF · 21:1 vs black
on-accent
#000000 · 21:1 vs white
Detected Palette 8 colors by frequency in source CSS
#FFFFFF
used 51× · 0° 0% 100%
#000000
used 27× · 0° 0% 0%
#050505
used 3× · 0° 0% 2%
#181818
used 2× · 0° 0% 9%
#212121
used 1× · 0° 0% 13%
#40C977
used 1× · 144° 56% 52%
#0A0A0A
used 1× · 0° 0% 4%
#111111
used 1× · 0° 0% 7%
Surface Treatments

Gradients

radial-gradient(circle at 50% 38%,#ffffff0b,#0000 25%),linear-gradient(#ffffff04 1px,#0000 1px) 0 0/96px 96px,linear-gradient(90deg,#ffffff04 1px,#0000 1px)
linear-gradient(#000 0%,#0000 72%)
radial-gradient(circle,#ffffff2e,#ffffff09 38%,#0000 70%)
linear-gradient(#0000,#ffffff2e,#0000)
linear-gradient(#000 82%,#0000 100%)
linear-gradient(90deg,#0000,#ffffff4d,#0000)
Type System

Typography

display
inherit
51.2px · 100 · LH .96 · LS -.055em
Local Studio
Detected Font Stacks
Geist MonoGeistvar(--font-geist-mono), ui-monospace, monospacevar(--font-geist-sans), system-ui, sans-serifGeist FallbackGeist Mono Fallback
Structure

Layout

Container
Section padding: · card padding:
Grid
12-column reference grid · gap
Spacing Scale
xs
5px
sm
8px
md
16px
xl
110px
detected
1px
detected
5px
detected
6px
detected
7px
detected
8px
detected
9px
detected
12px
detected
16px
detected
18px
detected
22px
Breakpoints
620px900px980px
Depth

Elevation & Depth

level 1
0 0 14px #fff3
level 2
0 0 7px #ffffffe6
level 3
0 0 9px #ffffffe6
level 4
0 0 18px #ffffff8c
level 5
0 0 64px #ffffff1f
level 6
0 0 24px #ffffffd9
Geometry

Shapes

sm
6px
md
8px
lg
18px
pill
50%
r5
14px
r6
12px
Tokens in Context

Components

card
background{colors.surface}
border1px solid {colors.border}
radius18px
boxShadow{elevation.md}
button-primary
background{colors.primary}
radius50%
Animation

Motion

Keyframes 10 found
@keyframes landing-module__1Cyv6W__signalRotate
to{transform:rotate(360deg)}
@keyframes landing-module__1Cyv6W__signalBreathe
0%,to{opacity:.52;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}
@keyframes landing-module__1Cyv6W__heroRise
0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}
@keyframes landing-module__1Cyv6W__signalEnter
0%{opacity:0;scale:.72}to{opacity:1;scale:1}
@keyframes landing-module__1Cyv6W__signalFloat
0%,to{translate:0}50%{translate:0 -10px}
@keyframes landing-module__1Cyv6W__signalRipple
0%{opacity:0;scale:.72}35%{opacity:.5}to{opacity:0;scale:1.24}
@keyframes landing-module__1Cyv6W__axisSweep
0%{transform:rotate(22deg)}to{transform:rotate(47deg)}
@keyframes landing-module__1Cyv6W__gridDrift
to{background-position:50%,0 96px,96px 0}
@keyframes landing-module__1Cyv6W__screenReveal
0%{opacity:0;transform:translate(-50%,44px)scale(.985)}to{opacity:1;transform:translate(-50%)scale(1)}
Applied Animations
3.8s ease-in-out infinite landing-module__1Cyv6W__signalBreathe24s linear infinite landing-module__1Cyv6W__gridDrift.82s cubic-bezier(.16,1,.3,1) both landing-module__1Cyv6W__heroRise1.35s cubic-bezier(.16,1,.3,1) .36s both landing-module__1Cyv6W__signalEnter,7s ease-in-out 1.7s infinite landing-module__1Cyv6W__signalFloat5.5s ease-in-out infinite landing-module__1Cyv6W__signalBreathe26s linear infinite landing-module__1Cyv6W__signalRotate4.8s cubic-bezier(.16,1,.3,1) infinite landing-module__1Cyv6W__signalRipple9s ease-in-out infinite alternate landing-module__1Cyv6W__axisSweep1.2s cubic-bezier(.16,1,.3,1) .42s both landing-module__1Cyv6W__screenReveal7s linear infinite landing-module__1Cyv6W__borderShine
Easing Curves
cubic-bezier(.16,1,.3,1)
Transitions
border-color .15s,background .15s,color .15s,transform .15stransform .16s
Proof

Live Preview

Complete Reference

Full design.md Specification

Design Specification — Local Studio

FieldValue
Site / Projecthttps://localstudio.ai/
Analyzed on2026-08-09
Analysis modeAutomated code extraction (no AI)

Overview

This design system was extracted programmatically from the source page. It is built on a dark canvas (#181818), ink text (#000000), a muted accent (#FFFFFF). All type is set in Geist Mono. Detected font weights: 100, 520, 560, 650. Detected style signatures: gradient-rich / aurora; rounded / pill-heavy; technical / mono accents.

Logo asset(s): https://localstudio.ai/icon.svg?icon.05p35wt39nr9c.svg

Color System

Detected palette (by frequency)

HexRGBHSLCount
#FFFFFF255, 255, 2550° 0% 100%51
#0000000, 0, 00° 0% 0%27
#0505055, 5, 50° 0% 2%3
#18181824, 24, 240° 0% 9%2
#21212133, 33, 330° 0% 13%1
#40C97764, 201, 119144° 56% 52%1
#0A0A0A10, 10, 100° 0% 4%1
#11111117, 17, 170° 0% 7%1

Assigned roles

Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.

TokenHexRGBHSL
--color-background#18181824, 24, 240° 0% 9%
--color-surface#21212133, 33, 330° 0% 13%
--color-border#FFFFFF255, 255, 2550° 0% 100%
--color-accent#FFFFFF255, 255, 2550° 0% 100%
--color-primary#40C97764, 201, 119144° 56% 52%
--color-text-primary#0000000, 0, 00° 0% 0%
--color-secondary#0000000, 0, 00° 0% 0%
--color-text-secondary#0505055, 5, 50° 0% 2%
--color-on-primary#0000000, 0, 00° 0% 0%
--color-on-secondary#FFFFFF255, 255, 2550° 0% 100%
--color-on-accent#0000000, 0, 00° 0% 0%

Gradients

  • radial-gradient(circle at 50% 38%,#ffffff0b,#0000 25%),linear-gradient(#ffffff04 1px,#0000 1px) 0 0/96px 96px,linear-gradient(90deg,#ffffff04 1px,#0000 1px)
  • linear-gradient(#000 0%,#0000 72%)
  • radial-gradient(circle,#ffffff2e,#ffffff09 38%,#0000 70%)
  • linear-gradient(#0000,#ffffff2e,#0000)
  • linear-gradient(#000 82%,#0000 100%)
  • linear-gradient(90deg,#0000,#ffffff4d,#0000)
  • conic-gradient(from 360deg, transparent 0deg 304deg, #ffffff0d 320deg, #ffffffc2 344deg, transparent 360deg)
  • linear-gradient(#000 0 0),linear-gradient(#000 0 0)
  • linear-gradient(90deg,#0000,#ffffff38,#0000)

Typography

Primary typeface: Geist Mono — stack: Geist Mono

Font stacks (most used first)

  • Geist Mono
  • Geist
  • var(--font-geist-mono), ui-monospace, monospace
  • var(--font-geist-sans), system-ui, sans-serif
  • Geist Fallback
  • Geist Mono Fallback

Derived type scale

TokenSize
display51.2px

Font sizes (by frequency)

SizeCount
3.2rem1

Weights in use: 100, 520, 560, 650

Line heights (by frequency)

ValueCount
1.653
.962
.941
1.61
.951

Letter spacing (by frequency)

ValueCount
-.055em3
-.058em1
.14em1
.18em1

Spacing

Derived spacing scale

TokenValue
xs5px
sm8px
md16px
xl110px

Raw values (by frequency)

ValueCount
18px3
8px3
24px2
5px2
150px2
12px2
22px1
9px1
1px1
30px1
110px1
7px1
16px1
160px1
28px1
6px1

Borders & Radius

Derived radius tokens

TokenValue
sm6px
md8px
lg18px
pill50%

Raw values (resolved, by frequency)

RadiusCount
50%10
inherit2
18px 18px 0 01
11px 11px 0 01
6px 6px 0 01
14px1
8px1
12px1
18%/9%1

Shadows

Derived elevation

TokenValue
sm0 0 14px #fff3
md0 0 64px #ffffff1f
lg0 20px 48px #00000061

All detected shadows

  • 0 0 14px #fff3
  • 0 0 7px #ffffffe6
  • 0 0 9px #ffffffe6
  • 0 0 18px #ffffff8c
  • 0 0 64px #ffffff1f
  • 0 0 24px #ffffffd9
  • 0 0 0 8px #ffffff03,0 0 0 9px #ffffff0b,0 36px 120px #000000ad
  • inset 0 1px #ffffff09
  • 0 0 0 7px #ffffff03,0 0 0 8px #ffffff09,0 30px 100px #00000085
  • 0 20px 48px #00000061

Layout

Container max-width: 900px

Grid columns (largest detected grid): 2

Breakpoints

  • 620px
  • 900px
  • 980px

Animation & Motion

Transitions

  • border-color .15s,background .15s,color .15s,transform .15s
  • transform .16s

Easing curves

  • cubic-bezier(.16,1,.3,1)

Keyframes

@keyframes landing-module__1Cyv6W__signalRotate { to{transform:rotate(360deg)} }
@keyframes landing-module__1Cyv6W__signalBreathe { 0%,to{opacity:.52;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)} }
@keyframes landing-module__1Cyv6W__heroRise { 0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)} }
@keyframes landing-module__1Cyv6W__signalEnter { 0%{opacity:0;scale:.72}to{opacity:1;scale:1} }
@keyframes landing-module__1Cyv6W__signalFloat { 0%,to{translate:0}50%{translate:0 -10px} }
@keyframes landing-module__1Cyv6W__signalRipple { 0%{opacity:0;scale:.72}35%{opacity:.5}to{opacity:0;scale:1.24} }
@keyframes landing-module__1Cyv6W__axisSweep { 0%{transform:rotate(22deg)}to{transform:rotate(47deg)} }
@keyframes landing-module__1Cyv6W__gridDrift { to{background-position:50%,0 96px,96px 0} }
@keyframes landing-module__1Cyv6W__screenReveal { 0%{opacity:0;transform:translate(-50%,44px)scale(.985)}to{opacity:1;transform:translate(-50%)scale(1)} }
@keyframes landing-module__1Cyv6W__borderShine { to{--shine-angle:360deg} }

Animations

  • 3.8s ease-in-out infinite landing-module__1Cyv6W__signalBreathe
  • 24s linear infinite landing-module__1Cyv6W__gridDrift
  • .82s cubic-bezier(.16,1,.3,1) both landing-module__1Cyv6W__heroRise
  • 1.35s cubic-bezier(.16,1,.3,1) .36s both landing-module__1Cyv6W__signalEnter,7s ease-in-out 1.7s infinite landing-module__1Cyv6W__signalFloat
  • 5.5s ease-in-out infinite landing-module__1Cyv6W__signalBreathe
  • 26s linear infinite landing-module__1Cyv6W__signalRotate
  • 4.8s cubic-bezier(.16,1,.3,1) infinite landing-module__1Cyv6W__signalRipple
  • 9s ease-in-out infinite alternate landing-module__1Cyv6W__axisSweep
  • 1.2s cubic-bezier(.16,1,.3,1) .42s both landing-module__1Cyv6W__screenReveal
  • 7s linear infinite landing-module__1Cyv6W__borderShine

CTA labels found on page

  • Download for macOS

Effects

  • backdrop-filter: blur(20px)

Source Design Tokens (CSS custom properties)

:root {
  --font-geist-sans: "Geist", "Geist Fallback";
  --font-geist-mono: "Geist Mono", "Geist Mono Fallback";
  --lightningcss-dark: initial;
  --ui-scale: 1;
  --space-base: 4px;
  --radius-base: 10px;
  --bg: #181818;
  --fg: #fff;
  --dim: #ffffffb3;
  --surface: #212121;
  --border: #ffffff14;
  --hover: #ffffff0d;
  --accent: #fff;
  --ok: #40c977;
  --color-background: #181818;
  --color-border-hover: #ffffff29;
  --color-foreground-subtle: #ffffffb3;
  --color-foreground-subtlest: #ffffff80;
  --color-foreground-inverse: #000;
  --composer-shadow: 0 10px 28px #0000002e, inset 0 0 0 1px #ffffff0e;
  --fs-xs: calc(11px * var(--ui-scale));
  --fs-sm: calc(12px * var(--ui-scale));
  --fs-base: calc(14px * var(--ui-scale));
  --fs-lg: calc(16px * var(--ui-scale));
  --fs-xl: calc(18px * var(--ui-scale));
  --fs-2xl: calc(20px * var(--ui-scale));
  --fs-4xl: calc(28px * var(--ui-scale));
  --rad-sm: calc(var(--radius-base) * .6);
  --rad-lg: var(--radius-base);
  --rad-full: 9999px;
  --shine-angle: 360deg;
  --body-bg: var(--bg);
}

Do's and Don'ts

Do

  • Do reserve the accent #FFFFFF for interactive highlights and key moments — it is used sparingly on the source page.
  • Do keep the canvas at #181818; surfaces should stay within the detected neutral ramp.
  • Do stick to the detected font weight(s): 100, 520, 560, 650.

Don't

  • Don't introduce colors outside the detected palette — every hue above was found in the source.

Design Tokens (copy-paste)

:root {
  --color-background: #181818;
  --color-surface: #212121;
  --color-border: #FFFFFF;
  --color-accent: #FFFFFF;
  --color-primary: #40C977;
  --color-text-primary: #000000;
  --color-secondary: #000000;
  --color-text-secondary: #050505;
  --color-on-primary: #000000;
  --color-on-secondary: #FFFFFF;
  --color-on-accent: #000000;
  --font-sans: Geist Mono;
  --font-size-display: 51.2px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 18px;
  --radius-pill: 50%;
  --shadow-sm: 0 0 14px #fff3;
  --shadow-md: 0 0 64px #ffffff1f;
  --shadow-lg: 0 20px 48px #00000061;
  --space-xs: 5px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-xl: 110px;
  --tracking-display: -.055em;
  --tracking-label: .14em;
  --container-max: 900px;
}