Discover

spectr.pm vs Things

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
Things: Things - To-Do List App for Mac & iOS · Above the fold
Things
culturedcode.com· read 2026-11-03

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

Things

Heading on canvas

Body copy in the measured muted role.

Primary action
18.5: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

Things

  • canvas#F2F5F7
  • surface#021125
  • ink#000712
  • muted#44474B
  • hairline#001C46
  • primary#4F91FB
  • on-primary#FFFFFF

5 more, no measured role

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

Things

h1

36px · 700

h2

36px · 700

h1

27px · 700

body

24px · 400

body

24px · 600

body

23px · 400

body

20px · 400

Corners

Drawn at the measured radii.

spectr.pm

0px

Things

0px

6px

3px

6px

18px

8px

Spacing

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

spectr.pm

4
8
12
16
24
28
32
40

Things

4
8
12
16
20
24
28
36

Depth

Shadows cast on each side's own ground.

spectr.pm

sm

Things

No shadows measured.

Buttons

Rendered from the measured computed styles.

spectr.pm

primaryfilledprimary-smtext

Things

filledfilled-lgprimary

The measured values behind the panels above.

spectr.pmThings

At a glance

Ground — these differDarkLight
Corners — these differSharpRounded
Display size — these differ288px36px
Spacing base4px4px
Accent colours — these differ84
Type families — these differ21
Ink on canvas — these differ18.6:118.5:1
Components — these differ1110

Colour roles

primary — these differ#894DEF#4F91FB
accent—#55606E
canvas — these differ#0D0D0D#F2F5F7
surface — these differ#171717#021125
ink — these differ#FAFAFA#000712
body — these differ#B8B8B8#2C3138
muted—#44474B
hairline — these differ#2E2E2E#001C46
on-primary — these differ#FAFAFA#FFFFFF

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#4F91FB#55606E#2576EB#5C9CF5#26344A#8792A1#CFD8E6#F2F5F7#021125#000712#2C3138#44474B#9299A4#FFFFFF#001C46
Semantic——

Typography

Families — these differInter-e4c28016845df4efJetBrains Mono-33799697913f1f09ui-sans-serif
hero-display288px · 900 · 288px · -11.52px · uppercase · Inter-e4c28016845df4ef—
display132px · 800 · 198px · -2.64px · Inter-e4c28016845df4ef—
h1 — these differ72px · 800 · 72px · -2.52px · Inter-e4c28016845df4ef36px · 700 · 36px · 0px · ui-sans-serif
h2 — these differ44px · 800 · 46.2px · -1.32px · Inter-e4c28016845df4ef36px · 700 · 36px · 0px · ui-sans-serif
h3 — these differ19px · 600 · 28.5px · 0px · Inter-e4c28016845df4ef20.25px · 700 · 24.3px · 0px · ui-sans-serif
quote—18px · 400 · 25.2px · 0px · ui-sans-serif
heading — these differ16px · 600 · 24px · 0px · Inter-e4c28016845df4ef15.3px · 700 · 18.36px · 0px · ui-sans-serif
list-item16px · 500 · 24px · 0px · Inter-e4c28016845df4ef—
input—16px · 400 · normal · 0px · ui-sans-serif
body — these differ15px · 500 · 23.25px · 0px · Inter-e4c28016845df4ef15px · 600 · 24px · 0px · ui-sans-serif
button15px · 600 · 22.5px · 0px · Inter-e4c28016845df4ef—
nav-link—15px · 600 · 18px · 0px · ui-sans-serif
link — these differ14px · 500 · 20px · 0px · Inter-e4c28016845df4ef15.3px · 400 · 18.36px · 0px · ui-sans-serif
code13px · 600 · 19.5px · 1.82px · uppercase · JetBrains Mono-33799697913f1f09—
caption12px · 500 · 16.5px · 0px · Inter-e4c28016845df4ef—

Shape and rhythm

Radius — these differ0px0px3px5px6px6.4px7.632px8.586px18px
Spacing — these differ4px8px12px16px24px28px32px40px44px48px64px144px4px8px12px16px20px24px28px36px40px48px56px80px
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.330.800.750.900.500.92
Z-index — these differdropdown 10dropdown 50base 2modal 1000

Components

Sharedbutton-primarybutton-filledcardnavigationfooterlinkbutton-primarybutton-filledcardnavigationfooterlink
Only here — these differbutton-primary-smbutton-textbutton-text-2card-lglink-smbutton-filled-lgcard-smfooter-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-visiblelink:hoverlink:activeinput:activeinput:focusbutton:hoverbutton:activebutton:focusbutton:disabledother:hoverother:active

Responsive

Breakpoints — these differ375→343px · 6col768→704px · 3col1024→960px · 5col1280→1216px · 5col1440→1376px · 5col375→1920px768→1920px1024→1920px · 4col1280→1920px · 4col1440→1920px · 4col

Themes

Measured on the live site, not derived.

SupportSingle themeSingle theme

How this was measured

Differences here are ours, not the brands'.

Pages read66
Extracted — these differ2026-10-142026-11-03
StylesheetsReadableReadable
Roles unassigned — these differ105

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