Twin Studio Design System
Twin Studio is a loud, dark agency site that speaks in capitals. Everything is uppercase: ultra-condensed Coolvetica Crammed headlines stretch edge to edge in white on #0B0B0B, and all UI text is Inter Tight in caps. Colour arrives through photography washed in neon pink, magenta and violet, while the interface itself stays black and white.
Four signatures make it recognisable:
- Compressed poster capitals. Headlines are Coolvetica Crammed at 259px with line height 0.9 and positive tracking (+5px), so tall narrow letters fill the full width in two lines: LET'S HELP YOUR AGENCY RISE / ABOVE THE COMPETITION.
- Bracketed indexes. Titles carry a half-opacity suffix in square brackets, raised slightly: HOME [01], PORTFOLIO [03], BLOG PAGE [CMS].
- The glass pill nav. Four links sit in a frosted pill (white 6% fill, white 18% border, 15px blur) on the left, the ⊐⊏-style twin logo is centred, and an outline pill START A PROJECT sits on the right.
- Outline pills that fill pink. Buttons are thin 1px white outlines; on hover a #FFCDD9 fill rises from the bottom.
Twin Studio is dark-only.
Colors
Surfaces
#0B0B0BPage, sections, footer, marquee band (--dark)
#171717Form inputs, the only raised fill
#171717Form inputs, the only raised fill
#FFFFFF · 12%1px input border
Ink
#FFFFFFText on primary
#FFFFFFText on secondary
#FFFFFFAll headlines, labels, buttons (--white)
#FFFFFFParagraphs are full white; there is no grey body tone
#FFFFFF · 77%Footer links (.white-link, opacity 0.77)
#FFFFFF · 50%Bracket indexes [01] (.light-text, opacity 0.5) and input placeholders
#FFFFFFAction
#883EFFThe only filled button: Submit Project on the contact form (--hero-color)
#883EFF#0B0B0BOutline pill: transparent on canvas, 1px white border, white text
#FFCDD9Hover fill rising inside outline pills (--text-color)
Lines & effects
#E6E6E6 · 15%1px border around every page preview image
#FFFFFF · 50%1px ring of the round arrow buttons
#FFFFFF · 6%Nav pill fill and border, with blur(15px)
#FFFFFF · 18%With glass: Nav pill fill and border, with blur(15px)
#FFFFFF · 10%Nav link hover fill
Typography
Coolvetica Crammed · display-hero · shown in Oswald (fallback)
The quick brown fox jumpsHero headline, centred, two lines. 259px · 400 · 0.9 · 5px
Coolvetica Crammed · headline-label · shown in Oswald (fallback)
The quick brown fox jumpsPage titles under previews (HOME, PORTFOLIO). 41px · 400 · 0.9 · 4px
Coolvetica Crammed · title-index · shown in Oswald (fallback)
The quick brown fox jumpsThe [01] suffix at 50% opacity, raised 3px and shifted 5px right. 26px · 400 · 0.9 · 2px
Inter Tight · body-lg
The quick brown fox jumpsParagraphs (p). 18px · 400 · 1.4
Inter Tight · label
The quick brown fox jumpsNav links. 14px · 500 · 1.43
Inter Tight · eyebrow
The quick brown fox jumpsFooter column headings (NAVIGATION). 14px · 400 · 1.4
Spacing & shape
| Purpose | Value |
|---|---|
| Container | .container is 100% wide; sections add 5% side padding (72px at 1440px), leaving about 1296px of content |
| Section rhythm | 120px top and bottom, 80px at ≤991px and 50px at ≤767px |
| Breakpoints | 991px, 767px and 479px, plus min-width steps at 768, 1280, 1440 and 1920px |
Spacing scale
| Token | Value | Preview |
|---|---|---|
hair | 5px | |
xs | 9px | |
sm | 10px | |
md | 20px | |
lg | 30px | |
xl | 70px | |
2xl | 100px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
column-gap | 30px | |
row-gap | 70px | |
gutter | 72px | |
section | 120px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Scroll fade-in | opacity 0 → 1, 1000ms outQuart, with move to 0px over 1000ms outQuart |
| Slide-in | x 30px → 0px, 800ms outExpo; small items y 30px → 0, 500ms |
| Button fill | Pink layer height 0% → 100%, 500ms; label colour change 400ms ease |
| Pop | scale 0 → 1, 600ms outExpo; out scale 1 → 0, 400ms outExpo |
| Marquee hover | filter: invert(), 300ms ease |
| Fades on hover | opacity, 300ms ease; border change 300ms |
| Size changes | 500ms outCirc and 400ms inOutSine (menu, accordions) |
| Mouse follow | Mouse move interactions move highlights and images with the cursor |
| Nav link hover | Background to white 10%, 200ms |
Do’s and don’ts
- Set display lines in Coolvetica Crammed 400 with positive tracking (+2px to +5px) and line height 0.9 (the marquee uses 1.4).
- Keep all text uppercase, including paragraphs and buttons.
- Use #0B0B0B for the page and #FFFFFF for text; drop emphasis with opacity (77%, 50%).
- Use 1px white outline pills (100px radius, 46px tall) for actions, with the #FFCDD9 fill rising on hover.
- Add a [01]-style bracket suffix at 50% white to titles in lists.
- Frame images with a 1px #E6E6E6-at-15% hairline and square corners.
- Add drop shadows, gradients or a second blur besides the nav pill.
- Use #883EFF anywhere except the submit button and the blockquote rule.
- Round images or cards; only buttons, the nav pill, icon circles and inputs are rounded.
- Use negative tracking on display type or set it in sentence case.
- Use grey hex values for text; text is white at 100%, 77% or 50%.
- Use Coolvetica Compressed; it is declared but unused.
Example prompt
Any page in the Twin Studio style
More design systems like this
Agency design systems, the same colors first.
Bring any of them to your AI tool
All Access unlocks all 398 design systems, ready for Claude, ChatGPT, Gemini, Cursor, v0 and Lovable, plus 400+ templates on all 5 platforms.
Get All AccessUpgrade to All AccessHow to use the Twin Studio design system
Pick a file to see what it’s for and where it goes.
What it is
The whole design system in one markdown file, written for AI: every color, type style, spacing value, component and motion rule, plus do's, don'ts and a ready prompt.
Best for
Claude, ChatGPT, Gemini, Cursor and v0, or any other AI tool that builds pages or code.
How to use it
- Put
DESIGN.mdin your project and mention it in your request, or save it as.cursor/rules/twin.mdc - For the rule file, start it with a front-matter block that sets
alwaysApply: true, so every chat uses it - Ask: “Build a pricing page using DESIGN.md.” Cursor follows the colors, fonts, spacing and rules
- Put
DESIGN.mdin the project root - Add one line to
CLAUDE.md: “Follow DESIGN.md for all UI.” - Ask for any page or component; Claude reads the file first
- Attach
DESIGN.mdto the chat (or paste it in) - Ask: “Build a landing page in this design system.”
- Keep the file in the chat or project knowledge, so follow-up pages stay on style
What it is
Every token as data, in the W3C Design Tokens format: colors with their roles, type styles, radius, spacing, and component tokens that point at them.
Best for
Figma (Tokens Studio), Style Dictionary and other design-token tools, and build scripts.
How to use it
- In Figma, open Tokens Studio, choose Import, and pick
tokens.json - Or point Style Dictionary’s
sourceat it to generate tokens for any platform - In code, import it like any JSON file
What it is
A Tailwind CSS v4 theme: every color, font, type style, radius and spacing value becomes a Tailwind utility, like bg-canvas, text-headline-lg or rounded-md.
Best for
Tailwind v4 projects, and AI builders that write Tailwind (v0, Lovable, Bolt).
How to use it
- Save
theme.cssnext to your main CSS file - Import it after Tailwind:
@import "tailwindcss"; @import "./theme.css"; - Use the classes:
bg-canvas text-ink rounded-md p-lg
What it is
The same tokens as plain CSS variables on :root. Component values point at the color variables, so changing one color updates everything that uses it.
Best for
Any website: plain CSS, Webflow custom code, Framer, WordPress.
How to use it
- Add it to your stylesheet, or in Webflow paste it into Site settings → Custom code inside a
<style>tag - Use the variables anywhere:
color: var(--color-ink) - Change a token once and every place that uses it follows






