Initial commit adds core UI components, including layout elements, form controls, and navigation elements, along with the main application structure and routing. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 99f0fce6-9386-489a-9632-1d81223cab44 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80/99f0fce6-9386-489a-9632-1d81223cab44/nGJAldO
152 lines
5.7 KiB
Markdown
152 lines
5.7 KiB
Markdown
# Design Guidelines: Security Shift Management System
|
|
|
|
## Design Approach
|
|
|
|
**Selected Framework:** Material Design System
|
|
**Rationale:** Utility-focused operational software requiring efficiency, information density, and cross-platform consistency (web + mobile). Material Design provides robust patterns for data-heavy interfaces, clear visual hierarchy, and proven mobile components essential for field guards.
|
|
|
|
**Design Principles:**
|
|
- Operational clarity over aesthetic flourish
|
|
- Role-appropriate information density
|
|
- Instant status recognition through color/iconography
|
|
- Mobile-first for guard interactions, desktop-optimized for operations
|
|
|
|
---
|
|
|
|
## Core Design Elements
|
|
|
|
### A. Color Palette
|
|
|
|
**Dark Mode Primary (Default):**
|
|
- Primary: 210 100% 50% (Blue - trust, security, operational)
|
|
- Primary Variant: 210 100% 40% (darker blue for hierarchy)
|
|
- Secondary: 160 60% 45% (Teal - success, active duty)
|
|
- Background: 220 15% 12% (Dark operational background)
|
|
- Surface: 220 15% 16% (Cards, panels)
|
|
- Error: 0 70% 55% (Critical alerts, SOS)
|
|
- Warning: 35 90% 55% (Expiring certifications, delays)
|
|
- Success: 140 60% 45% (Completed, on-time)
|
|
|
|
**Light Mode:**
|
|
- Primary: 210 100% 45%
|
|
- Secondary: 160 60% 40%
|
|
- Background: 0 0% 98%
|
|
- Surface: 0 0% 100%
|
|
|
|
**Status Colors (Both Modes):**
|
|
- On Duty: 140 60% 45% (Green)
|
|
- Off Duty: 220 15% 50% (Gray)
|
|
- Late/Alert: 25 90% 55% (Orange)
|
|
- Emergency/SOS: 0 70% 55% (Red)
|
|
- Pending: 45 90% 55% (Amber)
|
|
|
|
### B. Typography
|
|
|
|
**Families:**
|
|
- Primary: Inter (system UI, operational clarity)
|
|
- Monospace: JetBrains Mono (IDs, timestamps, coordinates)
|
|
|
|
**Scale:**
|
|
- Display: 32px/40px (Dashboard titles)
|
|
- H1: 24px/32px (Section headers)
|
|
- H2: 20px/28px (Card titles, modal headers)
|
|
- H3: 16px/24px (Subsections)
|
|
- Body: 14px/20px (Standard content)
|
|
- Caption: 12px/16px (Metadata, timestamps)
|
|
- Small: 11px/14px (Dense tables, mobile labels)
|
|
|
|
**Weights:** 400 (regular), 500 (medium for emphasis), 600 (semibold for headers)
|
|
|
|
### C. Layout System
|
|
|
|
**Spacing Units:** Tailwind's 4px base - primary units: 2, 3, 4, 6, 8, 12, 16
|
|
- Component padding: p-4, p-6
|
|
- Section spacing: py-8, py-12
|
|
- Card gaps: gap-4, gap-6
|
|
- Mobile: Reduce by ~33% (p-3 instead of p-4)
|
|
|
|
**Grid System:**
|
|
- Dashboard: 12-column grid with sidebar (fixed 256px) + main content (fluid)
|
|
- Cards: 2-4 column grid on desktop (grid-cols-1 md:grid-cols-2 lg:grid-cols-3)
|
|
- Mobile: Single column stack, full-width cards
|
|
|
|
**Container Widths:**
|
|
- Operational views: max-w-full (utilize space)
|
|
- Forms/Details: max-w-4xl
|
|
- Client portal: max-w-6xl
|
|
|
|
### D. Component Library
|
|
|
|
**Navigation:**
|
|
- Sidebar (Desktop): Fixed left, collapsible, role-based menu items, active state with left border accent
|
|
- Top Bar: Role indicator, quick actions (SOS visible for guards), notifications, user menu
|
|
- Mobile: Bottom navigation (5 icons max) + hamburger for secondary
|
|
|
|
**Data Display:**
|
|
- Calendar: Week/month views, color-coded by shift type, hover shows details
|
|
- Timeline: Horizontal for daily shifts, vertical for guard history
|
|
- Tables: Sticky headers, row hover, sortable columns, row actions on right
|
|
- Cards: Elevated (shadow-md), rounded-lg, with status indicator strip on left edge
|
|
- Maps: Geofencing visualization with site pins, active guard markers, route tracking
|
|
|
|
**Forms:**
|
|
- Input fields: Outlined style (border-2), filled on dark mode (bg-surface)
|
|
- Select dropdowns: Native with custom chevron icon
|
|
- Date/Time pickers: Material-style with calendar popup
|
|
- Toggle switches: For binary states (armed/unarmed, active/inactive)
|
|
- Multi-select: Chips for selected items with remove icon
|
|
|
|
**Dashboards:**
|
|
- KPI Cards: Large number + trend indicator + sparkline
|
|
- Alert Panel: Expandable list with priority sorting, action buttons
|
|
- Live Status Grid: Card per guard/site with real-time badge updates
|
|
- Quick Actions: Floating action button (mobile) or fixed action bar (desktop)
|
|
|
|
**Mobile Specific (Guard App):**
|
|
- Large touch targets (min 44px height)
|
|
- Bottom-anchored primary actions
|
|
- Swipe gestures for quick actions (swipe right to clock in)
|
|
- Offline indicators with sync status
|
|
- GPS accuracy indicator on timeclock screen
|
|
|
|
**Client Portal:**
|
|
- Cleaner, less dense layouts than operational views
|
|
- Report cards with download buttons (PDF/Excel)
|
|
- Service status summary with visual progress indicators
|
|
- Timeline view of completed shifts with photos/notes
|
|
|
|
### E. Animations
|
|
|
|
**Essential Only:**
|
|
- Loading states: Skeleton screens (shimmer effect) for data loading
|
|
- Status changes: 200ms color fade for status badge updates
|
|
- Drawers/Modals: 250ms slide-in from right (drawers) or fade-in (modals)
|
|
- Live updates: Subtle pulse (once) on new alert/notification
|
|
- **No:** Page transitions, hover effects beyond color change, decorative animations
|
|
|
|
---
|
|
|
|
## Role-Specific Layouts
|
|
|
|
**Operations Dashboard (Admin/Coordinators):**
|
|
- Dense information grid, split-screen capable
|
|
- Left: Live status, alerts, SOS. Right: Schedule, assignments
|
|
- Quick filters always visible (site, date range, guard)
|
|
|
|
**Guard Mobile App:**
|
|
- Minimal chrome, focus on current shift
|
|
- Home: Current assignment + clock in/out (prominent)
|
|
- Bottom nav: Schedule, Sites, Reports, Profile
|
|
- Panic button: Always accessible (top-right corner, red)
|
|
|
|
**Client Portal:**
|
|
- Marketing-influenced landing (lighter touch)
|
|
- Dashboard: Service overview, recent reports
|
|
- Professional photography for site headers
|
|
- Cleaner spacing (py-16 sections vs py-8 operational)
|
|
|
|
---
|
|
|
|
## Images
|
|
|
|
**Not Applicable** - This is an operational system where images serve specific functions (guard photos, incident photos, site maps) rather than decorative purposes. Hero images not used. All imagery is functional: profile pictures (avatar), incident documentation (uploaded photos), location maps (geofencing), equipment photos (dotazioni). |