Atria - Style Guide
This document defines the visual and interaction rules for Atria. It serves as the source for UI styling, ensuring consistency across all pages and components.
Once Atria is deployed, this information will be described and explained at the route /style-guide within Atria itself to be the source of truth, and assist Developers and save time keeping the application consistent.
Icon Library
Primary Icon Set: Lucide React (lucide-react)
Guidelines:
Always use Lucide React icons to maintain consistency.
Import icons directly from lucide-react.
Default icon size: 24px (scale proportionally if needed).
Use icons alongside text labels where clarity is required.
Color Scheme
Primary Palette
Primary Blue: #2196f3 (Material Blue 500)
Hover Blue: #1976d2 (Material Blue 700)
Light Blue: #e3f2fd (backgrounds, highlights)
Focus Blue: #007bff (focus states, Bootstrap default)
Secondary Palette
Success Green: #28a745 (Bootstrap green, standardized)
Warning/Alert Red: #ff6b6b (general alerts), #ff4d4d (critical errors, low-speed warnings)
Neutral Palette
Text Primary: #262626 / #333 / #2d3748
Text Secondary: #666 / #4a5568 / #6b7280
Backgrounds: #ffffff (primary), #f8f9fa / #f8fafc (light)
Borders:
Light: #e9ecef / #e0e0e0 / #bdbdbd
Medium: #e5e7eb / #e1e5e9
Gradients
Hero: linear-gradient(135deg, #667eea 0%, #764ba2 100%)
Card: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%)
Navigation: linear-gradient(135deg, #6c757d 0%, #495057 100%)
Buttons
Standard Buttons
Padding: 12px 20px
Font Size: 16px
Border Radius: 8px
Min Width: 150px (when grouped)
Form Buttons
Full width on mobile: width: 100%
Height: 44px (touch-friendly)
Special Cases
Complete Install: Background color reflects state (e.g., red #ff4d4d for errors/low-speed).
Sign Out: Neutral grey #9e9e9e.
Cards
Standard Cards
Max Width: 500px (mobile forms)
Desktop Max Width: 800px
Padding: 20px (mobile), 2rem (desktop)
Border Radius: 12px (primary), 8px (nested elements)
Site Health Cards
Full-width on desktop
Background: #f8fafc
Border: 1px solid #e2e8f0
Border Radius: 16px
Report Modal
Width: 92vw (mobile), 70% (tablet/desktop)
Max Width: 680px
Max Height: calc(100vh - 2rem)
Organization Rules:
One primary responsibility per page.
Each page has a dedicated CSS file for scoped styling.
Shared layout component provides consistent navigation and structure.
Typography
Font Family
Primary: Inter, sans-serif
Monospace: "Courier New", monospace (technical data)
Sizes
Hero: 2.5rem (40px)
Large Headings: 1.8rem – 2rem (29–32px)
Section Headings: 1.25rem (20px)
Subheadings: 1.2rem (19px)
Body: 1rem (16px)
Small: 0.85rem – 0.9rem (14–15px)
Caption: 0.7rem – 0.75rem (11–12px)
Weights
Headings: 600 (semi-bold)
Navigation: 500 (medium)
Labels: 700 (bold)
Body: 400 (normal)
Spacing
Components
Form Gap: 10px
Button Group Gap: 30px (desktop), 15px (mobile)
Container Padding: 20px (mobile), 2rem (desktop)
Section Margins: 20px (standard), 2rem (desktop)
Layout
Header Height: 70px
Form Containers: 20px padding, box-sizing: border-box
Shadows
Subtle: 0 1px 3px rgba(0, 0, 0, 0.1)
Standard: 0 4px 12px rgba(0, 0, 0, 0.15)
Elevated: 0 8px 25px rgba(0, 0, 0, 0.15)
Responsive Design
Breakpoints
Mobile: max-width: 480px
Tablet: min-width: 768px
Desktop: min-width: 801px
Behavior
Mobile-first: base styles optimized for 480px and below.
Forms: 95% width (mobile), 90% (tablet), max-width: 500px.
Desktop (801px+):
Larger containers (max-width: 800px)
Increased padding (2rem)
Full-width data display
Touch Targets
Minimum height: 44px (buttons, inputs)
Input padding: 10px (mobile), 9px (desktop)
Font size: 16px (prevents zoom on iOS)
Design Principles
Border Radius:
Main containers: 12px
Cards/Forms: 8px
Buttons: 8px
Large containers (health cards): 16px
Visual Hierarchy:
Primary actions → Blue (#2196f3)
Destructive actions → Red variants
Secondary actions → Grey tones
Focus states → Consistent blue outlines
Accessibility:
Maintain WCAG contrast ratios
Minimum touch targets: 44px
Clear and consistent focus indicators
Semantic use of color (e.g., red = error, blue = primary action)