| Document Information | |
|---|---|
| Version | 1.0 |
| Status | Approved |
| Author | Digital Experience Design Team |
| Last Updated | January 22, 2026 |
| Approved By | VP of Employee Experience - Jan 20, 2026 |
| Version | Date | Author | Changes |
|---|---|---|---|
| 0.5 | Dec 2025 | DX Design Team | Initial design exploration |
| 0.8 | Jan 10, 2026 | DX Design Team | Component library complete |
| 1.0 | Jan 22, 2026 | DX Design Team | Final approved version |
TacoTracker 3000 is a mobile application and vendor web portal enabling Globex Corporation's 2,500 employees to locate, browse, and order from food trucks across three campus buildings. The design prioritizes speed, accessibility, and delight while maintaining enterprise-grade reliability.
- Mobile-first, cross-platform: React Native for iOS/Android ensures consistent experience
- Map-centric home screen: Immediate visibility of truck locations upon app launch
- 3-tap ordering: Repeat orders achievable in 3 taps or fewer
- WCAG 2.1 AA compliance: Full accessibility for all employees
- Dark mode support: System-preference-aware theming
- Food-forward brand: Professional with playful food-themed accents
| Platform | Version | Framework |
|---|---|---|
| iOS | 14.0+ | React Native |
| Android | 10+ | React Native |
| Web (Vendor Portal) | Modern browsers | React + TypeScript |
Statement: Every design decision prioritizes getting users to their tacos as quickly as possible.
Rationale: Employees have limited lunch breaks. The app should never stand between a user and their food.
Application:
- Map view as default home screen
- One-tap reordering
- Pre-filled payment from Globex Wallet
- Maximum 3 taps for repeat orders
Do: Show truck locations immediately on launch Don't: Require confirmations for non-destructive actions
Statement: Information must be immediately understandable without interpretation.
Rationale: Users check the app while multitasking. Complex interfaces cause errors.
Application:
- Use familiar patterns (map, list, cart)
- Always label icons with text
- Show prices and wait times prominently
Do: Use "Order Now" over creative phrasing Don't: Rely on color alone to convey meaning
Statement: The app works for everyone regardless of ability or dietary needs.
Rationale: Globex values diversity; tools must reflect this commitment.
Application:
- WCAG 2.1 AA minimum compliance
- Prominent dietary filters
- One-handed mobile operation
- Support 200% font scaling
Do: Provide text alternatives for all images Don't: Require precise gestures for essential functions
Statement: Users must feel confident in order accuracy and payment security.
Application:
- Order summary before payment
- Immediate confirmation notifications
- Visible security indicators
| Name | Hex | RGB | Usage | Contrast on White |
|---|---|---|---|---|
| Taco Orange | #E85D04 |
232, 93, 4 | Primary actions, brand accent | 3.4:1 (large text) |
| Taco Orange Dark | #D14D00 |
209, 77, 0 | Hover/pressed states | 4.2:1 |
| Taco Orange Light | #FF7B2E |
255, 123, 46 | Dark mode primary | - |
| Name | Hex | RGB | Usage |
|---|---|---|---|
| Corn Yellow | #FFB703 |
255, 183, 3 | Highlights, focus indicators |
| Tortilla Tan | #DDB892 |
221, 184, 146 | Subtle warm accents |
| Lime Zest | #76C893 |
118, 200, 147 | Secondary success |
| Name | Hex | Purpose | Contrast Ratio |
|---|---|---|---|
| Success (Guacamole) | #2D6A4F |
Confirmations, complete | 5.4:1 AA |
| Warning | #9A6700 |
Cautions, wait states | 4.6:1 AA |
| Error (Salsa Red) | #C1121F |
Errors, required fields | 6.2:1 AA |
| Info | #0077B6 |
Informational messages | 4.5:1 AA |
| Name | Hex | Usage |
|---|---|---|
| Charcoal | #212529 |
Primary text |
| Slate | #495057 |
Secondary text |
| Pewter | #6C757D |
Placeholder, disabled |
| Silver | #ADB5BD |
Borders, dividers |
| Cloud | #DEE2E6 |
Card backgrounds |
| Mist | #F8F9FA |
Page backgrounds |
| White | #FFFFFF |
Cards, inputs |
| Light Mode Token | Dark Mode Value |
|---|---|
| Background (Mist) | #212529 |
| Surface (White) | #2D3238 |
| Text Primary (Charcoal) | #FFFFFF |
| Text Secondary (Slate) | #ADB5BD |
| Primary (Taco Orange) | #FF7B2E |
Primary: Inter
- Weights: 400 (Regular), 500 (Medium), 600 (SemiBold), 700 (Bold)
- Fallback:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif
Monospace: JetBrains Mono
- Weights: 400 (Regular), 500 (Medium)
- Use: Order numbers, prices
- Fallback:
"SF Mono", Consolas, monospace
| Style | Size | Weight | Line Height | Letter Spacing | Usage |
|---|---|---|---|---|---|
| Display | 32px | 700 | 40px | -0.5px | Hero headlines |
| H1 | 28px | 700 | 36px | -0.3px | Screen titles |
| H2 | 24px | 600 | 32px | -0.2px | Section headers |
| H3 | 20px | 600 | 28px | 0 | Card titles |
| H4 | 18px | 600 | 24px | 0 | Subsection headers |
| Body Large | 16px | 400 | 24px | 0 | Primary content |
| Body | 14px | 400 | 20px | 0 | Default text |
| Body Small | 12px | 400 | 16px | 0.1px | Captions |
| Label | 14px | 500 | 20px | 0.1px | Form labels |
| Button | 14px | 600 | 20px | 0.3px | Button text |
| Caption | 12px | 400 | 16px | 0.2px | Helper text |
| Overline | 10px | 600 | 14px | 1px | Category labels |
Base Unit: 4px (8-point grid alignment)
| Token | Value | Usage |
|---|---|---|
space-0 |
0px | No spacing |
space-1 |
4px | Tight inline spacing |
space-2 |
8px | Related elements, icon padding |
space-3 |
12px | Default element spacing |
space-4 |
16px | Card padding, margins |
space-5 |
20px | Between components |
space-6 |
24px | Section spacing |
space-8 |
32px | Large gaps |
space-10 |
40px | Major sections |
space-12 |
48px | Screen sections |
space-16 |
64px | Page-level spacing |
| Token | Value | Usage |
|---|---|---|
radius-none |
0px | Sharp corners |
radius-sm |
4px | Subtle rounding |
radius-md |
8px | Buttons, inputs |
radius-lg |
12px | Cards |
radius-xl |
16px | Bottom sheets |
radius-full |
9999px | Pills, avatars |
| Level | Value | Usage |
|---|---|---|
elevation-0 |
none | Flat elements |
elevation-1 |
0 1px 2px rgba(0,0,0,0.05) |
Subtle lift |
elevation-2 |
0 2px 8px rgba(0,0,0,0.08) |
Cards |
elevation-3 |
0 4px 16px rgba(0,0,0,0.12) |
Floating elements |
elevation-4 |
0 8px 24px rgba(0,0,0,0.16) |
Modals, overlays |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโ16pxโโ Content (343px) โโ16pxโโ
โ โ โโโโโโโ 12px โโโโโโโ โ โ
โ M โ โ COL โ โ COL โ โ M โ
โ โ โโโโโโโ โโโโโโโ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Margins: 16px
Gutters: 12px
Columns: 4 (flexible)
- Margins: 24px
- Gutters: 16px
- Columns: 8
- Margins: 64px
- Gutters: 24px
- Columns: 12 (85px each)
| Name | Range | Target |
|---|---|---|
xs |
0-374px | Small phones |
sm |
375-767px | Standard phones |
md |
768-1023px | Tablets |
lg |
1024-1439px | Small desktops |
xl |
1440px+ | Large desktops |
Purpose: Main call-to-action
Primary Button States
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Default Hover Active Disabled โ
โ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโ
โ โ Order โ โ Order โ โ Order โ โ Order โโ
โ โ Now โ โ Now โ โ Now โ โ Now โโ
โ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโ
โ #E85D04 #D14D00 #B84300 50% opacityโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Specifications:
| Property | Value |
|---|---|
| Height | 48px (touch target) |
| Min Width | 120px |
| Padding | 16px horizontal |
| Background | #E85D04 |
| Text | Inter SemiBold 14px, #FFFFFF |
| Border Radius | 8px |
| Shadow | 0 2px 4px rgba(0,0,0,0.1) |
States:
| State | Background | Additional |
|---|---|---|
| Default | #E85D04 |
- |
| Hover | #D14D00 |
- |
| Pressed | #B84300 |
Scale 0.98 |
| Focused | #E85D04 |
2px #FFB703 outline |
| Disabled | #E85D04 50% |
Cursor not-allowed |
| Loading | #E85D04 |
Spinner replaces text |
Accessibility:
- Role:
button - Keyboard: Enter/Space to activate
- Focus visible with 2px yellow outline
- Minimum contrast: 3:1 for large text
Input States
Default: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Search trucks... โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Focused: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ โ 2px orange border
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Error: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ abc@ โ โ 2px red border
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Please enter a valid email
Specifications:
| Property | Value |
|---|---|
| Height | 48px |
| Padding | 12px 16px |
| Border | 1px solid #ADB5BD |
| Border Radius | 8px |
| Background | #FFFFFF |
| Font | Inter Regular 16px |
| Placeholder | #6C757D |
States:
| State | Border Color | Background |
|---|---|---|
| Default | #ADB5BD |
#FFFFFF |
| Focused | #E85D04 (2px) |
#FFFFFF |
| Error | #C1121F (2px) |
#FFF5F5 |
| Disabled | #DEE2E6 |
#F8F9FA |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ [Truck Photo] โ โ
โ โ 200px โ โ
โ โ โโโโโโโโ โ โ
โ โ โ OPEN โ โ Status Badge โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ Taco El Rey โก โ
โ โ
โ
โ
โ
โ 4.2 (128 reviews) โ
โ โ
โ ๐ Building A - North Lot โ
โ โฑ 10-15 min wait โ
โ โ
โ ๐ฑ ๐ฅ Vegetarian, Spicy โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ View Menu โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Specifications:
| Property | Value |
|---|---|
| Width | 100% (container) |
| Padding | 16px |
| Background | #FFFFFF |
| Border Radius | 12px |
| Shadow | elevation-2 |
| Image Height | 200px |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ ๐ ๐ ๐ค โ
โ Home Browse Cart Profile โ
โ (โ) (3) โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Height: 56px + safe area
Background: #FFFFFF
Border Top: 1px solid #DEE2E6
Active: #E85D04
Inactive: #6C757D
Badge: #E85D04 with white text
Order Confirmation Bottom Sheet
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโ โ โ Drag handle
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โ Order Confirmed! โ
โ โ
โ Order #TT-2026-0847 โ
โ โ
โ 1x Carnitas Taco $3.50 โ
โ 2x Al Pastor Taco $7.00 โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ Total $10.50 โ
โ โ
โ Estimated pickup: 12:45 PM โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Track My Order โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Border Radius: 16px (top corners)
Drag Handle: 36px x 4px, #DEE2E6, radius-full
Max Height: 90% of screen
Overlay: #000000 50%
Success: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Item added to cart โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Background: #2D6A4F, Text: #FFFFFF
Error: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Payment failed. Try again. โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Background: #C1121F, Text: #FFFFFF
Specifications:
| Property | Value |
|---|---|
| Height | 48px |
| Border Radius | 8px |
| Padding | 12px 16px |
| Position | Bottom, 16px from edge |
| Duration | 4000ms auto-dismiss |
| Animation | Slide up 200ms, fade out 200ms |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โก TacoTracker 3000 ๐ ๐ค โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ๐ Search trucks, tacos... โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ โโโโโ โ โ
โ โ โ B โ Building B โ โ
โ โ โโโโโ ๐ฎ โ โ
โ โ Taco El Rey โ โ
โ โ โ โ
โ โ โโโโโ โโโโโ โ โ
โ โ โ A โ Building A ๐ฎ โ C โ โ โ
โ โ โโโโโ โ โโโโโ โ โ
โ โ La Taqueria โ โ
โ โ โ โ
โ โ ๐ You โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ [ Building A ][ Building B ][ C ] โ
โ โ
โ Nearby Now View All โถโ
โ โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ
โ โ โโโโโโโโโโโโโโ โ โ โโโโโโโโโโโโโโ โ โ
โ โ โ [Photo] โ โ โ โ [Photo] โ โ โ
โ โ โ OPEN โ โ โ โ OPEN โ โ โ
โ โ โโโโโโโโโโโโโโ โ โ โโโโโโโโโโโโโโ โ โ
โ โ Taco El Rey โ โ La Taqueria โ โ
โ โ โ
โ
โ
โ
โ 4.2 โ โ โ
โ
โ
โ
โ
4.8 โ โ
โ โ ๐ Bldg A โฑ10m โ โ ๐ Bldg A โฑ5m โ โ
โ โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ ๐ ๐ ๐ค โ
โ Home Browse Cart Profile โ
โ (โ) (2) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Interactions:
- Map: Pinch to zoom, pan to move
- Truck pins: Tap to see preview card
- Building chips: Filter trucks by location
- Pull down: Refresh truck locations
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Taco El Rey Menu ๐ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [All] [Tacos] [Burritos] [Sides] โ
โ โ
โ Filter: ๐ฑ Vegetarian โ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ TACOS โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โโโโโโโโ Carnitas Taco $3.50โ โ
โ โ โ[img] โ โ โ
โ โ โ 80px โ Slow-roasted pork โ โ
โ โ โโโโโโโโ with cilantro... โ โ
โ โ ๐ฅ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Add to Cart โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โโโโโโโโ Veggie Taco $3.00โ โ
โ โ โ[img] โ โ โ
โ โ โ 80px โ Grilled peppers, โ โ
โ โ โโโโโโโโ mushrooms, cheese โ โ
โ โ ๐ฑ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Add to Cart โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ๐ View Cart (3) $10.50 โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Your Cart Clear All โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ From: Taco El Rey โ
โ ๐ Building A - North Lot โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Carnitas Taco $3.50 โ โ
โ โ ๐ฅ Extra salsa โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ [ โ ] 1 [ + ]โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Al Pastor Taco (2) $7.00 โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ [ โ ] 2 [ + ]โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ Special Instructions โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ No onions please โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ Subtotal $10.50 โ
โ Service Fee $0.50 โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ Total $11.00 โ
โ โ
โ Payment โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ๐ณ Globex Wallet $142.50 โ โถ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ Add Tip โ
โ โโโโโโโโ โโโโโโโโ โโโโโโโโ โโโโโโโโ โ
โ โ None โ โ 15% โ โ 20% โ โCustomโ โ
โ โโโโโโโโ โโโโโโโโ โโโโโโโโ โโโโโโโโ โ
โ (โ) โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Place Order - $12.65 โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
โ โ โ โ โ โ
โ Open App โโโโโถโ View Map โโโโโถโ Select โ
โ โ โ (Home) โ โ Truck โ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
โ โ โ โ โ โ
โ Receive โโโโโโ Confirm โโโโโโ Add to โ
โ Confirm. โ โ & Pay โ โ Cart โ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
Target: 3 taps for repeat order
Target: < 60 seconds for new order
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
โ โ โ โ โ โ
โ Open App โโโโโถโ Tap "Order โโโโโถโ Confirm โ
โ โ โ Again" โ โ & Pay โ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
Target: 2 taps to reorder
| Transition | Duration | Easing | Description |
|---|---|---|---|
| Page push | 300ms | ease-out |
Slide from right |
| Page pop | 250ms | ease-in |
Slide to right |
| Modal open | 350ms | ease-out |
Slide from bottom |
| Modal close | 300ms | ease-in |
Slide to bottom |
| Toast appear | 200ms | ease-out |
Slide up + fade |
| Toast dismiss | 200ms | ease-in |
Fade out |
| State change | 150ms | ease |
Color/opacity changes |
Favorite Heart:
Frame 1: โก (outline, scale 1.0)
Frame 2: โฅ (filled, scale 1.3) - 100ms, spring easing
Frame 3: โฅ (filled, scale 1.0) - 150ms
Color: #E85D04
Add to Cart:
โโโโโโโโโโโโ โ โโโโโโโโโโโโ โ โโโโโโโโโโโโ
โ + Add โ โ โ 1 โ โ โ 1 + โ
โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ
(flash green) (final state)
Duration: 200ms
Loading Spinner:
- Taco icon rotating 360 degrees
- Duration: 800ms per rotation
- Easing: linear
- Loop: infinite
When prefers-reduced-motion is enabled:
- Disable decorative animations
- Use instant transitions (duration: 0)
- Keep essential feedback (loading states)
- Replace slide transitions with fades
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ก โ
โ โ
โ Connection Lost โ
โ โ
โ We can't reach the taco trucks. โ
โ Check your connection and try again. โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Try Again โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ โ โ
โ โ
โ Payment Declined โ
โ โ
โ Your Globex Wallet has insufficient โ
โ funds for this order. โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Add Funds to Wallet โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Try Different Payment โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Error Type | Pattern |
|---|---|
| Network | "[What happened]. Check your connection and try again." |
| Validation | "Please enter a valid [field name]" |
| Payment | "Payment didn't go through. [Reason if known]" |
| Sold out | "This item just sold out." |
| Timeout | "This is taking too long. Please try again." |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ฎ โ
โ zzz โ
โ โ
โ No Trucks Nearby โ
โ โ
โ All taco trucks are at other โ
โ buildings right now. Check back โ
โ around lunch time! โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ View All Trucks โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Notify When Trucks Arrive โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ โ
โ โ
โ Your Cart is Empty โ
โ โ
โ Find a truck and add some โ
โ delicious tacos to get started! โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Find Trucks โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ โ
โ โ
โ No Results Found โ
โ โ
โ We couldn't find anything matching โ
โ "burritozzz". Try another search. โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Clear Search โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Skeleton color: #DEE2E6
Shimmer highlight: #F8F9FA
Animation: Shimmer left-to-right, 1500ms, infinite
- Buttons: Replace text with spinner, maintain width
- Pull-to-refresh: Native spinner at top
- Pagination: Spinner below last item
| Criterion | Status | Notes |
|---|---|---|
| 1.1.1 Non-text Content | โ | Alt text on all images |
| 1.3.1 Info and Relationships | โ | Proper heading hierarchy |
| 1.4.3 Contrast (Minimum) | โ | All text 4.5:1+ |
| 1.4.11 Non-text Contrast | โ | UI components 3:1+ |
| 2.1.1 Keyboard | โ | Full keyboard navigation |
| 2.4.3 Focus Order | โ | Logical tab order |
| 2.4.7 Focus Visible | โ | 2px yellow outline |
| 4.1.2 Name, Role, Value | โ | ARIA labels on all controls |
| Element | Announcement |
|---|---|
| Truck card | "[Truck name], [rating] stars, [wait time]" |
| Favorite button | "Add [truck] to favorites" / "Remove from favorites" |
| Cart badge | "[count] items in cart" |
| Order status | "Order status: [status]" (live region) |
- Minimum: 48x48dp for all interactive elements
- Spacing: 8px minimum between targets
| Feature | iOS | Android |
|---|---|---|
| Navigation | Native nav bar | Material top bar |
| Back gesture | Swipe from edge | System back button |
| Share | iOS Share Sheet | Android Share Sheet |
| Haptics | UIImpactFeedback | VibrationEffect |
| Maps | Apple Maps | Google Maps |
| Bottom nav | 56px + safe area | 56px |
- Support Dynamic Type up to 200%
- Use SF Symbols for system icons
- Handle notch/Dynamic Island
- Safe area insets on bottom sheet
- Support Material You color extraction
- Handle system navigation bar
- Edge-to-edge display
- Predictive back gesture (Android 14+)
| Trigger | iOS | Android |
|---|---|---|
| Button tap | .light impact |
EFFECT_CLICK |
| Order confirmed | .success notification |
EFFECT_HEAVY_CLICK |
| Error | .error notification |
EFFECT_DOUBLE_CLICK |
| Pull-to-refresh | .medium impact |
EFFECT_TICK |
| Long press | .rigid impact |
EFFECT_HEAVY_CLICK |
| Context | Tone | Example |
|---|---|---|
| Success | Celebratory, brief | "You're all set!" |
| Errors | Apologetic, helpful | "Sorry, we hit a snag..." |
| Empty states | Lighthearted | "No tacos here... yet!" |
| Waiting | Reassuring | "Hang tight, almost there..." |
| Do | Don't |
|---|---|
| Order Now | Submit |
| Add to Cart | Add |
| View Menu | Menu |
| Try Again | Retry |
{
"color": {
"primary": { "value": "#E85D04" },
"primaryDark": { "value": "#D14D00" },
"primaryLight": { "value": "#FF7B2E" },
"secondary": { "value": "#FFB703" },
"success": { "value": "#2D6A4F" },
"warning": { "value": "#9A6700" },
"error": { "value": "#C1121F" },
"info": { "value": "#0077B6" },
"neutral900": { "value": "#212529" },
"neutral700": { "value": "#495057" },
"neutral500": { "value": "#6C757D" },
"neutral300": { "value": "#ADB5BD" },
"neutral200": { "value": "#DEE2E6" },
"neutral100": { "value": "#F8F9FA" },
"neutral0": { "value": "#FFFFFF" }
},
"typography": {
"fontFamily": {
"primary": { "value": "Inter" },
"mono": { "value": "JetBrains Mono" }
},
"fontSize": {
"display": { "value": "32px" },
"h1": { "value": "28px" },
"h2": { "value": "24px" },
"h3": { "value": "20px" },
"body": { "value": "14px" },
"caption": { "value": "12px" }
}
},
"spacing": {
"1": { "value": "4px" },
"2": { "value": "8px" },
"3": { "value": "12px" },
"4": { "value": "16px" },
"6": { "value": "24px" },
"8": { "value": "32px" }
},
"borderRadius": {
"sm": { "value": "4px" },
"md": { "value": "8px" },
"lg": { "value": "12px" },
"xl": { "value": "16px" },
"full": { "value": "9999px" }
},
"animation": {
"fast": { "value": "150ms" },
"normal": { "value": "300ms" },
"slow": { "value": "500ms" }
}
}| Scenario | Task | Success Criteria |
|---|---|---|
| Find truck | Locate Taco El Rey on map | < 10 seconds |
| Browse menu | Find vegetarian options | < 15 seconds, correct filter |
| Place order | Order 2 tacos and pay | < 60 seconds, order confirmed |
| Reorder | Repeat last order | < 3 taps, < 20 seconds |
| Track order | Check order status | Status visible immediately |
- VoiceOver (iOS): Complete ordering flow
- TalkBack (Android): Complete ordering flow
- Keyboard only: All functions accessible
- 200% zoom: All content readable
- Color blindness simulation: All info perceivable
| Term | Definition |
|---|---|
| BEM | Block Element Modifier - CSS naming convention |
| Design Token | Named entity storing visual design attributes |
| WCAG | Web Content Accessibility Guidelines |
| Touch Target | Interactive area responding to touch (min 48x48dp) |
| Semantic Color | Color with assigned meaning (success, error, etc.) |
| Safe Area | Screen region not obscured by device features |
| Skeleton Screen | Loading placeholder mimicking content shape |
Design Files:
- Figma:
figma.com/file/tacotracker-3000 - Component Library:
github.com/globex/tacotracker-ui
External References:
- Apple HIG:
developer.apple.com/design - Material Design:
material.io/design - WCAG 2.1:
w3.org/WAI/WCAG21
This UI/UX Design Document is maintained by the Globex Digital Experience Team.
Document Classification: Internal Use Only Last Review: January 22, 2026 Next Review: April 2026