Skip to main content
skill CX Codex

notion-ui-skills — Claude Code skill: what it does, how to install

Enforces Notion design system guidelines with a 4px grid and light-mode tokens.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add ihlamury/design-skills --skill notion-ui-skills -a claude-code
npx skills add ihlamury/design-skills --skill notion -a claude-code
Open on GitHub

What notion-ui-skills does

The skill directs AI agents to follow Notion visual conventions. It defines #F6F6F6 as the base page background, #97CAEE for accents, and mandates an accessible text contrast ratio of at least 4.5:1. Typography relies on Inter, setting primary headings to 66px bold and body copy to 16px.

Layouts target a 1920px base viewport, using h-dvh instead of h-screen. Spacing strictly follows a 4px grid scale. Border radiuses are locked to 3px, 4px, 6px, and 15px.

Component guidelines prohibit blocking paste events in text fields and mandate AlertDialog for destructive actions. Transitions cannot touch layout metrics like margins or dimensions; only transform and opacity are allowed under a 200ms limit.

What it helps with

  • build Notion-style light mode user interfaces
  • enforce Inter typography and semantic color tokens
  • constrain UI spacing to a 4px grid scale
  • restrict CSS transitions to transform and opacity

Example prompts for the agent

  • Build a settings card using the Notion design system tokens
  • Create a confirmation dialog with an AlertDialog component and 4px border radius
  • Generate a document outline list with Inter font and #F6F6F6 background

How to install notion-ui-skills

1Skills CLI (Vercel)

npx skills add ihlamury/design-skills --skill notion-ui-skills -a claude-code
npx skills add ihlamury/design-skills --skill notion -a claude-code

2Manually: put the files in place

~/.claude/skills/notion/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/notion/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about notion-ui-skills

How do I install notion-ui-skills in Claude Code?

Run npx skills add ihlamury/design-skills --skill notion-ui-skills -a claude-code in your terminal. Alternatively, place the specification file at ~/.claude/skills/notion/SKILL.md.

What does notion-ui-skills do?

It provides opinionated constraints for generating web interfaces that mimic Notion, covering color tokens, typography, grid rules, and component states.

What animation limits does notion-ui-skills enforce?

Animations must never alter layout properties like width or margin and cannot exceed 200ms. Agents may animate only transform and opacity.

Source text

SKILL.md · MIT
---
name: notion-ui-skills
description: Notion's UI design system. Use when building interfaces inspired by Notion's aesthetic - light mode, Inter font, 4px grid.
license: MIT
metadata:
  author: design-skills
  version: "1.0.0"
  source: https://notion.so
---

# Notion UI Skills

Opinionated constraints for building Notion-style interfaces with AI agents.

## When to Apply

Reference these guidelines when:
- Building light-mode interfaces
- Creating Notion-inspired design systems
- Implementing UIs with Inter font and 4px grid

## Colors

- SHOULD use light backgrounds for primary surfaces
- MUST use `#F6F6F6` as page background (`surface-base`)
- MUST use `#97CAEE` for primary actions and focus states (`accent`)
- SHOULD reduce color palette (currently 15 colors detected)
- MUST maintain text contrast ratio of at least 4.5:1 for accessibility

### Semantic Tokens

| Token | HEX | RGB | Usage |
|-------|-----|-----|-------|
| `surface-base` | #F6F6F6 | rgb(246,246,246) | Page background |
| `surface-raised` | #E5E5E4 | rgb(229,229,228) | Cards, modals, raised surfaces |
| `surface-overlay` | #DFEFFE | rgb(223,239,254) | Overlays, tooltips, dropdowns |
| `text-primary` | #5D686A | rgb(93,104,106) | Headings, body text |
| `text-2` | #3E3E3E | rgb(62,62,62) | Additional text |
| `text-tertiary` | #505050 | rgb(80,80,80) | Additional text |
| `border-default` | #EDEEEC | rgb(237,238,236) | Subtle borders, dividers |
| `accent` | #97CAEE | rgb(151,202,238) | Primary actions, links, focus |

## Typography

- MUST use `Inter` as primary font family
- SHOULD use single font family for consistency
- MUST use `66px` / `700` for primary headings
- MUST use `16px` / `500` for body text
- SHOULD reduce font weights (currently 6 detected)
- MUST use `text-balance` for headings and `text-pretty` for body text
- SHOULD use `tabular-nums` for numeric data
- NEVER modify letter-spacing unless explicitly requested

### Text Styles

| Style | Font | Size | Weight | Color | Count |
|-------|------|------|--------|-------|-------|
| `heading-1` | Inter | 66px | 700 | #212121 | 1 |
| `text-29px` | Inter | 29px | extra_bold | #292929 | 1 |
| `text-27px` | Inter | 27px | 400 | #4D4D4D | 1 |
| `text-21px` | Inter | 21px | 500 | #252525 | 1 |
| `text-19px` | Inter | 19px | semi_bold | #333333 | 1 |
| `text-18px` | Inter | 18px | semi_bold | #383838 | 1 |
| `text-18px` | Inter | 18px | 400 | #4E4E4E | 1 |
| `body` | Inter | 16px | 500 | #545454 | 1 |
| `body-secondary` | Inter | 16px | 400 | #9B9B9B | 1 |
| `body-secondary` | Inter | 15px | 400 | #5F5F5F | 2 |

### Typography Reference

**Font Families:**
- `Inter` (used 33x)

**Font Sizes:** 8px, 10px, 11px, 12px, 13px, 14px, 15px, 16px, 18px, 19px, 21px, 27px, 29px, 66px

## Spacing

- MUST use 4px grid for spacing
- SHOULD use spacing from scale: 1px, 2px, 4px, 5px, 6px, 11px, 14px, 18px
- SHOULD use 1px as default gap between elements
- NEVER use arbitrary spacing values (use design scale)
- SHOULD maintain consistent padding within containers

## Borders

- MUST use border-radius from scale: 3px, 4px, 6px, 15px
- MUST use 1px border width consistently
- SHOULD use 4px as default border-radius
- NEVER use arbitrary border-radius values (use design scale)
- SHOULD use subtle borders (1px) for element separation

### Border Radius Reference

**Scale:** 3px, 4px, 6px, 15px

## Layout

- MUST design for 1920px base viewport width
- SHOULD use consistent element widths: 16px, 13px, 17px, 18px, 10px
- SHOULD maintain text-heavy layout with clear hierarchy
- NEVER use `h-screen`, use `h-dvh` for full viewport height
- MUST respect `safe-area-inset` for fixed elements
- SHOULD use `size-*` for square elements instead of `w-*` + `h-*`

### Detected Layout Patterns

- **Main Content**: width: 1920px, height: 1080px
- **Main Content**: width: 1822px, height: 1008px

## Components

- MUST use `0px` height for input fields

### Buttons

| Variant | Background | Text | Border | Height | Radius |
|---------|------------|------|--------|--------|--------|
| Ghost | transparent | #767674 | none | - | - |

### Inputs

- Height: `0px`

## Interactive States

### Focus

- MUST use `2px` outline with accent color (`#97CAEE`)
- MUST use `2px` outline-offset
- NEVER remove focus indicators

### Hover

- Buttons (primary): lighten background by 10%
- Buttons (secondary): use `#E5E5E4` background
- List items: use `#E5E5E4` background

### Disabled

- MUST use `opacity: 0.5`
- MUST use `cursor: not-allowed`

## Interaction

- MUST use an `AlertDialog` for destructive or irreversible actions
- SHOULD use structural skeletons for loading states
- MUST show errors next to where the action happens
- NEVER block paste in `input` or `textarea` elements
- MUST add an `aria-label` to icon-only buttons

## Animation

- NEVER add animation unless it is explicitly requested
- MUST animate only compositor props (`transform`, `opacity`)
- NEVER animate layout properties (`width`, `height`, `top`, `left`, `margin`, `padding`)
- SHOULD use `ease-out` on entrance animations
- NEVER exceed `200ms` for interaction feedback
- SHOULD respect `prefers-reduced-motion`

## Performance

- NEVER animate large `blur()` or `backdrop-filter` surfaces
- NEVER apply `will-change` outside an active animation
- NEVER use `useEffect` for anything that can be expressed as render logic

© design-skills · MIT · ihlamury/design-skills

Similar skills

Everything for Design →

From the same set10

apple-ui-skills Hands the agent a fixed set of Apple-style UI rules: light surfaces, Inter, a 4px grid. Useful when you want a predictable look without tweaking every value by hand. CX Codex +1 509installs linear-ui-skills Hands the agent a fixed set of rules for dark Linear-style interfaces: palette, Inter, 4px grid. Useful when you keep re-explaining the same design details. CX Codex +1 393installs dribbble-ui-skills Supplies AI agents with Dribbble UI system guidelines: a 4px grid, Inter typography, semantic tokens, and strict CSS rules. Useful when assembling light-mode web layouts. CX Codex +1 392installs airbnb-ui-skills Design system constraints for Airbnb-inspired light interfaces. Sets up Inter font typography, a 4px layout grid, and strict CSS styling limits. CX Codex +1 389installs figma-ui-skills Applies Figma UI constraints: light mode, Inter font, and a 4px grid. Keeps coding agents from picking random spacing, colors, or heavy layout animations. CX Codex +1 346installs vercel-ui-skills Pins your agent to Vercel's look: light surfaces, Inter, a 4px grid. Useful when you want generated UI to follow one fixed scale instead of guessing. CX Codex +1 342installs framer-ui-skills Hands the agent a fixed set of Framer-style UI rules: dark surfaces, Inter, a 4px grid. Useful when you want a predictable look without hand-tweaking every value. CX Codex +1 320installs anthropic-ui-skills Hands your agent a fixed set of rules for Anthropic-style interfaces: light surfaces, Inter, a 4px grid. Useful when you keep re-explaining the palette in every prompt. CX Codex +1 313installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor