8.9 KiB
8.9 KiB
Tripz Design System
Project Overview
Tripz is a multi-tenant white-label ride-hailing platform (SaaS). It enables taxi offices and fleets to launch branded ride-hailing apps. The platform has 4 interfaces: Rider mobile app, Driver mobile app, Tenant Admin web dashboard, and Super-Admin web dashboard.
Primary language: Arabic (RTL-first). English is secondary. All designs must support both directions.
Brand Identity
Colors
Primary Seed Color: #1A73E8 (Google Blue - default, customizable per tenant)
Light Mode Palette:
- Primary:
#1A73E8 - Primary Variant:
#1557B0 - Secondary:
#5F6368 - Background:
#FFFFFF - Surface:
#F8F9FA - Surface Raised:
#FFFFFF - On Primary:
#FFFFFF - On Background:
#202124 - On Surface:
#5F6368
Dark Mode Palette:
- Primary:
#8AB4F8 - Primary Variant:
#AECBFA - Secondary:
#9AA0A6 - Background:
#121212 - Surface:
#1E1E1E - Surface Raised:
#2D2D2D - On Primary:
#000000 - On Background:
#E8EAED - On Surface:
#9AA0A6
Semantic Colors:
- Success:
#34A853(green) - Warning:
#FBBC04(amber) - Danger:
#EA4335(red) - Info:
#4285F4(blue)
Typography
English + Numbers: Inter (Regular 400, Medium 500, SemiBold 600, Bold 700) Arabic: IBM Plex Sans Arabic (Regular 400, Medium 500, SemiBold 600, Bold 700)
Type Scale:
- Display: 32px / Bold
- Headline: 24px / SemiBold
- Title: 20px / SemiBold
- Body Large: 16px / Regular
- Body: 14px / Regular
- Label: 12px / Medium
- Caption: 12px / Regular
Rules:
- Latin digits (1, 2, 3) always, even in Arabic text
- Tabular figures for prices and counters
- Line height: 1.4 for body, 1.2 for headings
Spacing (4px grid)
xs: 4pxsm: 8pxmd: 12pxbase: 16px (default page padding)lg: 24pxxl: 32pxxxl: 48px
Border Radius
- Small (badges, chips): 8px
- Medium (buttons, cards): 12px
- Large (bottom sheets, modals): 24px
- Full (avatars, icons): 9999px
Shadows
- Light mode:
0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.08) - Dark mode: Use elevation through surface brightness, not shadows
Icons
- Family: Material Symbols Rounded
- Sizes: 20px (small), 24px (default), 32px (large)
- Style: Outlined by default, Filled for active states
Design Principles
- One screen = one job. Each screen asks one question and has one primary CTA.
- Clarity over decoration. No heavy gradients, no ornamental elements. Clean and functional.
- Thumb zone. Primary actions in the bottom third of the screen. Top = information, Bottom = action.
- State always visible. Show loading skeletons (not spinners), errors with retry, empty states with hints. A blank screen is a bug.
- Animation is functional. Animations explain transitions, not decorate. Respect system reduce-motion.
- RTL-first. Design for Arabic first, then mirror for English. All layouts must work in both directions.
Component Patterns
Buttons
- Primary: Filled, 52px height, 12px radius, white text on primary color
- Secondary: Outlined, 52px height, primary color border and text
- Text: No background, primary color text, 48px min touch target
- Loading state: Circular progress replaces text, button stays same size
Input Fields
- Height: 52px
- Border radius: 8px
- Border: 1px solid
#DADCE0(light) /#5F6368(dark) - Focus: 2px primary color ring
- Error: Red border + error message below
- Label: Floating label pattern
Bottom Sheets (Primary Dialog Pattern)
- Handle: 32px wide, 4px tall, centered,
#DADCE0color - Border radius: 24px top corners
- Snap points: Collapsed (peek), Half, Full
- Background: Surface color
- No backdrop blur by default
Cards
- Border radius: 12px
- Padding: 16px
- Shadow: Light elevation shadow
- Background: Surface color
- Border: 1px solid subtle border in light mode
Navigation
- Bottom navigation (mobile): 3-5 items, icons + labels, active = primary color
- Drawer: Slide from start side, user profile header, menu list with icons
- AppBar: Flat (no shadow), title aligned to start direction, back arrow if nested
Mobile App Patterns (Rider & Driver)
Map Screens
- Edge-to-edge map to status bar
- All UI elements floating inside SafeArea
- Location pulsing dot on map
- Re-center floating action button (bottom-right, above nav)
- Bottom sheet for interactions (collapsed = peek, half = list, full = search)
- Map style switches with light/dark theme
Home Screen
- Full-screen map as background
- Collapsed bottom sheet: "Where to?" search field
- Below search: suggested/favorite places
- Floating: re-center button, menu hamburger (top-left in RTL)
Trip Flow
- Home → Destination search
- Destination → Route preview (polyline on map)
- Route preview → Category selection (cards with prices)
- Category → Searching animation (pulse on map)
- Searching → Driver accepted (driver card + live ETA)
- Driver accepted → Driver arrived (waiting timer)
- Driver arrived → During trip (live tracking)
- During trip → Invoice (fare breakdown)
- Invoice → Rating (stars + reasons)
Driver-Specific
- Online/Offline toggle: prominent, top of home screen
- Offer overlay: card over map with countdown timer
- Earnings dashboard: clean data cards with charts
Web Dashboard Patterns
Layout
- Sidebar navigation: 240px width, dark background (
#1A1A2E) - Top bar: 64px height, white/dark surface, search + notifications + profile
- Content area: Light gray background (
#F5F5F5), white cards - Responsive: Collapsible sidebar on tablet, stacked on mobile
Tables
- Alternating row backgrounds
- Status badges with semantic colors
- Action buttons per row (icon buttons)
- Pagination at bottom
- Search + filter bar at top
Forms
- Two-column layout for desktop
- Single column for mobile
- Clear field labels and helpers
- Prominent submit button
- Cancel/Back option always visible
Cards
- White background with subtle border
- Header with title + optional action
- Consistent padding (24px)
- Shadow on hover
RTL/Arabic Guidelines
- All layouts must mirror for RTL
- Back arrows point right in RTL
- Text alignment: start (left in LTR, right in RTL)
- Numbers always Latin digits (1, 2, 3), never Arabic (١، ٢، ٣)
- Currency formatting follows locale
- Tabular/monospace digits for prices to prevent layout jumps
Light/Dark Mode
- Default: Follow system setting
- User can override in settings
- Light mode: White backgrounds, subtle shadows for depth
- Dark mode: Dark gray surfaces (
#121212base), no shadows (use surface brightness for elevation) - Map style switches between day/night tiles
- Semantic colors slightly adjusted for dark mode contrast
Animation
- Tap feedback: 120ms, opacity/scale micro-animation
- In-screen transitions: 240ms,
easeOutCubic - Sheet/Page transitions: 400ms,
easeOutCubic - Loading skeletons: Shimmer animation on gray placeholders
- Respect reduce-motion: All animations optional
What NOT to Do
- No heavy gradients on backgrounds
- No drop shadows heavier than 1 layer
- No decorative elements that don't serve a purpose
- No text smaller than 12px
- No contrast below 4.5:1 for text on background
- No raw hex colors in feature code (use theme tokens)
- No spinners (use skeleton loading instead)
- No blank white/error screens (always show meaningful state)
Screens to Design
Rider App (Mobile)
- Splash screen
- Onboarding (3 slides)
- Phone number login
- OTP verification (4 digits)
- Name entry
- Home (map + "Where to?" sheet)
- Destination selection (draggable sheet, autocomplete, stops)
- Route preview (polyline, markers, distance/time)
- Category selection (vehicle cards with prices)
- Searching for driver (pulse animation)
- Driver accepted (driver card, ETA, route)
- Driver arrived (waiting timer)
- During trip (live tracking)
- Trip invoice (fare breakdown)
- Rating (stars + quick reasons)
- Navigation drawer (menu)
- Chat (in-trip messaging)
- Trip history list
Driver App (Mobile)
- Splash screen
- OTP login
- Document registration (photo upload + face liveness)
- Home (map + online/offline toggle)
- Ride offer overlay (countdown timer)
- Navigate to pickup
- Arrived at pickup (waiting timer)
- During trip (navigation)
- Trip complete (earnings summary)
- Earnings dashboard
- Balance & top-up
- Navigation drawer
- Chat with rider
Web Dashboards
- SuperAdmin: Dashboard overview (KPIs + charts)
- SuperAdmin: Tenant list (table + actions)
- SuperAdmin: Create tenant (form)
- Admin: Driver management (table + approval)
- Admin: Trip listing (table + filters)
- Admin: Document review
- Admin: Payouts management
- Service: User/trip search
Landing Page
- Hero section (bilingual headline + CTAs)
- Features section (3 pillars)
- Savings calculator (interactive)
- Platform screenshots
- Pricing tiers
- FAQ section
- Footer