ULF Design System
ULF looks like a fashion magazine cover for an agency. A white page carries huge Melodrama headlines (a high-contrast display serif with hairline strokes) at 120px, centred, with a small black four-petal mark sitting inside the headline like a word. Everything around it is quiet Satoshi: grey uppercase eyebrows, grey uppercase paragraphs, light-grey buttons. Halfway down, the whole page turns black for the work and team sections.
Four signatures make it recognisable:
- Melodrama at 120px. Hero and big section words (Accelerate the growth of your brands., Improve, Our Work) are Melodrama 500 at 120px with line height 1.0, centred. The nav uses the same face at 19px Bold.
- The inline petal mark. A black four-petal shape (60px image in an 80px inline slot) replaces a word inside the headline, before brands. and after Testimonials.
- Grey caps under serif. Small type is Satoshi in #666666: 13px Bold eyebrows with 2px tracking (MEET ULF TEMPLATE, WHAT WE DO) and uppercase paragraphs at 14–15px.
- The white-to-black flip. The page starts white with black type; when the work section scrolls in, the background, nav and text switch to black and white.
Colors
Surfaces
#FFFFFFPage background and nav on the light half
#F3F3F3Light panels (--white-smoke-2)
#EEEEEESame value as the button fill (--white-smoke-3)
#000000The dark half: award band, work, team, footer
Ink
#000000Text on primary
#FFFFFFText on primary-hover
#000000Headlines, nav, service names, button text
#666666Body copy, eyebrows, lead, uppercase paragraphs, inputs (--dim-grey)
#FFFFFFText on inverse-canvas
#FFFFFFAction
#EEEEEEThe filled button (Contact Us, View All Work, Send Message)
#000000Button hover: it turns black with white text
Lines & effects
#8A8A8APrice tags (shop and pricing pages)
#E1E1E1Light 1px borders (cart, dividers)
#000000The 1px rules between service rows
#FFFFFF · 60%Eyebrows and project tags on black
#FFFFFF · 57%Footer links
#FFFFFF · 15%Footer top divider
#FFFFFF · 22%Typography
Melodrama · display-hero
The quick brown fox jumpsHero, Improve, Our Work, Testimonials (.title-1). 120px · 500 · 1.0
Melodrama · headline-md
The quick brown fox jumpsBlog titles. 40px · 600 · 1.0
Melodrama · title-lg
The quick brown fox jumpsProject titles (Pendisse Pulvinar). 28px · 600 · 1.0
Satoshi · body-lg
The quick brown fox jumpsHero lead. 25px · 400 · 1.2
Satoshi · label
The quick brown fox jumpsButtons. 16px · 700 · 1.25
Satoshi · caption
The quick brown fox jumpsSocial links, inputs. 16px · 500 · 1.25
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1200px, centred |
| Breakpoints | 991px, 767px and 479px (Webflow defaults) |
Spacing scale
| Token | Value | Preview |
|---|---|---|
xs | 10px | |
sm | 16px | |
md | 20px | |
lg | 30px | |
xl | 50px | |
2xl | 60px | |
3xl | 100px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
nav-side | 26px | |
section-side | 72px | |
nav | 80px | |
section | 120px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Scroll-in reveal | opacity 0 → 1 and move to 0,0, 1000ms outQuart |
| Image zoom-out | scale 1.5 → 1, 500ms, as images scroll into view |
| Parallax nudge | y 100px / −100px / −50px moves, 500ms, while scrolling through sections |
| Page colour flip | Background and text colour change, 200ms ease, when the work section enters and leaves the viewport |
| Accordion | Row height grows 500ms ease; the + rotates 400ms swingTo |
| Button hover | transition: all .2s: #EEEEEE to #000000, text to white |
| Footer link hover | Colour 57% to 100% white, 200ms |
| Petal mark | Slow rotation, 4000ms |
| Client logos | Slide sideways (x 0 → −50vw) while in view |
| Subscribe arrow | Background position 50% → 100%, 300ms |
Do’s and don’ts
- Set headlines in Melodrama 500 at 120px, line height 1.0, centred on the hero.
- Put a 13px Satoshi Bold eyebrow with 2px tracking in #666666 above section titles.
- Keep body copy #666666 Satoshi 500 at 18px/24px on #FFFFFF.
- Use the #EEEEEE button with a 6px radius that turns #000000 with white text on hover.
- Switch whole sections to #000000 with white type for the work and team area.
- Round photos at 30px and keep them full colour.
- Set body copy or buttons in Melodrama; it is for names and headlines only.
- Use black for paragraphs or grey for headlines.
- Add the unused #B5D99C green or any other accent.
- Add shadows, gradients or tinted overlays.
- Use pill buttons; buttons stay at 6px.
- Put the 57% white footer link colour on anything smaller than 16px.
- Use price-ink #8A8A8A for anything but 24px price tags; on white it is only 3.45:1.
Example prompt
Any page in the ULF 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 ULF 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/ulf.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






