Grand Diomande Research · Full HTML Reader

BWB — UI System

BWB uses a cohesive SwiftUI design system with a coffee-inspired color palette, consistent typography, and shared components across all three apps.

Business Systems architecture technical paper candidate score 28 .md

Full Public Reader

BWB — UI System

Document ID: BWB-ARCH-004
Version: 1.0.0
Last Updated: 2026-01-16

---

Overview

BWB uses a cohesive SwiftUI design system with a coffee-inspired color palette, consistent typography, and shared components across all three apps.

---

Design Philosophy

> "Coffee + Dance + Music = An experience, not just a transaction"

The UI reflects this through:
- Warm, inviting colors (coffee browns, cream whites)
- Energetic accent colors (gold highlights, beat orange)
- Smooth animations and transitions
- Touch-friendly targets for all contexts

---

Color System

### Coffee Palette (Primary)
Warm browns representing coffee richness

TokenHexUsage
coffee_50#FDF8F6Lightest background
coffee_100#F8EDE8Light surface
coffee_200#EFDCD3Subtle accents
coffee_300#E3C5B5Borders
coffee_400#D4A68ADisabled states
coffee_500#C08A63Secondary text
coffee_600#A46D46Primary actions
coffee_700#7D5234Active states
coffee_800#5C3A24Dark elements
coffee_900#2A1B17Darkest (text)

### Cream Palette (Background)
Light off-whites for backgrounds

TokenHexUsage
cream_50#FFFBF7Primary background
cream_100#FFF5EDCard backgrounds
cream_200#FFEDE0Elevated surfaces
cream_500#E6C9A8Muted elements
cream_900#A87D4FDeep contrast

### Vinyl Palette (Text)
Grays for text hierarchy

TokenHexUsage
vinyl_50#F5F5F5Disabled text
vinyl_100#E0E0E0Placeholder
vinyl_400#9E9E9ESecondary text
vinyl_600#616161Body text
vinyl_800#303030Primary text
vinyl_900#0D0D0DHeadlines

### Gold Palette (Accent)
Highlights and CTAs

TokenHexUsage
gold_300#FCD34DHighlights
gold_400#FBBF24Primary CTA
gold_500#F59E0BHover state
gold_700#B45309Active state

Semantic Colors

NameColorUsage
beat#FF6B35 (Orange)Energy moments, DJ elements
successGreenConfirmations
warningAmberCautions
errorRedErrors
infoBlueInformation

---

Typography

Font Families

FamilyUsage
InterPrimary UI text (body, labels, captions)
OutfitDecorative/display text (headlines, features)

Type Scale

Display (Large Headlines)
| Style | Size | Weight | Font |
|-------|------|--------|------|
| displayLarge | 57 | Bold | Inter |
| displayMedium | 45 | SemiBold | Inter |
| displaySmall | 36 | SemiBold | Inter |

Headline
| Style | Size | Weight | Font |
|-------|------|--------|------|
| headlineLarge | 32 | Bold | Inter |
| headlineMedium | 28 | SemiBold | Inter |
| headlineSmall | 24 | SemiBold | Inter |

Title
| Style | Size | Weight | Font |
|-------|------|--------|------|
| titleLarge | 22 | SemiBold | Inter |
| titleMedium | 20 | Medium | Inter |
| titleSmall | 18 | Medium | Inter |

Body
| Style | Size | Weight | Font |
|-------|------|--------|------|
| bodyLarge | 16 | Regular | Inter |
| bodyMedium | 14 | Regular | Inter |
| bodySmall | 12 | Regular | Inter |

Label
| Style | Size | Weight | Font |
|-------|------|--------|------|
| labelLarge | 14 | Medium | Inter |
| labelMedium | 12 | Medium | Inter |
| labelSmall | 11 | Medium | Inter |

Decorative (Outfit)
| Style | Size | Weight | Font |
|-------|------|--------|------|
| decorativeLarge | 24 | Bold | Outfit |
| decorativeMedium | 20 | SemiBold | Outfit |
| decorativeSmall | 16 | Medium | Outfit |

---

Spacing System

Based on 4px grid

TokenValueUsage
xxs4Tight spacing
xs8Related elements
sm12Component padding
md16Section spacing
lg24Card padding
xl32Screen margins
xxl48Large gaps

---

Shared Components

BWBButton

Primary interactive element

swift
BWBButton(
    title: "Add to Cart",
    style: .primary,  // .primary, .secondary, .ghost
    size: .medium,    // .small, .medium, .large
    isLoading: false,
    action: { }
)
StyleBackgroundText
primarygold_400white
secondarycoffee_100coffee_700
ghosttransparentcoffee_600

BWBCard

Surface container

swift
BWBCard(padding: .md) {
    // Content
}
  • Cream background
  • Subtle shadow
  • Rounded corners (12px)

BWBTextField

Text input

swift
BWBTextField(
    label: "Email",
    text: $email,
    placeholder: "Enter your email",
    keyboardType: .emailAddress
)
  • Coffee border on focus
  • Error state styling
  • Label animation

LoadingOverlay

Full-screen loader

swift
LoadingOverlay(
    isPresented: $isLoading,
    message: "Processing order..."
)
  • Blurred background
  • Spinner + message
  • Prevents interaction

ErrorView

Error display

swift
ErrorView(
    title: "Something went wrong",
    message: error.localizedDescription,
    retryAction: { }
)

---

App-Specific Patterns

BWB-Customer

Tab Bar:
- 5 tabs with icons
- Active: gold_400
- Inactive: vinyl_400
- Safe area aware

Menu Grid:
- 2 columns on iPhone
- 3 columns on iPad
- Card-based items
- Lazy loading

BWB-POS (iPad)

Sidebar Navigation:
- Persistent sidebar
- Icon + label
- Section grouping
- Quick access

Queue Kanban:
- Horizontal columns
- Drag-and-drop cards
- Status colors
- Real-time updates

Touch Targets:
- Minimum 44x44pt
- Larger for frequent actions
- Clear active states

---

Animation Guidelines

### Transitions
- Duration: 0.2-0.3s
- Easing: easeInOut
- Spring for interactive

### Loading States
- Skeleton screens
- Shimmer effect
- Progress indicators

### Feedback
- Haptic on actions
- Visual confirmation
- Error shake

---

Accessibility

### Contrast
- All text meets WCAG AA
- Critical elements meet AAA

### Dynamic Type
- Supports all text sizes
- Layout adapts

### VoiceOver
- All elements labeled
- Logical grouping
- Action hints

### Reduce Motion
- Respects system setting
- Fallback to fades

---

Dark Mode Support

LightDark
cream_50 backgroundcoffee_900
vinyl_800 textcream_100
coffee_100 cardscoffee_800

Note: BWB currently focuses on light mode for the warm coffee aesthetic.

---

File Structure

BWBCore/Sources/BWBCore/Theme/
├── BWBColors.swift      # Color definitions
├── BWBTypography.swift  # Font styles
├── BWBSpacing.swift     # Spacing scale
└── BWBComponents/       # Shared components
    ├── BWBButton.swift
    ├── BWBCard.swift
    ├── BWBTextField.swift
    ├── LoadingOverlay.swift
    └── ErrorView.swift

---

Change Log

VersionDateChanges
1.0.02026-01-16Initial creation

Promotion Decision

Promote into a technical note or architecture paper with implementation anchors.

Source Anchor

spine/BWB/architecture/UI_SYSTEM.md

Detected Structure

Code Anchors · Architecture