Ken Design System
Ken is a one-person portfolio that works like a short film. There is almost no copy: a full-screen studio portrait, one giant italic word, a sideways run of greyscale project photos and a huge LET'S TALK. The palette is black, white and the grey of the project photos (only the hero portrait is in colour), and the page itself fades from white to black as you scroll through the work.
Four signatures make it recognisable:
- The shrinking portrait. The hero is a 350vh scroll scene. A light-grey studio portrait fills the screen, then shrinks into a centred frame (about 650×540px) as you scroll, while DIGITAL slides in across it.
- Giant italic caps. DIGITAL / DESIGNER and LET'S TALK are General Sans 600, uppercase, 4px tracking, at 12vw (173px at 1440px) and 140px. The hero word is italic and is cut off at its baseline by the frame.
- Greyscale horizontal gallery. Project photos (portrait, about 0.85 ratio, square corners) slide sideways in a single row about 84px apart, all in black and white.
- White-to-black fade. The background changes from #FFFFFF to #000000 during the gallery, and the nav, logo and cart invert with it.
Colors
Surfaces
#FFFFFFPage background at the top, menu overlay, cart panel
#F3F3F3Light panel value (--white-smoke-2); the hero photo's grey studio backdrop sits close to it
#EEEEEEFill of the inner-page button (--white-smoke-3)
#000000The dark state the page fades to in the gallery
Ink
#000000Text on primary
#000000Logo, nav, giant words, links, cart count circle
#666666Paragraphs and list text (--dim-grey)
#FFFFFFText on inverse-canvas
#FFFFFFProject titles over photos
#FFFFFF · 74%Project tag lines over photos
Action
#FFFFFFKen has no filled buttons on the home page; set to canvas and ink
Lines & effects
#DDDDDDCart border and cart footer divider
#000000The single black 1px border measured (dark links and rules)
#000000 · 30%Bottom of the project gradient: transparent to 54%, then to 30% black
Typography
General Sans · display-hero
The quick brown fox jumpsDIGITAL / DESIGNER (.title-1). 173px · 600 · 1.1 · 4px
General Sans · headline-menu
The quick brown fox jumpsOverlay menu links (.navigation-text); 700 is declared but only the 600 file is loaded. 80px · 700 · 1.1
General Sans · title-project
The quick brown fox jumpsProject names over photos. 21px · 600 · 1.3 · 1px
Satoshi · body-lg
The quick brown fox jumpsLead text. 25px · 400 · 1.2
Satoshi · label
The quick brown fox jumpsFooter and small bold links. 16px · 700 · 1.5
General Sans · caption
The quick brown fox jumpsBody default. 14px · 500 · 1.43
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1200px, centred |
| Breakpoints | 991px, 767px and 479px (Webflow defaults) |
Spacing scale
| Token | Value | Preview |
|---|---|---|
xs | 7px | |
sm | 15px | |
md | 16px | |
lg | 30px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
footer | 25px | |
section-side | 72px | |
nav | 80px | |
section | 120px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Hero scene | Pinned 350vh section; while scrolling, the portrait scales down from full screen to the frame and the word moves y 20% → 0 |
| Word reveal | skewX 30° → 0°, opacity 0 → 1, y → 0%, 400ms outCubic |
| Fade-in | opacity 0 → 1, 1000ms outQuart (page load), and 500ms on scroll into view |
| Parallax nudge | y 100px / −100px / −50px, 500ms, while sections are in view |
| Page colour flip | Background colour 400ms ease, text colour 300ms ease, as the gallery enters |
| Image hover | Filter change, 300–400ms ease (the photos are greyscale at rest) |
| Hamburger | Lines change width (500ms) and rotate (400ms swingTo) into a close icon |
| Menu open | Overlay display none → flex, opacity 300ms ease |
| Social hover | Opacity to 50% |
Do’s and don’ts
- Keep the page #FFFFFF with #000000 type, and fade to #000000 with #FFFFFF type for the work.
- Set headlines uppercase in General Sans 600 with +4px tracking at 12vw or 140px.
- Show project photos in greyscale, square-cornered, about 0.85 ratio, in one sliding row.
- Put white title-project names over a bottom gradient to 30% black.
- Let a single giant text link (LET'S TALK) be the call to action.
- Keep paragraphs in Satoshi 500 at #666666.
- Add filled buttons or pill shapes to the home page; the inner-page #EEEEEE button is for pricing and shop only.
- Round image corners or add shadows.
- Use colour photos in the gallery or add an accent colour (the #B5D99C variable is unused).
- Fill the page with copy; each screen has one idea.
- Set the 74% white tag text on anything but the darkened bottom of a photo.
- Animate with bounce or elastic easing; the scene relies on smooth scroll-linked movement.
Example prompt
Any page in the Ken 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 Ken 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/ken.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






