- fg
#000000- bg
#F6F5F4- APCA Lc
- +100
- Use
- foreground on background
Notion
The productivity-tool landing that treats the interface itself as the product — every surface feels like a well-crafted page in a well-crafted notebook. Notion carries paper-feel warmth on a warm off-white canvas, pairs a commissioned optical sans (NotionInter) with a serif (Lyon Text), a monospace (iA Writer Mono), and a sticker font (Permanent Marker), then cascades 4-5 soft shadow layers at sub-5% opacity to simulate ink on real paper. Rainbow accents are semantic vocabulary — link blue, editorial orange, citation brown — each tied to a specific content role.

Editorial disclaimer
This entry documents observable design-language patterns for educational transfer and AI-agent briefing. Screenshots and trademarks are property of their respective owners. AI2 Design is not affiliated with or endorsed by the featured brand. Inspiration here is about language and rhythm - do not reproduce brand identity, logo, product copy, or proprietary features.
Fair Use & Gallery PolicyCopy the full design language into your agent
A typed, paste-ready design system brief - philosophy, tokens, rules, techniques, and fitness checks. Drop it into Claude, Cursor, v0 or any coding agent and it builds in Notion’s language, not just a screenshot.
Paper-feel productivity identity where a warm off-white canvas, a custom optical sans paired with serif + mono + sticker accents, and a multi-layer soft shadow cascade carry the entire load of craft — no gradients, no atmospheric tricks. Rainbow accents are semantic vocabulary, not brand mood. The page reads as editorial software: marketing surface and writing surface speak the same visual language.
Design a paper-feel landing for a document or knowledge product where the interface itself is the product. Canvas is warm off-white #f6f5f4 (not cold SaaS white). Typography uses a custom optical sans as the single workhorse (NotionInter pattern — commission or adopt an optical-tuned Inter variant), paired with a book serif for pull quotes (Lyon Text), an editorial monospace for code and coordinates (iA Writer Mono), and a single sticker-hand font for callouts (Permanent Marker) — four families, four registers, no overlap. Text palette ladders through dark-ink #31302e for emphasis, neutral charcoal #000 for body (only 1352 occurrences in the extract — body reads as true ink), warm mid-grey #615d59 for secondary, soft grey #a39e98 for tertiary. Accent vocabulary is a semantic rainbow: #0075de link blue, #62aef0 info blue, #f64932 alert red, #ff6d00 editorial orange, #9c7054 citation warm-brown — each tone tied to an information role, never decorative. Elevation is the signature move: **multi-layer soft shadow cascade**, 4 to 5 stacked rgba declarations at 1-8% opacity. Border radius ladder 4 / 5 / 8 / 12 / 16px. Single 1px hairline border. Zero gradients. Spacing scale 2 / 4 / 6 / 8 / 10 / 12 / 14 / 16 / 20 / 24 / 28 / 32. Narrow containers 500-892 for reading, 1184-1252 for utility grids. Motion is CSS-only with two-tier timing: 0.15-0.2s for interactive feedback, 0.6-1s for editorial reveals; easings draw from ease / ease-in / ease-in-out / linear plus cubic-bezier(0.645, 0.045, 0.355, 1) and cubic-bezier(0.45, 0, 0.55, 1) — no motion library captured. Breakpoints sm 375 / md 712 / lg 908 / xl 1156 / 2xl 1440.
- Layout
- centered narrow column for reading (500-892 container), full-width utility grids (1184-1252) for feature matrices; sticky nav at z-100/1000
- Content width
- 892px primary reading width, 500-600px for marketing callouts, 1252 max for product-tour grids
- Framing
- warm off-white #f6f5f4 canvas with content floating at narrow widths; multi-layer shadow elevation replaces decorative chrome
- Grid strength
- implied — typography + spacing carry hierarchy; no visible column rails
Warm off-white canvas, dark-ink text at four opacity tiers, and a semantic rainbow of accents where each tone is tied to a specific content role
- bg #f6f5f4 (warm ivory — replaces cold SaaS white everywhere)
- text #000 body (optical black, 1352 occurrences — true ink feel)
- text #31302e emphasis (slightly warmed dark charcoal)
- text #615d59 secondary (warm mid-grey)
- text #a39e98 tertiary (soft grey — metadata, timestamps)
- #0075de link + primary CTA (functional blue)
- #62aef0 info / tip blocks (lighter blue for callouts)
- #f64932 alert / destructive (saturated red-orange — only for error semantics)
- #ff6d00 editorial orange (highlights, annotations, sticker accents)
- #9c7054 citation / warm-brown (book references, longer-form callouts)
- Single workhorse sans: NotionInter (a commissioned optical cut of Inter). Pair it with a serif, a mono, and one sticker font — do not exceed four families
- Preload the four hero weights: NotionInter-Regular / Medium / SemiBold / Bold (local woff2)
- Body paragraph 16px / 24 line-height at weight 400 is the comfortable reading size
- Utility text 14px / 20 at weight 400-500, captions 12px / 16 at weight 500
- Display headlines up to 40px / 60 or 48px / 72 at weight 400-500 — serif or sans acceptable, never bold
- Serif (Lyon Text pattern) appears only for pull quotes and longer-form editorial moments
- Mono (iA Writer Mono pattern) appears only for code, coordinates, API signatures, and citation references
- Sticker font (Permanent Marker pattern) appears only for callout stickers and annotation accents — never in prose
- Letter-spacing stays 'normal' — do not track-open for atmosphere
- Base unit 2px — scale is 2 / 4 / 6 / 8 / 10 / 12 / 14 / 16 / 20 / 24 / 28 / 32
- 24-32 for section padding, 12-20 for component internal rhythm, 2-8 for inline token micro-spacing
- No value above 32px in a single gap — larger vertical distance comes from section height, not margin
- Signature shadow-xs: 4 stacked shadow declarations at 1-4% opacity — the 'paper-on-paper' feel
- shadow-sm: 5 stacked layers, opacity 1-5%, for modal surfaces
- shadow-xl: 2-layer modest, for card hover elevation
- Never a single harsh shadow — always a cascade
- Layering uses z-index: inline-overlap 1-3, modal 90, toast 100-1000
Techniques
multi-layer soft shadow cascade
Example shadow-xs: rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.85px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.01) 0px 0.175px 1.04px — four declarations that simulate ambient light picking up paper fiber
hairline-only borders
Single 1px solid hairline at --border-color-regular (#00000014) — no 2px decorative borders in body content
- 4-5px for inline chips, small tags
- 8-12px for input fields, cards, callout blocks
- 16px for feature blocks and larger panels
- Full-round (624.9375rem via --border-radius-round) for pill buttons and avatars
Primary CTA button- background
- #0075de
- color
- #ffffff
- padding
- 10px 20px
- borderRadius
- 8px
- transition
- background-color 0.2s ease-in
Tailwind
inline-flex items-center gap-2 rounded-lg bg-[#0075de] px-5 py-2.5 text-sm font-medium text-white transition-colors duration-200 ease-in hover:opacity-90
Paper card (signature multi-layer shadow)- background
- #ffffff
- border
- 1px solid rgba(0,0,0,0.08)
- borderRadius
- 12px
- boxShadow
- rgba(0,0,0,0.04) 0px 4px 18px 0px, rgba(0,0,0,0.027) 0px 2.025px 7.85px 0px, rgba(0,0,0,0.02) 0px 0.8px 2.925px 0px, rgba(0,0,0,0.01) 0px 0.175px 1.04px 0px
- padding
- 24px
Tailwind
rounded-xl border border-black/8 bg-white p-6 shadow-[rgba(0,0,0,0.04)_0px_4px_18px_0px,rgba(0,0,0,0.027)_0px_2.025px_7.85px_0px,rgba(0,0,0,0.02)_0px_0.8px_2.925px_0px,rgba(0,0,0,0.01)_0px_0.175px_1.04px_0px]
Semantic accent chip- background
- rgba(0,117,222,0.08)
- color
- #0075de
- padding
- 2px 8px
- borderRadius
- 4px
- fontSize
- 12px
- fontWeight
- 500
- fontFamily
- NotionInter
Tailwind
inline-flex items-center rounded bg-[#0075de]/8 px-2 py-0.5 text-xs font-medium text-[#0075de]
Sticky top nav- position
- sticky
- top
- 0
- zIndex
- 100
- background
- #f6f5f4
- borderBottom
- 1px solid rgba(0,0,0,0.08)
- padding
- 14px 24px
- backdropFilter
- blur(8px)
Tailwind
sticky top-0 z-[100] flex items-center justify-between border-b border-black/8 bg-[#f6f5f4]/90 px-6 py-3.5 backdrop-blur-sm
link-inline- color
- #0075de
- textDecoration
- underline
- textDecorationColor
- rgba(0,117,222,0.4)
- textDecorationThickness
- 1px
- textUnderlineOffset
- 3px
- transition
- color 150ms ease-in, text-decoration-color 150ms ease-in
Tailwind
text-[#0075de] underline decoration-[#0075de]/40 decoration-[1px] underline-offset-[3px] transition-colors duration-150 ease-in hover:decoration-[#0075de] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#0075de]
Easings
easeease-inease-in-outlinearcubic-bezier(0.645, 0.045, 0.355, 1)cubic-bezier(0.45, 0, 0.55, 1)Scroll patterns
- sticky nav pins at z-100 with hairline appearing on scroll
- section fade-ins via IntersectionObserver — captured timings 0.6 s and 1 s on cubic-bezier(0.45, 0, 0.55, 1) for editorial pacing
- Two-tier timing: interactive feedback at 0.15-0.2s (background, outline, shadow lift) and longer reveals at 0.6-1s (section fade-ins, atmospheric beats).
- No motion library — CSS transitions only.
- Easing palette: cubic-bezier(0.645, 0.045, 0.355, 1) for elevation changes (Material standard quart), cubic-bezier(0.45, 0, 0.55, 1) for editorial reveals, plus CSS keywords ease / ease-in / ease-in-out / linear for simpler transitions.
- Gate all transitions on prefers-reduced-motion: reduce.
- Hover on link: background-color fades in at 8% opacity wash of the link color
- Button press: subtle scale or translate shift, never a heavy shadow-lift
- Focus: outline-color transition, color-matched to the semantic role (blue for primary, red for destructive)
- Card hover: shadow cascade deepens by one opacity tier
- Paragraph links adopt #0075de with underline-offset for editorial readability
sm 375 / md 712 / lg 908 / xl 1156 / 2xl 1440 — deliberately non-standard sm (iPhone SE), md below conventional 768 to catch narrow tablets early
- Below md (712) single column, container 500-600, section padding halves
- md-lg utility grids collapse to 2-col
- xl (1156) unlocks 3-col feature matrices
- 2xl (1440) max container 1252 — never edge-to-edge marketing copy
- Body #000 on #f6f5f4 = ~20:1 contrast — AAA
- Secondary text #615d59 on #f6f5f4 = ~6:1 — AAA body, AA for large text
- Tertiary #a39e98 reserved for timestamps and metadata — AA large text only
- Link #0075de on canvas = ~4.8:1 — AA minimum
- All interactive elements keyboard reachable; focus state via outline-color transition (no ring removal)
- Motion durations 0.15-0.2s fit prefers-reduced-motion tolerance — gate transitions accordingly
Illustrations are hand-crafted warm-line sketches rather than abstract gradients or 3D renders — the visual language stays paper-native throughout
- Lazy-load all images below the first viewport
- Provide explicit width/height to prevent CLS
- Serve 2x densities via srcset for retina displays
- Warm the canvas to off-white (#f6f5f4 or neighbor) instead of cold #ffffff — the whole identity hangs on this one choice
- Commission or adopt an optical-tuned sans for body — stock Inter reads as template-tier at density
- Use the multi-layer shadow cascade religiously — one harsh shadow kills the paper illusion
- Assign semantic roles to accent colors before painting anything — rainbow-as-vocabulary only works with discipline
- Expose tokens as CSS variables with a semantic ladder (text-color-*, border-radius-*) — lets designers inspect and agents read
- Don't add gradients for atmosphere — Notion is gradient-free by design, and the paper illusion breaks instantly
- Don't use a single harsh box-shadow — always cascade 4-5 layers at sub-5% opacity
- Don't mix the rainbow accents on the same component — one concept = one color, never stacked
- Don't replace the mono or serif with generics — iA Writer Mono and Lyon Text carry editorial signal that helvetica-mono and Times cannot
- Don't exceed 32px in a single gap — section rhythm is carried by height, not margin
- No gradient tokens in the system (0 linear, 0 radial)
- Exactly four font families (sans + serif + mono + sticker), each tied to a register
- Exactly 5 border-radius steps: 4 / 5 / 8 / 12 / 16px (plus full-round for pills)
- Only 1px hairline borders + 2px rare utility — no 3px+ decorative borders
- Captured motion durations: {0.15s, 0.2s, 0.6s, 1s} — interactive feedback stays in 0.15-0.2s; section reveals run at 0.6-1s.
- Shadow cascades always 4-5 layers minimum — never a single-layer shadow
- grep 'linear-gradient\|radial-gradient' in custom CSS → zero matches
- box-shadow values grep → every instance has ≥3 comma-separated layers
- font-family enumeration returns exactly {NotionInter, Lyon Text, iA Writer Mono, Permanent Marker} + system fallbacks
- border-radius grep shows only 4px / 5px / 8px / 12px / 16px / 624.9375rem values
- transition-duration grep shows only 0.15s or 0.2s
- background-color of root <body> resolves to #f6f5f4 (not #ffffff)
Design tokens
Observed token system
Color, type, spacing, gradients, and stacking order captured from the live page and rendered here as living, paste-ready previews.
Inspector
Observable layers
Structure, breakpoints, motion, fonts, and images captured from the live page and kept paste-ready alongside the tokens.
Depth-first walk of the meaningful sections. 2 nodes across 2 levels, shallow to deep by color.
- body1
- div (×2)
Accessibility
Contrast matrix
278 combinations - 78 pass AA - 38 pass AAA. Each pair is previewed with its real foreground on background; APCA Lc sits alongside the WCAG 2.1 ratio for draft WCAG 3 awareness.
- fg
#F6F5F4- bg
#000000- APCA Lc
- -101
- Use
- background on foreground
- fg
#F6F5F4- bg
#02093A- APCA Lc
- -101
- Use
- background on accent
- fg
#02093A- bg
#F6F5F4- APCA Lc
- +99
- Use
- accent on background
- fg
#F6F5F4- bg
#191918- APCA Lc
- -100
- Use
- background on foreground
- fg
#191918- bg
#F6F5F4- APCA Lc
- +99
- Use
- foreground on background
- fg
#000000- bg
#FFC95E- APCA Lc
- +80
- Use
- foreground on accent
- fg
#FFC95E- bg
#000000- APCA Lc
- -79
- Use
- accent on foreground
- fg
#02093A- bg
#FFC95E- APCA Lc
- +79
- Use
- accent on accent
Images
Image strategy
Observable image posture - total count, lazy-loading ratio, and format mix. The hero image is measured above the fold.
- unknown42 · 59%
- svg28 · 39%
- png1 · 1%
Hero image
https://www.notion.com/_next/image?url=%2Ffront-static%2Fshared%2Fnavigation%2Fai_group.png&w=256&q=75- Format
- UNKNOWN
- Dimensions
- 256x215
- Loading
- lazy
- srcset
- yes
- Industry
- productivity
- Industry
- saas
- Theme
- Light + Dark
- Added
- 2026-04-24
FAQ
Questions people ask about Notion
3questionsAnswers are pulled from the curator verdict and design brief - the same text your AI agent sees when it paste-reads this page.
Compare this with



