Marhaba Haji
DESIGN.md · measured November 5, 2026
AFFiNE design system
AFFiNE’s website (affine.pro) uses the Inter font and #1E96EB as its main color on a #F8F8F7 background. Measured by Sitepeel on November 5, 2026.
- #F8F8F7
- #FFFFFF
- #424149
- #1E96EB
From affine.pro ↗ · 414 elements at 1440×900 and 390×844 Independent analysis, not affiliated with AFFiNE
AFFiNE color palette
12 colors with hex codes, grouped by where each one is used on the page.
Surfaces
#F8F8F7backgroundPage background · 1×#FFFFFFsurface-container-low · --el-bg-colorRaised areas one step from the page · 30×#FFFFFF24overlayTranslucent fill for cards and controls · 5×#FFFFFFDBoverlay-strongStronger translucent fill · 3×Text
#424149on-surface · --el-text-color-regularPrimary text and headings · 32×#000000on-surface-strong · --cc-btn-primary-hover-border-colorHeadings and emphasis · 22×#505050on-surface-variantSecondary text · 4×#5E5E5Eon-surface-mutedMuted text and metadata · 5×#FFFFFFon-primaryText and icons on primaryAccents
#1E96EBprimary · --brandPrimary buttons and calls to action · 26×Borders
#0000001AoutlineBorders and dividers · 24×#FFFFFF66outline-variantSecondary dividers · 5×Gradients
AFFiNE fonts and type scale
One family carries the whole interface.
mobile 40px
mobile 18px
Contrast
Text on #F8F8F7
9.4:119.7:17.5:16.1:1Spacing
No strict grid · 85% are multiples of 4px
xs4pxsm8pxmd16pxlg24pxxl36pxgutter8pxsection96pxmargin32pxBreakpoints: 0px 390px 480px 520px 560px 569px 599px 744px 768px 900px 1000px 1023px 1024px 1025px 1180px 1440px
Shapes
Corner radii, most used first.
Depth
AFFiNE UI components
Rebuilt from the measured CSS.
Motion
Interface transitions
0.2s0.268s0.218s0.32scubic-bezier(0.16, 1, 0.3, 1)ease
Do’s and don’ts
Rules written from the measurements, so a coding agent stays on style.
- Use #F8F8F7 for the page and lift surfaces in small steps: #FFFFFF.
- Keep text in 4 levels: #424149, #000000, #505050, #5E5E5E.
- Reserve #1E96EB for primary actions and key highlights.
- Set headlines in Inter with tight tracking (-0.07em).
- Reuse the measured spacing steps (8px, 16px, 24px).
- Use 16px corners on most elements; larger surfaces also use 10px, 4px and 34px.
- Introduce new font families beyond Inter.
- Use #1E96EB for large backgrounds or body text.
- Make interface transitions slower than 0.32s.
---
version: alpha
name: AFFiNE
description: "Light interface measured from affine.pro: Inter type, vivid blue accents, tonal surfaces and 16px corners."
colors:
background: "#F8F8F7"
surface: "#F8F8F7"
on-surface: "#424149"
on-background: "#424149"
on-surface-strong: "#000000"
on-surface-variant: "#505050"
on-surface-muted: "#5E5E5E"
surface-container-low: "#FFFFFF"
overlay: "#FFFFFF24"
overlay-strong: "#FFFFFFDB"
outline: "#0000001A"
outline-variant: "#FFFFFF66"
primary: "#1E96EB"
on-primary: "#FFFFFF"
typography:
headline-display:
fontFamily: Inter
fontSize: 90px
fontWeight: 500
lineHeight: 1
letterSpacing: -0.07em
headline-lg:
fontFamily: Inter
fontSize: 60px
fontWeight: 500
lineHeight: 1.08
letterSpacing: -0.05em
headline-md:
fontFamily: Inter
fontSize: 48px
fontWeight: 500
lineHeight: 1.18
letterSpacing: -0.04em
headline-sm:
fontFamily: Inter
fontSize: 36px
fontWeight: 500
lineHeight: 1.19
letterSpacing: -0.04em
title-lg:
fontFamily: Inter
fontSize: 32px
fontWeight: 500
lineHeight: 1.25
letterSpacing: -0.04em
body-md:
fontFamily: Inter
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
body-lg:
fontFamily: Inter
fontSize: 18px
fontWeight: 600
lineHeight: 1.35
letterSpacing: -0.01em
body-sm:
fontFamily: Inter
fontSize: 14px
fontWeight: 400
lineHeight: 1.35
caption:
fontFamily: Inter
fontSize: 13px
fontWeight: 400
label-lg:
fontFamily: Inter
fontSize: 16px
fontWeight: 500
lineHeight: 1
letterSpacing: -0.02em
label-md:
fontFamily: Inter
fontSize: 14px
fontWeight: 500
lineHeight: 1.43
letterSpacing: -0.02em
label-sm:
fontFamily: Inter
fontSize: 13px
fontWeight: 600
lineHeight: 1.2
headline-display-mobile:
fontFamily: Inter
fontSize: 40px
fontWeight: 500
lineHeight: 1
letterSpacing: -0.07em
headline-md-mobile:
fontFamily: Inter
fontSize: 18px
fontWeight: 500
lineHeight: 1.33
letterSpacing: -0.02em
rounded:
xs: 4px
sm: 10px
md: 12px
lg: 16px
xl: 34px
full: 9999px
spacing:
xs: 4px
sm: 8px
md: 16px
lg: 24px
xl: 36px
gutter: 8px
section: 96px
margin: 32px
components:
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.body-md}"
rounded: "{rounded.xl}"
padding: 0px
height: 30px
button-primary-hover:
backgroundColor: "#1E96EBCC"
button-outline:
textColor: "{colors.primary}"
typography: "{typography.label-lg}"
rounded: "{rounded.xl}"
padding: 10px 20px
height: 44px
button-outline-hover:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
button-ghost:
textColor: "{colors.on-surface-strong}"
typography: "{typography.label-md}"
rounded: "{rounded.xs}"
padding: 8px 12px
input-field:
textColor: "{colors.on-primary}"
rounded: 0px
padding: 0px
card:
backgroundColor: "{colors.surface-container-low}"
textColor: "{colors.on-surface}"
rounded: "{rounded.lg}"
padding: 0px 24px 24px 24px
link:
textColor: "{colors.on-primary}"
---
# AFFiNE Design System
## Overview
AFFiNE describes itself as: “AFFiNE combines docs, whiteboards, databases, and optional AI in one local-first workspace. MIT-licensed editor; self-host free for up to 10 seats per workspace.” The interface is light, built on **Snow (#F8F8F7)** with **Cool Graphite (#424149)** text, and **Vivid Blue (#1E96EB)** as the main accent.
Type is set in **Inter**. Headlines run large with tight negative tracking; body text is 16px. Depth comes from soft drop shadows. Corners are mostly 16px.
Measured from [affine.pro](https://affine.pro/) on November 5, 2026 at 1440×900 and 390×844 from 414 rendered elements. Values are computed styles from the live page, not the original source files.
## Colors
The palette has 12 roles, plus gradient stops #1E96EB.
- **Snow (#F8F8F7):** Page background, seen 1 time. Token `background`.
- **Cool Graphite (#424149):** Primary text and headings, seen 32 times. Token `on-surface`, CSS `--el-text-color-regular`.
- **Near Black (#000000):** Headings and emphasis, seen 22 times. Token `on-surface-strong`, CSS `--cc-btn-primary-hover-border-color`.
- **Slate (#505050):** Secondary text, seen 4 times. Token `on-surface-variant`.
- **Slate (#5E5E5E):** Muted text and metadata, seen 5 times. Token `on-surface-muted`.
- **White (#FFFFFF):** Raised areas one step from the page, seen 30 times. Token `surface-container-low`, CSS `--el-bg-color`.
- **White 14% (#FFFFFF24):** Translucent fill for cards and controls, seen 5 times. Token `overlay`.
- **White 86% (#FFFFFFDB):** Stronger translucent fill, seen 3 times. Token `overlay-strong`.
- **Near Black 10% (#0000001A):** Borders and dividers, seen 24 times. Token `outline`.
- **White 40% (#FFFFFF66):** Secondary dividers, seen 5 times. Token `outline-variant`.
- **Vivid Blue (#1E96EB):** Primary buttons and calls to action, seen 26 times. Token `primary`, CSS `--brand`.
- **White (#FFFFFF):** Text and icons on primary. Token `on-primary`.
## Typography
**Inter** carries the whole interface. Fallback stack: `Inter, Inter Fallback, Roboto, Helvetica`.
- **headline-display:** Inter 90px at weight 500, line height 1, tracking -0.07em (40px on mobile). Page title (h1).
- **headline-lg:** Inter 60px at weight 500, line height 1.08, tracking -0.05em. Section headings (h2).
- **headline-md:** Inter 48px at weight 500, line height 1.18, tracking -0.04em (18px on mobile). Sub-section headings.
- **headline-sm:** Inter 36px at weight 500, line height 1.19, tracking -0.04em. Card and feature titles.
- **title-lg:** Inter 32px at weight 500, line height 1.25, tracking -0.04em. Small titles.
- **body-md:** Inter 16px at weight 400, line height 1.5. Body text.
- **body-lg:** Inter 18px at weight 600, line height 1.35, tracking -0.01em. Lead paragraphs.
- **body-sm:** Inter 14px at weight 400, line height 1.35. Secondary and small text.
- **caption:** Inter 13px at weight 400. Captions and fine print.
- **label-lg:** Inter 16px at weight 500, line height 1, tracking -0.02em. Large buttons and tabs.
- **label-md:** Inter 14px at weight 500, line height 1.43, tracking -0.02em. Buttons, navigation and labels.
- **label-sm:** Inter 13px at weight 600, line height 1.2. Small labels and badges.
## Layout
Spacing is mostly on a 4px grid (85% of measured values), with some off-grid steps. Match the measured scale rather than rounding everything.
- **Scale:** xs 4px, sm 8px, md 16px, lg 24px, xl 36px.
- **Sections:** 96px vertical padding between major sections.
- **Gaps:** 8px is the most common gap in flex and grid layouts.
- **Page margin:** 32px on each side of full-width sections.
- **Breakpoints:** 0px, 390px, 480px, 520px, 560px, 569px, 599px, 744px, 768px, 900px, 1000px, 1023px, 1024px, 1025px, 1180px, 1440px.
## Elevation & Depth
Raised elements use soft drop shadows. The most used recipes:
- `rgba(0, 0, 0, 0.15) 0px 1px 4px 0px`
- `rgba(0, 0, 0, 0.06) 0px 2px 4px 0px`
## Shapes
Most elements use 16px corners. Measured radii, most used first:
- **lg (16px):** 92 elements.
- **sm (10px):** 72 elements.
- **xs (4px):** 36 elements.
- **xl (34px):** 36 elements.
- **full (9999px):** 24 elements.
- **md (12px):** 16 elements.
## Components
Measured from the rendered page. Token values reference the tokens above.
- **button-primary (“Get Started”):** #1E96EB fill, #FFFFFF text, 16px/400, 34px radius, padding 0px.
- **button-primary-hover:** background #1E96EBCC, text #FFFFFF on hover.
- **button-outline (“Book a Demo”):** transparent fill, #1E96EB text, 16px/500, 34px radius, padding 10px 20px, border 1px solid #1E96EB.
- **button-outline-hover:** background #1E96EB, text #FFFFFF on hover.
- **button-ghost (“Product”):** transparent fill, #000000 text, 14px/500, 4px radius, padding 8px 12px.
- **input-field (“name@example.com”):** transparent fill, #FFFFFF text, 15px/400, padding 0px.
- **card:** #FFFFFF fill, #424149 text, 24px/400, 16px radius, padding 0px 24px 24px 24px, shadow `rgba(0, 0, 0, 0.15) 0px 1px 4px 0px`.
- **link:** transparent fill, #FFFFFF text, padding 0px.
## Do's and Don'ts
- Do use #F8F8F7 for the page and lift surfaces in small steps: #FFFFFF.
- Do keep text in 4 levels: #424149, #000000, #505050, #5E5E5E.
- Do reserve #1E96EB for primary actions and key highlights.
- Do set headlines in Inter with tight tracking (-0.07em).
- Do reuse the measured spacing steps (8px, 16px, 24px).
- Do use 16px corners on most elements; larger surfaces also use 10px, 4px and 34px.
- Don't introduce new font families beyond Inter.
- Don't use #1E96EB for large backgrounds or body text.
- Don't make interface transitions slower than 0.32s.
## Motion
Interface transitions are quick: 0.2s, 0.268s, 0.218s, 0.32s.
- **Easing:** `cubic-bezier(0.16, 1, 0.3, 1)`, `ease`, `cubic-bezier(0.22, 0.61, 0.36, 1)`.
- **Reduced motion:** the page responds to `prefers-reduced-motion`.
Generated by [Sitepeel](https://sitepeel.dev/design-md/affine.pro/), the free DESIGN.md generator (engine 2026.10.29+b828a475ee10).
Fonts
What font does AFFiNE use?
AFFiNE uses Inter (weights 400, 500 and 600) on affine.pro. Page titles are 90px at weight 500 (40px on phones) and body text is 16px. Measured on November 5, 2026.
- AaInter · 400, 500, 600
Colors
AFFiNE colors: palette and hex codes
AFFiNE’s main colors are #F8F8F7 (snow) for the background, #424149 (cool graphite) for text and #1E96EB (vivid blue) as the main accent. Measured on November 5, 2026.
- #F8F8F7 · snow
- #424149 · cool graphite
- #000000 · near black
- #505050 · slate
- #5E5E5E · slate
- #FFFFFF · white
- #1E96EB · vivid blue
Tech stack
What is AFFiNE built with?
AFFiNE’s website (affine.pro) is built with Nuxt, Vue.js, Element Plus, Cloudflare and Google Fonts. Measured on November 5, 2026.
- JavaScript framework
- Nuxt 3.13.2, Vue.js 3.5.12
- Hosting & CDN
- Cloudflare
- Analytics
- Cloudflare Web Analytics, Google Analytics, Google Tag Manager
- Marketing & support
- Cal.com
- UI & CSS
- Element Plus
- Fonts & icons
- Google Fonts
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 a page behind a login?
The DESIGN.md generator Chrome extension makes one from any page you have open, including dashboards and pages behind a login.
More designs
Brand examples →Another site? Make a DESIGN.md from any link.
FAQ
AFFiNE design system questions
What font does AFFiNE use?
AFFiNE’s website uses Inter (weights 400, 500 and 600). Page titles are 90px at weight 500 (40px on phones) and body text is 16px. Measured on November 5, 2026.
What are the AFFiNE colors and hex codes?
On affine.pro: #F8F8F7 (snow) for the background, #424149 (cool graphite) for text and #1E96EB (vivid blue) as the main accent. The color palette above lists all 12 colors with their hex codes and where each one is used.
What is the AFFiNE design system?
The design system on this page is affine.pro’s, as measured on November 5, 2026: Inter type, #1E96EB as the main color and 16px corners, written down as a DESIGN.md. It is not AFFiNE’s own documentation.
What is AFFiNE built with?
AFFiNE’s website (affine.pro) is built with Nuxt, Vue.js, Element Plus, Cloudflare and Google Fonts. The full tech stack Sitepeel found: Nuxt, Vue.js, Cloudflare, Cloudflare Web Analytics, Cal.com, Element Plus, Google Fonts, Google Analytics and Google Tag Manager. Measured on November 5, 2026.
What is the AFFiNE DESIGN.md?
A plain-text file with AFFiNE’s measured colors, type, spacing, corners and components as tokens, plus short rules, in the DESIGN.md format Google published with Stitch. Your AI coding agent reads it and builds in this style. More about DESIGN.md.
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 AFFiNE’s official design system?
No. Sitepeel measured it from affine.pro’s public page on November 5, 2026. It is an independent analysis, not made or approved by AFFiNE.
Can I use AFFiNE’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 AFFiNE’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.




