Baltimore Design System
Baltimore is a calm, gallery-like site for an architecture studio. It opens loud, with a violet-to-sand gradient, a cut-out glass tower and 130px white words sliding past it, and then turns quiet: white pages, black Inter Tight, big architectural photographs that run to the edge of the screen, and one solid black band for the portfolio. There is no accent colour in the UI; the gradient and the photos carry all the colour.
Four signatures make it recognisable:
- Marquee words around a tower. The hero is a gradient (#B84EEB → #DBB1C5 → #E9CEB3) with a cut-out skyscraper in the centre. Two rows of 130px white text (Baltimore, Innovative Architecture, New York., …architectural design. Evolve…) scroll sideways, one row passing behind the tower and one in front of it.
- Half-bleed photographs. Images fill one half of the screen from the viewport edge (about 695px wide at 1440) with square corners; text sits in the other half. Sides alternate down the page.
- Two-tone leads. Section leads are 28px/600 black, and the last few words drop to 50% black: The breadth of our skilled expertise / and knowledge.
- Black outline pills. Main actions are 64px tall outline pills with a 2px border and a 40px radius (Meet the team, View all projects), black on white and white on black.
Colors
Surfaces
#FFFFFFPage background
#F7F7FCFooter subscribe field and its button wrapper
#F7F7FCFooter subscribe field and its button wrapper
#000000Portfolio band, the scrolled nav bar, the 10k stat card, the overlay menu
Ink
#FFFFFFText on primary
#000000Headlines, service names, buttons, links
#000000 · 50%Paragraphs and the second half of leads: p is black with opacity: .5
#FFFFFFText on black
#FFFFFF · 80%Paragraphs on the black band (opacity: .8)
#FFFFFF · 50%PORTFOLIO eyebrow on the black band (p at opacity: .5)
#FFFFFFHero marquee and logo over the gradient
Action
#000000Filled submit button, circle arrow button, active category tag
#000000 · 79%Filled button on hover (opacity: .79)
Lines & effects
#E1E1E1The one 1px border (cart and table rows)
#0000002px borders on outline buttons, inputs and category tags
#444444Project tag pills on the black band (text at 63% opacity)
#FFFFFF · 15%Circles behind menu index numbers
#B84EEBHero background, linear-gradient(#B84EEB, #DBB1C5 50%, #E9CEB3)
#DBB1C5#E9CEB3Typography
Inter Tight · display-marquee
The quick brown fox jumpsHero marquee rows (.text-rotator), white, no wrap. 130px · 600 · 1.2
Inter Tight · headline-md
The quick brown fox jumpsSection leads (13 instances), portfolio heading. 28px · 600 · 1.3
Inter Tight · title-lg
The quick brown fox jumpsBlog card titles. 26px · 600 · 1.3
Inter Tight · label-menu
The quick brown fox jumpsMenu next to the hamburger. 19px · 600 · 1.58
Inter Tight · body
The quick brown fox jumpsParagraphs and service lists at 50%. 17px · 600 · 1.4
Inter Tight · eyebrow
The quick brown fox jumpsPORTFOLIO, white at 50% on the black band. 15px · 600 · 1.33
Spacing & shape
| Purpose | Value |
|---|---|
| Container | .container max 1200px, centred |
| Breakpoints | 991px, 767px and 479px (most rules at 479), plus 1280px and 1440px steps |
Spacing scale
| Token | Value | Preview |
|---|---|---|
xs | 5px | |
sm | 16px | |
md | 20px | |
lg | 40px | |
xl | 60px | |
2xl | 100px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
section-split | 50px | |
gutter | 72px | |
logo-gap | 96px | |
section | 100px | |
section-band | 120px | |
hero-bottom | 130px | |
hero-top | 160px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Hero marquee | Two .text-rotator rows translate sideways in a continuous loop |
| Heading reveal | Lines start at y 200% with skewY 7deg and settle to y 0% over 1100ms outQuint; the skew returns to 0 in 500ms |
| Fade-up | opacity 0 → 1 with y 40px → 0, 500ms |
| Slow fade | opacity 0 → 1 over 1000–1250ms outQuart |
| Image parallax | Elements move between y 100px and y −100px while in view, 500ms smoothing |
| Button arrow | Arrow from translateY(100px) into place while the label leaves; 400ms ease rotation on the arrow |
| Press | scale 0.8 in 300ms outQuad, back to 1 in 300ms ease |
| Nav fill | Background colour change, 300ms ease, on page scroll |
| CSS hovers | transition: all .3s for opacity changes (buttons 79%, footer links 60% → 100%); circle button 200ms cubic-bezier(0.645, 0.045, 0.355, 1) |
Do’s and don’ts
- Keep the UI strictly black #000000 and white #FFFFFF; let photos and the hero gradient bring colour.
- Run photographs to the viewport edge in split sections, with square corners and the text in the opposite half.
- Set leads in headline-md (28px/600) with the closing words at 50% black.
- Use the 2px outline pill (40px radius, 64px tall) for main actions, and the filled black button only for forms.
- Flip to inverse-* tokens on the black portfolio band, including the white outline button.
- Keep paragraphs at weight 600 with opacity, not lighter weights.
- Round photographs or add shadows to cards.
- Use the hero gradient anywhere other than the hero.
- Use Oswald or Hubotsans; the live page is Inter Tight only.
- Use ink-muted (black at 50%) below 17px; it is a soft grey on white and needs the 600 weight and size to read. Keep 14–16px meta text in full ink.
- Add a coloured accent for links or buttons.
- Give the hero a headline or button; the marquee and the tower are the whole hero.
Example prompt
Any page in the Baltimore style
More design systems like this
Construction 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 Baltimore 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/baltimore.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






