@birdycom/omniacss 0.11.0 → 0.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +44 -44
  3. package/dist/oc-theme.css +1 -1
  4. package/dist/omnia.css +2 -1
  5. package/dist/omnia.min.css +1 -1
  6. package/dist/omnia.starter.css +2 -0
  7. package/dist/omnia.starter.min.css +1 -1
  8. package/dist/tokens/omnia.dtcg.json +2 -2
  9. package/dist/tokens/omnia.tokens.json +1 -1
  10. package/dist/tokens/omnia_tokens.py +2 -2
  11. package/package.json +63 -63
  12. package/scss/utilities/_anchor_positioning.scss +65 -65
  13. package/scss/utilities/_animation_properties.scss +143 -143
  14. package/scss/utilities/_borders_extended.scss +97 -97
  15. package/scss/utilities/_borders_outlines.scss +161 -161
  16. package/scss/utilities/_containment.scss +82 -82
  17. package/scss/utilities/_css_functions.scss +34 -34
  18. package/scss/utilities/_dark_mode.scss +117 -117
  19. package/scss/utilities/_drop_shadow_colors.scss +26 -26
  20. package/scss/utilities/_experimental_css.scss +149 -149
  21. package/scss/utilities/_flexbox.scss +317 -317
  22. package/scss/utilities/_font_variants.scss +139 -139
  23. package/scss/utilities/_gap.scss +103 -103
  24. package/scss/utilities/_gradient_stops.scss +48 -48
  25. package/scss/utilities/_grid.scss +672 -672
  26. package/scss/utilities/_layout_extras.scss +171 -171
  27. package/scss/utilities/_layout_flow.scss +210 -210
  28. package/scss/utilities/_mask_extras.scss +62 -62
  29. package/scss/utilities/_motion_transforms.scss +167 -167
  30. package/scss/utilities/_scroll_animations.scss +80 -80
  31. package/scss/utilities/_scrollbar.scss +2 -1
  32. package/scss/utilities/_shadow_tokens.scss +21 -21
  33. package/scss/utilities/_shapes.scss +72 -72
  34. package/scss/utilities/_sizing_logical.scss +99 -99
  35. package/scss/utilities/_starting_style.scss +53 -53
  36. package/scss/utilities/_state_variants.scss +196 -196
  37. package/scss/utilities/_svg.scss +100 -100
  38. package/scss/utilities/_table_advanced.scss +19 -19
  39. package/scss/utilities/_typography_advanced.scss +124 -124
  40. package/scss/utilities/_typography_modern.scss +83 -83
  41. package/scss/utilities/_view_transitions.scss +64 -64
  42. package/scss/utilities/_writing_modes.scss +72 -72
  43. package/scss/variables/_hulp.scss +107 -107
  44. package/scss/variables/_variables_effects.scss +108 -108
  45. package/src/postcss.mjs +43 -43
  46. package/src/tokens.mjs +377 -377
  47. package/src/variants.mjs +278 -278
  48. package/tokens/semantic.json +80 -80
@@ -1,171 +1,171 @@
1
- // SCSS Document
2
- // File: src/scss/utilities/_layout_extras.scss
3
- // Description: Layout properties that were still missing: inset shorthand, logical inset/min/max sizes,
4
- // flex-flow, grid areas, margin-trim, logical overflow/overscroll/scroll spacing, safe areas,
5
- // zoom, container shorthand, all, empty-cells, image-orientation and background-position axes.
6
- // Copyright: 2021-2026 Birdycom
7
- // Author: Serge Cools
8
- // Version: 0.3.0
9
- // Framework: OmniaCSS
10
- // Purpose: Generate .inset-*, .inset-x-*, .inset-y-*, .inset-bs-*/.inset-be-*, .min-inline-*/.max-block-* …,
11
- // .flex-flow-*, .grid-areas-*, .area-*, .margin-trim-*, .overflow-inline-*/.overflow-block-*,
12
- // .overflow-clip-margin-*, .overscroll-inline-*/.overscroll-block-*, .scroll-m-inline-*, .scroll-ms-*, .scroll-p-block-* …,
13
- // .p-safe*/.m-safe*, .zoom-*, .cq-card, .all-*, .empty-cells-*, .image-orientation-*, .bg-pos-x-*/.bg-pos-y-*.
14
- // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/inset
15
- // Map: inset -> logical inset/sizes -> flex-flow -> grid areas -> margin-trim -> overflow axes -> overscroll axes
16
- // -> logical scroll spacing -> safe areas -> zoom -> container -> all -> empty-cells -> image-orientation -> bg axes
17
-
18
- $_space: ('0': 0, '1': 0.25rem, '2': 0.5rem, '4': 1rem, '8': 2rem, 'auto': auto, 'full': 100%);
19
-
20
- /* Inset shorthand (top/right/bottom/left at once) */
21
- @each $k, $v in $_space {
22
- .inset-#{$k} { inset: $v; }
23
- .inset-x-#{$k} { left: $v; right: $v; }
24
- .inset-y-#{$k} { top: $v; bottom: $v; }
25
- .inset-bs-#{$k} { inset-block-start: $v; }
26
- .inset-be-#{$k} { inset-block-end: $v; }
27
- }
28
-
29
- /* Logical min/max sizes */
30
- @each $k, $v in ('0': 0, 'full': 100%, 'fit': fit-content, 'min': min-content, 'max': max-content, 'none': none) {
31
- @if $k != 'none' {
32
- .min-inline-#{$k} { min-inline-size: $v; }
33
- .min-block-#{$k} { min-block-size: $v; }
34
- }
35
- @if $k != '0' {
36
- .max-inline-#{$k} { max-inline-size: $v; }
37
- .max-block-#{$k} { max-block-size: $v; }
38
- }
39
- }
40
-
41
- /* Flex flow (direction + wrap in one) */
42
- .flex-flow-row { flex-flow: row nowrap; }
43
- .flex-flow-row-wrap { flex-flow: row wrap; }
44
- .flex-flow-col { flex-flow: column nowrap; }
45
- .flex-flow-col-wrap { flex-flow: column wrap; }
46
- .flex-flow-row-reverse-wrap { flex-flow: row-reverse wrap; }
47
-
48
- /* Grid template areas + grid-area (named layout) */
49
- .grid-areas-holy-grail {
50
- grid-template-areas: "header header" "sidebar main" "footer footer";
51
- grid-template-columns: minmax(10rem, 1fr) 3fr;
52
- }
53
- .grid-areas-stack { grid-template-areas: "header" "main" "sidebar" "footer"; }
54
- .grid-areas-none { grid-template-areas: none; }
55
- .grid-template-none { grid-template: none; }
56
- .grid-none { grid: none; }
57
- @each $area in (header, sidebar, main, footer) {
58
- .area-#{$area} { grid-area: $area; }
59
- }
60
- .area-auto { grid-area: auto; }
61
- .area-full { grid-area: 1 / 1 / -1 / -1; }
62
-
63
- /* Margin trim — remove child margins at the container edges */
64
- .margin-trim-none { margin-trim: none; }
65
- .margin-trim-block { margin-trim: block; }
66
- .margin-trim-inline { margin-trim: inline; }
67
-
68
- /* Logical overflow axes */
69
- @each $v in (auto, hidden, clip, visible, scroll) {
70
- .overflow-inline-#{$v} { overflow-inline: $v; }
71
- .overflow-block-#{$v} { overflow-block: $v; }
72
- }
73
- .overflow-clip-margin-0 { overflow-clip-margin: 0; }
74
- .overflow-clip-margin-2 { overflow-clip-margin: 0.5rem; }
75
- .overflow-clip-margin-4 { overflow-clip-margin: 1rem; }
76
- .overflow-clip-margin-content { overflow-clip-margin: content-box; }
77
-
78
- /* Logical overscroll behavior */
79
- @each $v in (auto, contain, none) {
80
- .overscroll-inline-#{$v} { overscroll-behavior-inline: $v; }
81
- .overscroll-block-#{$v} { overscroll-behavior-block: $v; }
82
- }
83
-
84
- /* Logical scroll margin / padding (s = inline-start, e = inline-end, bs/be = block-start/end) */
85
- @each $k, $v in ('0': 0, '2': 0.5rem, '4': 1rem, '8': 2rem) {
86
- .scroll-m-inline-#{$k} { scroll-margin-inline: $v; }
87
- .scroll-m-block-#{$k} { scroll-margin-block: $v; }
88
- .scroll-ms-#{$k} { scroll-margin-inline-start: $v; }
89
- .scroll-me-#{$k} { scroll-margin-inline-end: $v; }
90
- .scroll-mbs-#{$k} { scroll-margin-block-start: $v; }
91
- .scroll-mbe-#{$k} { scroll-margin-block-end: $v; }
92
- .scroll-p-inline-#{$k} { scroll-padding-inline: $v; }
93
- .scroll-p-block-#{$k} { scroll-padding-block: $v; }
94
- .scroll-ps-#{$k} { scroll-padding-inline-start: $v; }
95
- .scroll-pe-#{$k} { scroll-padding-inline-end: $v; }
96
- .scroll-pbs-#{$k} { scroll-padding-block-start: $v; }
97
- .scroll-pbe-#{$k} { scroll-padding-block-end: $v; }
98
- }
99
-
100
- /* Safe areas (notch / home indicator) — needs <meta name="viewport" content="viewport-fit=cover"> */
101
- .p-safe { padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
102
- .pt-safe { padding-top: env(safe-area-inset-top); }
103
- .pb-safe { padding-bottom: env(safe-area-inset-bottom); }
104
- .pl-safe { padding-left: env(safe-area-inset-left); }
105
- .pr-safe { padding-right: env(safe-area-inset-right); }
106
- .mb-safe { margin-bottom: env(safe-area-inset-bottom); }
107
- .h-screen-safe { height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
108
-
109
- /* Zoom */
110
- @each $z in (50, 75, 100, 125, 150) {
111
- .zoom-#{$z} { zoom: #{$z * 1%}; }
112
- }
113
-
114
- /* Container shorthand (name / type) */
115
- .cq-card { container: card / inline-size; }
116
- .cq-main { container: main / inline-size; }
117
- .cq-sidebar { container: sidebar / inline-size; }
118
-
119
- /* all — reset every property */
120
- .all-initial { all: initial; }
121
- .all-inherit { all: inherit; }
122
- .all-unset { all: unset; }
123
- .all-revert { all: revert; }
124
- .all-revert-layer { all: revert-layer; }
125
-
126
- /* Table empty cells */
127
- .empty-cells-show { empty-cells: show; }
128
- .empty-cells-hide { empty-cells: hide; }
129
-
130
- /* Image orientation (EXIF) */
131
- .image-orientation-from-image { image-orientation: from-image; }
132
- .image-orientation-none { image-orientation: none; }
133
-
134
- /* Background position per axis */
135
- @each $k, $v in ('left': left, 'center': center, 'right': right, '0': 0%, '50': 50%, '100': 100%) {
136
- .bg-pos-x-#{$k} { background-position-x: $v; }
137
- }
138
- @each $k, $v in ('top': top, 'center': center, 'bottom': bottom, '0': 0%, '50': 50%, '100': 100%) {
139
- .bg-pos-y-#{$k} { background-position-y: $v; }
140
- }
141
-
142
- /* Mask shorthand — fade out content */
143
- .mask-reset { mask: none; }
144
- .mask-fade-b { mask: linear-gradient(#000 60%, transparent); }
145
- .mask-fade-r { mask: linear-gradient(to right, #000 60%, transparent); }
146
- .mask-fade-x { mask: linear-gradient(to right, transparent, #000 15%, #000 85%, transparent); }
147
-
148
- /* Paged media — named pages for print (@page landscape sets the sheet orientation) */
149
- .page-auto { page: auto; }
150
- .page-landscape { page: landscape; }
151
- @page landscape {
152
- size: landscape;
153
- }
154
-
155
- /* position-try shorthand (order + fallbacks) */
156
- .anchor-try-most-height-flip { position-try: most-height flip-block, flip-inline; }
157
-
158
- /* SVG geometry properties (responsive shapes inside <svg>) */
159
- @each $k, $v in ('0': 0, '25': 25%, '50': 50%, '100': 100%) {
160
- .cx-#{$k} { cx: $v; }
161
- .cy-#{$k} { cy: $v; }
162
- .x-#{$k} { x: $v; }
163
- .y-#{$k} { y: $v; }
164
- }
165
- .r-25 { r: 25%; }
166
- .r-50 { r: 50%; }
167
- .rx-0 { rx: 0; }
168
- .rx-4 { rx: 4px; }
169
- .ry-0 { ry: 0; }
170
- .ry-4 { ry: 4px; }
171
- .d-none { display: none; }
1
+ // SCSS Document
2
+ // File: src/scss/utilities/_layout_extras.scss
3
+ // Description: Layout properties that were still missing: inset shorthand, logical inset/min/max sizes,
4
+ // flex-flow, grid areas, margin-trim, logical overflow/overscroll/scroll spacing, safe areas,
5
+ // zoom, container shorthand, all, empty-cells, image-orientation and background-position axes.
6
+ // Copyright: 2021-2026 Birdycom
7
+ // Author: Serge Cools
8
+ // Version: 0.3.0
9
+ // Framework: OmniaCSS
10
+ // Purpose: Generate .inset-*, .inset-x-*, .inset-y-*, .inset-bs-*/.inset-be-*, .min-inline-*/.max-block-* …,
11
+ // .flex-flow-*, .grid-areas-*, .area-*, .margin-trim-*, .overflow-inline-*/.overflow-block-*,
12
+ // .overflow-clip-margin-*, .overscroll-inline-*/.overscroll-block-*, .scroll-m-inline-*, .scroll-ms-*, .scroll-p-block-* …,
13
+ // .p-safe*/.m-safe*, .zoom-*, .cq-card, .all-*, .empty-cells-*, .image-orientation-*, .bg-pos-x-*/.bg-pos-y-*.
14
+ // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/inset
15
+ // Map: inset -> logical inset/sizes -> flex-flow -> grid areas -> margin-trim -> overflow axes -> overscroll axes
16
+ // -> logical scroll spacing -> safe areas -> zoom -> container -> all -> empty-cells -> image-orientation -> bg axes
17
+
18
+ $_space: ('0': 0, '1': 0.25rem, '2': 0.5rem, '4': 1rem, '8': 2rem, 'auto': auto, 'full': 100%);
19
+
20
+ /* Inset shorthand (top/right/bottom/left at once) */
21
+ @each $k, $v in $_space {
22
+ .inset-#{$k} { inset: $v; }
23
+ .inset-x-#{$k} { left: $v; right: $v; }
24
+ .inset-y-#{$k} { top: $v; bottom: $v; }
25
+ .inset-bs-#{$k} { inset-block-start: $v; }
26
+ .inset-be-#{$k} { inset-block-end: $v; }
27
+ }
28
+
29
+ /* Logical min/max sizes */
30
+ @each $k, $v in ('0': 0, 'full': 100%, 'fit': fit-content, 'min': min-content, 'max': max-content, 'none': none) {
31
+ @if $k != 'none' {
32
+ .min-inline-#{$k} { min-inline-size: $v; }
33
+ .min-block-#{$k} { min-block-size: $v; }
34
+ }
35
+ @if $k != '0' {
36
+ .max-inline-#{$k} { max-inline-size: $v; }
37
+ .max-block-#{$k} { max-block-size: $v; }
38
+ }
39
+ }
40
+
41
+ /* Flex flow (direction + wrap in one) */
42
+ .flex-flow-row { flex-flow: row nowrap; }
43
+ .flex-flow-row-wrap { flex-flow: row wrap; }
44
+ .flex-flow-col { flex-flow: column nowrap; }
45
+ .flex-flow-col-wrap { flex-flow: column wrap; }
46
+ .flex-flow-row-reverse-wrap { flex-flow: row-reverse wrap; }
47
+
48
+ /* Grid template areas + grid-area (named layout) */
49
+ .grid-areas-holy-grail {
50
+ grid-template-areas: "header header" "sidebar main" "footer footer";
51
+ grid-template-columns: minmax(10rem, 1fr) 3fr;
52
+ }
53
+ .grid-areas-stack { grid-template-areas: "header" "main" "sidebar" "footer"; }
54
+ .grid-areas-none { grid-template-areas: none; }
55
+ .grid-template-none { grid-template: none; }
56
+ .grid-none { grid: none; }
57
+ @each $area in (header, sidebar, main, footer) {
58
+ .area-#{$area} { grid-area: $area; }
59
+ }
60
+ .area-auto { grid-area: auto; }
61
+ .area-full { grid-area: 1 / 1 / -1 / -1; }
62
+
63
+ /* Margin trim — remove child margins at the container edges */
64
+ .margin-trim-none { margin-trim: none; }
65
+ .margin-trim-block { margin-trim: block; }
66
+ .margin-trim-inline { margin-trim: inline; }
67
+
68
+ /* Logical overflow axes */
69
+ @each $v in (auto, hidden, clip, visible, scroll) {
70
+ .overflow-inline-#{$v} { overflow-inline: $v; }
71
+ .overflow-block-#{$v} { overflow-block: $v; }
72
+ }
73
+ .overflow-clip-margin-0 { overflow-clip-margin: 0; }
74
+ .overflow-clip-margin-2 { overflow-clip-margin: 0.5rem; }
75
+ .overflow-clip-margin-4 { overflow-clip-margin: 1rem; }
76
+ .overflow-clip-margin-content { overflow-clip-margin: content-box; }
77
+
78
+ /* Logical overscroll behavior */
79
+ @each $v in (auto, contain, none) {
80
+ .overscroll-inline-#{$v} { overscroll-behavior-inline: $v; }
81
+ .overscroll-block-#{$v} { overscroll-behavior-block: $v; }
82
+ }
83
+
84
+ /* Logical scroll margin / padding (s = inline-start, e = inline-end, bs/be = block-start/end) */
85
+ @each $k, $v in ('0': 0, '2': 0.5rem, '4': 1rem, '8': 2rem) {
86
+ .scroll-m-inline-#{$k} { scroll-margin-inline: $v; }
87
+ .scroll-m-block-#{$k} { scroll-margin-block: $v; }
88
+ .scroll-ms-#{$k} { scroll-margin-inline-start: $v; }
89
+ .scroll-me-#{$k} { scroll-margin-inline-end: $v; }
90
+ .scroll-mbs-#{$k} { scroll-margin-block-start: $v; }
91
+ .scroll-mbe-#{$k} { scroll-margin-block-end: $v; }
92
+ .scroll-p-inline-#{$k} { scroll-padding-inline: $v; }
93
+ .scroll-p-block-#{$k} { scroll-padding-block: $v; }
94
+ .scroll-ps-#{$k} { scroll-padding-inline-start: $v; }
95
+ .scroll-pe-#{$k} { scroll-padding-inline-end: $v; }
96
+ .scroll-pbs-#{$k} { scroll-padding-block-start: $v; }
97
+ .scroll-pbe-#{$k} { scroll-padding-block-end: $v; }
98
+ }
99
+
100
+ /* Safe areas (notch / home indicator) — needs <meta name="viewport" content="viewport-fit=cover"> */
101
+ .p-safe { padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
102
+ .pt-safe { padding-top: env(safe-area-inset-top); }
103
+ .pb-safe { padding-bottom: env(safe-area-inset-bottom); }
104
+ .pl-safe { padding-left: env(safe-area-inset-left); }
105
+ .pr-safe { padding-right: env(safe-area-inset-right); }
106
+ .mb-safe { margin-bottom: env(safe-area-inset-bottom); }
107
+ .h-screen-safe { height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
108
+
109
+ /* Zoom */
110
+ @each $z in (50, 75, 100, 125, 150) {
111
+ .zoom-#{$z} { zoom: #{$z * 1%}; }
112
+ }
113
+
114
+ /* Container shorthand (name / type) */
115
+ .cq-card { container: card / inline-size; }
116
+ .cq-main { container: main / inline-size; }
117
+ .cq-sidebar { container: sidebar / inline-size; }
118
+
119
+ /* all — reset every property */
120
+ .all-initial { all: initial; }
121
+ .all-inherit { all: inherit; }
122
+ .all-unset { all: unset; }
123
+ .all-revert { all: revert; }
124
+ .all-revert-layer { all: revert-layer; }
125
+
126
+ /* Table empty cells */
127
+ .empty-cells-show { empty-cells: show; }
128
+ .empty-cells-hide { empty-cells: hide; }
129
+
130
+ /* Image orientation (EXIF) */
131
+ .image-orientation-from-image { image-orientation: from-image; }
132
+ .image-orientation-none { image-orientation: none; }
133
+
134
+ /* Background position per axis */
135
+ @each $k, $v in ('left': left, 'center': center, 'right': right, '0': 0%, '50': 50%, '100': 100%) {
136
+ .bg-pos-x-#{$k} { background-position-x: $v; }
137
+ }
138
+ @each $k, $v in ('top': top, 'center': center, 'bottom': bottom, '0': 0%, '50': 50%, '100': 100%) {
139
+ .bg-pos-y-#{$k} { background-position-y: $v; }
140
+ }
141
+
142
+ /* Mask shorthand — fade out content */
143
+ .mask-reset { mask: none; }
144
+ .mask-fade-b { mask: linear-gradient(#000 60%, transparent); }
145
+ .mask-fade-r { mask: linear-gradient(to right, #000 60%, transparent); }
146
+ .mask-fade-x { mask: linear-gradient(to right, transparent, #000 15%, #000 85%, transparent); }
147
+
148
+ /* Paged media — named pages for print (@page landscape sets the sheet orientation) */
149
+ .page-auto { page: auto; }
150
+ .page-landscape { page: landscape; }
151
+ @page landscape {
152
+ size: landscape;
153
+ }
154
+
155
+ /* position-try shorthand (order + fallbacks) */
156
+ .anchor-try-most-height-flip { position-try: most-height flip-block, flip-inline; }
157
+
158
+ /* SVG geometry properties (responsive shapes inside <svg>) */
159
+ @each $k, $v in ('0': 0, '25': 25%, '50': 50%, '100': 100%) {
160
+ .cx-#{$k} { cx: $v; }
161
+ .cy-#{$k} { cy: $v; }
162
+ .x-#{$k} { x: $v; }
163
+ .y-#{$k} { y: $v; }
164
+ }
165
+ .r-25 { r: 25%; }
166
+ .r-50 { r: 50%; }
167
+ .rx-0 { rx: 0; }
168
+ .rx-4 { rx: 4px; }
169
+ .ry-0 { ry: 0; }
170
+ .ry-4 { ry: 4px; }
171
+ .d-none { display: none; }