[PULSE-56] Consolidate pulse-frontend with ciphera-ui (design system migration) #30
Reference in New Issue
Block a user
No description provided.
Delete Branch "staging"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Work Item
PULSE-56
Summary
Changes
Test Plan
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
Greptile Summary
This PR consolidates 6 local duplicate files into
@ciphera-net/uiv0.0.57 as part of a design-system migration: auth error utilities (authErrors.ts), format utilities (format.ts),CodeBlock,SwissFlagIcon, andLoadingOverlayare all deleted and their callsites updated to import from the shared package. Inline spinners across dashboard widgets and settings are replaced with the design-systemSpinnercomponent, and hardcodedselection:bg-brand-orange/20classes are removed from public page wrappers in favour of the base styles provided by@ciphera-net/ui.Issues found:
styles/globals.css— removed CSS classes still in active use.card-glass,gradient-text,badge-primary,bg-grid-pattern, andglow-orangewere deleted fromglobals.cssbut are still referenced in 21 places acrossapp/features/page.tsx,app/page.tsx,app/faq/page.tsx,app/about/page.tsx,app/installation/page.tsx, all integration pages,app/not-found.tsx, andcomponents/PricingSection.tsx. The PR relies on the@ciphera-net/uitailwind preset to supply these classes, but there is no in-repo verification that the preset actually does so. If they are absent, glass-blur effects, gradient text, badge styles, and background dot grids will all silently break.app/sites/[id]/uptime/page.tsx— potentially undefined CSS variable. Five recharts color props (stopColor,stroke,fill) were changed tovar(--color-brand-orange). The project'sDESIGN_SYSTEM.mdandstyles/globals.cssonly define--brand-orange(nocolor-prefix). Thecolor-prefix variant is not documented anywhere in this repo; if the@ciphera-net/uipreset does not inject it, the uptime chart's area fill, gradient, and line stroke will all render as transparent.components/Footer.tsx— undocumented layout narrowing. The authenticated footer container was quietly changed frommax-w-7xltomax-w-6xlwithout mention in the PR description or CHANGELOG.Confidence Score: 2/5
@ciphera-net/uiinternals create real risk: (1) five CSS utility classes deleted fromglobals.cssare still used in 21 call sites and assumed to be re-provided by the package's tailwind preset — if the preset version doesn't include them, multiple public-facing pages will lose their visual design silently; (2)var(--color-brand-orange)used in the uptime chart is undocumented in this repo and may not be defined anywhere, which would render the chart's area and line as transparent. Neither issue would produce a JS error or build failure, making them easy to miss without visual testing of every affected page.Important Files Changed
Flowchart
Last reviewed commit:
3e8cd8d47 files reviewed, 3 comments
Edit Code Review Agent Settings | Greptile
CSS variable name not defined in design system
var(--color-brand-orange)is used for chart colors, but this variable is not documented or defined anywhere in the project. TheDESIGN_SYSTEM.mdandstyles/globals.cssonly document--brand-orange(without thecolor-prefix), alongside--color-success,--color-warning, and--color-errorfor semantic tokens.If
@ciphera-net/ui's tailwind preset does not inject--color-brand-orangeas a CSS custom property, all five of these chart color references will resolve totransparent/initial, causing the uptime response-time chart's area fill, gradient stops, stroke line, and active dot to render as invisible.The consistent pattern in
Chart.tsxis to use hardcoded hex values via aCHART_COLORSobject. Consider verifying the variable is actually injected by the preset, or falling back to the documented--brand-orange:Prompt To Fix With AI
Unlisted layout change: authenticated footer width narrowed
The authenticated footer container was changed from
max-w-7xltomax-w-6xl, but this is not mentioned in the PR description or CHANGELOG. The site dashboard pages (e.g.app/sites/[id]/page.tsx:235) usemax-w-6xl, so this may be intentional for alignment — but it's worth confirming this narrowing of the authenticated footer is deliberate.Prompt To Fix With AI
Additional Comments (1)
styles/globals.cssRemoved CSS classes still actively used in 21 locations
The classes
card-glass,gradient-text,badge-primary,bg-grid-pattern, andglow-orangewere removed fromglobals.css, but they are still referenced across the codebase:bg-grid-pattern—app/about/page.tsx:66,app/features/page.tsx:115,app/installation/page.tsx:17,app/integrations/*/page.tsx,app/not-found.tsx:13,app/page.tsx:185,components/IntegrationGuide.tsx:45badge-primary—app/faq/page.tsx:106,app/features/page.tsx:128,app/page.tsx:199,components/PricingSection.tsx:299gradient-text—app/features/page.tsx:134,app/features/page.tsx:175,app/page.tsx:215card-glass—app/features/page.tsx:150,app/page.tsx:266If the
@ciphera-net/uitailwind preset (v0.0.52+) does not provide these classes, all of these UI elements will silently lose their styling — glass blur effects, gradient text, badge styles, and background dot grids will all break with no runtime error.Prompt To Fix With AI
Issue: Authenticated footer changed from max-w-7xl to max-w-6xl without a PR/CHANGELOG note.
Fix: This was intentional to match the site dashboard and page-container-app. Added to CHANGELOG under 0.7.0-alpha: "Footer layout: Authenticated footer container aligned to max-w-6xl (matches site dashboard and page-container-app)."
Why: Footer width should match the main app content so the layout feels consistent; max-w-6xl is the standard app container width.
Issue: var(--color-brand-orange) might not be defined and could cause chart colors to be transparent.
Fix: The variable is defined by the @ciphera-net/ui preset in addBase on :root (see ciphera-ui/src/tailwind-preset.ts line 29). It is now documented in DESIGN_SYSTEM.md under Brand Colors, including --color-brand-orange and --color-brand-orange-rgb.
Why: DESIGN_SYSTEM.md only mentioned --brand-orange; adding --color-brand-orange makes it clear where SVG/Recharts get the brand color and removes ambiguity.