Theo Design System
Theo is a one-screen personal portfolio. The home page is a single white viewport with no scrolling content (screenshots taken at four scroll depths all show the same screen; only the badge ring has turned):
a stack of three huge underlined nav words in the top-left corner, a three-statement manifesto set flush right, a green "Hire me" circle in the top-right corner and a tiny footer line. It feels like a business card blown up to poster size. Everything is black on white except one electric lawn green, #66FF00.
Signatures:
- The stacked nav as headline. Home, Work, Pricing are set at 47px, weight 500, one per line, each with a 2px #66FF00 underline. The nav is the biggest type on the left half of the page and doubles as the visual anchor.
- The right-aligned manifesto. The hero title is three short statements in display-hero (53px, line height 1.0), right-aligned inside a 70% wide block, separated by empty lines: Inspired by enthusiasm and ignited by wonder. / Creative specialist and visual director based in Tokyo, JP. / Open for collaborations!
- The green "Hire me" badge. A 140px #66FF00 circle in the top-right corner with a phone icon in the middle and HIRE ME set twice around the edge in small uppercase. The ring of text turns between screenshots, so it rotates.
- One colour only. Lawn green appears in exactly three places: the name Theô Olson, the nav underlines and the badge. Nothing else on the page has colour.
Colors
Surfaces
#FFFFFFPage background (body background-color: #fff)
#F5E9FFLavender (--lavender), the background of the .page-content wrapper
Ink
#000000Text on primary
#000000#000000All text: nav, hero title, footer, social icons (--black)
#000000Body copy
Action
#66FF00The "Hire me" circle and its black ring text and phone icon (--lawn-green)
#66FF00#66FF00The Theô Olson name, the nav-link hover colour
Lines & effects
#66FF00The 2px underline under every nav link
#000000The 1px left rule on blockquotes in rich text (project pages)
Typography
Hubot Sans · display-hero
The quick brown fox jumpsThe right-aligned manifesto (.title-1, the page's h1). 53px · 500 · 1.0
Hubot Sans · headline-lg
The quick brown fox jumpsBase h1 on inner pages. 46px · 500 · 0.96
Hubot Sans · title-md
The quick brown fox jumpsBase h4. 18px · 600 · 1.33
Hubot Sans · label
The quick brown fox jumpsBase h5. 14px · 600 · 1.43
Hubot Sans · eyebrow
The quick brown fox jumpsBase h6; also the size class of the HIRE ME ring text. 12px · 600 · 1.5
Inter Tight · body-lg
The quick brown fox jumpsParagraphs in rich text (base p). 20px · 500 · 1.3
Spacing & shape
| Purpose | Value |
|---|---|
| Container | there is no centred container |
| Breakpoints | Webflow's 991px, 767px and 479px, plus a min-width: 768px set |
Spacing scale
| Token | Value | Preview |
|---|---|---|
hair | 4px | |
xs | 10px | |
sm | 20px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
badge-inset | 27px | |
gutter | 30px | |
section-bottom | 72px | |
section-top | 144px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Nav-link hover | Text #000000 → #66FF00, underline #66FF00 → transparent. CSS transition: all |
| Badge ring | HIRE ME text rotates continuously around the phone icon |
| Page load | Page-load interactions hide the loader (display: none, opacity to 0 in 400–500ms) |
Do’s and don’ts
- Keep the page white #FFFFFF with all text in #000000, including paragraphs.
- Use #66FF00 only as a fill (the 140px badge), a 2px underline, or the large name wordmark.
- Set nav links at 47px weight 500 with −1px tracking and a 2px #66FF00 underline, stacked one per line.
- Right-align the hero statements in a 70% wide block at 53px, line height 1.0.
- Keep a 30px gutter on every edge for the nav, badge and footer.
- Keep corners square everywhere except the circular badge.
- Put #66FF00 text on white below 40px. It has almost no contrast; the only small green is the large name.
- Add grey body text, shadows, cards or gradients.
- Add a second accent from the pastel variables next to the green.
- Add a filled rectangular button. The only call to action is the round badge.
- Fill the screen with sections on the home page. It is one viewport.
- Shrink the nav into a normal 14–16px menu bar.
Example prompt
Any page in the Theo 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 Theo 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/theo.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






