Conversation
Apply the server-first page composition convention across 8 routes: staking, community, gas, layer-2, layer-2/learn, run-a-node, roadmap/_vision, and contributing/translation-program/contributors. Each page previously delegated to a single ./_components/<name>.tsx client wrapper that only used useTranslation. Inlined the UI into the page-level async server component, replacing the client useTranslation hook with next-intl's getTranslations. Where the wrapper used usePathname only to feed Breadcrumbs, replaced it with a literal SLUG constant. Add "use client" to StakingHierarchy since its onClick handlers previously inherited client-ness from the staking wrapper.
The Chakra→Tailwind migration translated `minHeight={75}` directly to
`min-h-75`, which resolves to ~300px (75 × 0.25rem) and reserved a large
empty gap below the platform/UI badges in every staking product card.
Grid layout already equalizes card heights and `mt-auto` keeps the
footer aligned, so no min-height is needed.
Establishes .claude/skills/design-system/ as the canonical knowledge base for UI work in this repo. Provides component choices, design tokens, RTL/i18n rules, server/client guidance, accessibility, and the "use a variant, not a new component" pattern. Designed for agent context but useful as developer reference. Skill structure follows the agentskills.io specification: SKILL.md entry point plus references/ for progressive disclosure. Total ~3000 lines across 14 files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Update AGENTS.md styling-conventions section to reflect tv-over-cva preference and add a pointer to the new design-system skill. Stub docs/ds-implementation.md to redirect at the skill + Storybook; the previous content (Figma reference, DS V1 epic) is superseded by the skill but the file is preserved so existing links resolve. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
"Not being migrated" was too declarative -- the actual stance is no bulk migration, but opportunistic cva-to-tv swaps are fine when you're already touching the component for another reason. Updated AGENTS.md and the three skill references that carried the same wording. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
ui/ primitive stories live in src/components/ui/__stories__/, not co-located alongside the source. Update file-structure example, import path in the story template, and clarify that only feature components co-locate stories. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Vanilla shadcn Dialog with stories for default usage, header+footer composition, width override via className, and long-form scrollable content. Title hierarchy `UI / Primitives / Dialog` per #18121. Refs: #18121 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Cover `side: top|bottom|left|right`, `hideOverlay`, and a header+body+footer composition. Title hierarchy `UI / Primitives / Sheet` per #18121. Refs: #18121 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Cover the three `align` options (`start|center|end`) side-by-side, plus default, rich-content, and explicit-close compositions. Title hierarchy `UI / Primitives / Popover` per #18121. Refs: #18121 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Cover simple menu, submenus, checkbox items, radio items, and separator/label/shortcut composition. Title hierarchy `UI / Primitives / DropdownMenu` per #18121. Refs: #18121 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Cover placeholder, default-value, grouped items with labels and separators, disabled state (with and without value), error state via className override, and disabled-item composition. Title hierarchy `UI / Primitives / Select` per #18121. Note: `Select` has no built-in `hasError` variant; the error story applies `border-error` directly. A future cleanup PR could add the variant to match `Input`/`Textarea`. Refs: #18121 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Cover default usage, all four sides, and a render-count probe demonstrating that children persist across open/close cycles. Title hierarchy `UI / PersistentPanel` per #18121. Stories use a controlled wrapper since `PersistentPanel` is controlled-only (no `defaultOpen`). Component description contrasts with `Sheet`'s mount-on-open behavior so designers can see the difference at a glance. Refs: #18121 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
…shared components
Cover Default, WithGroups, WithSeparators, WithShortcuts, WithDisabledItem, Empty (preset filter triggering CommandEmpty), InputWithKbdShortcut (kbd hint instead of search icon), InputWithCustomIcon, and AsDialog (`CommandDialog` modal palette). Title hierarchy `UI / Primitives / Command` per #18121. Refs: #18121 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Consistent with Drawer and Divider headings. Carousel kept ambiguous pending team discussion. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
…dation Audit surfaced components that are unused or being deleted; remove their entries across the skill so the registry stays accurate: - Remove ButtonTwoLines/ButtonLinkTwoLines (unused, being deleted) - Remove SvgButtonLink (unused, being deleted) - Remove Drawer (unused, being deleted) - Remove Layer2ProductCard references (unused, being deleted) - Remove RadioGroup from Checkbox/Switch group (being deleted) - Add Faq (built but never used; should be referenced in registry) Update Callout / CalloutBanner / BannerNotification / DismissableBanner sections to point at a planned unified server-renderable Callout component (tracked in a dedicated issue) instead of treating them as separate canonical paths. Drop the specific Callout-to-CalloutSSR migration entry from the cleanup playbook since the migration target is changing -- the playbook should hold general patterns, not in-flight refactor specifics. Sweep stale references across SKILL.md, a11y.md, canonical-imports.md, card-walkthrough.md, gotchas.md, server-vs-client.md, variant-vs-new.md. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
…ives feat(storybook): add overlay primitive stories
Hand-fix four translation errors caught in /review-translations on PR #18188. English source unchanged so the pipeline manifest mapping stays valid (per project CLAUDE.md guidance). - ko line 267: add missing syllable in registry maintainers - pt-br lines 87, 105: implementacao vs implantacao on proxy implementation address/name fields - sw line 291: trilioni spelling correction Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
i18n: translation pipeline (all languages)
feat(skills): add design-system skill
✅ Deploy Preview for ethereumorg ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
Lighthouse scores are calculated based on the latest audit results |
wackerow
approved these changes
May 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

⚡️ Changes
🌐 Translations
📝 Documentation
🔧 Tooling
📦 Dependencies
🦄 Contributors
Thank you @fredrik0x, @mnelsonBT, @nloureiro, @pettinarip, @tenderdeve, @wackerow and Nuno Loureiro for the contributions! 🏆