Romeo Design System
Romeo is a bold, playful personal portfolio for a single designer. The page is a pale cream (#FFFFE6) with everything else in pure black: a huge, wide Clash Display headline, outline pill buttons, hand-drawn doodles and a circular text badge. The work section is a slow zig-zag of large square-cornered images with the project name and a View Project link beside each one.
Four signatures make it recognisable:
- Outline pill nav. Four separate pills (Home, About, Work, Contact) with a 2px black border and a 40px radius, 7px apart at the top right. On hover each fills black and its text turns cream.
- Poster hero. Visual / Designer at 213px, weight 600, line height 0.9, centred in a full-height screen, with a circular text badge (CREATIVE DESIGNER UI/UX) to the right and Tw. In. Db. Ig. centred at the bottom.
- Black wipe reveals. Headings are covered by a black block (.heading-overlay) that slides across and off as they scroll into view.
- Zig-zag work list. Each project is a 2-column row (1fr / 1.3fr) with a 1.32:1 image and the title block on the other side, alternating left and right; a doodle (a smiley) floats near the first title.
Romeo is a light-only design.
Colors
Surfaces
#FFFFE6Page background (--light-yellow)
#FFFFFFThe white cart panel, the only surface lighter than the page
#6E6E6EInput text and placeholders
#000000Nav pill hover fill, the heading wipe block
Ink
#FFFFE6Text on primary
#FFFFFFText on primary-hover
#000000All text, borders, rules and doodles (89 of 89 measured text uses)
#000000Body text is full black, the same as ink
#000000 · 36%.smaller-text (16px weight 300, opacity 0.36) for secondary figures
#FFFFE6Text on inverse-canvas
Action
#000000The .button pill: cream text on black
#222222.button:hover
Lines & effects
#0000002px pill borders, 2px input underline, 2px nav underline
#B9BBC8The 1px base line of link-underline text links
#E6E6E61px cart border only
Typography
Clash Display · display-hero
The quick brown fox jumpsVisual, Designer (.title-1, 13.3rem), each in a 210px clipped box. 213px · 600 · 0.9
Clash Display · headline-lg
The quick brown fox jumpsHey! I am Romeo, Latest Work, I create digital experiences, the contact title. 60px · 600 · 1.1
Clash Display · title-lg
The quick brown fox jumpsWe are happy to contribute to our clients success. 24px · 600 · 1.15
Clash Display · body-lg
The quick brown fox jumpsSection leads (These are some of my recent favorites – always subject to change.). 21px · 500 · 1.24
Clash Display · label-social
The quick brown fox jumpsTw. 19px · 600 · 1.37
Clash Display · caption
The quick brown fox jumpsForm labels, the ring badge text (set in caps). 14px · 600 · 1.43
Spacing & shape
| Purpose | Value |
|---|---|
| Container | .container max 1200px, centred |
| Section rhythm | .section is 120px top and bottom with 5% sides (72px at 1440px) |
| Breakpoints | 991px, 767px and 479px, plus a min-width: 768px set |
Spacing scale
| Token | Value | Preview |
|---|---|---|
hair | 2px | |
xs | 7px | |
sm | 16px | |
md | 30px | |
lg | 50px | |
xl | 80px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
nav-top | 35px | |
field-indent | 79px | |
section | 120px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Heading wipe | Black .heading-overlay moves x −100% → 0 then → 100% (300ms easeOut), uncovering the heading |
| Clipped rise | Hero lines and project titles move y 300px → 0 inside a clipped box, 500ms |
| Nav and social roll | Text rolls up inside a 26px box; size underline 0 → 100%, 500ms ease |
| Pill hover | Border and fill change, border 200ms outSine, plus transition: all |
| Icon hover | scale 1 → 1.1, 100ms ease |
| Page load | opacity 0 → 1 and move → 0px, 1000ms outQuart |
| Size reveals | Size 400ms outCubic and 500ms outExpo (blocks opening to full size) |
| Custom cursor | Follows the mouse, scales 0 → 1 in 500ms |
| Button | transition: all .2s |
Do’s and don’ts
- Keep the page #FFFFE6 and everything else #000000.
- Use Clash Display 600 for every heading, with no letter spacing.
- Make nav and secondary actions 2px black outline pills (40px radius) that fill black with #FFFFE6 text on hover.
- Reveal headings with a black block that wipes across and off.
- Alternate project rows: image left, then right, at 1fr / 1.3fr with 30px gaps.
- Use underline-only inputs (2px black bottom border) set in Inter 18px.
- Use white for text on black; use the cream #FFFFE6.
- Round the project images or add shadows.
- Add an accent colour; the blue and green CSS variables are unused.
- Use ink-faint (black at 36%) below 16px or for paragraphs; it is about 2.5:1 on cream.
- Use Clash Display for form inputs, or Inter anywhere else.
- Centre the project titles; they align to the side away from the image.
Example prompt
Any page in the Romeo 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 Romeo 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/romeo.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






