ipynb viewer design language
A notebook reader should disappear. The interface is neutral and calm so the notebook, someone else's work, is the only thing with character. The same rules are kept in DESIGN.md in the repository.
Colour
Three tones and one ink. page is the window, paper is the sheet being read and well is the recess under code. There is no brand colour: the blue is for links, and green, amber and red mean state and nothing else.
| Token | Light | Dark | Use |
|---|---|---|---|
page |
#f5f5f7 |
#0a0a0c |
The window |
paper |
#ffffff |
#1a1a21 |
The sheet, dialogs, cards |
well |
#e6e8ef |
#272833 |
Under inline code and key caps |
fg |
#1d1d1f |
#f5f5f7 |
Text, solid buttons |
fg-2 |
#48484a |
#cfcfd4 |
Secondary text |
fg-3 |
#636368 |
#9a9aa1 |
Icons, notes, line numbers |
accent |
#0066cc |
#4da3ff |
Links |
ok |
#1d8a4a |
#4cc38a |
Ready, success |
wait |
#b26b00 |
#f0b44c |
Pending |
danger |
#b3261e |
#ff7b72 |
Errors, secrets |
Light and dark share every token. Dark drops drop-shadows and adds a one-pixel top highlight instead.
Type
Inter for words and JetBrains Mono for code, both served from the same origin. Prose is 16px at a line height of 1.6. Interface text runs from 11px to 15px, headings are weight 600 with a tracking of -0.01em, and figures are 34px.
Shape and depth
Controls are pills. Surfaces are rounded rectangles: 18px for popovers, 22px for dialogs, 14px for tiles, 10px for grouped rows and 6px for key caps. The header floats as glass pills with a blur behind them, and the notebook rests on paper.
Space
A 4px base with steps of 4, 8, 12, 16, 20 and 24. Rows are 44px, controls 32px and buttons 36px, and both grow to 44px on a touch screen. The reading column is 1120px wide, or 760px narrow and 1720px wide.
Interaction and motion
Every control hovers the same way, with a wash of its own text colour at 8%. Pressing scales it to 0.97. Focus is a two pixel ring, always visible. Nothing runs longer than 300ms, only transform and opacity move, and reduced motion is respected.
Voice
Plain and short, verbs first, sentence case, with the product name in lowercase. The privacy promise comes early: the file never leaves your browser and no code runs.