Pattern Library

Building blocks of this website

Colours, type and components of the design, shown with the real classes. Switching to dark mode (icon at the top right) shows how the colours change.

Colours

All colours are CSS variables (tokens). The values change with the mode, the names stay.

Accent--color-accentEyebrows, icons, hover borders
Button--button-bgPrimary button (white text)
Button hover--button-bg-hoverPrimary button on hover
Heading--color-headingHeadings, dark band (light)
Text--color-textBody text
Muted text--color-mutedSecondary text, captions
Background--color-bgPage background
Surface--color-surfaceTinted sections, cards
Surface 2--color-surface-2Chips, inputs
Surface 3--color-surface-3Dark band (dark)
Warm--color-warmContact band
Line--color-lineDividers
Input border--color-input-lineForm field borders

Typography

Headings in Quicksand, text in Noto Sans, both served locally (no Google Fonts request).

Eyebrow

Heading 2 for sections

Heading 3 for cards and steps

Lead text: slightly larger, for the introduction of a page.

Body text in Noto Sans, 17 pixels, with generous line height for readability. This is what a link in the text looks like.

Muted text, 14 pixels, for captions and notes.

Buttons

Variants

.button .button--secondary .button--outline .button--small

Links with arrows

.project-link .more-link chevron_icon() ext_icon()

Chips and badges

  • PHP
  • Daily
  • Depending on the project
Client project Personal project

.chip .chip--strong .chip--outline .badge--client .badge--own

Cards

Card

Border, radius and padding come from the tokens.

Service card

With a number and an optional tools line.

Figma · HTML · CSS

.card .service-card

Form fields

Help text directly under the field.

Note under the form, e.g. about the reply time.

.form-field .form-hint .form-note

Building blocks of the project pages

All project pages are built from the same PHP functions (includes/case-study.php). Two of them below as a preview.

At a glance

  • Fast

    Key facts sit in the dark band with an icon.

  • 30

    One value, one short text.

  • Maintainable

    Up to four entries side by side.

Tech stack

  • PHP
  • SQLite
  • CSS

Approach

  1. First step

    Numbered steps on a light grey surface, with a heading and a short text.

  2. Second step

    The number comes automatically from the order.

„This is what a client quote looks like.“

Name, role · date

Icons

Line icons on a 24 px grid, embedded as SVG (case_icon()). Plus the arrows chevron_icon() and ext_icon().

gauge
grid
sliders
languages
monitor
smartphone
eye
search
calendar
cart
map-pin
upload
lock
image
database
shield
pencil
pen-tool
book-open
type
zap

Radii

control 10
badge 12
image 14
card 16
portrait 20
pill

Contact

Planning a new website or a relaunch?

Write to me. A short message is often the best start.