โ† All reports

TryGhost/Ghost

Independent technology for modern publishing, memberships, subscriptions and newsletters.

โ˜… 56k ยท react, tailwind, storybook, headlessui, radix ยท scanned 2026-10-26 at 8d85bb9

71
design health ยท largely tokenized
How this is scored ยท CLI 0.8.12
Value discipline
31/60
Token health
20/20
Consistency
10/10
Critical issues
10/10

The path to 100: 29 points

  • +29 Replace the hardcoded values in 273 of the 277 findings with tokens or scale steps ยท Value discipline
Left alone: 30 values the code marks as deliberate ยท not counted in the score

Buoy skips a value when a comment explains it or marks it as known debt, when it is a 2โ€“3px optical nudge, or when the commit that added it says it was deliberate. 26 optical nudges ยท 4 explained in a comment.

277
hardcoded-value findings
plus 7 in vendored shadcn/ui files, not scored
500
design tokens found
1,908
components

Most repeated literal colours

  • #ffffff 43ร—
  • #c8ccd3 8ร—
  • #222222 8ร—
  • #dddddd 7ร—
  • #8a8f98 6ร—
  • #bbbbbb 6ร—
  • #15171a 5ร—

Most repeated literal spacing

  • 10px21ร—
  • -5px17ร—
  • 6rem14ร—
  • 20px10ร—
  • 6px10ร—
  • 8px10ร—
  • 28px9ร—
  • 4rem9ร—

Files with the most drift

Drift by type

  • Hardcoded values284

Examples

apps/portal/src/components/pages/account-plan-page.jsx:376
RetentionOfferSection
  • marginTop: 20px (line 446)
  • marginTop: 32px (line 461)
  • marginBottom: 24px (line 462)
apps/portal/src/components/pages/newsletter-selection-page.jsx:97
NewsletterSelectionPage
  • marginBottom: 20px (line 132)
apps/activitypub/src/components/feed/deleted-feed-item.tsx:10
apps/activitypub/src/components/feed/deleted-feed-item.tsx
  • mt-[-5px] (line 10)
  • px-[10px] (line 11)
  • mb-[-13px] (line 16)
apps/activitypub/src/components/feed/feed-item.tsx:839
apps/activitypub/src/components/feed/feed-item.tsx
  • pb-[18px] (line 839)
  • pl-[52px] (line 920)
  • ml-[-8px] (line 946)
apps/activitypub/src/components/feed/feed-item.tsx:720
apps/activitypub/src/components/feed/feed-item.tsx
  • leading-[1.4285714286] (line 720)
  • tracking-[-0.006em] (line 720)
  • leading-[1.4em] (line 936)
apps/activitypub/src/components/global/ap-reply-box.tsx:44
apps/activitypub/src/components/global/ap-reply-box.tsx
  • text-[1.5rem] (line 44)
apps/activitypub/src/components/global/profile-preview-hover-card.tsx:195
apps/activitypub/src/components/global/profile-preview-hover-card.tsx
  • [&_a]:text-[#00a4eb] (line 195)
apps/activitypub/src/components/global/show-replies-button.tsx:56
apps/activitypub/src/components/global/show-replies-button.tsx
  • mt-[-7px] (line 56)
apps/activitypub/src/components/global/suggested-profiles.tsx:102
apps/activitypub/src/components/global/suggested-profiles.tsx
  • mb-[-15px] (line 102)
apps/activitypub/src/components/layout/error/error.tsx:112
apps/activitypub/src/components/layout/error/error.tsx
  • rounded-[20px] (line 112)
apps/activitypub/src/components/layout/error/error.tsx:115
apps/activitypub/src/components/layout/error/error.tsx
  • text-[2.9rem] (line 115)
  • leading-[1.3] (line 115)
  • tracking-[-0.021em] (line 115)
apps/activitypub/src/components/layout/header/header.tsx:36
apps/activitypub/src/components/layout/header/header.tsx
  • mr-[-9px] (line 36)
  • max-lg:pr-[15.5px] (line 68)
  • max-md:ml-[10px] (line 70)

What Buoy would do about it

Maintainers: this scan used the MIT-licensed CLI at commit 8d85bb9. Run it yourself with npx @buoy-design/cli show health, or install the GitHub App to get the fix suggested on every PR. If anything here is wrong, open an issue and we will correct the page. If you would rather this report not be public, email support@buoy.design and we will take it down.

The score describes how much of the UI goes through design tokens, not the quality of the product or the team. Scores can shift between CLI versions as detection improves; this one was produced by CLI 0.8.12. How the score works.