Fifi Design System
Fifi is a calm, editorial portfolio for an interior designer. It feels like a lifestyle magazine spread: tall uppercase serif-like headlines in Belleza, light Outfit body text, a warm near-black (#292525) instead of pure black, and soft, sunlit interior photography in cream, blush and white. The interface adds almost nothing of its own: hairlines, small uppercase labels and one dark pill button.
Four signatures make it recognisable:
- The split hero. The left half of the first screen is pale grey #EEEEEE, the right half white. An oval photo of an interior sits on the left, a tall portrait on the right, and the two-line title DESIGNER / FROM MILAN (112px Belleza) runs across both halves, overlapping the photos and stepping right on the second line.
- Oval and arched crops. Feature images use a 50% radius, so they become ovals or, when cropped at the bottom, arches (WHY CHOOSE US?). Other images are square-cornered, except the round testimonial avatars.
- Work card with a rule. A tall portrait image, the project style in 32px Belleza caps centred on its bottom edge (MINIMALIST, SCANDINAVIAN), then a hairline and a meta row: year left, room right (2022 · HOME OFFICE).
- Stacked, right-aligned nav. The fifi logo top-left and four uppercase links stacked vertically top-right (WORK ABOUT BLOG CONTACT), floating over the page.
Colors
Surfaces
#FFFFFFPage background
#F5F5F5Light panels (--white-smoke)
#EEEEEEThe left half of the hero
#FFFFFFForm inputs; placeholder #686868
#333333Text on field
#E4E4E4With field: Form inputs; placeholder #686868
#686868Ink
#F5F5F5Text on primary
#292525Headlines, labels, links, the body colour (--black-2)
#222222Nav links
#6D6565Paragraphs (base p), testimonial text and roles
#000000The hero intro HI MY NAME IS FIFI… only (--black)
#292525 · 60%Secondary meta
#F5F5F5Meta text on photos
Action
#292525The pill button
Lines & effects
#292525 · 50%The rule under each work card
#292525 · 60%Rules in services and testimonials
#292525 · 20%The rule above the copyright
#292525 · 65%Bottom gradient on photos that carry text (transparent → 65%)
#222222 · 40%A dark tint over the video
Typography
Belleza · display-hero
The quick brown fox jumpsh1 DESIGNER / FROM MILAN (7rem). 112px · 400 · 1
Belleza · headline-lg
The quick brown fox jumpsh3 (4rem). 64px · 400 · 1
Belleza · title-lg
The quick brown fox jumpsWork card titles (h5, 2rem). 32px · 400 · 1
Outfit · body-lg
The quick brown fox jumpsSection subtitles (1.6rem). 25.6px · 300 · 1.05
Outfit · label
The quick brown fox jumpsNav links. 14.4px · 600 · 1 · 1px
Outfit · caption
The quick brown fox jumpsTestimonial roles CEO - Snowflake. 16px · 400 · 1 · 0.2px
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1240px, centred, with 5% side padding on every section (about 72px at 1440px) |
| Section rhythm | 120px top and bottom; the works section has 60px top |
| Breakpoints | 991px, 767px and 479px |
Spacing scale
| Token | Value | Preview |
|---|---|---|
xs | 10px | |
sm | 15px | |
md | 20px | |
lg | 30px | |
xl | 40px | |
2xl | 80px | |
3xl | 120px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
footer-bottom | 30px | |
footer-top | 40px | |
column-gap | 40px | |
section-works-top | 60px | |
row-gap-works | 80px | |
section | 120px | |
wide-gap | 160px | |
hero-top | 160px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Scroll reveal | Elements start 100px away (below, above, left or right) at opacity 0, then move to 0 and fade to 1, 1000ms outQuart, on scroll into view |
| Link hover | opacity 1 → 0.6, 300ms |
| Button hover | Fill to transparent, text to #292525, 600ms |
| Hero intro text | Moves from x −70px, y 300px to 0, 400ms outCubic, on hover over the portrait |
| Image hover | scale 1 → 1.15, 200ms outQuint, with a filter change, 200–400ms outSine |
| Lift | y 0 → −20px, 200ms outSine |
| Scale in | scale 0.7 / 0.8 → 1, 500ms outExpo |
Do’s and don’ts
- Set every heading in Belleza 400, uppercase, line height 1.0, in #292525.
- Set paragraphs in Outfit 300 at 19.2px, line height 1.3, in #6D6565.
- Use uppercase Outfit labels with +1 to +1.5px tracking for nav, buttons and meta.
- Crop feature images as ovals or arches (50% radius) and keep all others square.
- Separate text blocks with 1px rules in #292525 at 50–60%.
- Leave space: 120px between sections, 80px under section titles.
- Use pure black #000000 or a cool grey; the dark is the warm #292525.
- Add shadows, card borders or background boxes around content.
- Set Belleza in lowercase or bold, or Outfit body text above weight 400.
- Add an accent colour; the unused maroon #5F021F stays unused.
- Round photos with small radii (8–20px); it is either 0 or an oval.
- Use saturated or high-contrast photography.
- Use ink-subtle (#292525 at 60%, about 4:1) for paragraphs. Keep it for 14px+ meta only.
Example prompt
Any page in the Fifi 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 Fifi 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/fifi.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






