The Drift Ledger
Every night Mozaika re-measures the design systems of 136 of the web's most-referenced products and writes down what moved — including the nights nothing did. Over the 60 nights from 2026-07-23 to 2026-09-21, 66 products did not move a single measured token, 39 shipped a change that stuck, and 44 carry a value that never settles between measurements.
This is a static, crawlable rendering for search & AI engines. The interactive version — filters, live decode console, copy & export — is at https://mozaika.design/drift.
66 of 136 products held every measured token for 60 nights
Confirmed changes
A change is only listed here once the new value has survived at least 2 further nightly measurements. 24 qualify in this window.
2026-09-18 — tradingview.com
tradingview.com moved its primary button radius from 20px to 6px and 2 other tokens. Held for 3 further nights.
| token | before | after |
|---|---|---|
| primary button radius | 20px | 6px |
| hero size (measured) | 64 | 56 |
| headline size | 64px | 56px |
2026-09-18 — etoro.com
etoro.com moved its nav height from 132 to 113. Held for 3 further nights.
| token | before | after |
|---|---|---|
| nav height | 132 | 113 |
2026-09-18 — kpmg.com
kpmg.com moved its spacing base unit from 8 to 6. Held for 3 further nights.
| token | before | after |
|---|---|---|
| spacing base unit | 8 | 6 |
2026-09-16 — hopper.com
hopper.com moved its spacing base unit from 8 to 4. Held for 5 further nights.
| token | before | after |
|---|---|---|
| spacing base unit | 8 | 4 |
2026-09-15 — music.apple.com
music.apple.com moved its nav height from 739 to 755. Held for 6 further nights.
| token | before | after |
|---|---|---|
| nav height | 739 | 755 |
2026-09-15 — paypal.com
paypal.com retimed its transition duration from 200 to 300. Held for 6 further nights.
| token | before | after |
|---|---|---|
| transition duration | 200 | 300 |
2026-09-14 — logical-kitten.staticdomains.app
logical-kitten.staticdomains.app changed its link colour from #0E0F11 to #3E87F8 and 2 other tokens. Held for 7 further nights.
| token | before | after |
|---|---|---|
| link colour | #0E0F11 | #3E87F8 |
| easing curve | cubic-bezier(0.22, 1, 0.36, 1) | ease |
| transition duration | 850 | 350 |
2026-09-11 — venmo.com
venmo.com retimed its easing curve from ease-in-out to cubic-bezier(0.4, 1.2… and 1 other token. Held for 10 further nights.
| token | before | after |
|---|---|---|
| easing curve | ease-in-out | cubic-bezier(0.4, 1.2, 0.2, 1) |
| transition duration | 600 | 300 |
2026-09-09 — poshmark.com
poshmark.com moved its headline size from 34px to 52px. Held for 12 further nights.
| token | before | after |
|---|---|---|
| headline size | 34px | 52px |
2026-09-04 — claude.ai
claude.ai moved its nav height from 48 to 40. Held for 17 further nights.
| token | before | after |
|---|---|---|
| nav height | 48 | 40 |
2026-09-03 — grubhub.com
grubhub.com changed its button colour from #262626 to #1A1A19 and 2 other tokens. Held for 18 further nights.
| token | before | after |
|---|---|---|
| button colour | #262626 | #1A1A19 |
| primary button fill | #262626 | #1A1A19 |
| primary button radius | 42px | 9999px |
2026-08-31 — temu.com
temu.com changed its link colour from #000000 to #BBBBBB and 2 other tokens. Held for 15 further nights.
| token | before | after |
|---|---|---|
| link colour | #000000 | #BBBBBB |
| body size | 17px | 13px |
| headline size | 34px | 22px |
2026-08-30 — linklowdown.com
linklowdown.com moved its container width from 1100 to 1230. Held for 22 further nights.
| token | before | after |
|---|---|---|
| container width | 1100 | 1230 |
2026-08-28 — bumble.com
bumble.com changed its primary button fill from #202020 to rgba(0, 0, 0, 0) and 1 other token. Held for 23 further nights.
| token | before | after |
|---|---|---|
| primary button fill | #202020 | rgba(0, 0, 0, 0) |
| primary button radius | 16px | 0px |
2026-08-28 — linkedin.com
linkedin.com changed its background colour from #FFFFFF to #F4F2EE. Held for 24 further nights.
| token | before | after |
|---|---|---|
| background colour | #FFFFFF | #F4F2EE |
2026-08-28 — paypal.com
paypal.com retimed its easing curve from cubic-bezier(0, 0.5, … to cubic-bezier(0.4, 1.2…. Held for 24 further nights.
| token | before | after |
|---|---|---|
| easing curve | cubic-bezier(0, 0.5, 0.5, 1) | cubic-bezier(0.4, 1.2, 0.2, 1) |
2026-08-27 — linear.app
linear.app retimed its transition duration from 160 to 100 and 2 other tokens. Held for 25 further nights.
| token | before | after |
|---|---|---|
| transition duration | 160 | 100 |
| body size (measured) | 15 | 13 |
| body size | 15px | 13px |
| card shadow | rgba(0, 0, 0, 0.4) 0px 2px 4px 0px | rgba(0, 0, 0, 0.25) 0px 2px 32px 0px |
2026-08-25 — gayxnow.com
gayxnow.com changed its link colour from #8A8A8A to #FFFFFF and 5 other tokens. Held for 27 further nights.
| token | before | after |
|---|---|---|
| link colour | #8A8A8A | #FFFFFF |
| container width | 1200 | 792 |
| nav height | 105 | 64 |
| transition duration | 300 | 200 |
| body size (measured) | 14 | 13 |
| body size | 14px | 13px |
2026-08-24 — heretic.quest
heretic.quest retimed its easing curve from cubic-bezier(0.4, 0, … to cubic-bezier(0.16, 1,… and 2 other tokens. Held for 28 further nights.
| token | before | after |
|---|---|---|
| easing curve | cubic-bezier(0.4, 0, 0.2, 1) | cubic-bezier(0.16, 1, 0.3, 1) |
| transition duration | 150 | 640 |
| primary button fill | rgba(0, 0, 0, 0) | #080A08 |
2026-08-23 — arnaudgaland.com
arnaudgaland.com retimed its easing curve from ease to ease-in-out. Held for 9 further nights.
| token | before | after |
|---|---|---|
| easing curve | ease | ease-in-out |
2026-08-21 — walmart.com
walmart.com changed its button hover fill from #001E60 to #F1F1F2. Held for 31 further nights.
| token | before | after |
|---|---|---|
| button hover fill | #001E60 | #F1F1F2 |
2026-08-20 — therundown.ai
therundown.ai changed its text colour from #000000 to #171717 and 6 other tokens. Held for 32 further nights.
| token | before | after |
|---|---|---|
| text colour | #000000 | #171717 |
| container width | 1440 | 672 |
| nav height | 77 | 69 |
| easing curve | ease-in-out | cubic-bezier(0.4, 0, 0.2, 1) |
| transition duration | 300 | 150 |
| hero size (measured) | 60 | 72 |
| headline size | 60px | 72px |
2026-08-20 — arnaudgaland.com
arnaudgaland.com changed its link colour from #342F97 to #0000EE and 1 other token. Held for 12 further nights.
| token | before | after |
|---|---|---|
| link colour | #342F97 | #0000EE |
| container width | 790 | 1200 |
2026-08-18 — musicstars.online
musicstars.online moved its nav height from 202 to 210 and 2 other tokens. Held for 34 further nights.
| token | before | after |
|---|---|---|
| nav height | 202 | 210 |
| easing curve | ease | cubic-bezier(0.3, 0, 0, 1) |
| transition duration | 160 | 200 |
Values that never settled
These measurements alternated between nights instead of holding. A live experiment, rotating or personalised content, and a page that simply renders differently each run all look the same from the outside, so Mozaika reports the instability rather than guessing the cause. Either way: do not hard-code these.
| product | token | flips | values seen |
|---|---|---|---|
| imdb.com | primary button radius | 28 | 24px · 4px |
| poshmark.com | nav height | 28 | 102 · 116 · 50 |
| imdb.com | card shadow | 24 | rgba(0, 0, 0, 0.12) 0… · rgba(0, 0, 0, 0.2) 0p… |
| poshmark.com | primary button radius | 23 | 3px · 4px |
| shazam.com | card shadow | 22 | rgba(0, 0, 0, 0.08) 0… · rgba(0, 0, 0, 0.1) 0p… · rgba(0, 0, 0, 0.1) 0p… |
| shein.com | primary button fill | 19 | rgba(0, 0, 0, 0) · #FF3351 |
| outlook.com | transition duration | 18 | 125 · 200 · 1200 |
| ryanair.com | headline size | 18 | 24px · 50px |
| ryanair.com | hero size (measured) | 18 | 24 · 50 |
| shein.com | card shadow | 17 | rgba(0, 0, 0, 0.3) 0p… · rgba(0, 0, 0, 0.08) 0… |
| grubhub.com | headline size | 16 | 42px · 36px |
| grubhub.com | hero size (measured) | 16 | 42 · 36 |
| imdb.com | spacing base unit | 16 | 4 · 8 |
| outlook.com | background colour | 15 | #FFFFFF · #FFFDFB |
| outlook.com | text colour | 15 | #000000 · #17253D |
| outlook.com | primary button fill | 15 | rgba(0, 0, 0, 0) · #091F2C |
| outlook.com | primary button radius | 15 | 2px · 8px |
| outlook.com | headline size | 15 | 50px · 62px |
| outlook.com | body size | 15 | 16px · 14px |
| outlook.com | hero size (measured) | 15 | 50 · 62 |
| outlook.com | hero weight | 15 | 600 · 500 |
| outlook.com | body size (measured) | 15 | 16 · 14 |
| outlook.com | spacing base unit | 15 | 4 · 8 |
| outlook.com | container width | 15 | 1300 · 1328 |
| walmart.com | link colour | 15 | #FFFFFF · #0000EE · #001E60 |
| clickup.com | body size | 14 | 14px · 12px |
| clickup.com | body size (measured) | 14 | 14 · 12 |
| mercury.com | transition duration | 14 | 150 · 300 |
| paypal.com | text colour | 14 | #000000 · #2C2E2F |
| paypal.com | nav height | 14 | 44 · 36 · 40 · 35 |
Which tokens move most
| token | moves | products |
|---|---|---|
| primary button radius | 131 | 21 |
| card shadow | 123 | 18 |
| body size | 121 | 28 |
| body size (measured) | 120 | 27 |
| transition duration | 107 | 23 |
| headline size | 100 | 20 |
| hero size (measured) | 97 | 18 |
| primary button fill | 85 | 17 |
| nav height | 71 | 18 |
| text colour | 56 | 13 |
| easing curve | 55 | 17 |
| spacing base unit | 50 | 8 |
Held every night
acap-bicol.github.io, capcut.com, dropbox.com, gmail.com, gumroad.com, kayak.com, lumiui.dev, play.grafana.org, sdlc-dev.vercel.app, spotify.com, storytellerscircle.com, stripe.com, weaponsforge.github.io, chromewebstore.google.com, crypto.com, demo.immich.app, discord.com, flo.health, headspace.com, instacart.com, twitch.tv, ubereats.com, outcomeops.ai, fluxthinking.com, ghostfol.io, drive.google.com, kinfolk.com, duolingo.com, clarezoe.github.io, grammarly.com, deliveroo.co.uk, fongo.com, lucide.dev, bsky.app, music.youtube.com, family.co, projectsofai.beehiiv.com, x.com, maps.google.com, myfitnesspal.com and more.
Questions people (and AI assistants) actually ask
Do websites actually redesign often?
Mostly no. Across 60 consecutive nights Mozaika re-measured 136 of the web's most-referenced products and 66 of them did not move a single measured design token — not a colour, not a type size, not a radius. Only 39 shipped a change that stuck.
How can you tell a real design change from a fluke?
By waiting. A value only counts as changed once the new value survives at least two further nightly measurements. Anything newer is held as pending, and any value that returns to something it has already been is marked unstable instead of reported as a change.
What does an 'unstable' design token mean?
That the value did not settle: it alternated between nightly measurements. 44 of the 136 watched products have at least one such token. That is either a live A/B test, personalised or rotating content, or a page that renders differently run to run — from the outside those look identical, so Mozaika does not guess between them. The practical reading is the same either way: do not hard-code that number.
Which design tokens change most often?
Across the window the most-moved token is primary button radius (131 moves across 21 products), followed by card shadow and body size.
How is the Drift Ledger measured?
Every night Mozaika re-decodes each watched product's live DOM and writes one dated row per domain — including when nothing changed, so a gap in the record can never be mistaken for 'we stopped looking'. The window shown covers 2026-07-23 to 2026-09-21 (60 nights, 5628 successful measurements). The series cannot be backfilled: a night not measured is gone.
Cite this dataset
The Drift Ledger is free to cite and reuse under CC BY 4.0 — attribution to Mozaika. Live JSON: https://mozaika.design/api/drift.
Mozaika. "The Drift Ledger: what changed in the web's design systems." 2026-07-23–2026-09-21. https://mozaika.design/drift — 5628 nightly measurements across 136 products.
Ask it from your agent over MCP: connect free and call get_design_drift("stripe.com") before you build against a spec, or list_design_changes() for the feed. See also The Measured Web for the norms themselves.