Mio Kain Design System
Mio Kain is a calm, gallery-like portfolio for one designer. The page is a warm stone grey (#D7D6D2) with near-black text, almost no decoration and lots of empty space. A huge uppercase name opens it, a grid of saturated project images zooms out under it, and the about section reads like an exhibition label: a dash, a small uppercase title, then text that fills in letter by letter as you scroll.
Four signatures make it recognisable:
- The 240px name. MI KAIN — set in Inter 400, uppercase, −5px tracking, with a wide gap between the words and a long dash that runs off the right edge.
- Dash-led labels. Small uppercase labels are led or joined by a long rule: —— CERTIFIED PARTNER, AMSTERDAM —— NL, —— AWARD HIGHLIGHTS, SHOWREEL —— ©25. Katakana appears as decoration: —— クリエイティブデザイナー, client names ナイキ, フィグマ.
- Ink fill on scroll. Statements and client names start at black 20% and fill to full ink one letter at a time as you scroll, so a half-read line is part dark, part ghost.
- The zooming work grid. A full-width 3-column grid of 7px-radius image cards with 8px gaps starts zoomed in (one card fills the screen) and settles to the full grid as you scroll.
Colors
Surfaces
#D7D6D2Page background (warm stone grey)
#C9C7C2The footer and image placeholders, one step darker
Ink
#D7D6D2Text on primary
#FFFFFFText on primary-hover
#20201FAll text, rules, icons
#20201FBody text is full ink; there is no grey text colour
#000000 · 20%Letters not yet revealed by the scroll fill (display sizes, temporary state)
#FFFFFFLabels on project images
Action
#000000The BOOK A CALL pill: black with canvas-coloured text
#2B2B2BThe fill that slides up inside the pill on hover
Lines & effects
#20201F · 20%1px rules under award rows and link baselines
Typography
Inter · display-hero
The quick brown fox jumpsThe name MI KAIN — (.hero-title, --font--h1: 15rem). 240px · 400 · 1.1 · -5px
Inter · headline-xl
The quick brown fox jumpsClient names in the clients list (Webflow, Quantive, ナイキ). 64px · 500 · 1.1
Inter · body-lg
The quick brown fox jumpsParagraphs and the hero intro (p, --font--h5). 19.2px · 500 · 1.3 · -0.2px
Inter · label
The quick brown fox jumpsDash labels and hero meta (.top-text). 15px · 500 · 1.3 · -0.5px
Inter · caption-media
The quick brown fox jumpsWhite labels on project cards (.work-text). 15px · 400 · 0.85
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1300px, centred |
| Section rhythm | .section is 150px top and bottom |
| Breakpoints | 991px, 767px and 479px, plus a 1920px+ step |
Spacing scale
| Token | Value | Preview |
|---|---|---|
hair | 4px | |
xs | 8px | |
sm | 10px | |
md | 16px | |
lg | 20px | |
xl | 30px | |
2xl | 40px | |
3xl | 50px | |
4xl | 60px | |
5xl | 80px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
work-gap | 8px | |
grid-gap | 16px | |
gutter | 29px | |
6xl | 100px | |
section | 150px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Ink fill on scroll | SplitText letters go from black 20% to full ink, scrubbed (top bottom → bottom 60px, scrub 0.8) |
| Headline split | GSAP expo, 0.8s |
| Entrance with skew | y 20% → 0, skewX 30° → 0, opacity → 1, 400ms outCubic |
| Text roll on hover | y 0 → −100%, 300ms ease |
| Link line | Width 0 → 100%, 300ms ease |
| Hover dim | Siblings to opacity 0.6, 300ms easeIn |
| Scale in | scale 0 → 1, 500ms; rotate 600ms outExpo |
| Fades | opacity 0 ↔ 1, 500ms |
| Filter | 200ms ease |
| Loops | Continuous power1.in loops at 4–15s, plus two long ones (106s, 153s); treat them as slow ambient motion only |
Do’s and don’ts
- Keep the page on canvas #D7D6D2 with all text in ink #20201F.
- Open with the name in Inter 240px, weight 400, −5px tracking, uppercase, with a long dash after it.
- Lead or join labels with a long rule (——) and keep them uppercase 15px.
- Use 7px-radius cards with 8px gaps for project images, labelled in white 15px uppercase over a bottom fade.
- Fill big statements from black 20% to full ink letter by letter on scroll.
- Use the black pill (primary #000000, #D7D6D2 text, 43px) once, for booking a call.
- Use grey text for body copy; hierarchy is size, not colour.
- Leave text in ink-faint (black 20%) at rest, or use it below 27px.
- Add shadows, borders on cards or coloured accents.
- Use Caveat, Caveat Brush or Playfair Display, even though they are loaded.
- Use weights above 500 for headings; the name is 400.
- Round images beyond 7px or turn buttons into anything other than the one pill.
Example prompt
Any page in the Mio Kain style
More design systems like this
Portfolio 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 Mio Kain 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/mio.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






