[PULSE-43] Design system standardization and branding alignment #11
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-43]
Summary
Changes
Phase 1: Button Standardization & Core Utilities (11 files)
btn-primary/btn-secondaryclassName usage; replaced with propervariant="primary"|"secondary"on Button components across homepage, pricing, dashboard, funnels, settings, 404, and public share pagesstyles/globals.cssfor future consolidation to @ciphera-net/uiIcon Padding left & right 192x192.png,Icon Padding left & right 512x512.png) causing service worker precaching errorsFiles:
styles/globals.css,components/PricingSection.tsx,app/page.tsx,components/sites/SiteList.tsx,app/share/[id]/page.tsx,app/faq/page.tsx,app/not-found.tsx,app/sites/[id]/funnels/[funnelId]/page.tsx,app/sites/[id]/funnels/new/page.tsx,app/sites/[id]/funnels/page.tsx,app/sites/[id]/page.tsxPhase 2: Footer Enhancement (2 files)
layout-content.tsxto import local Footer component and passisAuthenticatedpropFiles:
components/Footer.tsx,app/layout-content.tsxPhase 3: Border Radius & Card Standardization (26 files)
rounded-xl(12px) torounded-2xl(16px) across all dashboard components, funnels, settings, and site management pagesrounded-md(6px) torounded-lg(8px) for better visual consistencyrounded-xltorounded-lgincluding PasswordInput component, site settings inputs, funnel selectorsrounded-2xlin settings pagesFiles: All dashboard components (11 files),
components/sites/SiteList.tsx,components/settings/OrganizationSettings.tsx,app/page.tsx,app/sites/[id]/funnels/*.tsx(3 files),app/sites/[id]/realtime/page.tsx,app/sites/new/page.tsx,app/share/[id]/page.tsx,components/PricingSection.tsx,components/WorkspaceSwitcher.tsx,components/PasswordInput.tsx,components/tools/UtmBuilder.tsx,app/sites/[id]/settings/page.tsxPhase 4: Badge & Empty State Improvements (8 files)
.badge-primaryclass for consistency with FAQ and homepage badgesFiles:
components/PricingSection.tsx,components/dashboard/TopReferrers.tsx,components/dashboard/TechSpecs.tsx,components/dashboard/Locations.tsx,components/dashboard/Countries.tsx,components/dashboard/TopPages.tsx,components/dashboard/ContentStats.tsx,app/sites/[id]/realtime/page.tsx,app/sites/[id]/page.tsxPhase 5: Animations & Final Polish (11 files)
Files:
app/page.tsx,app/about/page.tsx,app/integrations/page.tsx,components/PricingSection.tsx,app/sites/[id]/page.tsx,app/sites/[id]/realtime/page.tsx,components/dashboard/ContentStats.tsx,components/dashboard/TopReferrers.tsx,components/dashboard/TechSpecs.tsx,components/dashboard/Locations.tsx,components/dashboard/Campaigns.tsxTest Plan
Phase 1: Button Standardization
[ ] Verify all primary CTAs use brand orange color (#FD5E0F)
[ ] Verify Team plan button is orange, Solo/Business are neutral on pricing page
[ ] Verify no PWA service worker errors in console
[ ] Test all button hover states in both light and dark modes
Phase 2: Footer
[ ] Logged-out footer shows 5 columns with all sections (Brand, Products, Company, Resources, Legal)
[ ] Swiss flag icon and social media icons render correctly
[ ] Logged-in footer shows simple version (copyright + 3 links)
[ ] All footer links navigate correctly; external links open in new tabs
[ ] Footer responsive on mobile (columns stack properly)
[ ] Pulse logo not stretched in footer
Phase 3: Border Radius
[ ] All dashboard cards have rounded-2xl (16px) corners
[ ] All input fields have rounded-lg (8px) corners
[ ] All tab buttons have rounded-lg corners
[ ] Visual consistency across all pages in both light and dark modes
Phase 4: Empty States & Badges
[ ] All empty states show icons, helpful titles, and descriptions
[ ] "Most Popular" badge matches FAQ and homepage badge styling
[ ] Realtime visitor counter is clickable and navigates to realtime page
[ ] Realtime page width matches dashboard width
Phase 5: Animations
[ ] Homepage: Badge → headline → subtitle → CTAs animate in sequence (0-0.3s)
[ ] Homepage: Feature cards stagger in when scrolled into view
[ ] About, Integrations, Pricing pages have smooth entrance animations
[ ] Dashboard fades in very quickly (barely noticeable, 0.2s)
[ ] Realtime: New visitors slide in from left smoothly
[ ] Modal loading states show spinners with brand orange accent
[ ] All animations run at 60fps without jank
[ ] Animations don't block user interaction
Cross-cutting
[ ] No linter errors introduced
[ ] Dark mode works correctly for all changes
[ ] Mobile responsive at all breakpoints
[ ] No layout shifts during animations
[ ] All existing functionality preserved
Greptile Overview
Greptile Summary
This PR successfully standardizes the design system across the Pulse frontend, bringing visual consistency and improved UX throughout the application. The changes are well-organized into 5 phases covering button styling, footer enhancement, border radius standardization, empty states, and animations.
Key improvements:
className="btn-primary/secondary"with propervariantprops on Button componentsrounded-2xl(16px), inputs torounded-lg(8px), and tabs torounded-lg(8px) for consistent visual hierarchyCode quality:
The changes align well with Ciphera branding guidelines and maintain the privacy-first focus of the application.
Confidence Score: 5/5
Important Files Changed
Sequence Diagram