Discover

spectr.pm vs Teenage Engineering

Two design systems side by side, measured from the live sites — colour, type, shape, depth, components, states and responsive behaviour.

spectr.pm: Spectr - AI Product Ops: Meetings to PRDs, Specs & Stories · Above the fold
spectr.pm
spectr.pm· read 2026-10-14

Ground and ink

Each side painted in its own measured canvas, ink, muted and primary roles.

spectr.pm

Heading on canvas

Body copy in the measured muted role.

Primary action
18.6:1 ink on canvas

Teenage Engineering

Heading on canvas

Body copy in the measured muted role.

Primary action
16.7:1 ink on canvas

Palette

Named roles first, then every colour measured without one.

spectr.pm

  • canvas#0D0D0D
  • surface#171717
  • ink#FAFAFA
  • hairline#2E2E2E
  • primary#894DEF
  • on-primary#FAFAFA

10 more, no measured role

Teenage Engineering

  • canvas#000000
  • ink#E5E5E5
  • primary#F1F2F2

Type scale

Set at the measured size, weight, tracking and leading. Brand typefaces are not loaded, so the metrics are real and the letterforms are not.

spectr.pm

hero-display

288px · 900 · shown smaller

display

280px · 900 · shown smaller

display

252px · 900 · shown smaller

display

200px · 900 · shown smaller

display

132px · 800 · shown smaller

display

99px · 600 · shown smaller

h2

92px · 800 · shown smaller

Teenage Engineering

heading

40px · 700 · shown smaller

heading

40px · 400 · shown smaller

body

20px · 100

body

19px · 100

body

19px · 300

link

16px · 100

label

16px · 300

Corners

Drawn at the measured radii.

spectr.pm

0px

Teenage Engineering

0px

0px

0px

Spacing

One shared scale across both sides, so the bars are directly comparable.

spectr.pm

4
8
12
16
24
28
32
40

Teenage Engineering

16
24
32
68

Depth

Shadows cast on each side's own ground.

spectr.pm

sm

Teenage Engineering

No shadows measured.

Buttons

Rendered from the measured computed styles.

spectr.pm

primaryfilledprimary-smtext

Teenage Engineering

text

The measured values behind the panels above.

spectr.pmTeenage Engineering

At a glance

GroundDarkDark
CornersSharpSharp
Display size — these differ288px40px
Spacing base — these differ4px16px
Accent colours — these differ80
Type families22
Ink on canvas — these differ18.6:116.7:1
Components — these differ115

Colour roles

primary — these differ#894DEF#F1F2F2
canvas — these differ#0D0D0D#000000
surface#171717—
ink — these differ#FAFAFA#E5E5E5
body#B8B8B8—
hairline#2E2E2E—
on-primary#FAFAFA—

Full palette

Every colour each extraction kept, including the ones with no measured role.

All colours — these differ#894DEF#A273F2#14532D#78350F#166534#4ADE80#92400E#FBBF24#0D0D0D#171717#FAFAFA#B8B8B8#2E2E2E#6B6B6B#000000#262626#F1F2F2#000000#E5E5E5
Semantic——

Typography

Families — these differInter-e4c28016845df4efJetBrains Mono-33799697913f1f09te-20TechnoType
hero-display288px · 900 · 288px · -11.52px · uppercase · Inter-e4c28016845df4ef—
display132px · 800 · 198px · -2.64px · Inter-e4c28016845df4ef—
h172px · 800 · 72px · -2.52px · Inter-e4c28016845df4ef—
h244px · 800 · 46.2px · -1.32px · Inter-e4c28016845df4ef—
h319px · 600 · 28.5px · 0px · Inter-e4c28016845df4ef—
heading — these differ16px · 600 · 24px · 0px · Inter-e4c28016845df4ef39.6735px · 700 · 44.0816px · -0.89px · TechnoType
list-item — these differ16px · 500 · 24px · 0px · Inter-e4c28016845df4ef16px · 300 · 24px · 0px · te-20
label—16px · 300 · 24px · 0px · lowercase · te-20
body — these differ15px · 500 · 23.25px · 0px · Inter-e4c28016845df4ef19.102px · 100 · 22.0408px · 0px · te-20
button15px · 600 · 22.5px · 0px · Inter-e4c28016845df4ef—
link — these differ14px · 500 · 20px · 0px · Inter-e4c28016845df4ef16px · 100 · 24px · 0px · te-20
code13px · 600 · 19.5px · 1.82px · uppercase · JetBrains Mono-33799697913f1f09—
caption — these differ12px · 500 · 16.5px · 0px · Inter-e4c28016845df4ef9px · 100 · 13.5px · 0px · te-20

Shape and rhythm

Radius0px0px
Spacing — these differ4px8px12px16px24px28px32px40px44px48px64px144px16px24px32px68px
Border widths1px1px

Depth

Strategy — these differsingle-tiercolor-blocking
Shadows — these differrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.1) 0px 4px 6px -4px—
Gradients——
Opacity — these differ1.000.700.900.940.650.360.70
Z-index — these differdropdown 10dropdown 50dropdown 10sticky 100modal 1000

Components

Sharedbutton-textnavigationfooterlinkbutton-textnavigationfooterlink
Only here — these differbutton-primarybutton-filledbutton-primary-smbutton-text-2cardcard-lglink-smlink-2
Signature——

Interaction states

Read from each site's own stylesheets. An empty side means they were cross-origin and unreadable.

Measured — these differother:focus-visibleinput:hoverother:hovercard:hoverother:focusother:disablednav:hovernav:focus-visibleother:disabledother:hoverinput:focusinput:disabledother:focuslink:hoverbutton:hoverbutton:focusnav:hovernav:focuscard:activebutton:activeinput:hover

Responsive

Breakpoints — these differ375→343px · 6col768→704px · 3col1024→960px · 5col1280→1216px · 5col1440→1376px · 5col375→341px · 3col768→697px · 7col1024→930px · 7col1280→1162px · 7col1440→1308px · 7col

Themes

Measured on the live site, not derived.

SupportSingle themeSingle theme

How this was measured

Differences here are ours, not the brands'.

Pages read6—
Extracted — these differ2026-10-142026-11-03
Stylesheets — these differReadablePartly blocked
Roles unassigned — these differ100

Measured by DesignMD from the live sites. Compare two others. Generate a DESIGN.md for your own site.