Discover

agentsure.us vs Dub

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

agentsure.us: Agentsure — AI Incident Response & Recovery, retained. · Above the fold
agentsure.us
agentsure.us· read 2026-10-14
Dub: Dub - The Modern Link Attribution Platform · Above the fold
Dub
dub.co· read 2026-11-03

Ground and ink

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

agentsure.us

Heading on canvas

Body copy in the measured muted role.

Primary action
21:1 ink on canvas

Dub

Heading on canvas

Body copy in the measured muted role.

Primary action
21:1 ink on canvas

Palette

Named roles first, then every colour measured without one.

agentsure.us

  • canvas#FFFFFF
  • ink#000000
  • muted#1A1A1A
  • hairline#E6E6E6
  • primary#005032
  • on-primary#FFFFFF

5 more, no measured role

Dub

  • canvas#FFFFFF
  • ink#000000
  • muted#171717
  • hairline#E5E5E5
  • primary#171717
  • on-primary#FFFFFF

8 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.

agentsure.us

h1

72px · 500 · shown smaller

display

72px · 400 · shown smaller

h2

48px · 500 · shown smaller

display

48px · 400 · shown smaller

h3

28px · 500

heading

24px · 500

heading

22px · 500

Dub

h1

48px · 500 · shown smaller

h2

48px · 500 · shown smaller

display

48px · 500 · shown smaller

display

40px · 500 · shown smaller

heading

36px · 400

heading

36px · 500

h2

36px · 500

Corners

Drawn at the measured radii.

agentsure.us

6px

pill

0px

0px

8px

Dub

0px

8px

0px

pill

6px

12px

Spacing

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

agentsure.us

4
8
12
16
20
24
28
32

Dub

4
8
12
16
20
24
32
40

Depth

Shadows cast on each side's own ground.

agentsure.us

No shadows measured.

Dub

sm

md

lg

xl

Buttons

Rendered from the measured computed styles.

agentsure.us

primaryprimary-lgoutlineoutline-sm

Dub

filledsecondaryfilled-lgsecondary-sm

The measured values behind the panels above.

agentsure.usDub

At a glance

GroundLightLight
CornersPillPill
Display size — these differ72px48px
Spacing base4px4px
Accent colours — these differ46
Type families — these differ24
Ink on canvas21.0:121.0:1
Components1010

Colour roles

primary — these differ#005032#171717
accent—#3B82F6
link — these differ#0000EE#2563EB
canvas#FFFFFF#FFFFFF
ink#000000#000000
body — these differ#0D1016#0A0A0A
muted — these differ#1A1A1A#171717
hairline — these differ#E6E6E6#E5E5E5
on-primary#FFFFFF#FFFFFF

Full palette

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

All colours — these differ#005032#0000EE#E68846#C0392B#C9BBA3#FFFFFF#000000#0D1016#1A1A1A#68655E#E6E6E6#F2E9DA#888888#171717#3B82F6#2563EB#1F2937#581C87#EA580C#BFDBFE#111827#FFFFFF#000000#0A0A0A#262626#E5E5E5#525252#737373#404040
Semantic——

Typography

Families — these differInter TightJetBrains MonoIntersatoshiGeistMonoRowan
h1 — these differ72px · 500 · 74.88px · -1.8px · Inter Tight48px · 500 · 55.2px · 0px · satoshi
h2 — these differ48px · 500 · 51.84px · -1.06px · Inter Tight48px · 500 · 48px · 0px · satoshi
display — these differ48px · 400 · 51.84px · -1.06px · Inter Tight40px · 500 · 40px · 0px · satoshi
h3 — these differ28px · 500 · 33.6px · -0.5px · Inter Tight16px · 500 · 24px · 0px · Inter
heading — these differ22px · 500 · 26.84px · -0.26px · Inter Tight30px · 400 · 41.25px · 0px · Inter
body — these differ15.5px · 400 · 24.8px · 0px · Inter Tight14px · 400 · 20px · 0px · Inter
quote15.5px · 400 · 23.25px · 0px · Inter Tight—
input14.5px · 400 · 20.3px · 0px · Inter Tight—
button — these differ14px · 500 · 14px · 0px · Inter Tight14px · 500 · 14px · 0px · Inter
list-item — these differ14px · 400 · 21px · 0px · Inter Tight16px · 400 · 24px · 0px · Inter
table-header—14px · 700 · 20px · 0px · Inter
nav-link — these differ13px · 400 · 20.15px · 0px · Inter Tight14px · 500 · 20px · 0px · Inter
caption — these differ13px · 400 · 20.15px · 0px · JetBrains Mono12px · 500 · 16px · 0px · Inter
code — these differ12.5px · 400 · 21.25px · 0px · JetBrains Mono14px · 400 · 20px · 0px · GeistMono
h4 — these differ11px · 500 · 18.7px · 1.54px · uppercase · JetBrains Mono14px · 600 · 20px · 0px · Inter
link — these differ11px · 400 · 18.7px · 0.44px · JetBrains Mono16px · 400 · 24px · 0px · Inter
label — these differ10.5px · 500 · 16.275px · 1.26px · uppercase · JetBrains Mono14px · 500 · 20px · -0.28px · Inter

Shape and rhythm

Radius — these differ0px6px8px9999px0px0px 6px 6px 0px2px6px8px10px12px9999px
Spacing — these differ4px8px12px16px20px24px28px32px36px40px48px56px4px8px12px16px20px24px32px40px44px48px64px164px
Border widths — these differ1px1px2px

Depth

Strategy — these differcolor-blockinglayered-micro
Shadows — these differ—rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0pxrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px, rgba(0, 0, 0, 0.06) 0px 1px 2px -1px, rgba(0, 0, 0, 0.04) 0px 2px 4px 0pxrgb(255, 255, 255) 0px 0px 0px 3px, rgb(0, 0, 0) 0px 0px 0px 4px, rgba(0, 0, 0, 0) 0px 0px 0px 0pxrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.02) 0px 0px 0px 1px, rgba(0, 0, 0, 0.08) 0px 1px 3px 0px
Gradients — these differ—section: linear-gradient(rgb(82, 82, 82), rgb(38, 38, 38))section: linear-gradient(to top, rgb(229, 229, 229), rgba(229, 229, 229, 0))hero: linear-gradient(90deg, rgb(131, 222, 175), rgb(96, 135, 234), rgb(216, 237, 141))section: linear-gradient(to top, rgb(3, 171, 241), rgba(255, 255, 255, 0))section: linear-gradient(rgb(255, 255, 255), rgb(250, 250, 250))section: linear-gradient(to right, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0))section: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0))section: linear-gradient(90deg, rgba(0, 0, 0, 0) 0px, rgb(0, 85, 255) 198px, rgb(0, 85, 255) 281px, rgb(0, 85, 255) 370px, rgba(0, 0, 0, 0) 562px)section: radial-gradient(140px at 818.4px -536px, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.06) 75%)section: radial-gradient(140px at 645.175px -537.3px, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.06) 75%)section: radial-gradient(140px at 476.175px -537.3px, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.06) 75%)section: radial-gradient(140px at 307.175px -537.3px, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.06) 75%)section: radial-gradient(140px at 138.175px -537.3px, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.06) 75%)hero: linear-gradient(90deg, rgb(123, 87, 190), rgb(234, 213, 55))hero: linear-gradient(rgb(255, 255, 255), rgba(0, 0, 0, 0))
Opacity — these differ—0.500.300.150.600.200.70
Z-index — these differdropdown 50dropdown 55dropdown 60base 1base 2base 3dropdown 10dropdown 11dropdown 14dropdown 17dropdown 20

Components

Sharedfooterlinkfooterlink
Only here — these differbutton-primarybutton-primary-lgbutton-outlinebutton-outline-smcardcard-lgnavigationlink-2button-filledbutton-secondarybutton-filled-lgbutton-secondary-smbadge-textbadge-primarybadge-primary-2link-lg
Signature——

Interaction states

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

Measured — these differbutton:hovernav:hoverother:hoverinput:focusother:disabledinput:focusother:focusother:hoverlink:hover

Responsive

Breakpoints — these differ375→335px · 1col768→704px · 1col1024→960px · 3col1280→1180px · 3col1440→1180px · 3col375→375px · 5col768→768px · 5col1024→1024px · 5col1280→1280px · 5col1440→1440px · 5col

Themes

Measured on the live site, not derived.

SupportSingle themeSingle theme

How this was measured

Differences here are ours, not the brands'.

Pages read—6
Extracted — these differ2026-10-142026-11-03
StylesheetsPartly blockedPartly blocked
Roles unassigned — these differ58

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