SvenHVAC User Interface Specifications
Last updated: November 7, 2025
Executive Summary
SvenHVAC's user interface embodies our unique "technical warmth" approach - combining innovative technology with human reassurance through a carefully designed digital experience. This document outlines comprehensive UI specifications for the SvenHVAC platform, focusing on creating an intuitive, accessible interface that reduces customer anxiety during potentially stressful HVAC emergencies while showcasing our technical expertise.
Our UI system expresses our identity as a Magician/Caregiver brand through clean, approachable visual elements while adhering to principles of clarity, reassurance, and efficiency for a cohesive experience. The system accommodates web and mobile responsive requirements while ensuring WCAG AA accessibility compliance.
1. Design Foundation
1.1 Brand Expression in UI
The SvenHVAC interface embodies our dual brand archetypes:
Magician Archetype Expression:
- Clean, uncluttered surfaces that create a sense of order and clarity
- Subtle depth through light shadows and layering
- Transformative interfaces with features that feel surprisingly capable
- Innovative controls and magical feedback states
- Morphing transitions and delightful interactions
Caregiver Archetype Expression:
- Warm color accents that provide emotional reassurance
- Supportive messaging and helpful guidance throughout
- Forgiving forms with clear error recovery
- Gentle animations that guide rather than startle
- Proactive assistance and clear next steps
1.2 Color System
/* Primary Colors */
--color-primary-blue: #0A3D62; /* Reliability, expertise, trust */
--color-primary-orange: #E67E22; /* Approachability, energy, warmth */
/* Secondary Colors */
--color-secondary-teal: #2E8B57; /* Innovation, freshness, clarity */
--color-secondary-light-gray: #F5F7FA; /* Breathing room, readability */
--color-secondary-dark-gray: #2C3E50; /* Stability, professionalism */
/* Functional Colors */
--color-success: #27AE60; /* Successful operations, completed actions */
--color-alert: #F39C12; /* Attention, pending states */
--color-error: #C0392B; /* Errors, failed states */
/* Semantic Mappings */
--color-text-primary: var(--color-secondary-dark-gray);
--color-text-secondary: #4A6378;
--color-text-tertiary: #7F8C8D;
--color-text-inverse: #FFFFFF;
--color-background-primary: #FFFFFF;
--color-background-secondary: var(--color-secondary-light-gray);
--color-background-tertiary: #E5E9F0;
--color-border-default: #D8DEE9;
--color-border-focus: var(--color-primary-blue);
--color-action-primary: var(--color-primary-orange);
--color-action-secondary: var(--color-primary-blue);
--color-action-tertiary: var(--color-secondary-teal);
Color application follows these principles:
- Primary blue represents reliability and expertise
- Orange accents provide warmth and approachability
- Success/alert/error colors maintain consistent meaning
- Background colors create hierarchy without overwhelming
- Text colors ensure optimal readability and WCAG compliance
1.3 Typography System
/* Font Families */
--font-family-primary: 'Inter', sans-serif; /* Headings, interface elements */
--font-family-secondary: 'Source Sans Pro', sans-serif; /* Body text, longer content */
/* Font Weights */
--font-weight-regular: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
/* Font Sizes - Scale Ratio: 1.25 (Major Third) */
--font-size-xs: 0.8rem; /* 12.8px */
--font-size-sm: 0.875rem; /* 14px */
--font-size-base: 1rem; /* 16px */
--font-size-md: 1.125rem; /* 18px */
--font-size-lg: 1.25rem; /* 20px */
--font-size-xl: 1.5625rem; /* 25px */
--font-size-2xl: 1.95rem; /* 31.25px */
--font-size-3xl: 2.44rem; /* 39.06px */
/* Line Heights */
--line-height-tight: 1.2; /* Headings */
--line-height-normal: 1.5; /* Body text */
--line-height-relaxed: 1.75; /* Extended reading */
/* Letter Spacing */
--letter-spacing-tight: -0.01em;
--letter-spacing-normal: 0;
--letter-spacing-wide: 0.015em; /* Enhanced readability */
--letter-spacing-heading: 0.02em; /* Headings for clarity */
Typography implementation follows these principles:
- Inter provides a clean, modern look for interface elements
- Source Sans Pro offers excellent readability for longer text
- Type scale creates clear hierarchy and organization
- Line heights optimize readability across different contexts
- Letter spacing enhances legibility for different content types
1.4 Spacing System
/* Base Unit: 4px */
--space-unit: 0.25rem;
/* Spacing Scale */
--space-2xs: calc(var(--space-unit) * 1); /* 4px */
--space-xs: calc(var(--space-unit) * 2); /* 8px */
--space-sm: calc(var(--space-unit) * 3); /* 12px */
--space-md: calc(var(--space-unit) * 4); /* 16px */
--space-lg: calc(var(--space-unit) * 6); /* 24px */
--space-xl: calc(var(--space-unit) * 8); /* 32px */
--space-2xl: calc(var(--space-unit) * 12); /* 48px */
--space-3xl: calc(var(--space-unit) * 16); /* 64px */
/* Component Spacing */
--space-component-sm: var(--space-xs); /* Small components */
--space-component-md: var(--space-md); /* Medium components */
--space-component-lg: var(--space-lg); /* Large components */
--space-section: var(--space-2xl); /* Section spacing */
--space-page: var(--space-3xl); /* Page margins */
Spacing application follows these principles:
- Consistent 4px base unit creates visual harmony
- Scaled spacing provides appropriate breathing room
- Component spacing maintains consistent relationships
- Section spacing creates clear content grouping
- Responsive spacing adjusts appropriately for different screens
1.5 UX Principles
SvenHVAC's interface adheres to these core experience principles:
Clarity in Complexity: Simplify complex HVAC concepts and processes without oversimplification.
- Technical information is presented in digestible layers
- Visual hierarchy guides attention to most important elements
- Progressive disclosure reveals details as needed
Reassurance Through Transparency: Build trust by making processes visible and understandable.
- Clear status indicators for all processes
- Explicit timeline expectations for service delivery
- Upfront pricing and transparent fee structure
Efficiency with Empathy: Streamline processes while acknowledging emotional context.
- Minimize steps required during emergency situations
- Provide emotional reassurance alongside practical solutions
- Balance efficiency with appropriate human touchpoints
Guided Autonomy: Provide clear guidance while respecting user control.
- Recommended paths with clear opt-out options
- Educational content that empowers informed decisions
- Balance between automation and user control
Anticipatory Service: Proactively address needs before they're explicitly expressed.
- Smart defaults based on context and history
- Preemptive troubleshooting suggestions
- Seasonal maintenance reminders
1.6 Accessibility Standards
SvenHVAC's interface meets WCAG 2.1 AA standards with these specific implementations:
Visual Accessibility
- Color contrast ratios: 4.5:1 for normal text, 3:1 for large text
- Information never conveyed by color alone
- Text resizing supported up to 200% without loss of content
- Visible focus indicators with high contrast (2px blue outline)
Keyboard Accessibility
- All interactive elements accessible via keyboard
- Logical tab order following visual layout
- Focus trapping in modal dialogs
- Skip links for navigation bypass
Screen Reader Support
- Semantic HTML structure with appropriate landmarks
- ARIA attributes where native semantics insufficient
- Alternative text for all meaningful images
- Live regions for dynamic content updates
Input Flexibility
- Touch targets minimum 44×44px for mobile
- Multiple input methods supported (touch, mouse, keyboard)
- Error recovery with clear guidance
- No time-sensitive interactions without override option
2. Component Library
2.1 Core Elements
2.1.1 Buttons
Buttons provide clear, consistent interaction points throughout the interface.
graph TD
A[Button] --> B[Primary]
A --> C[Secondary]
A --> D[Tertiary]
A --> E[Icon]
A --> F[Link]
B --> G[Default]
B --> H[Hover]
B --> I[Active]
B --> J[Focus]
B --> K[Disabled]
B --> L[Loading]
Primary Button
- Purpose: Main actions, primary user flows
- Visual: Orange background (#E67E22), white text, rounded corners (8px)
- States:
- Default: Orange background, white text
- Hover: Darker orange (#D35400), subtle scale (102%)
- Active: Darkest orange (#A04000), slight scale reduction (98%)
- Focus: Blue outline (2px), visible focus ring
- Disabled: 60% opacity, not-allowed cursor
- Loading: Spinner icon, text replaced with "Loading..."
Secondary Button
- Purpose: Important but not primary actions
- Visual: Blue background (#0A3D62), white text, rounded corners (8px)
- States: Follow same pattern as primary with blue color variations
Tertiary Button
- Purpose: Lower emphasis actions, optional paths
- Visual: Transparent background, blue text, subtle border
- States: Follow same pattern with appropriate color/opacity changes
Icon Button
- Purpose: Compact actions, tool functions
- Visual: 44×44px touch target, icon centered
- Variations: Primary (orange), secondary (blue), tertiary (transparent)
Link Button
- Purpose: Navigation, non-critical actions
- Visual: Text styling with subtle underline
- States: Darker on hover, full underline, visible focus state
2.1.2 Form Elements
Form elements collect user input with clarity and accessibility.
Text Field
- Purpose: Single-line text input
- Visual: 44px height, subtle border, clear input area
- States:
- Default: Light border (#D8DEE9)
- Focus: Blue border (#0A3D62), subtle shadow
- Filled: Maintains border, shows clear button when appropriate
- Error: Red border (#C0392B), error message below
- Disabled: 60% opacity, light background
Text Area
- Purpose: Multi-line text input
- Visual: Resizable, minimum 3 lines, maintains text field styling
- States: Match text field with appropriate adaptations
Checkbox
- Purpose: Boolean selections, multi-select options
- Visual: 24×24px touch target, custom-styled checkbox
- States:
- Unchecked: Empty box with border
- Checked: Orange fill with white checkmark
- Indeterminate: Partial state with horizontal line
- Focus: Blue outline
- Disabled: Reduced opacity
Radio Button
- Purpose: Single selection from options
- Visual: 24×24px touch target, circular design
- States:
- Unselected: Empty circle with border
- Selected: Outer ring with filled center in blue
- Focus: Blue outline
- Disabled: Reduced opacity
Toggle Switch
- Purpose: Binary settings, feature toggles
- Visual: Pill-shaped switch with sliding indicator
- States:
- Off: Gray track (#D8DEE9) with white indicator left
- On: Orange track (#E67E22) with white indicator right
- Focus: Blue outline
- Disabled: Reduced opacity
Dropdown
- Purpose: Selection from predefined options
- Visual: Field with chevron indicator, expandable option list
- States:
- Closed: Shows selected value or placeholder
- Open: Displays options with subtle shadow
- Option hover: Light background highlight
- Option selected: Checkmark indicator
- Disabled: Reduced opacity
Date Picker
- Purpose: Date selection for appointments
- Visual: Calendar interface with month navigation
- States:
- Default: Calendar with current month
- Date hover: Subtle highlight
- Date selected: Orange circle highlight
- Date disabled: Muted appearance for unavailable dates
Time Picker
- Purpose: Time slot selection for appointments
- Visual: Grid of available time slots
- States:
- Default: Grid or list of times
- Time hover: Subtle highlight
- Time selected: Blue background
- Time unavailable: Muted appearance
2.2 Navigation Elements
2.2.1 Navigation Bar
graph TD
A[Navigation Bar] --> B[Desktop]
A --> C[Tablet]
A --> D[Mobile]
B --> E[Full Navigation]
C --> F[Condensed Navigation]
D --> G[Hamburger Menu]
G --> H[Closed]
G --> I[Open]
Desktop Navigation
- Visual: Horizontal bar with logo, primary navigation items, account section
- Content: Logo, primary sections, account/profile, notifications
- Behavior: Highlights current section, dropdown for sub-sections
Tablet Navigation
- Visual: Condensed horizontal bar with prioritized items
- Content: Logo, critical navigation items, more menu for secondary items
- Behavior: More menu expands to show additional options
Mobile Navigation
- Visual: Minimal bar with logo and hamburger menu
- Content: Logo, hamburger icon, critical action button
- Behavior:
- Closed: Shows minimal navigation
- Open: Slides in full menu from side
- Expanded: Shows sub-navigation when section selected
2.2.2 Tabs
Standard Tabs
- Purpose: Section switching within a page
- Visual: Text-based tabs with sliding indicator
- Behavior: Indicator slides to active tab, content changes
Process Tabs
- Purpose: Multi-step process navigation
- Visual: Numbered tabs with completion indicators
- Behavior: Shows current step, completed steps, and upcoming steps
Mobile Tabs
- Purpose: Primary navigation on mobile
- Visual: Icon and text tabs at bottom of screen
- Behavior: Highlights active section, maintains position across app
2.2.3 Breadcrumbs
- Purpose: Hierarchical navigation and location awareness
- Visual: Horizontal chain of links with separators
- Behavior: Shows path from home to current page, allows backtracking
- Responsive: Collapses middle items on small screens
2.3 Information Display
2.3.1 Cards
graph TD
A[Card] --> B[Basic Card]
A --> C[Service Card]
A --> D[Appointment Card]
A --> E[Status Card]
B --> F[Header]
B --> G[Content]
B --> H[Footer]
C --> I[Service Icon]
C --> J[Service Title]
C --> K[Service Description]
C --> L[Service Actions]
D --> M[Date/Time]
D --> N[Service Type]
D --> O[Location]
D --> P[Status]
D --> Q[Actions]
Basic Card
- Purpose: Content containment and grouping
- Visual: White background, subtle shadow, rounded corners (12px)
- Sections: Optional header, content area, optional footer
- Variations: Border emphasis, background variations
Service Card
- Purpose: Display available HVAC services
- Visual: Selectable card with service details
- Content: Service icon, title, description, selection state
- States: Default, selected, unavailable
Appointment Card
- Purpose: Display scheduled service appointments
- Visual: Structured card with appointment details
- Content: Date/time, service type, location, technician, status
- States: Upcoming, confirmed, in-progress, completed, canceled
Status Card
- Purpose: Display system status and diagnostics
- Visual: Color-coded card with status information
- Content: Status icon, title, description, recommendations
- States: Normal, warning, critical, unknown
2.3.2 Lists & Tables
Basic List
- Purpose: Display collection of similar items
- Visual: Stacked items with consistent formatting
- Variations: Icon list, action list, selection list
Data Table
- Purpose: Display structured data in rows and columns
- Visual: Header row, data rows, optional footer
- Features: Sorting, pagination, row selection
- Responsive: Transforms to cards on small screens
Timeline
- Purpose: Display chronological events
- Visual: Vertical line with connected event cards
- Features: Time indicators, status changes, expandable details
2.3.3 Status Indicators
Status Badge
- Purpose: Concise status communication
- Visual: Compact, color-coded pill with text/icon
- States:
- Success: Green (#27AE60)
- Warning: Amber (#F39C12)
- Error: Red (#C0392B)
- Info: Blue (#0A3D62)
- Neutral: Gray (#7F8C8D)
Progress Indicator
- Purpose: Show process completion status
- Visual: Linear or circular progress visualization
- Types:
- Determinate: Shows specific percentage
- Indeterminate: Shows activity without percentage
- Step indicator: Shows discrete steps in a process
System Status
- Purpose: Display HVAC system health
- Visual: Icon-based indicators with color coding
- States: Optimal, attention needed, service required, offline
2.4 Feedback Mechanisms
2.4.1 Alerts
graph TD
A[Alert] --> B[Toast]
A --> C[Banner]
A --> D[Inline Alert]
A --> E[Modal Alert]
B --> F[Success]
B --> G[Error]
B --> H[Warning]
B --> I[Info]
Toast Notifications
- Purpose: Temporary feedback about system actions
- Visual: Compact message that appears and disappears
- Position: Bottom center on mobile, bottom right on desktop
- Duration: 3 seconds for info/success, 5 seconds for warnings, remains until dismissed for errors
- Types:
- Success: Green background, success icon, message
- Error: Red background, error icon, message
- Warning: Amber background, warning icon, message
- Info: Blue background, info icon, message
Banner Alerts
- Purpose: Important system-wide messages
- Visual: Full-width bar at top of interface
- Behavior: Remains visible until addressed or dismissed
- Types: Same color-coding as toasts
Inline Alerts
- Purpose: Contextual feedback within forms/sections
- Visual: Contained message with appropriate icon
- Position: Directly associated with relevant content
- Types: Same color-coding as toasts
Modal Alerts
- Purpose: Critical messages requiring acknowledgment
- Visual: Modal dialog with message and actions
- Behavior: Blocks interaction until addressed
- Types: Same color-coding as toasts
2.4.2 Loading Indicators
Spinner
- Purpose: Indicate processing for small areas
- Visual: Circular animation in brand colors
- Sizes: Small (16px), medium (24px), large (32px)
- Usage: Within buttons, small content areas
Linear Loader
- Purpose: Indicate processing for larger sections
- Visual: Horizontal progress bar
- Types:
- Determinate: Shows specific percentage
- Indeterminate: Animated bar without percentage
Skeleton Loader
- Purpose: Content placeholder during loading
- Visual: Gray animated placeholder matching content structure
- Usage: Cards, lists, and content areas
2.4.3 Modals & Dialogs
Information Modal
- Purpose: Present important information
- Visual: Centered dialog with title, content, actions
- Behavior: Appears with fade-in animation, background dimmed
Confirmation Dialog
- Purpose: Confirm user actions
- Visual: Compact dialog with question and action buttons
- Behavior: Requires explicit confirmation or cancellation
Form Dialog
- Purpose: Collect information in focused context
- Visual: Dialog containing form elements
- Behavior: Validates input before submission
Fullscreen Dialog
- Purpose: Complex interactions requiring focus
- Visual: Takes full screen on mobile, large portion on desktop
- Behavior: More extensive than standard modals
2.4.4 Tooltips & Popovers
Tooltip
- Purpose: Provide brief clarifying information
- Visual: Small text bubble appearing on hover/focus
- Behavior: Appears after short delay, disappears on mouse out
Popover
- Purpose: Show additional content or actions
- Visual: Card-like container with related content
- Behavior: Appears on click, remains until dismissed
3. Pattern System
3.1 Layout System
3.1.1 Grid System
/* Container Widths */
--container-sm: 640px;
--container-md: 768px;
--container-lg: 1024px;
--container-xl: 1280px;
--container-2xl: 1440px;
/* Grid Configuration */
--grid-columns: 12;
--grid-gutter-sm: var(--space-md);
--grid-gutter-md: var(--space-lg);
--grid-gutter-lg: var(--space-xl);
/* Breakpoints */
--breakpoint-xs: 0;
--breakpoint-sm: 480px;
--breakpoint-md: 768px;
--breakpoint-lg: 1024px;
--breakpoint-xl: 1280px;
The grid system implements a 12-column layout with responsive breakpoints:
- Mobile: 1-column or 2-column layouts (0-479px)
- Tablet Small: 4-column grid (480-767px)
- Tablet Large: 8-column grid (768-1023px)
- Desktop Small: 12-column grid (1024-1279px)
- Desktop Large: 12-column grid with wider margins (1280px+)
3.1.2 Page Templates
Service Home
- Header with navigation
- Hero section with primary action
- Service category cards (2×2 grid on desktop, 1×4 on mobile)
- Testimonial section
- Emergency contact section
- Footer
Appointment Scheduling
- Header (simplified)
- Progress indicator
- Primary content area (form steps)
- Summary sidebar (desktop) or accordion (mobile)
- Action buttons (bottom)
Service Dashboard
- Header with navigation
- Status summary cards (row on desktop, stack on mobile)
- Upcoming appointments section
- System health indicators
- Maintenance recommendations
- Footer
Technician View
- Header with technician information
- Appointment details
- Customer information
- Service history
- Diagnostic tools
- Action buttons
3.2 Interaction Models
3.2.1 Form Completion
graph TD
A[Form Start] --> B[Field Completion]
B --> C{Validation}
C -->|Valid| D[Next Field/Section]
C -->|Invalid| E[Show Error]
E --> B
D --> F{More Fields?}
F -->|Yes| B
F -->|No| G[Form Submission]
G --> H{Processing}
H -->|Success| I[Success State]
H -->|Error| J[Error State]
J --> K[Error Recovery]
K --> G
Form Principles
- Progressive disclosure for complex forms
- Inline validation with immediate feedback
- Clear error messages with recovery guidance
- Logical tab order for keyboard navigation
- Smart defaults to reduce input burden
- Save and resume capability for longer forms
Key Form Patterns
- Address entry with suggestion/autocomplete
- Credit card entry with format validation
- Phone number entry with format standardization
- Date selection with availability indicators
- Time slot selection with availability grouping
3.2.2 Appointment Scheduling
graph TD
A[Start] --> B[Service Selection]
B --> C[Issue Description]
C --> D[Location Confirmation]
D --> E[Date Selection]
E --> F[Time Selection]
F --> G[Contact Information]
G --> H[Appointment Summary]
H --> I[Deposit Payment]
I --> J[Confirmation]
Scheduling Principles
- Minimize steps for emergency situations
- Show availability in real-time
- Clear pricing and deposit information
- Multiple entry points (phone, web, app)
- Seamless handoff between channels
Key Scheduling Patterns
- Service type selection with visual cards
- Calendar date selection with availability indicators
- Time slot selection with availability grouping
- Contact information with smart defaults for returning users
- Appointment confirmation with clear next steps
3.2.3 Diagnostic Flows
graph TD
A[Start] --> B[System Selection]
B --> C[Symptom Selection]
C --> D[Guided Questions]
D --> E[Photo Upload Option]
E --> F[AI Analysis]
F --> G{Can self-resolve?}
G -->|Yes| H[DIY Instructions]
G -->|No| I[Service Recommendation]
I --> J[Appointment Scheduling]
Diagnostic Principles
- Step-by-step guidance with simple questions
- Visual aids for technical concepts
- Photo upload capability for visual diagnosis
- Clear distinction between DIY and professional service needs
- Seamless transition to scheduling when needed
Key Diagnostic Patterns
- Symptom selection with visual and textual descriptions
- Binary and multiple-choice questions with clear language
- Photo upload with guidance for useful angles
- Preliminary diagnosis with confidence level
- DIY instructions with safety warnings
3.3 State Management
3.3.1 Interactive States
All interactive elements implement these consistent states:
Default
- Standard, resting appearance
- Clear affordance for interaction type
Hover
- Subtle visual change indicating interactivity
- Typically lightening/darkening and subtle scaling
Focus
- High-contrast indicator for keyboard navigation
- Blue outline (2px) that doesn't rely solely on color
Active/Pressed
- Immediate feedback during interaction
- Typically darkening and slight scale reduction
Disabled
- Clear indication that element is not interactive
- Reduced opacity (60%) and removed hover effects
3.3.2 Process States
Processes and operations communicate state through:
Idle
- Default state before process begins
- Clear call-to-action to initiate
Loading
- Visual indicator of ongoing process
- Appropriate for context (spinner, progress bar, skeleton)
Success
- Clear indication of successful completion
- Green color coding with success messaging
Error
- Clear indication of failure with recovery options
- Red color coding with specific error messaging
Empty
- Meaningful display when no content exists
- Guidance on how to add content or next steps
3.3.3 Selection States
Selection interactions maintain these states:
Unselected
- Default state for selectable elements
- Clear indication of selectability
Selected
- High-contrast visual change
- Typically filled background or prominent indicator
Indeterminate/Partial
- Visual distinction from both selected/unselected
- Used for partial selections in groups
Multiple Selection
- Clear indication of multiple selected items
- Count indicator when many items selected
3.4 Content Patterns
3.4.1 Empty States
graph TD
A[Empty State] --> B[First Use]
A --> C[Filtered Empty]
A --> D[Error Empty]
B --> E[Onboarding]
C --> F[Filter Guidance]
D --> G[Error Recovery]
First Use Empty State
- Purpose: Guide new users to get started
- Content: Friendly welcome, clear first action
- Visual: Illustration or icon, prominent CTA
Filtered Empty State
- Purpose: Indicate no results match filters
- Content: Explanation, filter adjustment suggestions
- Visual: Smaller illustration, filter reset action
Error Empty State
- Purpose: Indicate content unavailable due to error
- Content: Error explanation, recovery action
- Visual: Error indicator, retry button
3.4.2 Error Messages
Validation Errors
- Location: Directly below invalid field
- Content: Specific guidance on fixing issue
- Visual: Red text with error icon
System Errors
- Location: Contextual to affected feature
- Content: Clear explanation with recovery options
- Visual: Error alert with appropriate severity
Connection Errors
- Location: Top of screen or affected area
- Content: Connection status with retry option
- Visual: Banner or inline alert with retry action
3.4.3 Help Content
Tooltips
- Purpose: Brief explanation of UI element
- Content: 1-2 sentences of clarification
- Trigger: Information icon or hover/focus
Contextual Help
- Purpose: In-context guidance for complex tasks
- Content: Step-by-step instructions with visuals
- Trigger: Help button or automatic for new users
Knowledge Base
- Purpose: Comprehensive help documentation
- Content: Searchable articles with categories
- Access: Help section in navigation
4. Implementation Guidelines
4.1 Responsive Implementation
graph TD
A[Responsive Implementation] --> B[Mobile First]
A --> C[Breakpoint System]
A --> D[Component Adaptations]
B --> E[Base Experience]
C --> F[Layout Changes]
D --> G[Component Transformations]
Mobile-First Approach
- Design core experience for mobile devices first
- Progressively enhance for larger screens
- Maintain content parity across devices
Breakpoint System
- Mobile: 0-479px
- Tablet Small: 480-767px
- Tablet Large: 768-1023px
- Desktop Small: 1024-1279px
- Desktop Large: 1280px+
Key Component Adaptations
| Component | Mobile | Tablet | Desktop |
|---|---|---|---|
| Navigation | Hamburger menu | Condensed nav | Full horizontal nav |
| Forms | Single column | Single/dual column | Multi-column layout |
| Tables | Card view | Simplified table | Full table with all columns |
| Modals | Full screen | 80% width | Fixed width (max 600px) |
| Cards | Full width, stacked | Grid layout | Grid with fixed widths |
4.2 Accessibility Implementation
Keyboard Navigation
- Logical tab order following visual layout
- Focus management in complex components
- Keyboard shortcuts for power users
- Focus trapping in modals and dialogs
Screen Reader Support
- Semantic HTML structure
- ARIA roles, states, and properties
- Status announcements for dynamic content
- Alternative text for all images and icons
Touch Accessibility
- Minimum touch target size of 44×44px
- Sufficient spacing between touch targets
- Gesture alternatives for complex interactions
- Touch feedback for all interactive elements
Color and Contrast
- All text meets WCAG AA standards
- Normal text: minimum 4.5:1 ratio
- Large text: minimum 3:1 ratio
- Information never conveyed by color alone
- Focus indicators visible in high-contrast mode
4.3 Performance Optimization
Rendering Optimization
- Component memoization for expensive renders
- Virtualization for long lists and tables
- Lazy loading for off-screen content
- Code splitting for large components
Asset Optimization
- SVG sprite system for icons
- Responsive images with appropriate sizing
- Optimized font loading strategy
- Minimal CSS footprint
Animation Performance
- Hardware-accelerated animations
- Reduced motion option for vestibular disorders
- Animation throttling on low-power devices
- Performance budgets for animation complexity
4.4 Component Usage Guidelines
Button Usage
- Primary: Main actions that advance user flow
- Secondary: Important actions that don't advance flow
- Tertiary: Optional or supporting actions
- Icon: When space is limited and icon is universally understood
- Link: For navigation or non-critical actions
Form Component Selection
- Text Field: Single line of text input
- Text Area: Multiple lines of text input
- Checkbox: Multiple selection from options
- Radio: Single selection from visible options
- Dropdown: Single selection from many options
- Toggle: Binary on/off settings
Card Selection
- Basic Card: General content grouping
- Service Card: Displaying service options
- Appointment Card: Showing scheduled appointments
- Status Card: Displaying system health information
Alert Selection
- Toast: Temporary feedback about system actions
- Banner: Important system-wide messages
- Inline Alert: Contextual feedback within forms
- Modal Alert: Critical messages requiring acknowledgment
5. Signature Components
5.1 Appointment Scheduler
The Appointment Scheduler is a cornerstone component that embodies SvenHVAC's dual Magician/Caregiver brand archetypes through a seamless, reassuring scheduling experience.
Component Structure
[AppointmentScheduler]
[StepIndicator] Step 2 of 3: Select Time
[DateSelection]
[MonthNavigator] October 2023
[CalendarGrid]
[DateCell unavailable] 1
[DateCell] 2
[DateCell selected] 3
...
[TimeSelection]
[TimeSlotGroup] Morning
[TimeSlot unavailable] 8:00 AM
[TimeSlot] 9:00 AM
[TimeSlot selected] 10:00 AM
[TimeSlot] 11:00 AM
[TimeSlotGroup] Afternoon
[TimeSlot] 1:00 PM
[TimeSlot] 2:00 PM
...
[ActionSection]
[SecondaryButton] Back
[PrimaryButton] Continue
Visual Characteristics
- Clean calendar view with clear date delineation
- Color-coded availability indicators
- Time slots grouped by period (morning, afternoon, evening)
- Prominent selected state for chosen date/time
- Clear next/previous actions
States
- Date Selection: Calendar view with available dates highlighted
- Time Selection: Available time slots for selected date
- Confirmation: Summary of selected appointment details
- Loading: Appears when checking availability
- Error: Shown when availability cannot be retrieved
Responsive Behavior
- Desktop: Side-by-side date and time selection
- Tablet: Side-by-side with condensed time slots
- Mobile: Stacked with date selection above time selection
Accessibility
- Full keyboard navigation through dates and times
- ARIA live regions announce selected date/time
- High contrast indicators for selection states
- Screen reader announcements for availability
5.2 Diagnostic Assistant
The Diagnostic Assistant guides users through troubleshooting their HVAC issues with a conversational, step-by-step approach.
Component Structure
[DiagnosticAssistant]
[ProgressIndicator] Step 2 of 5
[QuestionCard]
[QuestionTitle] What type of noise is your system making?
[QuestionDescription] This helps identify potential mechanical issues
[OptionGroup]
[OptionCard] Grinding/Scraping
[OptionCard selected] Whistling/Hissing
[OptionCard] Banging/Thumping
[OptionCard] Clicking/Ticking
[HelpSection]
[HelpIcon] ?
[HelpContent] Different noises indicate different potential issues...
[MediaUpload]
[UploadButton] Add Audio/Photo
[UploadPreview] Optional
[NavigationSection]
[BackButton] Previous
[NextButton] Continue
Visual Characteristics
- Conversational question cards with clear options
- Visual aids for technical concepts
- Progress indicator showing advancement
- Support for photo/audio upload
- Helpful tips and explanations
States
- Question: Displays current diagnostic question
- Selection: Shows user's selected answer
- Media Capture: Interface for uploading evidence
- Analysis: Shows processing of diagnostic information
- Results: Displays findings and recommendations
Responsive Behavior
- Desktop: Two-column layout with media sidebar
- Tablet: Full-width with horizontal option cards
- Mobile: Stacked layout with vertical option cards
Accessibility
- Clear question hierarchy for screen readers
- Keyboard navigation between options
- Alternative text for all visual aids
- Non-visual alternatives for visual diagnostics
5.3 Service Status Tracker
The Service Status Tracker provides real-time updates on scheduled service appointments with clear status information and next steps.
Component Structure
[ServiceTracker]
[AppointmentHeader]
[ServiceType] AC Repair
[AppointmentID] #AC-12345
[StatusTimeline]
[TimelinePoint completed] Scheduled
[TimeInfo] Oct 10, 10:30 AM
[TimelinePoint completed] Confirmed
[TimeInfo] Oct 11, 9:00 AM
[TimelinePoint active] Technician En Route
[TimeInfo] Oct 12, 1:30 PM
[EstimatedArrival] Arriving in approximately 15 minutes
[TimelinePoint] Service in Progress
[TimelinePoint] Completed
[TechnicianInfo]
[TechnicianPhoto]
[TechnicianName] John Smith
[TechnicianBadge] Certified AC Specialist
[ContactButton] Call Technician
[MapView]
[TechnicianLocation]
[DestinationLocation]
[ETA] 15 minutes
Visual Characteristics
- Clear timeline visualization of service stages
- Prominent current status with estimated times
- Technician information with credentials
- Map view for en-route tracking
- Action buttons for communication
States
- Scheduled: Initial appointment booking
- Confirmed: Appointment verified
- En Route: Technician traveling to location
- In Progress: Service being performed
- Completed: Service finished
- Cancelled: Appointment cancelled
Responsive Behavior
- Desktop: Side-by-side timeline and map
- Tablet: Timeline above map
- Mobile: Stacked layout with collapsible sections
Accessibility
- Status changes announced via ARIA live regions
- Semantic timeline structure for screen readers
- Text alternatives for map view
- Multiple contact options for technician
5.4 Payment Summary
The Payment Summary component provides clear, transparent pricing information with secure payment processing.
Component Structure
[PaymentSummary]
[ServiceDetails]
[ServiceType] AC Repair - Emergency Service
[AppointmentTime] Tuesday, Oct 12, 2:00 PM - 4:00 PM
[CostBreakdown]
[LineItem]
[ItemName] Diagnostic Fee
[ItemAmount] $89.00
[LineItem]
[ItemName] Emergency Service Fee
[ItemAmount] $50.00
[Divider]
[TotalLine]
[TotalLabel] Required Deposit
[TotalAmount] $139.00
[PricingNote] Full service cost determined after diagnosis
[PaymentMethod]
[PaymentOptions]
[CardOption selected] Credit/Debit Card
[PayPalOption] PayPal
[SecurityIndicator] 🔒 Secure Payment
[CardEntry]
[CardNumberField]
[ExpiryAndCVV]
[BillingZipCode]
[SubmitSection]
[TermsAgreement] I agree to the terms and conditions
[PayButton] Pay $139.00
Visual Characteristics
- Clear itemized breakdown of costs
- Transparent deposit vs. full service distinction
- Secure payment indicators
- Simple, streamlined payment form
- Clear terms and conditions
States
- Initial: Displays pricing breakdown
- Method Selection: Shows payment options
- Entry: Collects payment details
- Processing: Shows payment in progress
- Success: Confirms successful payment
- Error: Displays payment issues with recovery
Responsive Behavior
- Desktop: Side-by-side breakdown and payment form
- Tablet: Stacked with horizontal payment methods
- Mobile: Fully stacked with optimized payment entry
Accessibility
- Clear heading structure for screen readers
- Labeled form fields with validation
- Error messages linked to relevant fields
- Multiple payment options for different needs
5.5 Voice Assistant Interface
The Voice Assistant Interface component provides a visual representation of the AI-powered voice assistant, bridging the gap between phone calls and digital interactions.
Component Structure
[VoiceAssistantInterface]
[AssistantHeader]
[AssistantAvatar]
[AssistantTitle] Sven Assistant
[AssistantStatus] Listening...
[ConversationArea]
[MessageBubble assistant] "Hello! I'm Sven, your HVAC assistant. How can I help you today?"
[MessageBubble user] "My AC isn't cooling properly."
[MessageBubble assistant] "I'm sorry to hear that. Let me help diagnose the issue."
[MessageActionSuggestions]
[ActionChip] Send a photo
[ActionChip] Schedule service
[ActionChip] Troubleshoot
[MediaPreview]
[ImageThumbnail] User-submitted photo
[AnalysisStatus] Analyzing...
[InputArea]
[MicrophoneButton active]
[TextInput] Type your message...
[SendButton]
[AttachButton]
Visual Characteristics
- Warm, conversational interface with clear turn-taking
- Assistant avatar with subtle animations indicating status
- Speech-to-text visualization during voice input
- Suggested actions based on conversation context
- Media upload preview with analysis status
States
- Idle: Ready for user input
- Listening: Actively processing voice input
- Processing: Analyzing user information
- Responding: Providing information or guidance
- Action Required: Prompting user for specific input
Responsive Behavior
- Desktop: Full-width conversation with side panel for media/details
- Tablet: Conversation with collapsible details panel
- Mobile: Focused conversation view with expandable media preview
Accessibility
- Text alternatives for voice interactions
- Keyboard-accessible conversation controls
- Visual indicators synchronized with audio cues
- Transcript available for previous conversation
6. API Integration Guidelines
6.1 Calendar API Integration
SvenHVAC's appointment scheduling system requires seamless integration with HVAC technicians' calendars to provide real-time availability.
Integration Requirements
- Real-time availability checking against technician calendars
- Appointment creation in technician's preferred calendar system
- Bi-directional sync for appointment updates and cancellations
- Support for multiple calendar providers (Google Calendar, Microsoft Outlook, etc.)
API Implementation Patterns
- Webhook listeners for calendar changes
- Polling fallback for providers without webhooks
- Caching layer for improved performance
- Conflict resolution for simultaneous booking attempts
Error Handling
- Graceful degradation when calendar services are unavailable
- Clear user messaging for synchronization issues
- Automatic retry mechanisms for transient failures
- Manual override capabilities for administrative users
6.2 Payment Gateway Integration
The payment system requires secure integration with Stripe for processing deposits and service payments.
Integration Requirements
- Secure collection and transmission of payment information
- Support for various payment methods (credit cards, digital wallets)
- Compliant with PCI-DSS requirements
- Proper handling of payment statuses and webhooks
Implementation Patterns
- Client-side tokenization of payment details
- Server-side payment processing
- Webhook listeners for payment status updates
- Idempotent payment operations to prevent duplicates
Security Considerations
- No storage of sensitive payment details
- TLS encryption for all data transmission
- Proper authentication for payment-related API endpoints
- Comprehensive logging for audit purposes
6.3 Voice Assistant Integration
The AI-powered voice assistant requires integration with telephony systems and natural language processing services.
Integration Requirements
- Connection to local phone numbers across service areas
- Speech-to-text processing for caller input
- Natural language understanding for intent recognition
- Text-to-speech for assistant responses
Implementation Patterns
- Telephony API integration for call handling
- Streaming audio processing for real-time interaction
- Context preservation between interaction channels
- Fallback mechanisms for handling ambiguity
Optimization Considerations
- Low-latency response requirements for natural conversation
- Handling of background noise and unclear speech
- Dialect and accent adaptation for diverse callers
- Seamless handoff between voice and digital channels
Conclusion
The SvenHVAC User Interface Specifications document establishes a comprehensive framework for creating an intuitive, accessible, and brand-aligned digital experience. By implementing these specifications, SvenHVAC will deliver a user interface that embodies our dual Magician/Caregiver brand archetypes - providing both innovative technology and human reassurance during potentially stressful HVAC situations.
The component library and pattern system defined here will ensure consistency across all digital touchpoints while maintaining the flexibility to evolve as the service expands beyond the initial Worcester, MA market. By adhering to these specifications, SvenHVAC will deliver a digital experience that differentiates us in the HVAC service industry through technical excellence and emotional reassurance.
-
Executive Summary
Vanka clearly articulates your idea in a way that enables the entire business strategy & planning foundation to be expertly prepared.
-
User Journey
Everything customers experience from the moment they learn about you, to their first use of your product, to evangelizing your product.
-
Brand Strategy
The foundation for how you show up in the world. It determines whether you are memorable, trusted, and ultimately chosen.
-
Business Analysis
Expert analysis of your business idea, to help you make an informed decision about how to proceed.
-
Visual Identity System
Establishes comprehensive branding guidelines, defining visual elements & their consistent application.
-
Product Requirements
Defines what a product should do in a way that guides product development teams.
-
Technical Architecture
Defines system structure, technologies, data flow, etc to guide engineering implementation and ensure scalability.
-
Component Library
Catalogs reusable UI elements with usage guidelines, specs, code examples to ensure consistent interface design across products.
-
UI Spec
Details interface layout, interactions, styling, behavior for specific screens or features to guide design implementation.
-
UX Flow Diagram
Visually maps user journeys through a product, showing screens, decision points, interactions to clarify navigation and experience.
-
Low-Fi Mockups
Quick, simple sketches of interface layouts to explore concepts, test ideas, and gather early feedback before detailed design.