Bosch Security Planning: Planning a surveillance system without leaving the office
Security planning platform
philippjohn.com
The tokens and components behind this website. The same files feed this page, every page of the site and the Storybook.
The ground every page stands on: two themes, two typefaces, the star line, the layout and shape.
01 / 05
Two themes share one set of roles. A component asks for a role, like text primary, and each theme answers with its own colour.
Open in StorybookThe two themes
The page, the ink and the accent. Light is the default. Dark switches on with the sun and moon in the header.
light
bg-page#fffffftext-primary#0a0a0abg-accent#ff5233dark
bg-page#0a0a0atext-primary#f8f8f8bg-accent#ff5233Roles
Every colour in a component is one of these. Contrast is measured against the page of each theme.
--color-bg-page#ffffff#0a0a0a--color-bg-subtle#f8f8f8#141414--color-bg-muted#f1f1f1#262626--color-bg-stage#eeeeee#141414--color-bg-inverse#0a0a0a#ffffff--color-bg-accent#ff5233--color-bg-accent-soft#ffe9e4rgb(255 82 51 / 0.16)--color-bg-inverse-hover#262626#e4e4e4--color-text-primary#0a0a0a · 19.8:1#f8f8f8 · 18.6:1--color-text-secondary#525252 · 7.8:1#cfcfcf · 12.7:1--color-text-tertiary#6b6b6b · 5.3:1#8f8f8f · 6.1:1--color-text-inverse#ffffff#0a0a0a--color-text-highlight#6b6b6b · 5.3:1#8f8f8f · 6.1:1--color-text-unfilled#a6a6a6 · 2.4:1#525252 · 2.5:1--color-text-accent#c2361b · 5.5:1#ff9a85 · 9.6:1--color-text-on-accent#0a0a0a · 19.8:1--color-text-success#14743c · 5.8:1#4ade80 · 11.4:1--color-text-danger#ff686b · 2.8:1--color-border-subtle#e4e4e4 · 1.3:1#262626 · 1.3:1--color-border-default#cfcfcf · 1.6:1#3a3a3a · 1.7:1--color-border-input#8f8f8f · 3.2:1#6b6b6b · 3.7:1--color-border-strong#0a0a0a · 19.8:1#ffffff · 19.8:1--color-border-inverse#3a3a3a--color-surface-panel#0a0a0a#141414--color-surface-on-panel#ffffff--color-surface-menu#ffffff#141414--color-surface-menu-button#f1f1f1#ffffff--color-surface-on-menu#0a0a0a#ffffff--color-surface-panel-line#3a3a3a02 / 05
Two voices: Flicker for the big moments, Manrope for everything you read. Sizes grow with the screen between a smallest and a largest value.
Open in StorybookScale
display-2xl · Flicker · 72 to 240px
Philipp John
Hero name
display-xl · Flicker · 96 to 176px
Philipp John
Case section titles, the name in the footer
display-l · Flicker · 48 to 96px
Philipp John
Page titles, links in the phone menu
heading-1 · Manrope · 36 to 60px
Design that ships
Section titles, case titles, the footer title
heading-section · Manrope · 36 to 48px
Design that ships
H2: section titles, case group titles, the footer title. Manrope regular, 48px from 1200px wide
heading-2 · Manrope · 28 to 42px
Design that ships
Chapter titles in case studies, the password gate
heading-3 · Manrope · 22 to 28px
Design that ships
Card, form and dialog titles, Ways to work together
heading-4 · Manrope · 20px
Design that ships
FAQ questions, quotes, timeline titles, h3 in text
body-l · Manrope · 18 to 22px
Design that ships
Page intros, case summaries, the role line on the home stage
body · Manrope · 16 to 18px
Design that ships
Reading text, lists and buttons
body-s · Manrope · 15px
Design that ships
Labels, chips, notes and the cookie bar
caption · Manrope · 13px
Design that ships
Indices, step numbers and small tags
display-name · Flicker · 80 to 256px
Philipp John
The name on the home stage, about as wide as the old one
statement · Manrope · 26 to 44px
Design that ships
Large regular text on the home sheet, like the old site
stat · Flicker · 72 to 112px
Philipp John
Flicker numbers and phase titles
nav · Manrope · 17px
Design that ships
Navigation pill and Get in touch
Weights and line height
4005006007000.881.081.251.551.703 / 05
Cards hang from one hairline instead of sitting in boxes. A star marks where each one starts.
Open in StorybookAnatomy
Line · 1px
The top line runs across the row, the left line down the column.
Star · 20px
Centred on the corner where both lines meet.
Rules
Values
1px · --color-border-default1.25rem · 5:61.5rem--color-border-strong04 / 05
One gutter shared by every piece, a spacing scale on a 4px base and a few points where the page re-lays itself.
Open in StorybookSpacing
clamp(1rem, 4vw, 4rem)clamp(4rem, 10vw, 10rem)clamp(1.5rem, 3vw, 2.5rem)90rem42rem48rem2.75remScale
14px28px312px416px520px624px832px1040px1248px1664px2080px2496px32128px40160pxLayers
From the top down. Dialogs sit above everything, the navigation above the page so the way out is always there.
300dialog200cursor100nav90Colour that fills the screen when a case opens, below the nav50rail1baseBreakpoints
05 / 05
Round where you touch, square where you read. Shadows are short and quiet.
Open in StorybookRadius
xs6pxsm12pxmd20pxlg32pxxl48pxpillpillcard-rest0card-hover12pxShadows
0 1px 2px rgb(0 0 0 / 0.06)0 1px 2px rgb(0 0 0 / 0.06), 0 12px 40px -12px rgb(0 0 0 / 0.18)0 -12px 40px -16px rgb(0 0 0 / 0.12)inset 0 0 0 1px rgb(0 0 0 / 0.1)The pieces the pages are built from, rendered here with the same code as on the site and kept in Storybook.
01 / 07
Pill shaped, with an arrow when it takes you somewhere. Black for the main action, quiet for the rest. A button that can not be used yet turns flat and grey.
Open in Storybook02 / 07
Chips filter and choose, 32px tall with a 44px touch area. Tags only label.
Open in Storybook03 / 07
A field is a single line. While it is selected the line turns strong and a star appears at its start; an error says what is wrong in plain words.
Open in StorybookPlease enter a valid email address.
05 / 07
Each case has its own colour and a device that always fits. Cards stay light in both themes. With a mouse the corners turn round on hover and the cursor reads See more.
Open in Storybook06 / 07
STAR at a glance and numbers, hung from the star line.
Open in StorybookUp
registrations
Down
bounce rate
20+
new components
07 / 07
One line drawing for each area of work, with a dot that moves as you scroll. Scroll this page and watch the dots travel.
Open in StorybookRules
Values
112 to 160px1.5 · guide 0.75, dashed 2 3r 2.5 · text colourMovement shows where something comes from and where it goes. Moves you drive with the scroll stay with reduced motion; moves that run on their own stop.
01 / 02
How decisions are made, for motion and everything else.
Open in StorybookRules
02 / 02
A few named curves and durations, so related motion always moves alike. Hover a curve to play it.
Open in StorybookEasing
standard
cubic-bezier(0.2, 0, 0, 1)Colour, opacity and small moves
emphasized
cubic-bezier(0.22, 1, 0.36, 1)Nav bubble, reveals, shape shift
header
cubic-bezier(0.45, 0, 0.25, 1)Even slide for the header, visible from start to end
Durations
150ms300ms550ms800ms500ms25ms4500ms1600ms40s450ms80ms250ms1200ms180ms450ms14ms2000ms