Mofi Design System
Mofi is a black, loud, all-caps agency template. Every headline is uppercase Rubik 500, set huge and close to the edges, and the page has almost no colour of its own: white type on pure black, white pill buttons and thin white frames. Colour arrives only through the work photography (a white car on yellow, a cosmetic bottle on lavender, a teal product shot).
The published preview opens on a presentation page (INTRODUCING / MOFI TEMPLATE, then framed thumbnails of HOME 1–3, WORK 1–3, WORK PAGE, ABOUT, BLOG 1–3, BLOG PAGE, CONTACT, PRICING, LEGAL). Those thumbnails, the CSS and the presentation page together define the system below.
Four signatures make it recognisable:
- Solid word, outlined word. Headlines pair a solid white word with a hollow one: black fill and a thin white stroke. INTRODUCING solid over MOFI TEMPLATE outlined; OUR solid, WORK outlined; CONTACT solid, US outlined; WE CRAFT / AWESOME / WEBSITES with the middle line hollow.
- Everything uppercase. All h1–h6 are text-transform: uppercase in the base styles, as are buttons, labels, footer links and menu links. Only paragraphs stay in sentence case.
- Hamburger-only navigation. The bar holds just the MOFI wordmark (left) and a three-line hamburger with uneven line lengths (right). It opens a full-screen black menu of 65px uppercase links, each with a 17px caption under it.
- White pills on black. The only filled button is a white 30px-radius pill with black uppercase text. Secondary actions are the same pill outlined with a 2px white border.
Mofi is a dark-only design.
Colors
Surfaces
#000000Page, hero, menu overlay and cart drawer background
#000000Same as canvas: Mofi has no raised panels
#000000Input background
#FFFFFFOnly inside the white button and the white cart-remove dot
Ink
#000000Text on primary
#FFFFFFHeadlines, labels, buttons on black, the stroke of outlined words
#FFFFFF · 70%Paragraphs (base p), the hero lead, the footer address and copyright
#FFFFFF · 60%Eyebrows (MORE WEBFLOW TEMPLATE), footer links, list items, paragraph links
#FFFFFF · 90%Default a colour
#FFFFFF · 65%Price lines in the cart sidebar
#000000Text on inverse-canvas
Action
#FFFFFFThe white pill button
#333333Button background on hover (text turns white)
Lines & effects
#FFFFFF · 25%The 1px frame around every preview thumbnail
#FFFFFF · 20%Footer divider and input borders
Typography
Rubik · display-hero
The quick brown fox jumps.hero-display: INTRODUCING, MOFI TEMPLATE. 140px · 500 · 1.0 · 2px
Rubik · headline-lg
The quick brown fox jumpsBase h1 on inner pages (LEGAL, post titles). 38px · 500 · 1.16
Rubik · title-sm
The quick brown fox jumps.footer-title (SITEMAP). 18px · 500 · 1.67 · 1px
Rubik · body-lg
The quick brown fox jumpsHero lead. 20px · 400 · 1.2
Rubik · label
The quick brown fox jumps.pres-text: HOME 1, WORK PAGE. 16px · 500 · 1.25 · 1px
Rubik · eyebrow
The quick brown fox jumps.sub-text above section titles. 15px · 400 · 2.0 · 1px
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1200px, centred (.container) |
| Section rhythm | .section and .section-presanation use 100px top and bottom, 5% left and right |
| Breakpoints | 991px (tablet), 767px (landscape phone) and 479px (phone), plus a min-width: 768px rule set |
Spacing scale
| Token | Value | Preview |
|---|---|---|
hair | 5px | |
xs | 10px | |
sm | 15px | |
md | 16px | |
lg | 20px | |
xl | 30px | |
2xl | 40px | |
3xl | 70px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
nav-height | 80px | |
hero-bottom | 95px | |
section | 100px | |
hero-top | 140px |
Border radius
Motion
| Line reveal | Text moves y 100% → 0% inside an overflow-hidden wrapper, 500ms (ease on some) |
| Fade-in | opacity 0 → 1, 500ms outExpo; slower block fades 1000ms outQuart |
| Slide-in from left | x −30px → 0px, 500ms outExpo, paired with the fade |
| Icon hover pop | scale 1 → 1.1 on hover and back, 100ms ease |
| Hamburger lines | Line widths change, 300–500ms ease |
| Nav on scroll | Moves y −80px on scroll down and back on scroll up, 500ms |
| Long slide | y → −400% / −700% over 2500ms cubic-bezier(0.784, 0.325, 0.222, 0.98); used on page load |
| Button hover | Background and colour, 200ms |
| Preview card hover | opacity → 0.6, 300ms |
| Footer link hover | Colour to white, 200ms |
Do’s and don’ts
- Use canvas #000000 everywhere and ink #FFFFFF for headlines.
- Set every heading, button and label in uppercase Rubik 500.
- Pair a solid headline line with an outlined one (#000000 fill, thin #FFFFFF stroke) at display-hero 140px.
- Use the white pill (button-primary, #FFFFFF on #000000, 30px radius) for the main action, and the 2px white outline pill for the rest.
- Set paragraphs in ink-muted (#FFFFFF at 70%) at 18px, line height 1.3.
- Separate content with 1px white-at-20–25% frames and rules, not fills.
- Add an accent colour or use the unused grey variables (#8F8F8F, #747474, #F1F1F7).
- Round images or cards. Only buttons (30px), fields (5px) and circles are rounded.
- Add shadows, gradients or blur.
- Use weights above 500 or sentence-case headings.
- Leave form text at #333333 on black. Use ink for typed text.
- Put a visible nav bar with links on the page. Navigation lives in the full-screen hamburger menu.
Example prompt
Any page in the Mofi style
More design systems like this
Agency 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 Mofi 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/mofi.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






