GrammarlyBrand
DESIGN.md · measured October 23, 2026
unfair.so design system
Light interface measured from unfair.so: newPixel type with Inter, vivid indigo accents, tonal surfaces and 9px corners.
- Background
- #F4F4F4
- Primary
- #0033FF
- Type
- newPixel
- Corners
- 9px
From unfair.so ↗ · 332 elements at 1440×900 and 390×844 · Independent analysis, not affiliated with unfair.so
unfair.so colors
14 roles measured on the page, grouped by where each color is used.
Surfaces
#F4F4F4background · --color-k-canvasPage background · 2×#EBEFFFsurface-container-low · --color-k-accent-softRaised areas one step from the page · 3×#EFEFEFsurface-containerCards and panels · 3×#FFFFFFsurface-container-high · --color-k-surfaceHover and pressed fills · 55×#FFFFFF1AoverlayTranslucent fill for cards and controls · 6×#FFFFFF33overlay-strongStronger translucent fill · 1×#212121inverse-surface · --color-k-key-faceHigh-contrast fills · 4×Text
#1A1A1Aon-surface · --color-k-inkPrimary text and headings · 46×#6E6E6Eon-surface-variant · --color-k-key-beardSecondary text · 14×#1A1A1Aon-primaryText and icons on primaryAccents
#0033FFprimaryPrimary buttons and calls to action · 5×#0026BFsecondary · --color-k-accent-deepBrand accent (CSS variable) · 20×Borders
#E8E8E8outlineBorders and dividers · 53×#0033FF66outline-variantSecondary dividers · 1×unfair.so fonts
2 families.
mobile 50px
mobile 22px
Contrast
Text on #F4F4F4
15.8:14.6:1Spacing
No strict grid · 63% are multiples of 4px
xs2pxsm8pxmd10pxlg20pxxl48pxgutter10pxsection112pxmargin32pxBreakpoints: 679.98px 680px 1179.98px 1180px 1319.98px
Shapes
Corner radii, most used first.
Depth
Components
Rebuilt from the measured CSS.
Motion
Interface transitions
0.15s0.2s0.24s0.1scubic-bezier(0.4, 0, 0.2, 1)ease-out
Do’s and don’ts
Rules written from the measurements, so a coding agent stays on style.
- Use #F4F4F4 for the page and lift surfaces in small steps: #EBEFFF, #EFEFEF, #FFFFFF.
- Keep text in 2 levels: #1A1A1A, #6E6E6E.
- Reserve #0033FF for primary actions and key highlights.
- Set headlines in newPixel with tight tracking (-0.04em).
- Reuse the measured spacing steps (8px, 10px, 20px).
- Use 9px corners on most elements; larger surfaces also use 14px, 12px and 16px.
- Introduce new font families beyond newPixel and Inter.
- Use #0033FF for large backgrounds or body text.
- Make interface transitions slower than 0.42s.
---
version: alpha
name: unfair.so
description: "Light interface measured from unfair.so: newPixel type with Inter, vivid indigo accents, tonal surfaces and 9px corners."
colors:
background: "#F4F4F4"
surface: "#F4F4F4"
on-surface: "#1A1A1A"
on-background: "#1A1A1A"
on-surface-variant: "#6E6E6E"
surface-container-low: "#EBEFFF"
surface-container: "#EFEFEF"
surface-container-high: "#FFFFFF"
overlay: "#FFFFFF1A"
overlay-strong: "#FFFFFF33"
outline: "#E8E8E8"
outline-variant: "#0033FF66"
primary: "#0033FF"
on-primary: "#1A1A1A"
inverse-surface: "#212121"
secondary: "#0026BF"
typography:
headline-display:
fontFamily: newPixel
fontSize: 122.5px
fontWeight: 400
lineHeight: 0.96
letterSpacing: -0.04em
headline-lg:
fontFamily: newPixel
fontSize: 66px
fontWeight: 400
lineHeight: 1.04
letterSpacing: -0.035em
headline-md:
fontFamily: Inter
fontSize: 24px
fontWeight: 500
lineHeight: 1.25
letterSpacing: -0.02em
body-md:
fontFamily: Inter
fontSize: 18px
fontWeight: 400
lineHeight: 1.56
body-lg:
fontFamily: Inter
fontSize: 20px
fontWeight: 400
lineHeight: 1.5
body-sm:
fontFamily: Inter
fontSize: 13px
fontWeight: 400
lineHeight: 1.38
label-lg:
fontFamily: Inter
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
label-md:
fontFamily: Inter
fontSize: 14px
fontWeight: 600
lineHeight: 1.43
label-sm:
fontFamily: Inter
fontSize: 13px
fontWeight: 500
lineHeight: 1.23
headline-display-mobile:
fontFamily: newPixel
fontSize: 50px
fontWeight: 400
lineHeight: 0.96
letterSpacing: -0.04em
headline-md-mobile:
fontFamily: Inter
fontSize: 22px
fontWeight: 500
lineHeight: 1.27
letterSpacing: -0.02em
rounded:
xs: 9px
sm: 12px
md: 14px
lg: 16px
xl: 24px
spacing:
xs: 2px
sm: 8px
md: 10px
lg: 20px
xl: 48px
gutter: 10px
section: 112px
margin: 32px
components:
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.label-lg}"
rounded: "{rounded.sm}"
padding: 0px 28px
height: 60px
button-ghost:
textColor: "{colors.on-surface}"
rounded: 0px
padding: 0px
input-field:
textColor: "{colors.on-surface}"
typography: "{typography.body-lg}"
rounded: 0px
padding: 0px
card:
backgroundColor: "{colors.surface-container-high}"
textColor: "{colors.on-surface}"
typography: "{typography.label-lg}"
rounded: "{rounded.md}"
padding: 0px
---
# unfair.so Design System
## Overview
unfair.so describes itself as: “1000+ creators. First post today. Creators your buyers already follow — pick them by their real audience and keep every engager as a lead.” The interface is light, built on **Snow (#F4F4F4)** with **Charcoal (#1A1A1A)** text, and **Vivid Indigo (#0033FF)** as the main accent.
Type is set in **newPixel** and **Inter**. Headlines run large with tight negative tracking; body text is 18px. Depth comes from soft drop shadows. Corners are mostly 9px.
Measured from [unfair.so](https://unfair.so/) on October 23, 2026 at 1440×900 and 390×844 from 332 rendered elements. Values are computed styles from the live page, not the original source files.
## Colors
The palette has 14 roles.
- **Snow (#F4F4F4):** Page background, seen 2 times. Token `background`, CSS `--color-k-canvas`.
- **Charcoal (#1A1A1A):** Primary text and headings, seen 46 times. Token `on-surface`, CSS `--color-k-ink`.
- **Slate (#6E6E6E):** Secondary text, seen 14 times. Token `on-surface-variant`, CSS `--color-k-key-beard`.
- **Pale Indigo (#EBEFFF):** Raised areas one step from the page, seen 3 times. Token `surface-container-low`, CSS `--color-k-accent-soft`.
- **Mist (#EFEFEF):** Cards and panels, seen 3 times. Token `surface-container`.
- **White (#FFFFFF):** Hover and pressed fills, seen 55 times. Token `surface-container-high`, CSS `--color-k-surface`.
- **White 10% (#FFFFFF1A):** Translucent fill for cards and controls, seen 6 times. Token `overlay`.
- **White 20% (#FFFFFF33):** Stronger translucent fill, seen 1 time. Token `overlay-strong`.
- **Mist (#E8E8E8):** Borders and dividers, seen 53 times. Token `outline`.
- **Vivid Indigo 40% (#0033FF66):** Secondary dividers, seen 1 time. Token `outline-variant`.
- **Vivid Indigo (#0033FF):** Primary buttons and calls to action, seen 5 times. Token `primary`.
- **Charcoal (#1A1A1A):** Text and icons on primary. Token `on-primary`.
- **Charcoal (#212121):** High-contrast fills, seen 4 times. Token `inverse-surface`, CSS `--color-k-key-face`.
- **Dark Indigo (#0026BF):** Brand accent (CSS variable), seen 20 times. Token `secondary`, CSS `--color-k-accent-deep`.
## Typography
**newPixel** and **Inter** share the interface. Fallback stack: `newPixel, newPixel Fallback`. Other loaded fonts: Press Start 2P.
- **headline-display:** newPixel 122.5px at weight 400, line height 0.96, tracking -0.04em (50px on mobile). Page title (h1).
- **headline-lg:** newPixel 66px at weight 400, line height 1.04, tracking -0.035em. Section headings (h2).
- **headline-md:** Inter 24px at weight 500, line height 1.25, tracking -0.02em (22px on mobile). Sub-section headings.
- **body-md:** Inter 18px at weight 400, line height 1.56. Body text.
- **body-lg:** Inter 20px at weight 400, line height 1.5. Lead paragraphs.
- **body-sm:** Inter 13px at weight 400, line height 1.38. Secondary and small text.
- **label-lg:** Inter 16px at weight 400, line height 1.5. Large buttons and tabs.
- **label-md:** Inter 14px at weight 600, line height 1.43. Buttons, navigation and labels.
- **label-sm:** Inter 13px at weight 500, line height 1.23. Small labels and badges.
## Layout
Spacing does not follow a strict grid: 63% of measured values are multiples of 4px, so match the measured steps rather than rounding to a grid.
- **Scale:** xs 2px, sm 8px, md 10px, lg 20px, xl 48px.
- **Sections:** 112px vertical padding between major sections.
- **Gaps:** 10px is the most common gap in flex and grid layouts.
- **Page margin:** 32px on each side of full-width sections.
- **Breakpoints:** 679.98px, 680px, 1179.98px, 1180px, 1319.98px.
## Elevation & Depth
Raised elements use soft drop shadows. The most used recipes:
- `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 12px 32px 0px`
- `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(255, 255, 255) 0px 0px 0px 3px, rgba(0, 38, 191, 0.12) 0px 4px 12px 0px`
- `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(110, 110, 110) 0px 4px 0px 0px`
## Shapes
Most elements use 9px corners. Measured radii, most used first:
- **xs (9px):** 100 elements.
- **md (14px):** 80 elements.
- **sm (12px):** 40 elements.
- **lg (16px):** 8 elements.
- **xl (24px):** 8 elements.
## Components
Measured from the rendered page. Token values reference the tokens above.
- **button-primary (“Get started”):** #0033FF fill, #1A1A1A text, 16px/400, 12px radius, padding 0px 28px.
- **button-ghost (“unfair.so”):** transparent fill, #1A1A1A text, 26px/400, padding 0px.
- **input-field (“Enter your website”):** transparent fill, #1A1A1A text, 20px/400, padding 0px.
- **card:** #FFFFFF fill, #1A1A1A text, 16px/400, 14px radius, padding 0px, border 1px solid #E8E8E8, shadow `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 12px 32px 0px`.
## Do's and Don'ts
- Do use #F4F4F4 for the page and lift surfaces in small steps: #EBEFFF, #EFEFEF, #FFFFFF.
- Do keep text in 2 levels: #1A1A1A, #6E6E6E.
- Do reserve #0033FF for primary actions and key highlights.
- Do set headlines in newPixel with tight tracking (-0.04em).
- Do reuse the measured spacing steps (8px, 10px, 20px).
- Do use 9px corners on most elements; larger surfaces also use 14px, 12px and 16px.
- Don't introduce new font families beyond newPixel and Inter.
- Don't use #0033FF for large backgrounds or body text.
- Don't make interface transitions slower than 0.42s.
## Motion
Interface transitions are quick: 0.15s, 0.2s, 0.24s, 0.1s. Longer ambient animations run 0.7s, 80s, 70s.
- **Easing:** `cubic-bezier(0.4, 0, 0.2, 1)`, `ease-out`, `cubic-bezier(0.2, 0.8, 0.2, 1)`.
- **Reduced motion:** the page responds to `prefers-reduced-motion`.
Generated by [Sitepeel](https://sitepeel.dev/design-md/unfair.so/), the free DESIGN.md generator.
What you can build with it
Landing pages, pricing tables, dashboards: your AI coding agent builds them in this style, with these colors, fonts, spacing and buttons instead of its defaults.
Download DESIGN.md, put it in your project’s root folder, then ask your agent for a page.
Build a landing page for my product. Follow for every color, font, spacing value, corner and button.
Need more than one page?
Design MD in the Sitepeel tools for Chrome measures pages behind a login, combines several pages into one file and works on any site you open.
More designs
See all →FAQ
Questions
What can I build with the unfair.so DESIGN.md?
Any page or component in this style: a landing page, pricing table, dashboard or sign-up form. Your AI coding agent uses the measured colors, newPixel type, spacing, corners and buttons instead of its own defaults.
How do I use it with Claude Code or Cursor?
Download the file and put it in your project’s root folder, then ask your agent to follow DESIGN.md. Step-by-step guides: Claude Code, Cursor, Codex, GitHub Copilot.
Is this unfair.so’s official design system?
No. Sitepeel measured it from unfair.so’s public page on October 23, 2026. It is an independent analysis, not made or approved by unfair.so.
Can I use unfair.so’s style in my own product?
Use it to learn, prototype and compare. For a real product, make the style your own, and never copy unfair.so’s logo, name, pictures or text.
How accurate are the values?
Each value was measured on the rendered page after it fully loaded, on desktop and mobile: colors where they appear, type with tracking, spacing, corners, shadows and hover states. Sites change, so check the date at the top.




