Some checks failed
CI / markdown-lint (push) Failing after 14s
- Reorganized directory structure following open source best practices - Created src/ directory for all source code components - Moved build artifacts to build/ subdirectories - Organized documentation into phases/, guides/, and api/ subdirectories - Moved third-party code to vendor/ directory - Moved downloads to downloads/ directory - Updated all build scripts to reference new directory structure - Created comprehensive PROJECT_STRUCTURE.md documentation - Added DEVELOPMENT_GUIDE.md as main entry point - Improved separation of concerns and maintainability - Follows standard open source project conventions
15 KiB
15 KiB
BBeOS UI/UX Design Documentation
🎨 Design Philosophy
BBeOS is designed specifically for the BlackBerry Classic Q20's unique hardware characteristics:
- Square 720x720 display - Not rectangular like modern phones
- Physical QWERTY keyboard - Primary input method, not touch
- Optical/capacitive trackpad - Cursor movement and selection
- Small screen real estate - Efficient use of limited space
🖥️ User Interface Layout
1. Home Screen Layout
┌─────────────────────────────────────────────────────────────┐
│ BBeOS [12:34] │ ← Status Bar (40px)
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 📞 │ │ 💬 │ │ 📝 │ │ ⚙️ │ │ ← App Grid (4x4)
│ │Phone│ │SMS │ │Edit │ │Set │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 🧮 │ │ 📁 │ │ 🌐 │ │ 📊 │ │
│ │Calc │ │Files│ │Web │ │Info │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 📶 │ │ 🔋 │ │ 📱 │ │ 🎵 │ │
│ │WiFi │ │Power│ │Phone│ │Music│ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 🗺️ │ │ 📧 │ │ 📅 │ │ ❓ │ │
│ │GPS │ │Email│ │Cal │ │Help │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │
├─────────────────────────────────────────────────────────────┤
│ [↑↓] Navigate [Enter] Open [Esc] Back [?] Help │ ← Help Bar
└─────────────────────────────────────────────────────────────┘
2. Application Window Layout
┌─────────────────────────────────────────────────────────────┐
│ Calculator [×] [-] [□] │ ← Window Title Bar
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Display: 123.45 │ │ ← Application Area
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 7 │ │ 8 │ │ 9 │ │ / │ │ % │ │ ^ │ │ ← Button Grid
│ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 4 │ │ 5 │ │ 6 │ │ * │ │ M+ │ │ M- │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 1 │ │ 2 │ │ 3 │ │ - │ │ MR │ │ MC │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 0 │ │ . │ │ = │ │ + │ │ MS │ │ AC │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │
├─────────────────────────────────────────────────────────────┤
│ [H] History [C] Clear [?] Help [Q] Quit │ ← Status Bar
└─────────────────────────────────────────────────────────────┘
3. Text Editor Layout
┌─────────────────────────────────────────────────────────────┐
│ Text Editor - document.txt [×] [-] [□] │ ← Window Title Bar
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 1 │ Hello World! │ │ ← Line Numbers
│ │ 2 │ This is a test document. │ │
│ │ 3 │ │ │
│ │ 4 │ Welcome to BBeOS! │ │
│ │ 5 │ │ │
│ │ 6 │ Features: │ │
│ │ 7 │ - Physical keyboard │ │
│ │ 8 │ - Trackpad navigation │ │
│ │ 9 │ - Square display │ │
│ │10 │ │ │
│ │11 │ │ │
│ │12 │ │ │
│ │13 │ │ │
│ │14 │ │ │
│ │15 │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────────────────────┤
│ Cursor: 1,1 Lines: 15 [MODIFIED] │ ← Status Bar
└─────────────────────────────────────────────────────────────┘
⌨️ Input Methods & Navigation
1. Keyboard Navigation
Home Screen Navigation
- Arrow Keys: Navigate between app icons
- Enter: Launch selected application
- Escape: Return to previous screen
- Tab: Cycle through interface elements
- Space: Select/deselect items
Application Navigation
- Arrow Keys: Move cursor, scroll, navigate menus
- Enter: Confirm selection, activate button
- Escape: Cancel, go back, close dialog
- Tab: Move between input fields
- Shift+Tab: Move backwards through fields
2. Trackpad Navigation
Cursor Movement
- Trackpad: Move cursor around screen
- Click: Select/activate items
- Double-click: Open files/applications
- Right-click: Context menu (if supported)
Scrolling
- Trackpad scroll: Vertical scrolling in documents
- Shift+trackpad scroll: Horizontal scrolling
- Trackpad edge: Quick navigation to screen edges
3. Keyboard Shortcuts
System Shortcuts
- Alt+Tab: Switch between applications
- Alt+F4: Close current application
- Ctrl+Alt+Del: System menu
- F1: Help system
- F2: Rename selected item
Application Shortcuts
- Ctrl+S: Save
- Ctrl+O: Open
- Ctrl+N: New
- Ctrl+Z: Undo
- Ctrl+Y: Redo
- Ctrl+F: Find
- Ctrl+C: Copy
- Ctrl+V: Paste
- Ctrl+X: Cut
🎨 Visual Design Elements
1. Color Scheme
Primary Colors
- Background: Dark gray (#1a1a1a)
- Surface: Medium gray (#2d2d2d)
- Accent: Blue (#3366cc)
- Text: White (#ffffff)
- Secondary Text: Light gray (#cccccc)
Status Colors
- Success: Green (#4caf50)
- Warning: Orange (#ff9800)
- Error: Red (#f44336)
- Info: Blue (#2196f3)
2. Typography
Font Hierarchy
- Title: 18px, Bold, Sans-serif
- Heading: 16px, Bold, Sans-serif
- Body: 14px, Regular, Sans-serif
- Caption: 12px, Regular, Sans-serif
- Code: 13px, Monospace
Font Choices
- Primary: DejaVu Sans (system font)
- Monospace: DejaVu Sans Mono
- Fallback: Arial, Helvetica
3. Spacing & Layout
Grid System
- Base Unit: 8px
- Small Spacing: 8px
- Medium Spacing: 16px
- Large Spacing: 24px
- Extra Large: 32px
Component Sizing
- Button Height: 32px
- Input Field Height: 36px
- Icon Size: 24px
- App Icon Size: 80px
- Status Bar Height: 40px
🔄 Interaction Patterns
1. Application Launch
User presses Enter on home screen
↓
Application window appears
↓
Window animates in from center
↓
Application becomes focused
↓
Keyboard input directed to application
2. Window Management
User presses Alt+Tab
↓
Window switcher appears
↓
User selects target application
↓
Previous window minimizes
↓
Selected window becomes active
3. Dialog Boxes
Application requests dialog
↓
Modal dialog appears centered
↓
Background dims
↓
Dialog captures all input
↓
User responds or cancels
↓
Dialog closes, focus returns
📱 Responsive Design
1. Screen Adaptations
720x720 Display (Primary)
- Full layout: All elements visible
- 4x4 app grid: 16 applications
- Full keyboard shortcuts: All shortcuts available
- Complete status bar: All information displayed
Smaller Displays (Future)
- 3x3 app grid: 9 applications
- Condensed status bar: Essential information only
- Simplified navigation: Fewer keyboard shortcuts
2. Accessibility Features
Visual Accessibility
- High contrast mode: Enhanced visibility
- Large text mode: Increased font sizes
- Color blind support: Alternative color schemes
- Screen reader support: Text-to-speech integration
Motor Accessibility
- Sticky keys: Modifier key assistance
- Slow keys: Delayed key response
- Mouse keys: Keyboard mouse control
- Repeat rate adjustment: Customizable key repeat
🎯 User Experience Goals
1. Efficiency
- Keyboard-first design: Minimize trackpad usage
- Shortcut optimization: Common tasks accessible via keyboard
- Predictable navigation: Consistent interaction patterns
- Fast response times: <100ms for UI interactions
2. Learnability
- Intuitive layout: Familiar desktop-like interface
- Consistent design: Same patterns across applications
- Progressive disclosure: Advanced features hidden until needed
- Contextual help: F1 key provides relevant assistance
3. Accessibility
- Universal design: Works for users with disabilities
- Customizable interface: Adaptable to user preferences
- Clear visual hierarchy: Easy to understand information structure
- Error prevention: Design prevents common mistakes
🔮 Future Enhancements
1. Advanced UI Features
- Themes: Customizable color schemes and layouts
- Animations: Smooth transitions and micro-interactions
- Gestures: Trackpad gesture support
- Voice input: Speech-to-text capabilities
2. Productivity Features
- Split-screen mode: Multiple applications side-by-side
- Virtual desktops: Multiple workspace support
- Quick actions: Context-sensitive shortcuts
- Smart suggestions: AI-powered interface assistance
3. Personalization
- Custom layouts: User-defined interface arrangements
- Widgets: Customizable home screen widgets
- Automation: Task automation and scripting
- Integration: Third-party service integration
📊 Performance Metrics
1. Responsiveness
- UI render time: <16ms (60fps)
- Application launch: <2 seconds
- Window switching: <100ms
- Keyboard input lag: <50ms
2. Resource Usage
- Memory footprint: <50MB for UI system
- CPU usage: <5% during normal operation
- Battery impact: Minimal additional drain
- Storage: <10MB for UI components
3. Usability Metrics
- Task completion rate: >95%
- Error rate: <2%
- User satisfaction: >4.5/5
- Learning curve: <30 minutes for basic operations
This UI/UX design ensures that BBeOS provides a modern, efficient, and accessible user experience specifically tailored to the BlackBerry Classic Q20's unique hardware characteristics.