DesignMD Maker logo ← Home Report · Code analysis
E
Design System

Eat Real Food

Design system extracted from https://realfood.gov/ on 2026-08-03 (code-based analysis).

Source · https://realfood.gov/ Engine · Code analysis Created · Aug 3, 2026 21:33 Cost · $0.0000
Detected Language

Design Style

rounded / pill-heavy
many large radii & pills
technical / mono accents
monospace font in use
Palette

Colors

primary
#64C878
2.08 on white · 10.07 on black · 132° 48% 59%
secondary
#101114
18.88 on white · 1.11 on black · 225° 11% 7%
accent
#F4FFAE
1.06 on white · 19.76 on black · 68° 100% 84%
Token Roles 12 tokens
background
#FDFBEE · 20.21:1 vs black
text-primary
#110000 · 20.51:1 vs white
surface
#FFFFFF · 21:1 vs black
text-secondary
#47914F · 3.87:1 vs white
border
#E5E5E5 · 16.67:1 vs black
on-primary
#110000 · 20.51:1 vs white
on-secondary
#FFFFFF · 21:1 vs black
on-accent
#110000 · 20.51:1 vs white
surface-container-lowest
#FFFFFF · 21:1 vs black
surface-container-low
#FAFAFA · 20.12:1 vs black
surface-container
#F5F5F5 · 19.26:1 vs black
surface-container-high
#E5E5E5 · 16.67:1 vs black
Detected Palette 24 colors by frequency in source CSS
#101114
used 49× · 225° 11% 7%
#FFFDF0
used 48× · 52° 100% 97%
#FFFFFF
used 36× · 0° 0% 100%
#000000
used 35× · 0° 0% 0%
#0C0F12
used 15× · 210° 20% 6%
#110000
used 9× · 0° 100% 3%
#1C3A16
used 5× · 110° 45% 16%
#171717
used 5× · 0° 0% 9%
#F0FF91
used 4× · 68° 100% 78%
#0A3002
used 4× · 110° 92% 10%
#FAFAFA
used 4× · 0° 0% 98%
#0A0A0A
used 4× · 0° 0% 4%
#F5F5F5
used 4× · 0° 0% 96%
#F3F0D6
used 3× · 54° 55% 90%
#FDFBEE
used 3× · 52° 79% 96%
#47914F
used 3× · 126° 34% 42%
#10240C
used 3× · 110° 50% 9%
#E5E5E5
used 3× · 0° 0% 90%
#0F0000
used 2× · 0° 100% 3%
#64C878
used 2× · 132° 48% 59%
#FAF7EE
used 2× · 45° 55% 96%
#A8DA8A
used 2× · 98° 52% 70%
#A1A1A1
used 2× · 0° 0% 63%
#F8F2E5
used 2× · 41° 58% 94%
Surface Treatments

Gradients

linear-gradient(#0c0f12d9,#0c0f12f5)
linear-gradient(#faf7eefa,#fffffff0)
linear-gradient(#f4f8e4fa,#fffffff0)
linear-gradient(#f7f4e8fa,#fffffff0)
linear-gradient(#ff7077 0%,#d81f2c 100%)
linear-gradient(#ad1f29 0%,#7b1218 100%)
Type System

Typography

display
inherit
170px · 400 · LH 1.2 · LS -.5px
Eat Real Food
headline-lg
inherit
40px · 400 · LH 1.2 · LS -.5px
Eat Real Food
headline-md
inherit
31px · 400 · LH 1.2 · LS -.5px
Eat Real Food
title-lg
inherit
22px · 400 · 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 · 400 · 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 · 400 · LH 1.4
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
label-md
inherit
14px · 400 · LH 1.4 · LS .08em
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
label-sm
inherit
12px · 400 · LH 1.4 · LS .08em
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
Detected Font Stacks
var(--font-grotesk-medium)var(--font-grotesk-bold)var(--font-grotesk-display)Geist MonoDie Grotesk BGeist Mono Fallbackvar(--font-grotesk-medium)!importantvar(--font-a)
Structure

Layout

Container
Section padding: · card padding:
Grid
12-column reference grid · gap
Spacing Scale
unit
4px
xs
4px
sm
8px
md
16px
lg
32px
xl
80px
detected
4px
detected
6px
detected
7px
detected
8px
detected
10px
detected
12px
detected
14px
detected
16px
detected
18px
detected
20px
Breakpoints
580px640px768px800px801px900px1100px1120px
Depth

Elevation & Depth

level 1
0 12px 24px #0000001a
level 2
0 18px 40px #0a30020d
level 3
0 0 4px #f0ff91
level 4
0 0 6px 8px #f0ff9100
level 5
0 0 8px #f0ff9100
level 6
0 10px 40px #0000001a,0 20px 60px -10px #0000001a
Geometry

Shapes

md
12px
lg
40px
pill
9999px
r4
24px
r5
999px
r6
50%
r7
14px
r8
20px
r9
16px
r10
18px
Tokens in Context

Components

card
background{colors.surface}
border1px solid {colors.border}
radius40px
boxShadow{elevation.md}
button-primary
background{colors.primary}
radius9999px
Animation

Motion

Keyframes 14 found
@keyframes dga-module__LrmiHG__pulse
0%{box-shadow:0 0 4px #f0ff91}75%{box-shadow:0 0 6px 8px #f0ff9100}to{box-shadow:0 0 8px #f0ff9100}
@keyframes dga-module__LrmiHG__nearbyFoodSkeletonShimmer
0%{background-position:200% 0}to{background-position:-200% 0}
@keyframes dga-module__LrmiHG__heroLeadTextFade
0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}
@keyframes dga-module__LrmiHG__heroTipFadeIn
0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}
@keyframes dga-module__LrmiHG__heroTipBounce
0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}
@keyframes dga-module__LrmiHG__askPlaceholderFade
0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}
@keyframes dga-module__LrmiHG__askBarFoodShuffle
0%,4%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1);transform:translateY(110%)scale(.9)}12%{opacity:1;transform:translateY(0)scale(1)}16%,22%{opacity:1;animation-timing-function:cubic-bezier(.36,0,.66,-.2);transform:translateY(0)scale(1)}25%,to{opacity:0;transform:translateY(-18%)scale(.94)}
@keyframes ai-chat-module__lXq9jq__chatSurfaceEnter
0%{opacity:0;transform:translateY(22px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}
@keyframes ai-chat-module__lXq9jq__saveConfirmPop
0%{opacity:.5;transform:scale(.92)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}
Applied Animations
.42s cubic-bezier(.16,1,.3,1) both ai-chat-module__lXq9jq__chatSurfaceEnter.3s cubic-bezier(.25,1,.5,1) ai-chat-module__lXq9jq__saveConfirmPop1.45s ease-in-out infinite ai-chat-module__lXq9jq__broccoliPulse.35s cubic-bezier(.25,1,.5,1) location-selector-module__I5PimW__updatePromptInnone
Easing Curves
cubic-bezier(.4,1,.4,1)cubic-bezier(.23,1,.32,1)cubic-bezier(.2,.8,.4,1)cubic-bezier(.68,.05,.265,1.55)cubic-bezier(.65,.1,.6,1)cubic-bezier(.85,.05,.1,1)
Transitions
opacity .3sopacity .5s cubic-bezier(.4,1,.4,1)background-color .2s cubic-bezier(.23,1,.32,1)color .2s cubic-bezier(.23,1,.32,1)grid-template-rows .12s cubic-bezier(.2,.8,.4,1)top .2s cubic-bezier(.68,.05,.265,1.55)transform .16s cubic-bezier(.65,.1,.6,1)transform .2s cubic-bezier(.85,.05,.1,1)
Proof

Live Preview

Complete Reference

Full design.md Specification

Design Specification — Eat Real Food

FieldValue
Site / Projecthttps://realfood.gov/
Analyzed on2026-08-03
Analysis modeAutomated code extraction (no AI)

Overview

This design system was extracted programmatically from the source page. It is built on a light canvas (#FDFBEE), ink text (#110000), a vivid accent (#F4FFAE). All type is set in var(--font-grotesk-medium). Detected font weights: 400, 500, 600, 700, 900. Detected style signatures: rounded / pill-heavy; technical / mono accents.

Logo asset(s): https://realfood.gov/favicon.ico

Color System

Detected palette (by frequency)

HexRGBHSLCount
#10111416, 17, 20225° 11% 7%49
#FFFDF0255, 253, 24052° 100% 97%48
#FFFFFF255, 255, 2550° 0% 100%36
#0000000, 0, 00° 0% 0%35
#0C0F1212, 15, 18210° 20% 6%15
#11000017, 0, 00° 100% 3%9
#1C3A1628, 58, 22110° 45% 16%5
#17171723, 23, 230° 0% 9%5
#F0FF91240, 255, 14568° 100% 78%4
#0A300210, 48, 2110° 92% 10%4
#FAFAFA250, 250, 2500° 0% 98%4
#0A0A0A10, 10, 100° 0% 4%4
#F5F5F5245, 245, 2450° 0% 96%4
#F3F0D6243, 240, 21454° 55% 90%3
#FDFBEE253, 251, 23852° 79% 96%3
#47914F71, 145, 79126° 34% 42%3
#10240C16, 36, 12110° 50% 9%3
#E5E5E5229, 229, 2290° 0% 90%3
#0F000015, 0, 00° 100% 3%2
#64C878100, 200, 120132° 48% 59%2

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-background#FDFBEE253, 251, 23852° 79% 96%
--color-text-primary#11000017, 0, 00° 100% 3%
--color-accent#F4FFAE244, 255, 17468° 100% 84%
--color-primary#64C878100, 200, 120132° 48% 59%
--color-surface#FFFFFF255, 255, 2550° 0% 100%
--color-secondary#10111416, 17, 20225° 11% 7%
--color-text-secondary#47914F71, 145, 79126° 34% 42%
--color-border#E5E5E5229, 229, 2290° 0% 90%
--color-on-primary#11000017, 0, 00° 100% 3%
--color-on-secondary#FFFFFF255, 255, 2550° 0% 100%
--color-on-accent#11000017, 0, 00° 100% 3%

Surface ramp (derived from detected light neutrals)

TokenHex
--color-surface-container-lowest#FFFFFF
--color-surface-container-low#FAFAFA
--color-surface-container#F5F5F5
--color-surface-container-high#E5E5E5

Gradients

  • linear-gradient(#0c0f12d9,#0c0f12f5)
  • linear-gradient(#faf7eefa,#fffffff0)
  • linear-gradient(#f4f8e4fa,#fffffff0)
  • linear-gradient(#f7f4e8fa,#fffffff0)
  • linear-gradient(#ff7077 0%,#d81f2c 100%)
  • linear-gradient(#ad1f29 0%,#7b1218 100%)

Typography

Primary typeface: var(--font-grotesk-medium) — stack: var(--font-grotesk-medium)

Font stacks (most used first)

  • var(--font-grotesk-medium)
  • var(--font-grotesk-bold)
  • var(--font-grotesk-display)
  • Geist Mono
  • Die Grotesk B
  • Geist Mono Fallback
  • var(--font-grotesk-medium)!important
  • var(--font-a)
  • Die Grotesk D
  • var(--font-sans)

Derived type scale

TokenSize
display170px
headline-lg40px
headline-md31px
title-lg22px
body-lg18px
body-md16px
label-md14px
label-sm12px

Font sizes (by frequency)

SizeCount
12px14
14px10
13px10
11px6
15px6
18px5
16px5
21px3
170px2
40px2
48px2
10px2
22px2
2.75rem1
32px1
31px1
96px1
72px1
20px1
17px1

Weights in use: 400, 500, 600, 700, 900

Line heights (by frequency)

ValueCount
1.216
1.115
.957
17
1.47
.926
1.35
1.355
1.455
1.184

Letter spacing (by frequency)

ValueCount
.08em3
.06em2
-.5px1
-.02em1
.02em1
01
.01em1
.1em1

Spacing

Derived spacing scale

TokenValue
unit4px
xs4px
sm8px
md16px
lg32px
xl80px

Raw values (by frequency)

ValueCount
10px23
8px18
6px14
24px14
16px13
12px13
18px8
14px8
20px7
32px7
40px4
4px4
7px4
28px3
80px3
52px2

Borders & Radius

Derived radius tokens

TokenValue
md12px
lg40px
pill9999px

Raw values (resolved, by frequency)

RadiusCount
999vw20
24px8
999px5
50%4
40px3
14px3
03
12px2
20px2
16px2
18px2
100px1

Shadows

Derived elevation

TokenValue
sm0 12px 24px #0000001a
md0 0 8px #f0ff9100
lg0 7.66px 7.66px #0000000d,-5px -7px 7.66px -4px #00000040

All detected shadows

  • 0 12px 24px #0000001a
  • 0 18px 40px #0a30020d
  • 0 0 4px #f0ff91
  • 0 0 6px 8px #f0ff9100
  • 0 0 8px #f0ff9100
  • 0 10px 40px #0000001a,0 20px 60px -10px #0000001a
  • 0 7.66px 7.66px #0000000d,-5px -7px 7.66px -4px #00000040
  • 0 4px 18.6px #0000002b
  • 0 4px 12px #0000004d

Layout

Container max-width: 800px

Grid columns (largest detected grid): 3

Breakpoints

  • 580px
  • 640px
  • 768px
  • 800px
  • 801px
  • 900px
  • 1100px
  • 1120px

Animation & Motion

Transitions

  • opacity .3s
  • opacity .5s cubic-bezier(.4,1,.4,1)
  • background-color .2s cubic-bezier(.23,1,.32,1)
  • color .2s cubic-bezier(.23,1,.32,1)
  • grid-template-rows .12s cubic-bezier(.2,.8,.4,1)
  • top .2s cubic-bezier(.68,.05,.265,1.55)
  • transform .16s cubic-bezier(.65,.1,.6,1)
  • transform .2s cubic-bezier(.85,.05,.1,1)
  • opacity .2s cubic-bezier(.23,1,.32,1)
  • background-color .2s cubic-bezier(.23,1,.32,1),color .2s cubic-bezier(.23,1,.32,1)
  • background-color .15s
  • color .15s

Easing curves

  • cubic-bezier(.4,1,.4,1)
  • cubic-bezier(.23,1,.32,1)
  • cubic-bezier(.2,.8,.4,1)
  • cubic-bezier(.68,.05,.265,1.55)
  • cubic-bezier(.65,.1,.6,1)
  • cubic-bezier(.85,.05,.1,1)
  • cubic-bezier(.22,1,.36,1)
  • cubic-bezier(.36,0,.66,-.2)

Keyframes

@keyframes dga-module__LrmiHG__pulse { 0%{box-shadow:0 0 4px #f0ff91}75%{box-shadow:0 0 6px 8px #f0ff9100}to{box-shadow:0 0 8px #f0ff9100} }
@keyframes dga-module__LrmiHG__nearbyFoodSkeletonShimmer { 0%{background-position:200% 0}to{background-position:-200% 0} }
@keyframes dga-module__LrmiHG__heroLeadTextFade { 0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)} }
@keyframes dga-module__LrmiHG__heroTipFadeIn { 0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)} }
@keyframes dga-module__LrmiHG__heroTipBounce { 0%,to{transform:translateY(0)}50%{transform:translateY(-6px)} }
@keyframes dga-module__LrmiHG__askPlaceholderFade { 0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)} }
@keyframes dga-module__LrmiHG__askBarFoodShuffle { 0%,4%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1);transform:translateY(110%)scale(.9)}12%{opacity:1;transform:translateY(0)scale(1)}16%,22%{opacity:1;animation-timing-function:cubic-bezier(.36,0,.66,-.2);transform:translateY(0)scale(1)}25%,to{opacity:0;transform:translateY(-18%)scale(.94)} }
@keyframes ai-chat-module__lXq9jq__chatSurfaceEnter { 0%{opacity:0;transform:translateY(22px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)} }
@keyframes ai-chat-module__lXq9jq__saveConfirmPop { 0%{opacity:.5;transform:scale(.92)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)} }
@keyframes ai-chat-module__lXq9jq__broccoliPulse { 0%{opacity:.55;filter:drop-shadow(0 0 #47914f00);transform:scale(.92)}50%{opacity:1;filter:drop-shadow(0 10px 20px #47914f2e);transform:scale(1)}to{opacity:.55;filter:drop-shadow(0 0 #47914f00);transform:scale(.92)} }
@keyframes location-selector-module__I5PimW__updatePromptIn { 0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)} }
@keyframes video-player-modal-module__s_S0BG__spin { to{transform:rotate(360deg)} }
@keyframes usg-banner-module__ymIgGW__springUp { 0%{opacity:0;transform:translateY(100%)}50%{opacity:1}to{opacity:1;transform:translateY(25%)} }
@keyframes usg-banner-module__ymIgGW__springDown { 0%{opacity:1;transform:translateY(25%)}to{opacity:0;transform:translateY(100%)} }

Animations

  • .42s cubic-bezier(.16,1,.3,1) both ai-chat-module__lXq9jq__chatSurfaceEnter
  • .3s cubic-bezier(.25,1,.5,1) ai-chat-module__lXq9jq__saveConfirmPop
  • 1.45s ease-in-out infinite ai-chat-module__lXq9jq__broccoliPulse
  • .35s cubic-bezier(.25,1,.5,1) location-selector-module__I5PimW__updatePromptIn
  • none

CTA labels found on page

  • Real Food
  • State Of Our Health
  • The Solution
  • New Pyramid
  • Resources
  • Winning
  • FAQs

Effects

  • backdrop-filter: blur(24px)
  • backdrop-filter: blur(28px)
  • backdrop-filter: blur(18px)
  • backdrop-filter: blur(4px)
  • backdrop-filter: blur(12px)
  • backdrop-filter: blur(10px)
  • backdrop-filter: blur(20px)
  • backdrop-filter: blur(8px)
  • backdrop-filter: blur(16px)
  • backdrop-filter: blur(17.5px)

Source Design Tokens (CSS custom properties)

:root {
  --geist-mono: "Geist Mono", "Geist Mono Fallback";
  --size: 32px;
  --card-size: clamp(120px, 46vw, 240px);
  --top: 14.75%;
  --margin: 0;
  --font-geist-mono: var(--geist-mono), ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  --font-grotesk-medium: "Die Grotesk A", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --font-grotesk-bold: "Die Grotesk B", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --font-grotesk-display: "Die Grotesk D", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --xs-text-size: calc(12/16 * 1rem);
  --xs-line-height: 1.1;
  --xs-letter-spacing: calc(var(--xs-text-size) * -.02);
  --s-text-size: calc(14/16 * 1rem);
  --s-line-height: 1.4;
  --s-letter-spacing: calc(var(--s-text-size) * .02);
  --m-text-size: calc(16/16 * 1rem);
  --m-line-height: 1.18;
  --m-letter-spacing: calc(var(--m-text-size) * .02);
  --lg-text-size: calc(20/16 * 1rem);
  --lg-line-height: 1.1;
  --h4-text-size: calc(24/16 * 1rem);
  --h4-line-height: .92;
  --h3-text-size: calc(44/16 * 1rem);
  --h3-line-height: 1.04;
  --h2-text-size: calc(80/16 * 1rem);
  --h2-line-height: .92;
  --h1-text-size: calc(112/16 * 1rem);
  --h1-line-height: .84;
  --h-text-size: calc(96/16 * 1rem);
  --h-line-height: .956;
  --r-line-height: 1.5;
  --weight-bold: 700;
  --weight-medium: 500;
  --weight-regular: 400;
  --nav-height: 44px;
  --container: 1076px;
  --container-lg: 528px;
  --container-md: 460px;
  --container-sm: 340px;
  --container-xs: 266px;
  --tablet: 1120px;
  --landscape: 800px;
  --mobile: 580px;
  --mobile-xs: 340px;
  --padding-h: clamp(24px, 10vw, 180px);
  --padding-v: 128px;
  --padding-n: 210px;
  --gap-v: 100px;
  --margin-v: 40px;
  --gap-h: 32px;
  --off-white: #fdfbee;
  --off-black: #100;
  --sand: #f3f0d6;
  --dark-green: #153f15;
  --green: #066742;
  --ui: #0000001a;
  --ui-hovered: #00000014;
  --highlight: #f4ffae;
  --highlight-0: #f0ff91;
  --highlight-1: #b7d96e;
}

Do's and Don'ts

Do

  • Do reserve the accent #F4FFAE for interactive highlights and key moments — it is used sparingly on the source page.
  • Do keep the canvas at #FDFBEE; surfaces should stay within the detected neutral ramp.
  • Do stick to the detected font weight(s): 400, 500, 600, 700, 900.
  • Do align spacing to the 4px base unit derived from the page.

Don't

  • Don't introduce colors outside the detected palette — every hue above was found in the source.

Design Tokens (copy-paste)

:root {
  --color-background: #FDFBEE;
  --color-text-primary: #110000;
  --color-accent: #F4FFAE;
  --color-primary: #64C878;
  --color-surface: #FFFFFF;
  --color-secondary: #101114;
  --color-text-secondary: #47914F;
  --color-border: #E5E5E5;
  --color-on-primary: #110000;
  --color-on-secondary: #FFFFFF;
  --color-on-accent: #110000;
  --color-surface-container-lowest: #FFFFFF;
  --color-surface-container-low: #FAFAFA;
  --color-surface-container: #F5F5F5;
  --color-surface-container-high: #E5E5E5;
  --font-sans: var(--font-grotesk-medium);
  --font-size-display: 170px;
  --font-size-headline-lg: 40px;
  --font-size-headline-md: 31px;
  --font-size-title-lg: 22px;
  --font-size-body-lg: 18px;
  --font-size-body-md: 16px;
  --font-size-label-md: 14px;
  --font-size-label-sm: 12px;
  --radius-md: 12px;
  --radius-lg: 40px;
  --radius-pill: 9999px;
  --shadow-sm: 0 12px 24px #0000001a;
  --shadow-md: 0 0 8px #f0ff9100;
  --shadow-lg: 0 7.66px 7.66px #0000000d,-5px -7px 7.66px -4px #00000040;
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 32px;
  --space-xl: 80px;
  --tracking-display: -.5px;
  --tracking-label: .08em;
  --container-max: 800px;
}