DesignMD Maker
← Home Report · Code analysis
F
Design System

Food Illustrations with Colored Pencil — Sarah Locher – Freelance Illustrator from Hamburg

Design system extracted from https://www.sarahlocher.com/en/projects/food-illustrations on 2026-10-17 (code-based analysis).

Source · https://www.sarahlocher.com/en/projects/food-illustrations Engine · Code analysis Created · Oct 17, 2026 11:15 Cost · $0.0000
Palette

Colors

primary
#D03438
4.96 on white · 4.23 on black · 358° 62% 51%
secondary
#000000
21 on white · 1 on black · 0° 0% 0%
accent
#007AFF
4.02 on white · 5.23 on black · 211° 100% 50%
Token Roles 13 tokens
background
#FFFFFF · 21:1 vs black
surface
#F7F7F7 · 19.6:1 vs black
text-primary
#000000 · 21:1 vs white
text-secondary
#E3E3E3 · 16.36:1 vs black
border
#D0D0D0 · 13.62:1 vs black
on-primary
#FFFFFF · 21:1 vs black
on-secondary
#FFFFFF · 21:1 vs black
on-accent
#FFFFFF · 21:1 vs black
surface-container-lowest
#FFFFFF · 21:1 vs black
surface-container-low
#F7F7F7 · 19.6:1 vs black
surface-container
#F0F0F0 · 18.43:1 vs black
surface-container-high
#E3E3E3 · 16.36:1 vs black
surface-container-highest
#D0D0D0 · 13.62:1 vs black
Detected Palette 16 colors by frequency in source CSS
#000000
used 11× · 0° 0% 0%
#D03438
used 1× · 358° 62% 51%
#007AFF
used 1× · 211° 100% 50%
#FFFFFF
used 1× · 0° 0% 100%
#F7F7F7
used 1× · 0° 0% 97%
#F0F0F0
used 1× · 0° 0% 94%
#E3E3E3
used 1× · 0° 0% 89%
#D0D0D0
used 1× · 0° 0% 82%
#AFAFAF
used 1× · 0° 0% 69%
#868686
used 1× · 0° 0% 53%
#696969
used 1× · 0° 0% 41%
#434343
used 1× · 0° 0% 26%
#1A1A1A
used 1× · 0° 0% 10%
#294C72
used 1× · 211° 47% 30%
#182B42
used 1× · 213° 47% 18%
#09101D
used 1× · 219° 53% 7%
Type System

Typography

display
inherit
110px · 300 · LH 1.4 · LS -.004em
Food Illustrations with Colored Pencil — Sarah Locher – Freelance Illustrator from Hamburg
headline-lg
inherit
42px · 300 · LH 1.4 · LS -.004em
Food Illustrations with Colored Pencil — Sarah Locher – Freelance Illustrator from Hamburg
title-lg
inherit
23px · 300 · LH 1.4
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
body-lg
inherit
18px · 300 · LH 1.4
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
body-md
inherit
16px · 300 · LH 1.4
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
label-sm
inherit
12px · 300 · LH 1.4 · LS .007em
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
Detected Font Stacks
HK Groteskvar(--font-family-default)
Structure

Layout

Container
Section padding: — · card padding: —
Grid
12-column reference grid · gap —
Spacing Scale
xs
3px
detected
.1em
detected
3px
Breakpoints
599px680px900px1160px1200px1400px1440px
Depth

Elevation & Depth

level 1
0 10px 40px -10px rgba(0,0,0,.7)
level 2
0 10px 40px -10px rgba(0,0,0,.2)
Geometry

Shapes

lg
27.2px
pill
50%
r3
1.7em
Tokens in Context

Components

card
background{colors.surface}
border1px solid {colors.border}
radius27.2px
boxShadow{elevation.md}
button-primary
background{colors.primary}
radius50%
Animation

Motion

Keyframes 5 found
@keyframes swiper-preloader-spin
0%{transform:rotate(0deg)}to{transform:rotate(1turn)}
@keyframes moveLeft
0%{transform:translateX(0)}to{transform:translateX(-50%)}
@keyframes scroll
0%{transform:translateY(0);opacity:0}2%{opacity:1}95%{opacity:1}to{transform:translateY(calc(-100% + var(--spacing-unit)*70));opacity:0}
@keyframes horizontalScroll
0%{transform:translateX(0) scale(.75);opacity:0}.3%{opacity:1}99%{opacity:1}to{transform:translateX(-60%) scale(.75);opacity:0}
@keyframes pulsate
0%{opacity:.5}50%{opacity:1}to{opacity:.5}
Easing Curves
var(--swiper-wrapper-transition-timing-function,initial)
Transitions
opacity .3sall .3stransform 5s,filter 1stransform 5s,filter 3scolor .3snoneall .5s ease-inall .6s ease-out
Proof

Live Preview

Complete Reference

Full design.md Specification

Design Specification — Food Illustrations with Colored Pencil —

Sarah Locher – Freelance Illustrator from Hamburg

FieldValue
Site / Projecthttps://www.sarahlocher.com/en/projects/food-illustrations
Analyzed on2026-10-17
Analysis modeAutomated code extraction (no AI)

Overview

This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#000000), a vivid accent (#007AFF). All type is set in HK Grotesk. Detected font weights: 300, 400, 600, 700.

Logo asset(s): https://www.sarahlocher.com/favicon/D03438

Color System

Detected palette (by frequency)

HexRGBHSLCount
#0000000, 0, 00° 0% 0%11
#D03438208, 52, 56358° 62% 51%1
#007AFF0, 122, 255211° 100% 50%1
#FFFFFF255, 255, 2550° 0% 100%1
#F7F7F7247, 247, 2470° 0% 97%1
#F0F0F0240, 240, 2400° 0% 94%1
#E3E3E3227, 227, 2270° 0% 89%1
#D0D0D0208, 208, 2080° 0% 82%1
#AFAFAF175, 175, 1750° 0% 69%1
#868686134, 134, 1340° 0% 53%1
#696969105, 105, 1050° 0% 41%1
#43434367, 67, 670° 0% 26%1
#1A1A1A26, 26, 260° 0% 10%1
#294C7241, 76, 114211° 47% 30%1
#182B4224, 43, 66213° 47% 18%1
#09101D9, 16, 29219° 53% 7%1

Assigned roles

Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.

TokenHexRGBHSL
--color-primary#D03438208, 52, 56358° 62% 51%
--color-accent#007AFF0, 122, 255211° 100% 50%
--color-background#FFFFFF255, 255, 2550° 0% 100%
--color-surface#F7F7F7247, 247, 2470° 0% 97%
--color-text-primary#0000000, 0, 00° 0% 0%
--color-secondary#0000000, 0, 00° 0% 0%
--color-text-secondary#E3E3E3227, 227, 2270° 0% 89%
--color-border#D0D0D0208, 208, 2080° 0% 82%
--color-on-primary#FFFFFF255, 255, 2550° 0% 100%
--color-on-secondary#FFFFFF255, 255, 2550° 0% 100%
--color-on-accent#FFFFFF255, 255, 2550° 0% 100%

Surface ramp (derived from detected light neutrals)

TokenHex
--color-surface-container-lowest#FFFFFF
--color-surface-container-low#F7F7F7
--color-surface-container#F0F0F0
--color-surface-container-high#E3E3E3
--color-surface-container-highest#D0D0D0

Typography

Primary typeface: HK Grotesk — stack: HK Grotesk

Font stacks (most used first)

  • HK Grotesk
  • var(--font-family-default)

Derived type scale

TokenSize
display110px
headline-lg42px
title-lg23px
body-lg18px
body-md16px
label-sm12px

Font sizes (by frequency)

SizeCount
18px12
36px8
23px7
22px7
21px7
12px3
72px2
60px2
42px2
46px1
16px1
110px1
86px1
54px1

Weights in use: 300, 400, 600, 700

Line heights (by frequency)

ValueCount
30px14
25px12
45px7
29px7
45.5px3
80px2
67px2
54px2
18px2
56px1

Letter spacing (by frequency)

ValueCount
08
-.004em6
.007em6
.01em6
-.031em2
.03em2
.08em2
.04em1

Spacing

Derived spacing scale

TokenValue
xs3px

Raw values (by frequency)

ValueCount
3px1
.1em1

Borders & Radius

Derived radius tokens

TokenValue
lg27.2px
pill50%

Raw values (resolved, by frequency)

RadiusCount
50%1
1.7em1

Shadows

Derived elevation

TokenValue
sm0 10px 40px -10px rgba(0,0,0,.7)
md0 10px 40px -10px rgba(0,0,0,.2)
lg0 10px 40px -10px transparent

All detected shadows

  • 0 10px 40px -10px rgba(0,0,0,.7)
  • 0 10px 40px -10px rgba(0,0,0,.2)
  • 0 10px 40px -10px transparent

Layout

Container max-width: 900px

Grid columns (largest detected grid): 12

Breakpoints

  • 599px
  • 680px
  • 900px
  • 1160px
  • 1200px
  • 1400px
  • 1440px

Animation & Motion

Transitions

  • opacity .3s
  • all .3s
  • transform 5s,filter 1s
  • transform 5s,filter 3s
  • color .3s
  • none
  • all .5s ease-in
  • all .6s ease-out
  • opacity .6s 0s
  • all .5s

Easing curves

  • var(--swiper-wrapper-transition-timing-function,initial)

Keyframes

@keyframes swiper-preloader-spin { 0%{transform:rotate(0deg)}to{transform:rotate(1turn)} }
@keyframes moveLeft { 0%{transform:translateX(0)}to{transform:translateX(-50%)} }
@keyframes scroll { 0%{transform:translateY(0);opacity:0}2%{opacity:1}95%{opacity:1}to{transform:translateY(calc(-100% + var(--spacing-unit)*70));opacity:0} }
@keyframes horizontalScroll { 0%{transform:translateX(0) scale(.75);opacity:0}.3%{opacity:1}99%{opacity:1}to{transform:translateX(-60%) scale(.75);opacity:0} }
@keyframes pulsate { 0%{opacity:.5}50%{opacity:1}to{opacity:.5} }

CTA labels found on page

  • Close
  • Menu

Source Design Tokens (CSS custom properties)

:root {
  --primary-color: #D03438;
  --secondary-color: #000000;
  --swiper-theme-color: #007aff;
  --swiper-navigation-size: 44px;
  --font-family-default: "HK Grotesk",Helvetica,Arial,-apple-system,sans-serif;
  --font-weight-regular: 400;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --spacing-unit: 6px;
  --white: #fff;
  --gray-100: #f7f7f7;
  --gray-200: #f0f0f0;
  --gray-300: #e3e3e3;
  --gray-400: #d0d0d0;
  --gray-500: #afafaf;
  --gray-600: #868686;
  --gray-700: #696969;
  --gray-800: #434343;
  --gray-900: #1a1a1a;
  --black: #000;
  --deepdive-blue-light: #294c72;
  --deepdive-blue: #182b42;
  --deepdive-blue-dark: #09101d;
  --large: hover;
  --shadow-color: transparent;
  --column-gap: calc(var(--spacing-unit)*4);
  --columnWidth: calc((100% - (var(--width) - 1)*var(--column-gap))/var(--width));
}

Do's and Don'ts

Do

  • Do reserve the accent #007AFF for interactive highlights and key moments — it is used sparingly on the source page.
  • Do keep the canvas at #FFFFFF; surfaces should stay within the detected neutral ramp.
  • Do stick to the detected font weight(s): 300, 400, 600, 700.

Don't

  • Don't introduce colors outside the detected palette — every hue above was found in the source.
  • Don't add gradients — the source page uses flat fills exclusively.

Design Tokens (copy-paste)

:root {
  --color-primary: #D03438;
  --color-accent: #007AFF;
  --color-background: #FFFFFF;
  --color-surface: #F7F7F7;
  --color-text-primary: #000000;
  --color-secondary: #000000;
  --color-text-secondary: #E3E3E3;
  --color-border: #D0D0D0;
  --color-on-primary: #FFFFFF;
  --color-on-secondary: #FFFFFF;
  --color-on-accent: #FFFFFF;
  --color-surface-container-lowest: #FFFFFF;
  --color-surface-container-low: #F7F7F7;
  --color-surface-container: #F0F0F0;
  --color-surface-container-high: #E3E3E3;
  --color-surface-container-highest: #D0D0D0;
  --font-sans: HK Grotesk;
  --font-size-display: 110px;
  --font-size-headline-lg: 42px;
  --font-size-title-lg: 23px;
  --font-size-body-lg: 18px;
  --font-size-body-md: 16px;
  --font-size-label-sm: 12px;
  --radius-lg: 27.2px;
  --radius-pill: 50%;
  --shadow-sm: 0 10px 40px -10px rgba(0,0,0,.7);
  --shadow-md: 0 10px 40px -10px rgba(0,0,0,.2);
  --shadow-lg: 0 10px 40px -10px transparent;
  --space-xs: 3px;
  --tracking-display: -.004em;
  --tracking-label: .007em;
  --container-max: 900px;
}

Generated by DesignMD Maker · analyze responsibly — only scan pages you're permitted to study.