Conversation
Greptile OverviewGreptile SummaryThis 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:
Code quality:
The changes align well with Ciphera branding guidelines and maintain the privacy-first focus of the application. Confidence Score: 5/5
|
| Filename | Overview |
|---|---|
| components/Footer.tsx | Enhanced footer with conditional rendering based on authentication; comprehensive unauthenticated layout with 5 columns |
| components/PricingSection.tsx | Standardized button variants and added entrance animations to pricing page |
| app/page.tsx | Added staggered entrance animations to homepage hero section and feature cards; standardized button usage |
| app/sites/[id]/page.tsx | Added subtle fade-in animation and made realtime visitor counter clickable to navigate to realtime page |
| app/sites/[id]/realtime/page.tsx | Added entrance/exit animations for visitor list items and improved empty state; fixed width from max-w-7xl to max-w-6xl |
Sequence Diagram
sequenceDiagram
participant User
participant Homepage
participant Dashboard
participant Realtime
User->>Homepage: Visit site
Homepage->>Homepage: Render with animations
Homepage->>User: Show marketing content
User->>Dashboard: Navigate to dashboard
Dashboard->>Dashboard: Apply fade-in animation
Dashboard->>User: Display site cards
User->>Dashboard: Click realtime visitor counter
Dashboard->>Realtime: Navigate to realtime page
Realtime->>Realtime: Load visitor data
Realtime->>User: Show visitor list
loop Every 5 seconds
Realtime->>Realtime: Poll for updates
Realtime->>User: Animate visitor list changes
end
User->>Realtime: Select a visitor
Realtime->>Realtime: Fetch session details
Realtime->>User: Display session journey
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.
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