CSS component library Β· v1.0.0

The calm workspace look, as a design system.

NotionKit gives you Notion’s quiet, document-centric surface as ready-made CSS: sidebar, page tree, callouts, database views, settings and AI threads. One stylesheet. No build step, no JavaScript, no framework lock-in.

CSS only ~100 components Light & Dark 7.2 KB gzip MIT
Read the docs Browse components

Drop it in

html<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@jungherz-de/notionkit@1/notionkit.min.css"> <html data-theme="dark">
npmnpm install @jungherz-de/notionkit

Set the theme with data-theme on <html>. That is the whole setup.

The whole library, in one realistic screen

Below is the live demo β€” app shell, page tree, document, database views, command palette, settings modal and AI thread. Everything you see is NotionKit markup; the interactions are ~290 lines of plain JavaScript that ship with the demo, not with the library.

notionkit.jungherz.com/app.html

Open the demo full screen β†—

Desktop and mobile, equally

NotionKit is not a mobile-first kit stretched to the desktop, nor a desktop kit squeezed onto a phone. Layouts are fluid, there is exactly one breakpoint at 860px, and the same markup carries both. Same page, two viewports:

Desktop Β· 1280 px
Mobile Β· 390 px

Why NotionKit

🎨

Pure CSS

One stylesheet, no JavaScript, no dependencies. Works with plain HTML, Flask, Rails, Laravel, Astro, React β€” anything that emits class names.

πŸŒ—

Light & dark, complete

Both themes are fully specified down to tag colours and shadows. Switch with a single attribute on <html>.

πŸŽ›οΈ

Design tokens

Every value is a --nk-* custom property. Re-branding is one declaration: --nk-accent. Everything else is mixed from it.

πŸ“

Desktop and mobile equally

No fixed viewport widths, no device mockups. Fluid layouts, one breakpoint, horizontal scrolling where tables and boards need it.

🧩

Shadow DOM ready

Ships a constructable stylesheet split into tokens and components, plus ::slotted() twins β€” so web components can adopt it without breaking branding.

πŸ€–

AI-ready

A structured SKILL.md gives coding agents the exact markup, nesting rules and six full app skeletons.

What is in the box

About 100 component classes across eleven groups. Every one of them is documented with a live preview and its mobile behaviour.

GroupWhat you get
App shell & layoutnk-app, sidebar with workspace switcher and footer, main column, topbar with breadcrumb and actions, section labels
Navigation / page treeTree items with active state and hover actions, collapsible children, toggle arrows, keyboard hints
Page shell & documentScroll container, cover, page column, page icon, editable title, meta row, headings, lead paragraph
Content elementsCallouts, todos with strike-through, toggles, dividers, block quotes, mentions (person / page / date), inline code, code blocks
Database viewsView tabs with counts, scrollable tables, tags in four colours, progress bars, board columns and cards
Forms & settingsInputs, textareas, selects with custom chevron, five button variants, switches, checkboxes and radios, sliders, field rows, model cards, danger zone, member rows
Settings modalBackdrop, modal shell, settings nav with user block, content area, switchable panes
Overlays & menusPopover base, emoji picker, context menus with shortcuts, full command palette, toasts
Gallery & productivityGallery grid, tabs, template buttons, stat cards with deltas, synced blocks, segmented control, banners, avatar groups, skeletons, empty states
Collaboration & AIComment threads, comment input, AI message thread, message actions, AI input row
Editor adapternk-block-host plus themed overrides for TipTap/ProseMirror, BlockNote and Novel, with slash menu and bubble toolbar

The editor is deliberately not included

A block editor β€” selection, paste, keyboard, undo, mobile β€” is its own product, and half an editor would damage the library in real apps. So NotionKit ships .nk-block-host, the optical shell, plus a themed adapter layer for TipTap, BlockNote and Novel. Mount the editor you want; it comes out looking like part of the system.

See the TipTap recipe β†’

The NotionKit family

NotionKit is the CSS foundation of a three-layer family. The layers share one design language and one naming stem: .nk-callout becomes <nk-callout>.

NotionKit Available now

CSS foundation

This project. .nk-* classes and --nk-* tokens for any stack.

NotionKit Elements Planned

Web components

Vanilla-JS custom elements that wrap this markup, built on the constructable stylesheet shipped here.

NotionKit Web Planned

Astro template

A full website template β€” documentation, knowledge bases, product pages β€” on the same foundation.