refactor(ui): extract GlowOrbs backdrop into design-system#6603
Conversation
|
Claude finished @luizhf42's task in 6m 34s —— View job Code Review CompleteReviewed 22 files across code quality, security, testing, language patterns, and architecture — no new issues found. The code looks good as-is. A few things I specifically verified on this refactor:
If you push additional changes and want a new review, tag |
0f9a1b2 to
ceec034
Compare
Replace ~19 hand-rolled blur-orb backdrop blocks across `apps/console` and `apps/website` with a single stateless `<GlowOrbs>` primitive exposing a closed `preset` set (`hero`/`duo`/`section`/`corner`/`ambient`) and a token-only `tone`, mirroring how `Button`/`Badge` expose named variants instead of raw style props. `tone` is a discriminated union keyed on `preset` so an ambient-only tone cannot reach a static preset. Each tone's color utilities are spelled out as complete literals (Tailwind only emits classes it finds in source); geometry is shared across tones. `EmptyState` now renders through the same `ambient` preset as `AmbientBackground` instead of duplicating the orb markup locally. `SupportedPlatforms` stays inline (its Docker-brand hex orb is not a design token). Parity is at the shape/tone family level, not pixel-identical, so a few sites shift tone or orb position.
ceec034 to
26c325f
Compare
|
/review |
|
Claude finished @otavio's task in 4m 47s —— View job Code Review CompleteReviewed 22 files across code quality, security, testing, language patterns, and architecture — no new issues found. The code looks good as-is. Specifically verified on this refactor:
The tone/geometry shifts at some sites ( If you push additional changes and want a new review, tag |
What
Replaced ~19 hand-rolled blurred-orb decorative backdrops across
apps/consoleandapps/websitewith a single stateless<GlowOrbs>design-system primitive exposing a closedpresetset and a token-onlytone.Why
Every backdrop hand-picked its own orb count, size, blur, position, opacity, and color — the same duplication the design-system already eliminated for
ButtonandBadge. Consolidating onto named presets makes the backdrops consistent and gives them one place to evolve. Part of shellhub-io/team#114 step 6.Changes
packages/design-system— new<GlowOrbs>: five presets (hero/duo/section/corner/ambient), each owning a fixed orb count, size, blur, and position.toneis the only per-site variable and resolves to existing design tokens (primary,accent-cyan/blue/green/yellow/red) — no raw hex, no new tokens. Follows theprimitives/closed-enum to class-map pattern (Button/IconBadge).GlowOrbsPropsis a discriminated union keyed onpreset, so an ambient-only tone cannot reach a static preset (which would miss the class map and render a blank orb).toneis required except onhero.<GlowOrbs>.EmptyStaterenders the sameambientpreset asAmbientBackgroundinstead of duplicating the orb markup locally.SupportedPlatforms— its Docker-brand#1D63EDorb is a brand color, not a semantic token, so forcing it ontotonewould regress it.Testing
Parity is at the shape/tone-family level, not pixel-identical, so some sites shift by design — worth an eyeball pass:
features,how-it-works,integrations,RemoteSupport): these were primary-wash + accent-orb; the mono-tone preset follows the orb color, so the faint wash recolors to match.getting-startedgains an orb,HeroPricinggains a wash, andEmptyState/WelcomeScreennormalize onto the shared shapes.PageHeader'sdecoratedvariant has no consumer today (unrenderable in-app).tsc -b+ build clean for both apps, lint clean, 197 design-system tests pass (GlowOrbs: 5).