Byat Design System
Byat is a loud, poster-style agency site in black on white. Almost every heading is set in Coolvetica Compressed Heavy, uppercase, so tall and narrow that one word fills half the screen. Photography is tilted, cropped and dropped around the type, and the page alternates huge type moments with plain white space and full-width darkened project photos. The footer is a full-height black band.
Four signatures make it recognisable:
- The stacked centred hero. BYAT™ / MARKETING / STUDIO © in compressed uppercase at 19vw (274px at 1440) with line height 0.8, centred, with two photos rotated about ±15° bleeding off the left and right edges.
- The pill ©. The © is drawn as a tall outlined rounded rectangle with a C inside, the same height as the capitals. It ends the hero (STUDIO ©) and starts the marquee words (©BRANDING).
- Marquee with play frames. A sideways-scrolling line of 346px words (©BRANDING) alternating with about 200px squares framed by an 8px black border, each holding a small ▶.
- Darkened project cards. Full-width photos under a 70% black layer, with a sharp copy of the image inset in the centre, the project name in white at 140px and a dark VIEW PROJECT button.
Byat is a light-only design with a black footer.
Colors
Surfaces
#FFFFFFPage, every section, the overlay menu, testimonial slides
#F1F3F8--second-color
#FFFFFFInputs with a 1px grey border
#CCCCCCWith field: Inputs with a 1px grey border
#000000 · 68%Placeholder text
#000000Footer band
Ink
#FFFFFFText on primary
#000000Headings, nav, labels (--main-color)
#000000 · 70%Paragraphs: p is black at opacity: .7
#000000 · 55%Dates and meta (.data-text); .gray-text is 50%
#FFFFFFTitles and meta on photos
#FFFFFF · 80%.figma-text tags on photos
#FFFFFFText on inverse-canvas
#D9DAE2--body-text-color, secondary footer text
Action
#222222Every filled button, square
#222222Lines & effects
#E1E1E11px rules (section with-line)
#0000008px black frames around the play squares
#DFDBE6--third-color: the 2px left rule on blog blockquotes
#000000 · 70%Layers over project and blog photos
#000000 · 60%Layers over project and blog photos
#000000 · 30%Layers over project and blog photos
#000000 · 15%One light overlay
Typography
Coolvetica Compressed · display-marquee · shown in Oswald (fallback)
The quick brown fox jumpsMarquee words ©BRANDING (24vw, 15 instances). 346px · 400 · 1.2 · 2px
Coolvetica Compressed · headline-xl · shown in Oswald (fallback)
The quick brown fox jumpsThe about statement byat© is a creative force…. 120px · 400 · 0.85 · 1px
Coolvetica Condensed · title-lg · shown in Oswald (fallback)
The quick brown fox jumps32px condensed labels (3 instances); the overlay-menu numbers are the same size in Compressed Hv with 2px tracking. 32px · 400 · 0.9
Coolvetica Condensed · label · shown in Oswald (fallback)
The quick brown fox jumpsButton labels ABOUT US, VIEW PROJECT. 23px · 400 · 1.3 · 1px
Coolvetica Condensed · eyebrow · shown in Oswald (fallback)
The quick brown fox jumpsSmall section labels Services, About us. 21px · 400 · 0.7 · 1px
Instrument Sans · body-lg
The quick brown fox jumpsParagraphs (p, at 70%). 20px · 500 · 1.3
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1440px, centred |
| Section rhythm | 150px top and bottom (.section), 100px at ≤479px; side padding stays 3% |
| Grid | 12 columns with a 16px gap and 40px row gap (.top-grid) |
| Breakpoints | 991px, 767px and 479px, plus min-width steps at 768 and 1280px |
Spacing scale
| Token | Value | Preview |
|---|---|---|
hair | 5px | |
xs | 9px | |
sm | 16px | |
md | 20px | |
lg | 40px | |
xl | 60px | |
2xl | 80px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
column-gap | 16px | |
gutter | 43px | |
footer | 70px | |
marquee-gap | 120px | |
section | 150px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Headline reveal | Lines move y 120% → 0% and skew 15° → 0°, 1000ms outExpo, inside .text-overflow masks |
| Big reveal | y 100% → 0%, 1400ms outExpo |
| Fade-in | Opacity 0 → 1, 1000ms outQuart |
| Slide-in | x −30px → 0, 500ms outQuart; x 30px → 0, 800ms outExpo |
| Settle | x 0, y 0, 1000ms outQuart |
| Photo rotate | Rotate, 600ms outExpo (hero photos settle into their tilt); 400ms ease on hover |
| Menu open | Overlay moves y −100% → 0, 800ms swingFrom; closes in 400ms inOutCubic |
| Menu and nav roll | Items move y 0% → −100% in a mask, 400ms outCubic |
| Hover background | Background-colour change, 500ms inOutQuart |
| Button | transition: transform .2s |
| Marquee and logo strip | Continuous sideways scroll |
Do’s and don’ts
- Set display and section headings in Coolvetica Compressed, uppercase, line height 0.8–0.9, with +1 to +3px tracking at display sizes.
- Keep the page #FFFFFF and the type #000000, with paragraphs at 70% black.
- Use the square #222222 button with Coolvetica Condensed 23px uppercase white labels.
- Put white text on photos over a black layer of 30–70%.
- Tilt hero photos about 15° and let them run off the edge.
- Use the pill © glyph and superscript ™ as part of the brand mark.
- Round buttons or images; everything is square.
- Use Coolvetica in lower case or for paragraphs, or Instrument Sans for display headings (it is only used for the 36px testimonial quotes).
- Add an accent colour, gradients on UI or drop shadows.
- Invent a hover colour; the button hover is a 200ms transform, not a fill change.
- Use negative letter spacing on the compressed display type.
- Put ink-subtle (55% black) on anything smaller than 14px.
Example prompt
Any page in the Byat 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 Byat 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/byat.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






