@birdycom/omniacss 0.11.0 → 0.11.1

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 (47) 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/tokens/omnia.dtcg.json +2 -2
  8. package/dist/tokens/omnia.tokens.json +1 -1
  9. package/dist/tokens/omnia_tokens.py +2 -2
  10. package/package.json +63 -63
  11. package/scss/utilities/_anchor_positioning.scss +65 -65
  12. package/scss/utilities/_animation_properties.scss +143 -143
  13. package/scss/utilities/_borders_extended.scss +97 -97
  14. package/scss/utilities/_borders_outlines.scss +161 -161
  15. package/scss/utilities/_containment.scss +82 -82
  16. package/scss/utilities/_css_functions.scss +34 -34
  17. package/scss/utilities/_dark_mode.scss +117 -117
  18. package/scss/utilities/_drop_shadow_colors.scss +26 -26
  19. package/scss/utilities/_experimental_css.scss +149 -149
  20. package/scss/utilities/_flexbox.scss +317 -317
  21. package/scss/utilities/_font_variants.scss +139 -139
  22. package/scss/utilities/_gap.scss +103 -103
  23. package/scss/utilities/_gradient_stops.scss +48 -48
  24. package/scss/utilities/_grid.scss +672 -672
  25. package/scss/utilities/_layout_extras.scss +171 -171
  26. package/scss/utilities/_layout_flow.scss +210 -210
  27. package/scss/utilities/_mask_extras.scss +62 -62
  28. package/scss/utilities/_motion_transforms.scss +167 -167
  29. package/scss/utilities/_scroll_animations.scss +80 -80
  30. package/scss/utilities/_scrollbar.scss +2 -1
  31. package/scss/utilities/_shadow_tokens.scss +21 -21
  32. package/scss/utilities/_shapes.scss +72 -72
  33. package/scss/utilities/_sizing_logical.scss +99 -99
  34. package/scss/utilities/_starting_style.scss +53 -53
  35. package/scss/utilities/_state_variants.scss +196 -196
  36. package/scss/utilities/_svg.scss +100 -100
  37. package/scss/utilities/_table_advanced.scss +19 -19
  38. package/scss/utilities/_typography_advanced.scss +124 -124
  39. package/scss/utilities/_typography_modern.scss +83 -83
  40. package/scss/utilities/_view_transitions.scss +64 -64
  41. package/scss/utilities/_writing_modes.scss +72 -72
  42. package/scss/variables/_hulp.scss +107 -107
  43. package/scss/variables/_variables_effects.scss +108 -108
  44. package/src/postcss.mjs +43 -43
  45. package/src/tokens.mjs +377 -377
  46. package/src/variants.mjs +278 -278
  47. 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; }