Frame Design System
Frame is a dark, quiet photographer's template. It feels like a gallery wall at night: a near-black page over a blurred black-and-white mountain photo with a heavy vignette, thin condensed Oswald capitals spaced wide apart, and small hand-drawn ornaments (an arc above the title, a zigzag under every heading). The interface is black and white; the colour comes only from the photographs.
The published preview opens on an intro page that shows the eight home layouts as screenshots and links to the inner pages. The layouts themselves alternate white pages with #121217 bands.
Four signatures make it recognisable:
- The white side rail. A fixed 90px white column on the left with the FRM logo rotated −90° and a camera mark at the top, a two-line hamburger in the middle and three round black social buttons at the bottom. It opens a white menu panel beside it with 28px uppercase links.
- Wide-tracked light capitals. The hero line BUILT FOR CREATIVES is Oswald 300 in uppercase with 10px letter spacing, flanked by two thin horizontal rules.
- Zigzag and arc ornaments. A white zigzag sits under every section title and under the hero; a thin open arc sits above the hero kicker.
- Ghost tags and white pill tiles. Layout names sit in transparent tags with a white 18% outline (HOME 1 / LEFT NAVIGATION); inner pages are white 50px pills with a black circular arrow on the right.
Colors
Surfaces
#121217Page and footer background (the body colour), under a blurred B&W photo
#111111Round icon buttons: social circles on the rail, arrow circles on tiles
#FFFFFFThe side rail, the menu panel, white page sections
#E1E1E11px border on the subscribe field and button
Ink
#212127Text on primary
#FFFFFFHeadlines, tags, buttons on dark
#FFFFFFBody text on dark is full white (the hero lead); same as ink
#919197Small uppercase meta, copyright line, subscribe button label
#818187Paragraphs on white pages (p colour) and the footer address
#121217Text on inverse-canvas
#616167Links on white (a default)
#FFFFFFAction
#FFFFFFWhite pill tiles with dark text
#888888 · 56%12px marker bar behind menu links on hover
Lines & effects
#FFFFFF · 18%1px outline on layout tags and dark dividers
#FFFFFF · 54%1px underline under footer tags (.line-tag)
#EDEDED1px right border of the rail and menu panel
#000000Subscribe button text on hover
Typography
Oswald · display-hero
The quick brown fox jumpsBUILT FOR CREATIVES. 64px · 300 · 1.48 · 10px
Oswald · headline-section
The quick brown fox jumps8 HOME LAYOUTS, INNER PAGES. 32px · 400 · 1.13 · 1px
Oswald · body-lg
The quick brown fox jumpsHero lead, 50% wide, centred. 18px · 300 · 1.67
Oswald · title-sm
The quick brown fox jumpsTile labels Portfolio v1, Gallery v2. 16px · 400 · 1.5
Oswald · eyebrow
The quick brown fox jumpsFooter category tags with an underline. 15px · 400 · 1.33 · 2px
Oswald · label
The quick brown fox jumpsLine button ONLY $79 ON MARKETPLACE, subscribe button. 14px · 400 · 1.43 · 2px
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1200px, centred, with 30px side padding on sections (15px from ≤991px) |
| Section rhythm | 180px top and bottom (.section): 120px at ≤991px, 80px at ≤479px |
| Breakpoints | 991px, 767px and 479px, plus a few min-width: 768px rules |
Spacing scale
| Token | Value | Preview |
|---|---|---|
hair | 1px | |
xs | 5px | |
sm | 10px | |
md | 15px | |
lg | 20px | |
xl | 30px | |
2xl | 60px | |
3xl | 100px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
gutter | 30px | |
footer-top | 70px | |
rail | 90px | |
hero-top | 100px | |
hero-bottom | 150px | |
section | 180px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Entrance | Opacity 0 → 1 and y 20px → 0, 300ms with swingFrom / swingTo, or 500ms default |
| Fades | Opacity in and out over 200ms and 300ms ease |
| Line and bar growth | Size changes at 200ms and 300ms ease, 500ms default (the line button bar, the menu marker) |
| Rotation | 300ms ease and 500ms (hamburger and arrow icons) |
| Colour on hover | Text and background colour changes at 200–500ms; CSS links use transition: all .2s |
| Tiles | transition: all 0.3s |
Do’s and don’ts
- Keep the fixed 90px white rail on the left with the rotated FRM logo and black round social buttons.
- Set titles in Oswald uppercase with letter spacing (1px titles, 2px buttons, 10px hero) on #121217.
- Put a white zigzag under each section title and centre it.
- Use white 50px pills with a #111111 arrow circle for page links, and 1px white-18% ghost tags for labels.
- Let full-colour photography be the only colour; keep the backdrop photo black and white and blurred.
- Use 180px section padding and 100px under section titles.
- Add an accent colour, gradients or drop shadows.
- Use bold weights; stay at 300 for large text and 400 for small labels.
- Put #919197 or #818187 text under 13px, or use it for body copy on the dark canvas; body on dark is white.
- Round screenshots or inputs; only pills (50px), circles and 4px tags are rounded.
- Set uppercase without tracking, or track running sentences.
- Add busy motion: keep hovers at 200–300ms and entrances to a 20px rise.
Example prompt
Any page in the Frame 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 Frame 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/frame.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






