@inc2734/unitone-css 1.2.2 → 1.3.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 (38) hide show
  1. package/dist/app.css +1 -1
  2. package/dist/layout-primitives/both-sides/react.js +1 -1
  3. package/dist/layout-primitives/center/react.js +1 -1
  4. package/dist/layout-primitives/cluster/react.js +1 -1
  5. package/dist/layout-primitives/container/react.js +1 -1
  6. package/dist/layout-primitives/decorator/react.js +1 -1
  7. package/dist/layout-primitives/gutters/react.js +1 -1
  8. package/dist/layout-primitives/layers/react.js +1 -1
  9. package/dist/layout-primitives/marquee/react.js +1 -1
  10. package/dist/layout-primitives/reel/react.js +1 -1
  11. package/dist/layout-primitives/responsive-grid/react.js +1 -1
  12. package/dist/layout-primitives/stack/react.js +1 -1
  13. package/dist/layout-primitives/switcher/react.js +1 -1
  14. package/dist/layout-primitives/text/react.js +1 -1
  15. package/dist/layout-primitives/texture/react.js +1 -1
  16. package/dist/layout-primitives/vertical-ends/react.js +1 -1
  17. package/package.json +1 -1
  18. package/src/behaviors/_fluid-reference.scss +26 -0
  19. package/src/behaviors/_font-size.scss +0 -9
  20. package/src/behaviors/_index.scss +2 -0
  21. package/src/layout-primitives/both-sides/index.jsx +12 -1
  22. package/src/layout-primitives/center/index.jsx +11 -1
  23. package/src/layout-primitives/cluster/index.jsx +4 -0
  24. package/src/layout-primitives/container/index.jsx +12 -1
  25. package/src/layout-primitives/decorator/index.jsx +2 -0
  26. package/src/layout-primitives/gutters/index.jsx +7 -2
  27. package/src/layout-primitives/layers/index.jsx +4 -0
  28. package/src/layout-primitives/marquee/index.jsx +13 -1
  29. package/src/layout-primitives/reel/index.jsx +12 -1
  30. package/src/layout-primitives/responsive-grid/index.jsx +4 -0
  31. package/src/layout-primitives/stack/index.jsx +4 -0
  32. package/src/layout-primitives/switcher/index.jsx +4 -0
  33. package/src/layout-primitives/text/index.jsx +4 -0
  34. package/src/layout-primitives/texture/index.jsx +8 -1
  35. package/src/layout-primitives/vertical-ends/index.jsx +10 -1
  36. package/src/settings/_root.scss +18 -91
  37. package/src/utilities/_font-size.scss +0 -10
  38. package/src/variables/_index.scss +128 -1
@@ -1,3 +1,5 @@
1
+ @use 'sass:math';
2
+
1
3
  $fibonacci-sequence: 1, 2, 3, 5, 8, 13, 21, 34, 55;
2
4
 
3
5
  $min-breakpoint: 27; // = 432px
@@ -5,6 +7,54 @@ $max-breakpoint: 80; // = 1280px
5
7
 
6
8
  $root-font-size: var(--unitone--root-font-size);
7
9
 
10
+ $font-sizes: (
11
+ -3: 2xs,
12
+ -2: xs,
13
+ -1: s,
14
+ 0: m,
15
+ 1: l,
16
+ 2: xl,
17
+ 3: 2xl,
18
+ 4: 3xl,
19
+ 5: 4xl,
20
+ 6: 5xl,
21
+ 7: 6xl,
22
+ );
23
+
24
+ @function generate-global-gutters($context: 'viewport') {
25
+ $width: var(--unitone--property--100vw);
26
+ @if $context == 'container' {
27
+ $width: var(--unitone--property--100cqw);
28
+ }
29
+
30
+ @return max(min(#{ $width } * .06, var(--unitone--rem2)), env(safe-area-inset-right), env(safe-area-inset-left));
31
+ }
32
+
33
+ @function generate-fluid-spacing($min, $max, $context: 'viewport') {
34
+ $width: var(--unitone--result--100vw-px);
35
+ @if $context == 'container' {
36
+ $width: var(--unitone--result--100cqw-px);
37
+ }
38
+
39
+ @return clamp(
40
+ #{ $min },
41
+ #{ $min } + ((#{ $max } - #{ $min }) / (#{ $max-breakpoint - $min-breakpoint } * var(--unitone--result--1rem-px)) * (#{ $width } - (#{ $min-breakpoint } * var(--unitone--result--1rem-px)))),
42
+ #{ $max }
43
+ );
44
+ }
45
+
46
+ @function generate-spacing($max, $context: 'viewport') {
47
+ $quotient: math.div($min-breakpoint, $max-breakpoint);
48
+ $min: calc(var(--unitone--em1) + #{ $max } * #{ $quotient });
49
+ @return generate-fluid-spacing(#{ $min }, #{ $max }, $context);
50
+ }
51
+
52
+ @function generate-padding($max, $context: 'viewport') {
53
+ $quotient: math.div($min-breakpoint, $max-breakpoint);
54
+ $min: calc(var(--unitone--em1) + #{ $max } * #{ $quotient } * .2);
55
+ @return generate-fluid-spacing(#{ $min }, #{ $max }, $context);
56
+ }
57
+
8
58
  @function _max-font-size($level) {
9
59
  @return calc(var(--unitone--harmonic-sequence-base) / (var(--unitone--max-harmonic-sequence-base) - (#{ $level })));
10
60
  }
@@ -24,7 +74,7 @@ $root-font-size: var(--unitone--root-font-size);
24
74
  @function font-size-fluid($level, $context: 'viewport') {
25
75
  $width: 100vw;
26
76
  @if $context == 'container' {
27
- $width: 100cqw;
77
+ $width: var(--unitone--property--100cqw);
28
78
  }
29
79
 
30
80
  $max-font-size: _max-font-size($level);
@@ -75,6 +125,9 @@ $_line-height: clamp(
75
125
  // @todo In Firefox, using tan(atan2()) for line-height is considered invalid.
76
126
  // Therefore, a fallback line-height is applied.
77
127
  @supports (-moz-appearance: none) {
128
+ // Break the registered 1em dependency; otherwise Firefox may invalidate font-size: var(...).
129
+ --unitone--result--1em-px: 0;
130
+
78
131
  line-height: clamp(
79
132
  calc(var(--unitone--min-line-height) * 1em),
80
133
  calc((var(--unitone--min-line-height) - 0.1) * 1em + (var(--unitone--max-line-height) - (var(--unitone--min-line-height) - 0.1)) * 1rem),
@@ -86,3 +139,77 @@ $_line-height: clamp(
86
139
  $container-max-width: $max-breakpoint * 16px; // = 1280px
87
140
  $grid-columns: 12;
88
141
  $grid-rows: 7;
142
+
143
+ @mixin spacing-tokens($context: 'viewport') {
144
+ @if $context == 'viewport' {
145
+ --unitone--s-3: var(--unitone--em-3);
146
+ --unitone--s-2: var(--unitone--em-2);
147
+ --unitone--s-1: var(--unitone--em-1);
148
+ --unitone--s0: var(--unitone--em0);
149
+ --unitone--s1: var(--unitone--em1);
150
+ }
151
+
152
+ --unitone--s2: #{ generate-spacing(var(--unitone--em2), $context) };
153
+ --unitone--s3: #{ generate-spacing(var(--unitone--em3), $context) };
154
+ --unitone--s4: #{ generate-spacing(var(--unitone--em4), $context) };
155
+ --unitone--s5: #{ generate-spacing(var(--unitone--em5), $context) };
156
+ --unitone--s6: #{ generate-spacing(var(--unitone--em6), $context) };
157
+ --unitone--s7: #{ generate-spacing(var(--unitone--em7), $context) };
158
+
159
+ --unitone--s1s: #{ generate-fluid-spacing(var(--unitone--em-1), var(--unitone--em1), $context) };
160
+ --unitone--s2s: #{ generate-fluid-spacing(var(--unitone--em-1), var(--unitone--em2), $context) };
161
+ --unitone--s3s: #{ generate-fluid-spacing(var(--unitone--em-1), var(--unitone--em3), $context) };
162
+ --unitone--s4s: #{ generate-fluid-spacing(var(--unitone--em-1), var(--unitone--em4), $context) };
163
+ --unitone--s5s: #{ generate-fluid-spacing(var(--unitone--em-1), var(--unitone--em5), $context) };
164
+ --unitone--s6s: #{ generate-fluid-spacing(var(--unitone--em-1), var(--unitone--em6), $context) };
165
+ --unitone--s7s: #{ generate-fluid-spacing(var(--unitone--em-1), var(--unitone--em7), $context) };
166
+
167
+ --unitone--s2m: #{ generate-fluid-spacing(var(--unitone--em1), var(--unitone--em2), $context) };
168
+ --unitone--s3m: #{ generate-fluid-spacing(var(--unitone--em1), var(--unitone--em3), $context) };
169
+ --unitone--s4m: #{ generate-fluid-spacing(var(--unitone--em1), var(--unitone--em4), $context) };
170
+ --unitone--s5m: #{ generate-fluid-spacing(var(--unitone--em1), var(--unitone--em5), $context) };
171
+ --unitone--s6m: #{ generate-fluid-spacing(var(--unitone--em1), var(--unitone--em6), $context) };
172
+ --unitone--s7m: #{ generate-fluid-spacing(var(--unitone--em1), var(--unitone--em7), $context) };
173
+ }
174
+
175
+ @mixin padding-tokens($context: 'viewport') {
176
+ @if $context == 'viewport' {
177
+ --unitone--p-3: var(--unitone--em-3);
178
+ --unitone--p-2: var(--unitone--em-2);
179
+ --unitone--p-1: var(--unitone--em-1);
180
+ --unitone--p0: var(--unitone--em0);
181
+ --unitone--p1: var(--unitone--em1);
182
+ }
183
+
184
+ --unitone--p2: #{ generate-padding(var(--unitone--em2), $context) };
185
+ --unitone--p3: #{ generate-padding(var(--unitone--em3), $context) };
186
+ --unitone--p4: #{ generate-padding(var(--unitone--em4), $context) };
187
+ --unitone--p5: #{ generate-padding(var(--unitone--em5), $context) };
188
+ --unitone--p6: #{ generate-padding(var(--unitone--em6), $context) };
189
+ --unitone--p7: #{ generate-padding(var(--unitone--em7), $context) };
190
+
191
+ --unitone--p1s: var(--unitone--s1s);
192
+ --unitone--p2s: var(--unitone--s2s);
193
+ --unitone--p3s: var(--unitone--s3s);
194
+ --unitone--p4s: var(--unitone--s4s);
195
+ --unitone--p5s: var(--unitone--s5s);
196
+ --unitone--p6s: var(--unitone--s6s);
197
+ --unitone--p7s: var(--unitone--s7s);
198
+
199
+ --unitone--p2m: var(--unitone--s2m);
200
+ --unitone--p3m: var(--unitone--s3m);
201
+ --unitone--p4m: var(--unitone--s4m);
202
+ --unitone--p5m: var(--unitone--s5m);
203
+ --unitone--p6m: var(--unitone--s6m);
204
+ --unitone--p7m: var(--unitone--s7m);
205
+ }
206
+
207
+ @mixin font-size-tokens($context: 'viewport') {
208
+ @each $level, $name in $font-sizes {
209
+ @if $context == 'viewport' {
210
+ --unitone--font-size-#{ $name }: #{ font-size-rem($level) };
211
+ }
212
+
213
+ --unitone--font-size-#{ $name }-fluid: #{ font-size-fluid($level, $context) };
214
+ }
215
+ }