Skip to content

UI Design System - Index

UI Design System — Index

Trystpilot.xyz · Anonymous Relationship Reviews
Design phase: ASCII Wireframes → Penpot → Implementation
Last updated: 2026-02-28


Documents

FileContents
COMPONENTS.md26 existing + 44 missing component ASCII art, gap analysis
FLOWS_1920x1080.md6 user flows × 3 layout variations at 1920×1080 with recommendations
FLOWS_MOBILE.md4 flows × 6 device sizes (375px iPhone → 1440px MacBook)
DESIGN_TOKENS.mdDesign token system (Penpot integration — pending secret)

Component Summary

Existing (26 components)

#ComponentCategoryStatus
1HeaderNavigation
2FooterNavigation
3HeroSectionHome
4HeroShapesHome
5SearchDropdownHome✅ (placeholder data)
6CategoriesSectionHome
7AuthBannerSectionHome
8ValuePropositionSectionHome
9TopCompaniesSectionHome✅ (placeholder data)
10TopCompanyCardHome
11RecentReviewsSectionHome✅ (placeholder data)
12ReviewCardHome
13BlogSectionHome
14BlogCardHome
15TrystpilotAppBannerHome
16SeparatorLayout
17ProfileHeaderProfile
18RatingBreakdownProfile
19ProfileReviewCardProfile
20ResponseThreadProfile
21StarRatingUI Primitive
22RatingBarUI Primitive
23ButtonUI Primitive
24InputUI Primitive
25LocaleProvideri18n
26LocaleSwitcheri18n

Missing — Priority Matrix (44 components)

PriorityCountComponents
P0 — Critical path22SearchResultCard, SearchFiltersPanel, ReviewFormStepper, ReviewFormStep_RateDimensions, ReviewFormStep_Details, ReviewFormStep_Captcha, ReviewSuccessScreen, ClaimProfileBanner, ClaimProfileModal, CreateAccountForm, VerificationCodeInput, ProfileDashboard, RespondToReviewForm, ModerationQueueTable, ModerationReviewDetail, ModerationActionBar, RemovalRequestForm, AbuseReportForm, SearchResultsPage, ProfileSearchTypeahead, ReportProfileModal, EmptySearchState
P1 — Important17ActiveFilterTags, PaginationControls, SortDropdown, CharacterCounter, ReportSuccessToast, CategoryFilterBar, VerificationPendingScreen, ModerationNotificationBanner, FlaggedTextHighlighter, AdminStatsDashboard, RemovalRequestSuccess, AbuseReportSuccess, OnboardingWelcomeScreen, OnboardingStepIndicator, NotFoundProfileState, LoadingSkeleton, Toast/AlertBanner
P2 — Enhancement5ConfirmationDialog, SelectDropdown, Textarea, Badge, Tooltip, ProgressBar

User Journey Gap Analysis

Journey 1: Home → Search → Profile → Review

Status: 🟡 Partial
Missing: SearchResultsPage, SearchResultCard, SearchFiltersPanel, ActiveFilterTags, ProfileSearchTypeahead, ReviewFormStepper, ReviewFormStep_* (×3), ReviewSuccessScreen, CharacterCounter

Journey 2: Home → Browse Categories → Filter → Report

Status: 🟡 Partial
Missing: CategoryFilterBar, SortDropdown, PaginationControls, EmptySearchState, ReportProfileModal, ReportSuccessToast

Journey 3: Profile → Claim → Account → Dashboard

Status: 🔴 Missing
Missing: ClaimProfileBanner, ClaimProfileModal, CreateAccountForm, VerificationCodeInput, VerificationPendingScreen, ProfileDashboard, RespondToReviewForm

Journey 4: Admin Moderation Queue

Status: 🟡 Partial (scaffold exists)
Missing: ModerationQueueTable, ModerationReviewDetail, ModerationActionBar, ModerationNotificationBanner, FlaggedTextHighlighter, AdminStatsDashboard, ConfirmationDialog

Journey 5: Removal Request

Status: 🟡 Partial (API exists)
Missing: RemovalRequestForm (wired), RemovalRequestSuccess

Journey 6: Abuse Report

Status: 🟡 Partial (API exists)
Missing: AbuseReportForm (wired), AbuseReportSuccess

Journey 7: Onboarding

Status: 🔴 Missing
Missing: OnboardingWelcomeScreen, OnboardingStepIndicator, NotFoundProfileState


FlowRecommended VariationRationale
Home/DiscoveryC — Card-GridMax profiles above fold; pill filter row saves sidebar space
Profile ViewA — Classic ColumnsSticky sidebar keeps all 5 rating dims visible while scrolling reviews
Review SubmissionB — Full-Width SteppedStep accordion reduces abandonment for sensitive anonymous submission
Search ResultsA — Classic ColumnsPersistent sidebar filter essential for alias disambiguation
Admin ModerationB — Full-Width CenteredStat tile header enables priority triage before queue work
Removal RequestA — Classic ColumnsInfo sidebar educates on valid grounds while user fills form

Penpot Design Tokens (Pending)

See DESIGN_TOKENS.md

Status: Waiting for PENPOT_ACCESS_TOKEN secret.
Once provided, will run @zcubekr/penpot-mcp-server to generate and push all design tokens.

Token categories to generate:

  • Color tokens (brand, semantic, neutral scales)
  • Typography tokens (scale, weight, line-height)
  • Spacing tokens (4px base grid, named scale)
  • Border radius tokens
  • Shadow tokens (elevation system)
  • Motion tokens (duration, easing)
  • Z-index tokens (layer system)