Calendar/wwwroot/css
Janus C. H. Knudsen a2b95515fd Adds resource scheduling and unavailability tracking
Introduces comprehensive schedule management for resources:
- Adds DateService with advanced time and date utilities
- Implements ResourceScheduleService for managing work hours
- Creates ScheduleRenderer to visualize unavailable time zones
- Extends resource model to support default weekly schedules

Enables granular tracking of resource availability and working hours
2025-12-10 00:27:19 +01:00
..
src Enhances event color styling with flexible metadata system 2025-11-25 23:48:30 +01:00
v2 Adds resource scheduling and unavailability tracking 2025-12-10 00:27:19 +01:00
calendar-base-css.css Enhances event color styling with flexible metadata system 2025-11-25 23:48:30 +01:00
calendar-components-css.css Improves click handling on calendar elements 2025-10-07 17:36:03 +02:00
calendar-events-css.css Enhances event color styling with flexible metadata system 2025-11-25 23:48:30 +01:00
calendar-layout-css.css Refactors all-day event layout tracking logic 2025-11-11 18:08:48 +01:00
calendar-month-css.css Improves click handling on calendar elements 2025-10-07 17:36:03 +02:00
calendar-popup-css.css Improves click handling on calendar elements 2025-10-07 17:36:03 +02:00
calendar-sliding-animation.css Steps in the right direction for animated date change 2025-08-12 00:07:39 +02:00
calendar-v2.css Refactors header and scroll management logic 2025-12-07 23:25:02 +01:00
README.md WIP on master 2025-11-03 14:54:57 +01:00
test-nesting.css WIP on master 2025-11-03 14:54:57 +01:00

CSS Build Process

Dette projekt bruger PostCSS til at kompilere moderne nested CSS til browser-kompatibel CSS.

Mappestruktur

wwwroot/css/
├── src/                          # Source CSS filer med nesting
│   ├── calendar-base-css.css
│   ├── calendar-layout-css.css
│   └── ...
├── calendar-base-css.css         # Compiled CSS (genereret automatisk)
├── calendar-layout-css.css       # Compiled CSS (genereret automatisk)
└── ...

Workflow

Development

  1. Rediger CSS i src/ mappen

    • Brug moderne CSS nesting
    • Skriv nested selectors med &
    • Brug CSS custom properties
  2. Build CSS

    npm run css:build
    
  3. Watch mode (auto-rebuild)

    npm run css:watch
    

Production

npm run css:build:prod

Dette vil:

  • Kompilere nested CSS
  • Tilføje vendor prefixes (autoprefixer)
  • Minificere CSS (cssnano)
  • Fjerne comments

CSS Nesting Eksempel

Source (src/calendar-layout-css.css)

swp-allday-container {
  display: grid;
  
  swp-allday-event {
    height: 22px;
    padding: 2px 4px;
    
    &[data-type="meeting"] {
      background: var(--color-event-meeting);
      
      &.highlight {
        background: var(--color-event-meeting-hl);
      }
    }
    
    &:hover {
      opacity: 0.9;
    }
    
    swp-event-title {
      font-size: 12px;
    }
  }
}

Compiled (calendar-layout-css.css)

swp-allday-container {
  display: grid;
}

swp-allday-container swp-allday-event {
  height: 22px;
  padding: 2px 4px;
}

swp-allday-container swp-allday-event[data-type="meeting"] {
  background: var(--color-event-meeting);
}

swp-allday-container swp-allday-event[data-type="meeting"].highlight {
  background: var(--color-event-meeting-hl);
}

swp-allday-container swp-allday-event:hover {
  opacity: 0.9;
}

swp-allday-container swp-allday-event swp-event-title {
  font-size: 12px;
}

Fordele ved CSS Nesting

  1. Mindre gentagelse - Ingen behov for at gentage parent selectors
  2. Bedre læsbarhed - Strukturen matcher DOM hierarkiet
  3. Lettere vedligeholdelse - Relaterede styles er grupperet
  4. Mindre CSS - Færre bytes i source filer
  5. Bedre organisation - Logisk gruppering af styles

PostCSS Plugins

  • postcss-nesting: Konverterer nested CSS til flat CSS
  • autoprefixer: Tilføjer vendor prefixes automatisk
  • cssnano: Minificerer CSS i production mode

Vigtige Noter

⚠️ Rediger ALDRIG de compiled CSS filer direkte!

  • Alle ændringer skal laves i src/ mappen
  • De compiled filer bliver overskrevet ved hver build

⚠️ Husk at køre build før commit

  • Sørg for at både source og compiled filer er opdateret
  • Kør npm run css:build før du committer

Browser Support

PostCSS sikrer kompatibilitet med:

  • Chrome/Edge (sidste 2 versioner)
  • Firefox (sidste 2 versioner)
  • Safari (sidste 2 versioner)

Troubleshooting

CSS ændringer vises ikke

  1. Tjek at du har kørt npm run css:build
  2. Tjek at du redigerer filer i src/ mappen
  3. Hard refresh browseren (Ctrl+Shift+R)

Build fejl

  1. Tjek CSS syntax i source filerne
  2. Sørg for at alle { har matchende }
  3. Tjek at nesting er korrekt formateret