Improves event description display using modern CSS container queries - Adds responsive layout techniques for event descriptions - Implements dynamic hiding/showing of description based on event height - Adds fade-out effect for long descriptions Enables more flexible and adaptive calendar event rendering |
||
|---|---|---|
| .. | ||
| src | ||
| calendar-base-css.css | ||
| calendar-components-css.css | ||
| calendar-events-css.css | ||
| calendar-layout-css.css | ||
| calendar-month-css.css | ||
| calendar-popup-css.css | ||
| calendar-sliding-animation.css | ||
| README.md | ||
| test-nesting.css | ||
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
-
Rediger CSS i
src/mappen- Brug moderne CSS nesting
- Skriv nested selectors med
& - Brug CSS custom properties
-
Build CSS
npm run css:build -
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
- Mindre gentagelse - Ingen behov for at gentage parent selectors
- Bedre læsbarhed - Strukturen matcher DOM hierarkiet
- Lettere vedligeholdelse - Relaterede styles er grupperet
- Mindre CSS - Færre bytes i source filer
- 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:buildfø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
- Tjek at du har kørt
npm run css:build - Tjek at du redigerer filer i
src/mappen - Hard refresh browseren (Ctrl+Shift+R)
Build fejl
- Tjek CSS syntax i source filerne
- Sørg for at alle
{har matchende} - Tjek at nesting er korrekt formateret