Files
quality_recticel/md files/THEME_SYSTEM_SUMMARY.md
Quality System Admin d8e6dd1c78 aded folde for MD files
2025-10-27 20:27:41 +02:00

5.8 KiB

Print Module Theme System Implementation

Theme Support Successfully Implemented

CSS Custom Properties System

I've implemented a comprehensive theme system using CSS custom properties (CSS variables) that automatically adapts all tables and UI elements in the printing module to match the selected theme (light/dark mode).

Theme Variables Defined

:root {
    /* Light mode colors (default) */
    --print-table-header-bg: #e9ecef;
    --print-table-header-text: #000;
    --print-table-body-bg: #fff;
    --print-table-body-text: #000;
    --print-table-border: #ddd;
    --print-table-hover: #f8f9fa;
    --print-table-selected: #007bff;
    --print-card-bg: #fff;
    --print-card-border: #ddd;
    --print-search-field-bg: #fff;
    --print-search-field-text: #000;
    --print-search-field-border: #ddd;
}

Light Mode Theme

body.light-mode {
    --print-table-header-bg: #e9ecef;      /* Light gray headers */
    --print-table-header-text: #000;       /* Black text */
    --print-table-body-bg: #fff;           /* White background */
    --print-table-body-text: #000;         /* Black text */
    --print-table-border: #ddd;            /* Light gray borders */
    --print-table-hover: #f8f9fa;          /* Very light gray hover */
    --print-card-bg: #fff;                 /* White cards */
}

Dark Mode Theme

body.dark-mode {
    --print-table-header-bg: #2a3441;      /* Dark blue-gray headers */
    --print-table-header-text: #ffffff;    /* White text */
    --print-table-body-bg: #2a3441;        /* Dark blue-gray background */
    --print-table-body-text: #ffffff;      /* White text */
    --print-table-border: #495057;         /* Medium gray borders */
    --print-table-hover: #3a4451;          /* Lighter dark gray hover */
    --print-card-bg: #2a2a2a;              /* Dark gray cards */
}

Components That Respond to Theme

View Orders Table

  • Headers: Background and text color change automatically
  • Body cells: Background, text, and border colors adapt
  • Hover effects: Appropriate hover colors for each theme
  • Selected rows: Consistent selection highlighting

Print Module Table

  • Headers: Theme-aware colors and borders
  • Data cells: Proper contrast in both themes
  • Row interactions: Hover and selection states
  • Border consistency: Unified border styling

Upload Orders Table

  • Same styling system: Uses shared CSS variables
  • Consistent appearance: Matches other tables
  • Theme transitions: Smooth switching between themes

Cards and Forms

  • Background colors: Adapt to theme
  • Border colors: Consistent with theme palette
  • Search fields: Proper contrast and visibility
  • Form elements: Theme-aware styling

Label Preview

  • Preview backgrounds: Appropriate for each theme
  • Barcode frames: Maintains visibility in both modes
  • Text contrast: Ensures readability

How Theme Switching Works

  1. Automatic Detection: The system detects body.light-mode or body.dark-mode class
  2. Variable Updates: CSS custom properties automatically update based on the body class
  3. Instant Application: All elements using the variables immediately reflect the new theme
  4. No JavaScript Required: Pure CSS implementation for better performance

Benefits Achieved

Consistent Design

  • All printing module tables have unified styling
  • Colors are coordinated across all components
  • Professional appearance in both themes

Better User Experience

  • Light Mode: Clean, bright interface for well-lit environments
  • Dark Mode: Easy on the eyes for low-light conditions
  • Smooth Transitions: No jarring color mismatches when switching

Accessibility

  • High Contrast: Proper contrast ratios in both themes
  • Color Consistency: Related elements use the same color palette
  • Visual Hierarchy: Headers clearly distinguished from content

Maintainability

  • Single Source of Truth: All theme colors defined in one place
  • Easy Updates: Change a variable to update all occurrences
  • Scalable: Easy to add new components or themes

Visual Comparison

Light Mode

  • Table Headers: Light gray background (#e9ecef) with black text
  • Table Bodies: White background with black text
  • Borders: Light gray (#ddd) for subtle separation
  • Hover: Very light gray (#f8f9fa) for subtle feedback
  • Cards: Clean white backgrounds

Dark Mode

  • Table Headers: Dark blue-gray (#2a3441) with white text
  • Table Bodies: Dark blue-gray background with white text
  • Borders: Medium gray (#495057) for proper separation
  • Hover: Lighter dark gray (#3a4451) for clear feedback
  • Cards: Dark gray backgrounds for reduced eye strain

Pages Affected

view_orders.html - Orders listing with improved 25/75 layout print_module.html - Main printing interface print_lost_labels.html - Lost labels printing upload_orders.html - Order upload interface main_page_etichete.html - Labels main page

Technical Implementation

The theme system works by:

  1. CSS Variables: Using var(--variable-name) throughout the stylesheets
  2. Body Classes: Theme variables update based on body.light-mode / body.dark-mode
  3. Automatic Inheritance: All child elements inherit the appropriate theme
  4. Performance: No JavaScript overhead, pure CSS solution

Testing Confirmed

  • Theme switching works instantly
  • All tables respond to theme changes
  • No visual inconsistencies
  • Proper contrast in both modes
  • Layout remains stable during theme switches

The printing module now provides a professional, consistent, and accessible user interface that adapts beautifully to both light and dark themes!