John X Design System
John X is a clean one-person portfolio on white. It feels like a designer's business card blown up to a website: wide Unbounded capitals in black, lots of white space, one glassy 3D ribbon floating beside the name, and a single burst of colour where the testimonials sit on violet, electric blue and magenta cards. The persona on the live site is John Doe, shortened to a JD logo.
Four signatures make it recognisable:
- Staggered hero name. JOHN DOE© / DIGITAL / DESIGNER in 80px Unbounded caps, with the middle line pushed right by about a third so the three lines zigzag. A small © sits raised after the name.
- Outlined tag, then a fading two-line title. Most sections open with a 2px black pill (WHAT I DO, RECENT WORKS, BLOG) and then a 38px Unbounded title whose second line fades to black at 24%: PROVIDING A RANGE / OF TOP-TIER SERVICES.
- Ruled project list. Projects are not cards but rows: a 27px Unbounded name on the left, Inter Tight tags on the right (UI, UX, DEVELOPMENT), each row closed by a thin black rule.
- Colour-block testimonials. Square-cornered cards in #6F00FF, #1F75FE and #FF00FF slide past on a #F7F7FC band, with white quotes and the company name at 50% white.
John X is a light-only design.
Colors
Surfaces
#FFFFFFPage background
#F7F7FCThe testimonial band (.section.gray)
Ink
#FFFFFFText on primary
#000000Headlines, nav, list names, tag outlines
#000000Body text is full black; there is no separate body grey
#000000 · 50%The second half of lead paragraphs (opacity 0.5)
#000000 · 24%The faded second line of section titles (opacity 0.24)
#FFFFFFText on accent
#FFFFFFText on secondary
#FFFFFF · 50%Company or role after the name on testimonial cards
#FFFFFFAction
#000000The black pill button
#222222Button hover (.button-with-animation:hover)
#6F00FFFirst testimonial card colour
#1F75FESecond testimonial card colour
#FF00FFThird testimonial card colour
Lines & effects
#000000Tag outlines (2px) and project-list rules
Typography
Unbounded · display-hero
The quick brown fox jumpsHero lines (.title-1). 80px · 600 · 1.0
Unbounded · headline-lg
The quick brown fox jumpsSection titles: I'M JOHN DOE, PROVIDING A RANGE, THE WORK I DO,. 38px · 600 · 1.4
Unbounded · title-lg
The quick brown fox jumpsBlog titles. 27px · 600 · 1.4
Inter Tight · body-xl
The quick brown fox jumpsTwo-tone lead (I'm an acclaimed product designer…). 25px · 600 · 1.3
Unbounded · label-nav
The quick brown fox jumpsNav links. 16px · 600 · 1.88
Inter Tight · caption
The quick brown fox jumpsSmall footer and meta text. 15px · 600 · 1.3
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1200px, centred; a 1100px medium-container for narrower content |
| Section rhythm | padding: 100px 5%, with top and bottom at 60px from ≤991; the works section uses 130px; the testimonial band has 230px at the bottom (130px at ≤479) to leave room for the ribbon render that hangs into it |
| Breakpoints | 991px, 767px and 479px, plus min-width: 768px and min-width: 1440px steps |
Spacing scale
| Token | Value | Preview |
|---|---|---|
xs | 10px | |
sm | 16px | |
md | 20px | |
lg | 30px | |
xl | 40px | |
2xl | 50px | |
3xl | 100px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
nav-height | 100px | |
section | 100px | |
section-works | 130px | |
band-bottom | 230px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Fade in on scroll | opacity 0 → 1, 1000ms outQuart, often with move → 0, 1000ms outQuart |
| Rise in | opacity → 1 and y → 0px, 600ms outExpo |
| Text roll | Label y → 0%, 300ms ease or 500ms outExpo, in a 24px (nav) or 30px (project) mask |
| Nav bar grow | Height change, 300–500ms ease |
| Button arrow | Arrow slides up from translate(0, 200%) as the label leaves |
| Card press | transform: scale(0.97), transition: transform 0.3s, color 0.3s |
| Pop in | scale → 0, 500ms, then back → 1, 300ms ease or 400ms outQuint |
| Hover drift | Elements shift y ±5px, 500ms |
| Rotation | 300–500ms ease rotations (menu icon and decorative renders) |
Do’s and don’ts
- Keep the page canvas #FFFFFF with ink #000000 Unbounded caps for every heading and label.
- Open sections with a 2px black outlined pill and a 38px two-line title whose second line is black at 24%.
- Use the black pill (button-primary, 56px, 40px radius) for the main action, with #222222 on hover.
- List projects as ruled rows, name left and tags right, not as image cards.
- Reserve #6F00FF, #1F75FE and #FF00FF for testimonial cards, in that order.
- Keep body text full black in Inter Tight 17px weight 600.
- Use the saturated card colours on buttons, text or backgrounds outside the testimonial band.
- Round cards or images; only pills and buttons are rounded.
- Put ink-subtle (black at 50%) below 20px; it is about 4:1 on white. Keep it for the 25px lead. ink-faint (black at 24%, about 1.8:1) is decorative: use it only for the second line of a 38px+ title whose first line already carries the meaning.
- Use on-accent-muted (white at 50%, about 2.4:1 on #6F00FF) for anything but the short company name after a full-white person name.
- Set testimonial quotes smaller than 24px semibold on #1F75FE or #FF00FF; white on those colours is only about 4.2:1 and 3.1:1.
- Add shadows; depth comes from the floating renders.
- Write Inter Tight in caps outside the project tags, or Unbounded in lowercase.
Example prompt
Any page in the John X 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 John X 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/john.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






