#4061: _import.utilities.scss
| Commit | Message |
|---|
ac75fabf3 | 2021-08-10 Github pages migrated to Asciidoc |
Utilities MUST load last. This is by design — CSS utility classes (.uk-margin, .uk-text-center, .uk-hidden@m) need maximum specificity to override any component style. Loading them last ensures they always win in the cascade.
The 16 imports — ordered for specificity
@import "animation.scss"; // Fade, slide, scale keyframes
@import "width.scss"; // .uk-width-1-2, .uk-child-width-1-3
@import "text.scss"; // .uk-text-center, .uk-text-bold, .uk-text-muted
@import "column.scss"; // CSS multi-column layout
@import "cover.scss"; // Full-viewport background cover
@import "background.scss"; // .uk-background-primary, .uk-background-muted
@import "align.scss"; // Vertical align utilities
@import "utility.scss"; // Miscellaneous utilities (clearfix, etc.)
@import "flex.scss"; // Flex alignment — AFTER utility for override priority
@import "margin.scss"; // .uk-margin, .uk-margin-small, responsive margins
@import "padding.scss"; // .uk-padding, .uk-padding-small
@import "position.scss"; // .uk-position-top, .uk-position-center
@import "transition.scss"; // Transition utility classes
@import "visibility.scss"; // .uk-visible@s, .uk-hidden@m — responsive visibility
@import "inverse.scss"; // Dark mode color overrides
@import "print.scss"; // DEAD LAST — must override ALL screen styles
How this differs from the theme _import.scss (#4052)
Import order is NOT alphabetical — it's intentional:
flex.scssafterutility.scss(line 10): The comment says "After: Utility" — flex alignment classes need higher specificity than generic utilities. If both.uk-flexand a utility class setdisplay, flex must win.print.scssDEAD LAST (line 19): The comment "Need to be loaded last" is critical. Print styles use@media printqueries that must override ALL screen styles. If loaded earlier, a later screen style rule with equal specificity would win. Loading last ensures print rules have cascade priority.margin.scssandpadding.scssbeforeposition.scss: Spacing utilities should be available before positioning utilities, which may reference margin/padding values.