Design systems / Notion Dark mode Open product copy

Notion design system

Everything that makes Notion look like Notion, in one place: its colours, type, real icons and components. Every value was read from Notion's own app on 2 Oct 2026, or measured from Notion's own screenshots. Study copy for our team only.

Notion at a glance

A calm, paper-like workspace. Near-black text on white, a warm off-white sidebar, grey icons, and colour only in small tags. Everything is low, quiet and close together.

What you notice first

A warm off-white sidebar of pages. Each page has a small emoji or grey icon. The open page gets a pale grey fill, not a colour.

Pages start with a big icon and a 40px bold title. Databases add a row of rounded view tabs. The active tab sits in a pale grey pill, and the tools on the right are small grey icons.

Tags and status pills are pale tints with dark text of the same colour. Notion uses only one strong colour: the blue of the "New" button.

Product screens

Left: a real Notion screen (Notion Help Center, Notion for Mac). Right: our copy, built only from this design system and drawn live in the frame. Use them to see the system working on a real screen. The copies work: open one full size to switch views, filter, sort, search, add pages, open the search dialog, Share and "…" menus, and flip light/dark or wipe against the original with the bar at the bottom.

Real Notion screen: Projects database with table view
Original · Notion Help Center screenshot (2025 build)
Our copy · open full size · difference map
95% of all pixels match ±0.5px every word, icon, line and button (measured, 11 rounds) 1–3 shades colour difference after Apple's wide-colour correction Left over: Inter stands in for Apple's San Francisco font. Google's emoji stand in for Apple's.

Screen 2 · sidebar and page

Real Notion screen: sidebar with teamspaces and the Company Home page
Original · Notion Help Center screenshot (older build)
Our copy · open full size · difference map
92% of all pixels match ±0.5–1px sidebar rows, top bar, title, callout and links (6 rounds) Older build: classic text colour #37352F. Cover drawing, avatars and logo are content images.

Notion today (live, 2 Oct 2026)

Live Notion page: Client List CRM
CRM page with callouts and a table
Live Notion page: Freelance CRM board
Board with status lanes and cards
Live Notion page in dark mode
The same page in dark mode

Both screens in Notion's dark mode

The originals above are light, so these have nothing to be measured against. They use Notion's own 741 dark colours, the same ones we read from Notion's live dark pages (our dark capture). Every fixed colour of the older build was mapped to its Notion dark twin.

Projects database · dark · open full size
Company Home · dark · open full size

Colours

Notion names every colour by its job. tex = text, ico = icon, bor = line, bac = background. Pri / Sec / Ter = strong / medium / soft. Values below are read live from the token file, so they are always the real ones.

Core roles live

The 10 colours live

The same ten families are used for tags, status, text colour, block backgrounds and board lanes. A pale fill always carries dark text of the same colour, close to ink, as you prefer.

Full palette scales live

Steps 30–100 are soft fills (often see-through), 500 is the colour itself, 800–900 is text on a fill.

Typography

Notion has no custom font. It uses the computer's own system font: San Francisco on a Mac and Segoe UI on Windows. This page uses the same rule, so on your Windows laptop you see what Notion shows you. Weights in use: 400, 500, 600 and 700.

Default · system sans
Aa Gg
ui-sans-serif, -apple-system, "Segoe UI", Helvetica…
Serif page style
Aa Gg
Lyon-Text, Georgia, serif
Mono page style + code
Aa Gg
iawriter-mono, Nitti, Menlo…
Page title
Page title40px · bold 700 · line 48px live
Database title
Full-page database32px · 700 · line 1.2 shot
Heading 1
Heading 130px (1.875em) · 600 · line 1.3
Heading 2
Heading 224px (1.5em) · 600 · line 1.3 live
Heading 3
Heading 320px (1.25em) · 600 · line 1.3 live
Body text. Notion writes in plain, friendly sentences at a comfortable 16px.
Body16px · 400 · line 24px · #2C2C2B live
Board card title
Card title15px · 500 · line 1.5 live
Interface text: tables, menus, sidebar, buttons, tags
UI14px · 400 (500 for buttons, tabs, titles in tables) live
Section label · Teamspaces
Small label12px · 500 · line 16px · tertiary grey live

Icons real

These are Notion's own icons, copied from Notion's app code and icon files. None are redrawn. There are two families: interface icons (thin, 20px grid, grey) for tools, and gallery icons (solid, used for pages and properties, shown at 16px scaled ×1.2).

Interface icons

Gallery icons (pages & properties)

Shape & size

Notion uses few corner sizes, and each one has a job. Heights stay low so lists fit a lot on screen.

4pxtags, page links
6pxbuttons, menu & sidebar items
10pxcards, menus, callouts, lanes
20pxview tabs (pill)
roundavatars, status dots

Heights and spacing live

Menu item · toolbar button · "New"28pxicon 16–20px, 8px gap, 8px side padding
Sidebar item30px1px gap between items, so a 31px rhythm
View tab · button block32px6px × 12px padding
Table header row36px14px grey text, 16px icon ×1.2
Table row37px36px + 1px line · 7.5px × 8px cell padding
Board card40px min8px × 10px padding · 8px between cards
Text block40px6px block padding + 2px text padding around a 24px line
Tag · status pill20px6px sides (status 7px / 9px)
Page side margin96pxfull-width pages · normal pages are 720px wide

Shadows live

Shadows are faint. Most pair a soft blur with a 1px hairline ring, so edges stay crisp on white.

Components

Live and clickable, built with notion.css. Hover, click and use the keyboard: the states and motion are Notion's real ones. Under each one: the exact numbers and Notion's token names.

Buttons live
New
Blue button 28px · radius 6 · fill --c-bluBacAccPri #2783DE, hover #1F76CC, pressed #1C69B6 · text --c-bluTexInvPri 14px/600 · split part 24px with a darker 1px divider. Button block 32px · padding 8×12 · radius 6 · 1px --ca-borPriTra line · 14px/500 · icon 20px pulled 4px left. Icon button 28×28 · radius 6 · hover --ca-bacIntTra ×1.5.
Tags & status live
Tag 20px · padding 0 6px · radius 4 · 14px · line 120% · text --c-[colour]TexPri on --ca-[colour]BacTerTra. Status same height · radius 10 · padding 7px / 9px · 8px dot in --c-[colour]IcoAccPri, 5px gap. Multi-select tags sit 6px apart vertically and 8px apart sideways.
View tabs & toolbar live
Contacts
Companies
Deals
Pipeline
New
View tab 32px · padding 6×12 · radius 20 · 14px/500 · grey --c-texSec; active: text --c-texPri on --ca-bacIntTra · icon 16px ×1.2, 6px gap. Tool 28×28 · padding 6 · radius 6 · 16px icon in --c-texSec.
Table live
Header 36px · 14px grey --c-texSec · 16px icon ×1.2 in --c-icoSec · 6px gap · bottom line --ca-borSecTra. Rows 37px · cells padded 7.5×8 · lines right and below in --ca-borSecTra · name column 500 weight with a 22px page icon · hover --ca-tabRowHovBac. Last row "+ New page" in tertiary grey.
Board live
Lane 260px + 8px sides · radius 10 · tinted by its status colour (--ca-[colour]BacPriTra) · 12px between lanes · header pill + count. Card radius 10 · --c-bacEle · shadow --c-shaBasSm plus a 1px --ca-borSecTra ring · padding 8×10 · title 15px/500 · 8px apart.
Sidebar & top bar live
ALAltLeads
Search
Home
Inbox
Teamspaces
Sales
Companies
Contacts
Deals
Sales/Companies MSRKAJ Share
Sidebar 240px · --c-bacSec with a 1px --c-borSec edge · text 14px in --c-texAccPri · items 30px, radius 6, 1px apart · open page: --ca-bacIntTra fill and --c-texPri text · section labels 12px/500 in --c-texTer · child pages indent 14px. Top bar 45px · breadcrumbs 14px with "/" in tertiary grey · 28px icon buttons.
Page & blocks live

Acme Logistics

Status
Customer
Industry
LogisticsEnterprise
Owner
MSMaya Shah
Next call
October 9, 2026

Account notes

Renewal talk is set for next week. See last quarter's review, ping @Maya Shah, and check the PO-2291 invoice first.

Do not call before 10 AM their time. They asked twice.

Callouts take any of the 10 background colours.

Send the updated price sheet
Book the site visit
"Fast replies matter more than discounts."

Linked pages

Page icon 78px · title 40px/700. Blocks 6px outer + 2px inner padding · body 16px/1.5. Callout radius 10 · padding 12 · default fill --c-graBacPri · 24px icon. Page link 24px icon · 500 weight · 1px --ca-borPriTra underline. Divider 1px --ca-borPriTra in a 13px row. Link underline in --ca-opaLinDecCol.
Menus & controls live

Try them. Click a button to open a real Notion-style menu, hover the rows, use the arrow keys and Enter, and press Esc or click outside to close. Hover a grey icon and wait a moment for its tooltip.

Page menu
Select / status property
Select an option or create one
New with templates
New
Controls
Show vertical lines
Wrap all columns
Send the price sheet
Book the site visit

Oct 1 · Asked for pricing

Sep 24 · Intro call

APLCJD+5
Menu radius 10 · --c-popBac · shadow --c-shaOutLg · groups padded 4px · items 28px, radius 6, 20px icon + 8px gap · one row highlighted at a time (--ca-bacIntTra), following the mouse or the arrow keys · opens and closes in 200ms (fade + 96%→100% size, growing from the button) live. Disabled rows 40% · danger text #EB5757 · switches inside a menu change without closing it. Tooltip near-black, 12px/500, radius 6, shows after a short pause est.. Toast slides up 50px and fades in, with Undo for actions you might regret.

States & motion live

Every clickable thing in Notion has the same set of looks. Each state is shown frozen below, so you can compare them without hovering. Notion keeps hover and press as soft grey tints that only get darker, never a new colour.

ComponentRestHoverPressedKeyboard focusSelectedDisabled
Blue buttonNewNewNewNewn/aNew
ButtonShareShareShareSharen/aShare
Icon button
View tabAllAllAllAllAlln/a
Sidebar item
Companies
Companies
Companies
Companies
Companies
n/a
Menu rowCopy linkCopy linkCopy linkCopy linkCopy linkCopy link
Board card
Acme
Acme
Acme
Acme
Acme
n/a
Inputn/an/a
Switch samesame

Hover = --ca-bacIntTra (5% warm grey). Pressed = the same colour at double strength. Focus = Notion's blue ring --c-butBluFocRin, shown only when you use the keyboard. Disabled = 40% see-through.

Motion

Notion moves fast and quietly. Hovers take 20–150ms, menus 200ms, and nothing bounces. Press "Play" to watch each one.

What movesHow longCurveWhat changesSourceTry it
Top-bar & window buttons20msease-ingrey fill appearslive
Toolbar, view tabs, buttons100msease-in-outgrey fill appearsliveHover me
Sidebar items, page links150mseasegrey fill appearsliveHover me
Board card100msease-outcard turns warm off-whitelive
Hover me
Menu open / close200mseasefades in and grows from 96% to 100%, from the button's cornerlive
Menu
Toast (snackbar)250msease-outslides up 50px and fades inkeyframes live
Loading shimmer1.2s loopease-in-outa soft light sweeps left to right over grey barskeyframes live
Tooltip100mseasefades in after a short pause (~0.5s)est.
Switch, toggle arrow, checkbox100–200mseaseknob slides, arrow turns 90°, box fills blueest.

If someone turns on "reduce motion" on their computer, all of this switches off. Movement is a bonus, never the only signal.

Dark mode live

Same names, dark values: background #191919, sidebar #202020, text #F0EFED. The components below are unchanged; only the token file switches. You can flip this whole page with the switch at the top.

Light
Dark

What changes in dark mode

Page · sidebar · menus3 greys#191919 page, #202020 sidebar and cards, #252525 menus: higher surfaces get lighter, not shadowed
Text#F0EFEDoff-white, never pure white, so it doesn't glare
Linessee-through whitethe same 8–10% strength as light mode, just flipped
Tags and statusstronger fillspale tints would vanish on black, so fills get richer and text gets light
Shadowsring firsta 1px #383836 ring does the work, because shadows barely show on dark
Blue buttonunchanged#2783DE stays the same in both modes

Do & don't

Checked against the live app on 2 Oct 2026. The small grey label after each rule names the Law of UX it comes from. Click it to jump to that law in the scorecard below. A red bullet marks a rule where Notion itself falls short.

Do

  • Keep text near-black (#2C2C2B) or warm grey on white. Put colour only in tags, status pills, callouts and icons. Von RestorffSelective attention
  • Keep rows, menu items and sidebar items low and quiet: 28–37px tall with grey icons. Show hover with a pale grey fill, not a border. Cognitive load
  • Use the same 10 colour families everywhere: a pale fill with dark text of the same colour. Similarity
  • Always show where people are: breadcrumbs at the top, and the open page lightly filled in the sidebar. Working memoryJakob's law
  • Use the one blue button (#2783DE) only for the main action in an area, such as "New" or "Invite". The lighter Notion blue #2383E2 is for links, focus rings, switches and checkboxes. Von RestorffHick's law
  • Answer every click fast: a grey tint on hover within 20–150ms, menus open in 200ms, and a shimmer while data loads. Doherty threshold
  • Put the most used item first and the dangerous one last in every menu, as Notion's "Move to trash" sits alone at the bottom. Serial positionChunking
  • Accept messy input and tidy it up: a pasted link becomes a bookmark, typed Markdown becomes formatting. Postel's law

Don't

  • Don't use heavy shadows or thick borders. Cards get a faint ring and a soft shadow, and tables use hairline lines. Occam's razorCommon region
  • Don't add coloured header bars or a dark sidebar. The sidebar is a warm off-white (#F9F8F7) next to a white page. Selective attention
  • Don't use strong colours or white text in tags. If every tag shouts, none stands out. Von Restorff
  • Don't mix corner sizes freely: 4px tags, 6px buttons and items, 10px cards, menus and callouts, 20px view tabs. Similarity
  • Don't hide key actions behind hover only. Notion's drag handle and "+" appear only on hover, so touch users never see them. Fitts's law
  • Don't end a task silently. Notion finishes most actions with only a small toast; a clear "done" plus "what's next" feels better. Peak-end rule
  • Don't greet new users with a blank page and dozens of block types. Offer a few ready-made templates first. Choice overload

For AltLeads: borrow the light sidebar of saved lists with small icons, the quiet table and the pale status pills. Skip Notion's large empty page header (big icon and title): it takes space a caller needs for the list.

UX principles, in plain words

The rules behind Notion's calm feel. Use them for AltLeads too. Each card names the UX law, explains it simply, and shows where Notion follows it. All 29 laws are checked one by one in the scorecard below.

Every click gets an answer

Feedback · Doherty threshold (answer in under 0.4s)

Anything clickable must react on hover, on press, and after the action.

Notion: grey fill in 20–100ms, menus open in 200ms, and a toast confirms with Undo.

Six looks for every control

Consistency

Rest, hover, pressed, keyboard focus, selected and disabled. Missing one makes a product feel broken or cheap.

Notion: see the States table above. Same tint logic everywhere.

One loud thing per area

Von Restorff effect (the odd one out is remembered)

If everything is colourful, nothing stands out. Keep one strong action per area.

Notion: only the blue "New" button is coloured. Everything else stays grey.

Short, grouped menus

Hick's law (more choices = slower decisions)

Split long lists into small groups with labels and dividers. Put dangerous actions last.

Notion: page menu groups of 3, "View" label, "Move to trash" alone at the bottom in red.

Easy to hit

Fitts's law · WCAG 2.5.8 target size (at least 24×24px)

Rows and buttons need enough height, and key actions sit close to where the eye already is.

Notion: 28px menu rows, 30px sidebar rows, the "New" button right above the table. For AltLeads: keep calling actions at 32px or more.

Look like what people know

Jakob's law (people expect your app to work like others)

Use the familiar: sidebar on the left, breadcrumbs, ••• for more, Esc to close, Ctrl+K to search.

Notion: every one of these is standard, so nothing needs teaching.

Group with space, not boxes

Law of proximity · common region

Things close together read as one group. Space and faint lines are calmer than heavy borders and cards.

Notion: almost no boxes. Pages are text, space and hairlines.

Always show where you are

Visibility of system status

Show where people are and what just happened.

Notion: breadcrumbs, the open page highlighted in the sidebar, the active view tab, toasts after actions, shimmer while loading.

Let people undo

Error prevention and recovery

Prefer Undo over "Are you sure?" pop-ups. Confirm only actions that can't be undone.

Notion: trash keeps pages for 30 days, and toasts offer Undo.

Readable for everyone

WCAG contrast (4.5:1 for text, 3:1 for big text and icons)

Grey text looks elegant but can be too faint. Check every text colour. See the live check below.

Notion: uses its faintest grey only for hints and placeholders, never for content you must read.

Works without a mouse

Keyboard access · visible focus

Tab reaches everything, arrows move inside menus, Enter picks, Esc closes, and a clear ring shows where you are.

Notion: blue focus ring only for keyboard users, so mouse users never see it.

Motion with a reason

Animation that explains, not decorates

Short (under 250ms), starting from where you clicked, never blocking. Switch off for "reduce motion".

Notion: menus grow out of the button you pressed, so you see where they came from.

Live contrast check

Checklist before any screen ships

Laws of UX scorecard

All 29 laws from lawsofux.com, each checked against Notion. Every card says what the law means in plain words, what Notion really does, and what AltLeads should take from it. Click a coloured bar to jump to a law, or filter by result.

UI is the look. UX is how it works and feels.We change the look (UI) because the feel (UX) is not smooth or premium yet. The laws explain why one screen feels easy and another feels heavy.
Looks still count.The Aesthetic-Usability Effect says people believe a polished screen is easier to use and forgive small problems. That is why we copy every pixel, state and animation.
Rules of thumb, not maths.The laws come from psychology research. Use them to explain and check a design, then confirm with real callers using AltLeads.

Copy & use

Add three files to any HTML page, then use the classes. Add n-dark to switch to dark mode.

<link rel="stylesheet" href="notion/notion-tokens.css">   <!-- 741 real colour tokens, light + dark -->
<link rel="stylesheet" href="notion/notion.css">          <!-- components (.n-…) -->
<body class="n-root">                                      <!-- add n-dark for dark mode -->
<script src="notion/notion-icons.js"></script>            <!-- real icons as <use href="#n-…"> -->

<span class="n-tag green">Customer</span>
<div class="n-view" aria-selected="true"><svg class="n-gi"><use href="#g-groups"/></svg><span>All</span></div>
<svg class="n-i"><use href="#n-viewTable"/></svg>

Where it came from

Colour tokens741 + 741Read from Notion's own app (public pages, light and dark), 2 Oct 2026 · raw file
Component sizesliveInline styles in Notion's own page code: table, tags, status, board, view tabs, buttons, callout, menu, sidebar
Interface icons781Copied from Notion's app code, not redrawn
Gallery icons885Notion's own /icons/*.svg files, plus colour versions of 13
Screens24 + 5Notion Help Center screenshots (2025) and our captures of live public pages (2026)
Measured, not readshotDatabase page title, desktop tab bar, tooltip and switch were measured on screenshots
Not includednoneApple's San Francisco font and Apple emoji (licensed to Apple). We never logged in or bypassed a bot check.