elk-zone on GitHub

elk-zone/elk

Reviewed against Rams quality heuristics: accessibility, color, typography, spacing, components, motion, UX, and craft.

30 files reviewed·July 25, 2026

View on GitHub

Top fix

Keep enforcing consistent spacing tokens as new components ship

More findings

  • Timeline hierarchy stays legible across dense reply threads
  • No accessibility or contrast regressions found across reviewed views

Verdict

Elk's UI is quiet, consistent, and unremarkable in the best sense: nothing fights the content. The biggest risk is complacency, a clean sweep like this can hide small drift if future PRs aren't held to the same bar.

Files Rams reviewed

app/pages/[[server]]/@[account]/[status].vue

app/pages/[[server]]/@[account]/index.vue

app/pages/[[server]]/@[account]/index/index.vue

app/pages/[[server]]/explore.vue

app/pages/[[server]]/explore/index.vue

app/pages/[[server]]/explore/links.vue

app/pages/[[server]]/explore/users.vue

app/pages/[[server]]/list/[list]/index.vue

app/pages/[[server]]/list/[list]/index/accounts.vue

app/pages/[[server]]/lists/index.vue

app/pages/[[server]]/tags/[tag].vue

app/pages/notifications.vue

app/pages/settings.vue

app/pages/settings/about/index.vue

app/pages/settings/language/index.vue

app/pages/settings/preferences/index.vue

app/pages/settings/profile/appearance.vue

app/pages/settings/profile/index.vue

app/pages/settings/users/index.vue

app/components/account/AccountAvatar.vue

app/components/account/AccountBigCard.vue

app/components/account/AccountBigCardSkeleton.vue

app/components/account/AccountFollowButton.vue

app/components/account/AccountFollowRequestButton.vue

app/components/account/AccountHeader.vue

app/components/account/AccountHoverWrapper.vue

app/components/account/AccountInfo.vue

app/components/account/AccountMoreButton.vue

app/components/account/AccountPaginator.vue

app/components/account/AccountPostsFollowers.vue

Working well

  • The relationship?.blockedBy state pairs a primary message with a distinct secondary explanation via text-secondary and text-secondary-light, giving blocked-profile feedback two levels of hierarchy instead of one flat notice.
  • Focusing and blurring the search input on activate/deactivate (onActivated/onDeactivated) is a thoughtful touch for keyboard users navigating a keep-alive tab structure, avoiding stale focus state.
  • Using onReactivated to silently refresh status and context on keep-alive reentry, rather than blocking with a full loading state, keeps navigation feeling instant while still staying fresh.
  • Using useLocalStorage with a hydration guard (isHydrated) before rendering the alert avoids a server/client mismatch flash, which is a common SSR pitfall handled correctly here.

Scored July 25, 2026 with Rams Engine v0.0.3 · Engine changelog
First scored July 9, 2026: 71/100. This rescore on v0.0.3: 98/100.

This page is an automated design review of elk-zone/elk’s UI code: 30 files read against 309 versioned rules covering accessibility, color, typography, spacing, components, UX, motion, and craft. The score is out of 100; confirmed criticals cap it — one at 59, two at 49, three or more at 39.

More design scores

Score your own repo.

Free on public repos, no account. The same engine that scored this page reads your UI code and mints a score page like this one.

Public repos only. The full engine reviews the UI code and mints a public score page — we email you the link too. Already-scored repos open instantly.

Or get a design review on every pull requestInstall Rams