@aziontech/theme 4.3.0 → 5.0.0
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.
- package/dist/v4/globals.css +219 -22
- package/dist/v4/globals.scss +219 -22
- package/package.json +2 -1
- package/src/scripts/build-tokens.mjs +38 -1
- package/src/tokens/README.md +25 -1
- package/src/tokens/primitives/animations/animate.d.ts +4 -0
- package/src/tokens/primitives/animations/animate.d.ts.map +1 -1
- package/src/tokens/primitives/animations/animate.js +7 -1
- package/src/tokens/primitives/animations/keyframes.d.ts +9 -1
- package/src/tokens/primitives/animations/keyframes.d.ts.map +1 -1
- package/src/tokens/primitives/animations/keyframes.js +12 -2
- package/src/tokens/primitives/colors/colors.d.ts +4 -0
- package/src/tokens/primitives/colors/colors.d.ts.map +1 -1
- package/src/tokens/primitives/colors/colors.js +9 -0
- package/src/tokens/semantic/layouts.data.d.ts +71 -0
- package/src/tokens/semantic/layouts.data.d.ts.map +1 -0
- package/src/tokens/semantic/layouts.data.js +343 -0
- package/src/tokens/semantic/texts.data.d.ts +50 -4
- package/src/tokens/semantic/texts.data.d.ts.map +1 -1
- package/src/tokens/semantic/texts.data.js +67 -9
- package/src/tokens/semantic/z-indices.data.d.ts +1 -1
- package/src/tokens/semantic/z-indices.data.js +1 -1
- package/src/tokens/theme/border.js +26 -4
- package/src/tokens/theme/surfaces.d.ts +12 -0
- package/src/tokens/theme/surfaces.d.ts.map +1 -1
- package/src/tokens/theme/surfaces.js +4 -0
- package/src/tokens/theme.d.ts +4 -0
package/dist/v4/globals.scss
CHANGED
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
/*
|
|
176
|
-
* `@aziontech/webkit` components use arbitrary values (`bg-
|
|
176
|
+
* `@aziontech/webkit` components use arbitrary values (`bg-(--x)`) that
|
|
177
177
|
* Tailwind v4 only picks up when the source files are inside the scan.
|
|
178
178
|
* Auto-detect scans the CWD only, so we point `@source` at the webkit
|
|
179
179
|
* package via a monorepo-relative path (this file is under
|
|
@@ -197,12 +197,16 @@
|
|
|
197
197
|
--color-blue-950: #000C1A;
|
|
198
198
|
--color-gray-50: #FAFAFA;
|
|
199
199
|
--color-gray-100: #F5F5F5;
|
|
200
|
+
--color-gray-150: #ECECEC;
|
|
200
201
|
--color-gray-200: #E5E5E5;
|
|
202
|
+
--color-gray-250: #DADADA;
|
|
201
203
|
--color-gray-300: #B2B2B2;
|
|
202
204
|
--color-gray-400: #999999;
|
|
203
205
|
--color-gray-500: #808080;
|
|
204
206
|
--color-gray-600: #666666;
|
|
205
207
|
--color-gray-700: #4D4D4D;
|
|
208
|
+
--color-gray-750: #2B2B2B;
|
|
209
|
+
--color-gray-775: #242424;
|
|
206
210
|
--color-gray-800: #1A1A1A;
|
|
207
211
|
--color-gray-900: #141414;
|
|
208
212
|
--color-gray-950: #0A0A0A;
|
|
@@ -404,7 +408,9 @@
|
|
|
404
408
|
--animate-fade-in: fadeIn 220ms ease-in-out;
|
|
405
409
|
--animate-fade-out: fadeOut 220ms ease-in-out;
|
|
406
410
|
--animate-slide-down: slideDown 220ms ease-in-out;
|
|
407
|
-
--animate-highlight-fade: highlight ease-in forwards;
|
|
411
|
+
--animate-highlight-fade: highlight 1100ms ease-in forwards;
|
|
412
|
+
--animate-page-enter: pageEnter 240ms cubic-bezier(0.39, 0.57, 0.56, 1);
|
|
413
|
+
--animate-content-enter: contentEnter 240ms cubic-bezier(0.39, 0.57, 0.56, 1) var(--content-enter-delay, 0s) backwards;
|
|
408
414
|
--animate-popup-scale-in: popupScaleIn 150ms cubic-bezier(0.39, 0.57, 0.56, 1);
|
|
409
415
|
--animate-popup-scale-out: popupScaleOut 110ms cubic-bezier(0.55, 0.09, 0.68, 0.53);
|
|
410
416
|
--animate-slide-in-left: slideInLeft 240ms cubic-bezier(0.39, 0.57, 0.56, 1);
|
|
@@ -663,7 +669,9 @@
|
|
|
663
669
|
--animate-fade-in: fadeIn 220ms ease-in-out;
|
|
664
670
|
--animate-fade-out: fadeOut 220ms ease-in-out;
|
|
665
671
|
--animate-slide-down: slideDown 220ms ease-in-out;
|
|
666
|
-
--animate-highlight-fade: highlight ease-in forwards;
|
|
672
|
+
--animate-highlight-fade: highlight 1100ms ease-in forwards;
|
|
673
|
+
--animate-page-enter: pageEnter 240ms cubic-bezier(0.39, 0.57, 0.56, 1);
|
|
674
|
+
--animate-content-enter: contentEnter 240ms cubic-bezier(0.39, 0.57, 0.56, 1) var(--content-enter-delay, 0s) backwards;
|
|
667
675
|
--animate-popup-scale-in: popupScaleIn 150ms cubic-bezier(0.39, 0.57, 0.56, 1);
|
|
668
676
|
--animate-popup-scale-out: popupScaleOut 110ms cubic-bezier(0.55, 0.09, 0.68, 0.53);
|
|
669
677
|
--animate-slide-in-left: slideInLeft 240ms cubic-bezier(0.39, 0.57, 0.56, 1);
|
|
@@ -687,6 +695,19 @@
|
|
|
687
695
|
--z-input-field: 1;
|
|
688
696
|
--z-input-popup: 10;
|
|
689
697
|
--z-input-overlay: 1100;
|
|
698
|
+
--layout-boundary-inline: var(--spacing-lg);
|
|
699
|
+
--layout-boundary-end: var(--spacing-lg);
|
|
700
|
+
--layout-boundary-start: var(--spacing-lg);
|
|
701
|
+
--layout-section-gap: var(--spacing-xl);
|
|
702
|
+
--layout-group-gap: var(--spacing-md);
|
|
703
|
+
--layout-measure: var(--container-7xl);
|
|
704
|
+
--layout-measure-focused: var(--container-4xl);
|
|
705
|
+
--layout-measure-form: var(--container-4xl);
|
|
706
|
+
--layout-measure-form-create: var(--container-5xl);
|
|
707
|
+
--layout-measure-content: var(--container-3xl);
|
|
708
|
+
--layout-measure-site: var(--container-6xl);
|
|
709
|
+
--layout-measure-site-header: var(--container-7xl);
|
|
710
|
+
--layout-measure-control: var(--container-3xs);
|
|
690
711
|
--text-big-number-md-font-size: 1.25rem;
|
|
691
712
|
--text-big-number-md-line-height: 1.25;
|
|
692
713
|
--text-big-number-md-font-weight: 400;
|
|
@@ -699,6 +720,20 @@
|
|
|
699
720
|
--text-big-number-lg-line-height: 1.25;
|
|
700
721
|
--text-big-number-lg-font-weight: 400;
|
|
701
722
|
--text-big-number-lg-font-family: Proto Mono;
|
|
723
|
+
--text-amount-lg-text-wrap-style: balance;
|
|
724
|
+
--text-amount-lg-font-size: 1.875rem;
|
|
725
|
+
--text-amount-lg-line-height: 1.25;
|
|
726
|
+
--text-amount-lg-font-weight: 400;
|
|
727
|
+
--text-amount-lg-letter-spacing: -0.08em;
|
|
728
|
+
--text-amount-md-text-wrap-style: balance;
|
|
729
|
+
--text-amount-md-font-size: 1rem;
|
|
730
|
+
--text-amount-md-line-height: 1.25;
|
|
731
|
+
--text-amount-md-font-weight: 400;
|
|
732
|
+
--text-amount-md-letter-spacing: -0.08em;
|
|
733
|
+
--text-amount-sm-font-size: 1rem;
|
|
734
|
+
--text-amount-sm-line-height: 1.5;
|
|
735
|
+
--text-amount-sm-font-weight: 400;
|
|
736
|
+
--text-amount-sm-letter-spacing: -0.08em;
|
|
702
737
|
--text-heading-2xl-font-size: 1.875rem;
|
|
703
738
|
--text-heading-2xl-line-height: 1.25;
|
|
704
739
|
--text-heading-2xl-font-weight: 400;
|
|
@@ -734,6 +769,12 @@
|
|
|
734
769
|
--text-label-code-sm-line-height: 1;
|
|
735
770
|
--text-label-code-sm-font-weight: 400;
|
|
736
771
|
--text-label-code-sm-letter-spacing: 0;
|
|
772
|
+
--text-body-code-sm-text-wrap-style: pretty;
|
|
773
|
+
--text-body-code-sm-font-family: Roboto Mono;
|
|
774
|
+
--text-body-code-sm-font-size: 0.75rem;
|
|
775
|
+
--text-body-code-sm-line-height: 1.625;
|
|
776
|
+
--text-body-code-sm-font-weight: 400;
|
|
777
|
+
--text-body-code-sm-letter-spacing: 0;
|
|
737
778
|
--text-label-code-md-font-family: Roboto Mono;
|
|
738
779
|
--text-label-code-md-font-size: 0.875rem;
|
|
739
780
|
--text-label-code-md-line-height: 1;
|
|
@@ -745,21 +786,29 @@
|
|
|
745
786
|
--text-label-code-lg-font-weight: 400;
|
|
746
787
|
--text-label-code-lg-letter-spacing: 0;
|
|
747
788
|
--text-body-lg-font-size: 1rem;
|
|
748
|
-
--text-body-lg-
|
|
789
|
+
--text-body-lg-font-weight: 400;
|
|
790
|
+
--text-body-lg-line-height: 1.375;
|
|
749
791
|
--text-body-md-font-size: 1rem;
|
|
750
|
-
--text-body-md-
|
|
792
|
+
--text-body-md-font-weight: 400;
|
|
793
|
+
--text-body-md-line-height: 1.375;
|
|
794
|
+
--text-body-prose-md-font-size: 1rem;
|
|
795
|
+
--text-body-prose-md-font-weight: 400;
|
|
796
|
+
--text-body-prose-md-line-height: 1.625;
|
|
751
797
|
--text-body-sm-font-size: 0.875rem;
|
|
752
|
-
--text-body-sm-
|
|
798
|
+
--text-body-sm-font-weight: 400;
|
|
799
|
+
--text-body-sm-line-height: 1.375;
|
|
753
800
|
--text-body-xs-font-size: 0.75rem;
|
|
754
|
-
--text-body-xs-
|
|
801
|
+
--text-body-xs-font-weight: 400;
|
|
802
|
+
--text-body-xs-line-height: 1.375;
|
|
803
|
+
--text-body-xxs-font-size: 0.75rem;
|
|
804
|
+
--text-body-xxs-font-weight: 400;
|
|
805
|
+
--text-body-xxs-line-height: 1.5;
|
|
755
806
|
--text-tag-sm-font-size: 0.75rem;
|
|
756
807
|
--text-tag-sm-line-height: 1.25;
|
|
757
|
-
--text-tag-sm-font-weight:
|
|
808
|
+
--text-tag-sm-font-weight: 400;
|
|
758
809
|
--text-tag-md-font-size: 0.75rem;
|
|
759
810
|
--text-tag-md-line-height: 1.25;
|
|
760
|
-
--text-tag-md-font-weight:
|
|
761
|
-
--text-body-xxs-font-size: 0.75rem;
|
|
762
|
-
--text-body-xxs-line-height: 1.5;
|
|
811
|
+
--text-tag-md-font-weight: 400;
|
|
763
812
|
--text-overline-md-font-family: Proto Mono;
|
|
764
813
|
--text-overline-md-font-size: 0.75rem;
|
|
765
814
|
--text-overline-md-line-height: 1.375;
|
|
@@ -801,6 +850,8 @@
|
|
|
801
850
|
--text-big-number-md-font-size: 1.5rem;
|
|
802
851
|
--text-big-number-sm-font-size: 1.25rem;
|
|
803
852
|
--text-big-number-lg-font-size: 2.25rem;
|
|
853
|
+
--text-amount-lg-font-size: 3rem;
|
|
854
|
+
--text-amount-md-font-size: 1.25rem;
|
|
804
855
|
--text-heading-2xl-font-size: 3rem;
|
|
805
856
|
--text-heading-xl-font-size: 1.875rem;
|
|
806
857
|
--text-heading-md-font-size: 1.25rem;
|
|
@@ -811,6 +862,8 @@
|
|
|
811
862
|
@media (min-width: 768px) {
|
|
812
863
|
--text-big-number-md-font-size: 2.25rem;
|
|
813
864
|
--text-big-number-lg-font-size: 3.5rem;
|
|
865
|
+
--text-amount-lg-font-size: 3.5rem;
|
|
866
|
+
--text-amount-md-font-size: 1.5rem;
|
|
814
867
|
--text-heading-2xl-font-size: 3.5rem;
|
|
815
868
|
--text-heading-xl-font-size: 2.25rem;
|
|
816
869
|
--text-heading-lg-font-size: 1.875rem;
|
|
@@ -833,12 +886,16 @@
|
|
|
833
886
|
--surface-0: #FFFFFF;
|
|
834
887
|
--surface-50: #FAFAFA;
|
|
835
888
|
--surface-100: #F5F5F5;
|
|
889
|
+
--surface-150: #ECECEC;
|
|
836
890
|
--surface-200: #E5E5E5;
|
|
891
|
+
--surface-250: #DADADA;
|
|
837
892
|
--surface-300: #B2B2B2;
|
|
838
893
|
--surface-400: #999999;
|
|
839
894
|
--surface-500: #808080;
|
|
840
895
|
--surface-600: #666666;
|
|
841
896
|
--surface-700: #4D4D4D;
|
|
897
|
+
--surface-750: #2B2B2B;
|
|
898
|
+
--surface-775: #242424;
|
|
842
899
|
--surface-800: #1A1A1A;
|
|
843
900
|
--surface-900: #141414;
|
|
844
901
|
--surface-950: #0A0A0A;
|
|
@@ -867,8 +924,8 @@
|
|
|
867
924
|
--bg-selected: #E5E5E5;
|
|
868
925
|
--bg-contrast: #141414;
|
|
869
926
|
--bg-disabled: #E5E5E5;
|
|
870
|
-
--border-default: #
|
|
871
|
-
--border-muted: #
|
|
927
|
+
--border-default: #DADADA;
|
|
928
|
+
--border-muted: #ECECEC;
|
|
872
929
|
--border-strong: #000000;
|
|
873
930
|
--border-selected: #F3652B;
|
|
874
931
|
--text-default: #141414;
|
|
@@ -904,12 +961,16 @@
|
|
|
904
961
|
--surface-0: #FFFFFF;
|
|
905
962
|
--surface-50: #FAFAFA;
|
|
906
963
|
--surface-100: #F5F5F5;
|
|
964
|
+
--surface-150: #ECECEC;
|
|
907
965
|
--surface-200: #E5E5E5;
|
|
966
|
+
--surface-250: #DADADA;
|
|
908
967
|
--surface-300: #B2B2B2;
|
|
909
968
|
--surface-400: #999999;
|
|
910
969
|
--surface-500: #808080;
|
|
911
970
|
--surface-600: #666666;
|
|
912
971
|
--surface-700: #4D4D4D;
|
|
972
|
+
--surface-750: #2B2B2B;
|
|
973
|
+
--surface-775: #242424;
|
|
913
974
|
--surface-800: #1A1A1A;
|
|
914
975
|
--surface-900: #141414;
|
|
915
976
|
--surface-950: #0A0A0A;
|
|
@@ -938,8 +999,8 @@
|
|
|
938
999
|
--bg-selected: #1A1A1A;
|
|
939
1000
|
--bg-contrast: #FAFAFA;
|
|
940
1001
|
--bg-disabled: #1A1A1A;
|
|
941
|
-
--border-default: #
|
|
942
|
-
--border-muted: #
|
|
1002
|
+
--border-default: #2B2B2B;
|
|
1003
|
+
--border-muted: #242424;
|
|
943
1004
|
--border-strong: #FFFFFF;
|
|
944
1005
|
--border-selected: #F3652B;
|
|
945
1006
|
--text-default: #FAFAFA;
|
|
@@ -992,8 +1053,8 @@
|
|
|
992
1053
|
}
|
|
993
1054
|
|
|
994
1055
|
@keyframes highlight {
|
|
995
|
-
0% { background-color: var(--surface-hover); font-weight: 500; }
|
|
996
|
-
100% { background-color:
|
|
1056
|
+
0%, 40% { background-color: var(--surface-hover); font-weight: 500; }
|
|
1057
|
+
100% { background-color: transparent; font-weight: 400; }
|
|
997
1058
|
}
|
|
998
1059
|
|
|
999
1060
|
@keyframes shimmer {
|
|
@@ -1001,6 +1062,16 @@
|
|
|
1001
1062
|
100% { background-position: -200% 0; }
|
|
1002
1063
|
}
|
|
1003
1064
|
|
|
1065
|
+
@keyframes pageEnter {
|
|
1066
|
+
0% { opacity: 0; translate: calc(var(--page-enter-distance, var(--layout-boundary-inline)) * -1) 0; }
|
|
1067
|
+
100% { opacity: 1; translate: 0 0; }
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
@keyframes contentEnter {
|
|
1071
|
+
0% { opacity: 0; translate: 0 var(--spacing-xs); }
|
|
1072
|
+
100% { opacity: 1; translate: 0 0; }
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1004
1075
|
@keyframes popupScaleIn {
|
|
1005
1076
|
0% { opacity: 0; transform: scale(0.9); }
|
|
1006
1077
|
100% { opacity: 1; transform: scale(1); }
|
|
@@ -1096,6 +1167,29 @@
|
|
|
1096
1167
|
font-family: var(--text-big-number-lg-font-family);
|
|
1097
1168
|
}
|
|
1098
1169
|
|
|
1170
|
+
@utility text-amount-lg {
|
|
1171
|
+
text-wrap-style: var(--text-amount-lg-text-wrap-style);
|
|
1172
|
+
font-size: var(--text-amount-lg-font-size);
|
|
1173
|
+
line-height: var(--text-amount-lg-line-height);
|
|
1174
|
+
font-weight: var(--text-amount-lg-font-weight);
|
|
1175
|
+
letter-spacing: var(--text-amount-lg-letter-spacing);
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
@utility text-amount-md {
|
|
1179
|
+
text-wrap-style: var(--text-amount-md-text-wrap-style);
|
|
1180
|
+
font-size: var(--text-amount-md-font-size);
|
|
1181
|
+
line-height: var(--text-amount-md-line-height);
|
|
1182
|
+
font-weight: var(--text-amount-md-font-weight);
|
|
1183
|
+
letter-spacing: var(--text-amount-md-letter-spacing);
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
@utility text-amount-sm {
|
|
1187
|
+
font-size: var(--text-amount-sm-font-size);
|
|
1188
|
+
line-height: var(--text-amount-sm-line-height);
|
|
1189
|
+
font-weight: var(--text-amount-sm-font-weight);
|
|
1190
|
+
letter-spacing: var(--text-amount-sm-letter-spacing);
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1099
1193
|
@utility text-heading-2xl {
|
|
1100
1194
|
font-size: var(--text-heading-2xl-font-size);
|
|
1101
1195
|
line-height: var(--text-heading-2xl-line-height);
|
|
@@ -1164,6 +1258,15 @@
|
|
|
1164
1258
|
letter-spacing: var(--text-label-code-sm-letter-spacing);
|
|
1165
1259
|
}
|
|
1166
1260
|
|
|
1261
|
+
@utility text-body-code-sm {
|
|
1262
|
+
text-wrap-style: var(--text-body-code-sm-text-wrap-style);
|
|
1263
|
+
font-family: var(--text-body-code-sm-font-family);
|
|
1264
|
+
font-size: var(--text-body-code-sm-font-size);
|
|
1265
|
+
line-height: var(--text-body-code-sm-line-height);
|
|
1266
|
+
font-weight: var(--text-body-code-sm-font-weight);
|
|
1267
|
+
letter-spacing: var(--text-body-code-sm-letter-spacing);
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1167
1270
|
@utility text-label-code-md {
|
|
1168
1271
|
font-family: var(--text-label-code-md-font-family);
|
|
1169
1272
|
font-size: var(--text-label-code-md-font-size);
|
|
@@ -1182,24 +1285,40 @@
|
|
|
1182
1285
|
|
|
1183
1286
|
@utility text-body-lg {
|
|
1184
1287
|
font-size: var(--text-body-lg-font-size);
|
|
1288
|
+
font-weight: var(--text-body-lg-font-weight);
|
|
1185
1289
|
line-height: var(--text-body-lg-line-height);
|
|
1186
1290
|
}
|
|
1187
1291
|
|
|
1188
1292
|
@utility text-body-md {
|
|
1189
1293
|
font-size: var(--text-body-md-font-size);
|
|
1294
|
+
font-weight: var(--text-body-md-font-weight);
|
|
1190
1295
|
line-height: var(--text-body-md-line-height);
|
|
1191
1296
|
}
|
|
1192
1297
|
|
|
1298
|
+
@utility text-body-prose-md {
|
|
1299
|
+
font-size: var(--text-body-prose-md-font-size);
|
|
1300
|
+
font-weight: var(--text-body-prose-md-font-weight);
|
|
1301
|
+
line-height: var(--text-body-prose-md-line-height);
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1193
1304
|
@utility text-body-sm {
|
|
1194
1305
|
font-size: var(--text-body-sm-font-size);
|
|
1306
|
+
font-weight: var(--text-body-sm-font-weight);
|
|
1195
1307
|
line-height: var(--text-body-sm-line-height);
|
|
1196
1308
|
}
|
|
1197
1309
|
|
|
1198
1310
|
@utility text-body-xs {
|
|
1199
1311
|
font-size: var(--text-body-xs-font-size);
|
|
1312
|
+
font-weight: var(--text-body-xs-font-weight);
|
|
1200
1313
|
line-height: var(--text-body-xs-line-height);
|
|
1201
1314
|
}
|
|
1202
1315
|
|
|
1316
|
+
@utility text-body-xxs {
|
|
1317
|
+
font-size: var(--text-body-xxs-font-size);
|
|
1318
|
+
font-weight: var(--text-body-xxs-font-weight);
|
|
1319
|
+
line-height: var(--text-body-xxs-line-height);
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1203
1322
|
@utility text-tag-sm {
|
|
1204
1323
|
font-size: var(--text-tag-sm-font-size);
|
|
1205
1324
|
line-height: var(--text-tag-sm-line-height);
|
|
@@ -1212,11 +1331,6 @@
|
|
|
1212
1331
|
font-weight: var(--text-tag-md-font-weight);
|
|
1213
1332
|
}
|
|
1214
1333
|
|
|
1215
|
-
@utility text-body-xxs {
|
|
1216
|
-
font-size: var(--text-body-xxs-font-size);
|
|
1217
|
-
line-height: var(--text-body-xxs-line-height);
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
1334
|
@utility text-overline-md {
|
|
1221
1335
|
font-family: var(--text-overline-md-font-family);
|
|
1222
1336
|
font-size: var(--text-overline-md-font-size);
|
|
@@ -1271,6 +1385,77 @@
|
|
|
1271
1385
|
.text-link { transition: none; }
|
|
1272
1386
|
}
|
|
1273
1387
|
|
|
1388
|
+
@utility layout-boundary {
|
|
1389
|
+
padding-inline: var(--layout-boundary-inline);
|
|
1390
|
+
padding-block-start: var(--layout-boundary-start);
|
|
1391
|
+
padding-block-end: var(--layout-boundary-end);
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
@utility layout-boundary-inline {
|
|
1395
|
+
padding-inline: var(--layout-boundary-inline);
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
@utility layout-section-start {
|
|
1399
|
+
margin-block-start: var(--layout-boundary-start);
|
|
1400
|
+
&:first-child { margin-block-start: 0; }
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
@utility layout-group-start {
|
|
1404
|
+
margin-block-start: var(--layout-group-gap);
|
|
1405
|
+
&:first-child { margin-block-start: 0; }
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1408
|
+
@utility layout-column {
|
|
1409
|
+
--layout-column-measure: var(--layout-measure);
|
|
1410
|
+
margin-inline: auto;
|
|
1411
|
+
width: 100%;
|
|
1412
|
+
max-width: var(--layout-column-measure);
|
|
1413
|
+
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
@utility layout-column-focused {
|
|
1417
|
+
--layout-column-measure: var(--layout-measure-focused);
|
|
1418
|
+
margin-inline: auto;
|
|
1419
|
+
width: 100%;
|
|
1420
|
+
max-width: var(--layout-column-measure);
|
|
1421
|
+
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1422
|
+
}
|
|
1423
|
+
|
|
1424
|
+
@utility layout-column-form {
|
|
1425
|
+
--layout-column-measure: var(--layout-measure-form);
|
|
1426
|
+
margin-inline: auto;
|
|
1427
|
+
width: 100%;
|
|
1428
|
+
max-width: var(--layout-column-measure);
|
|
1429
|
+
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
@utility layout-form-create {
|
|
1433
|
+
--layout-column-measure: var(--layout-measure-form-create);
|
|
1434
|
+
--layout-measure-control: var(--container-md);
|
|
1435
|
+
margin-inline: auto;
|
|
1436
|
+
width: 100%;
|
|
1437
|
+
max-width: var(--layout-column-measure);
|
|
1438
|
+
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
@utility layout-column-content {
|
|
1442
|
+
--layout-column-measure: var(--layout-measure-content);
|
|
1443
|
+
margin-inline: auto;
|
|
1444
|
+
width: 100%;
|
|
1445
|
+
max-width: var(--layout-column-measure);
|
|
1446
|
+
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
@utility layout-column-site {
|
|
1450
|
+
margin-inline: auto;
|
|
1451
|
+
width: 100%;
|
|
1452
|
+
max-width: min(var(--layout-measure-site), 100% - 2 * var(--layout-boundary-inline));
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
@utility layout-field-control {
|
|
1456
|
+
&:not(#\#) { display: flex; flex: 1 1 0%; justify-content: flex-end; max-width: var(--layout-measure-control); }
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1274
1459
|
@utility bg-surface-0 { background-color: var(--surface-0); }
|
|
1275
1460
|
@utility text-surface-0 { color: var(--surface-0); }
|
|
1276
1461
|
@utility border-surface-0 { border-color: var(--surface-0); }
|
|
@@ -1280,9 +1465,15 @@
|
|
|
1280
1465
|
@utility bg-surface-100 { background-color: var(--surface-100); }
|
|
1281
1466
|
@utility text-surface-100 { color: var(--surface-100); }
|
|
1282
1467
|
@utility border-surface-100 { border-color: var(--surface-100); }
|
|
1468
|
+
@utility bg-surface-150 { background-color: var(--surface-150); }
|
|
1469
|
+
@utility text-surface-150 { color: var(--surface-150); }
|
|
1470
|
+
@utility border-surface-150 { border-color: var(--surface-150); }
|
|
1283
1471
|
@utility bg-surface-200 { background-color: var(--surface-200); }
|
|
1284
1472
|
@utility text-surface-200 { color: var(--surface-200); }
|
|
1285
1473
|
@utility border-surface-200 { border-color: var(--surface-200); }
|
|
1474
|
+
@utility bg-surface-250 { background-color: var(--surface-250); }
|
|
1475
|
+
@utility text-surface-250 { color: var(--surface-250); }
|
|
1476
|
+
@utility border-surface-250 { border-color: var(--surface-250); }
|
|
1286
1477
|
@utility bg-surface-300 { background-color: var(--surface-300); }
|
|
1287
1478
|
@utility text-surface-300 { color: var(--surface-300); }
|
|
1288
1479
|
@utility border-surface-300 { border-color: var(--surface-300); }
|
|
@@ -1298,6 +1489,12 @@
|
|
|
1298
1489
|
@utility bg-surface-700 { background-color: var(--surface-700); }
|
|
1299
1490
|
@utility text-surface-700 { color: var(--surface-700); }
|
|
1300
1491
|
@utility border-surface-700 { border-color: var(--surface-700); }
|
|
1492
|
+
@utility bg-surface-750 { background-color: var(--surface-750); }
|
|
1493
|
+
@utility text-surface-750 { color: var(--surface-750); }
|
|
1494
|
+
@utility border-surface-750 { border-color: var(--surface-750); }
|
|
1495
|
+
@utility bg-surface-775 { background-color: var(--surface-775); }
|
|
1496
|
+
@utility text-surface-775 { color: var(--surface-775); }
|
|
1497
|
+
@utility border-surface-775 { border-color: var(--surface-775); }
|
|
1301
1498
|
@utility bg-surface-800 { background-color: var(--surface-800); }
|
|
1302
1499
|
@utility text-surface-800 { color: var(--surface-800); }
|
|
1303
1500
|
@utility border-surface-800 { border-color: var(--surface-800); }
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aziontech/theme",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "5.0.0",
|
|
5
5
|
"author": "aziontech",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
".": "./dist/v4/globals.css",
|
|
45
45
|
"./animations": "./src/tokens/primitives/animations/animate.js",
|
|
46
46
|
"./colors": "./src/tokens/primitives/colors/colors.js",
|
|
47
|
+
"./layouts": "./src/tokens/semantic/layouts.data.js",
|
|
47
48
|
"./texts": "./src/tokens/semantic/texts.data.js",
|
|
48
49
|
"./theme-colors": "./src/scripts/compile-theme.js"
|
|
49
50
|
}
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
* typography, breakpoints, animations, …)
|
|
15
15
|
* - `tokens/semantic/{containers,spacings,texts}.data.js`
|
|
16
16
|
* responsive-shaped semantic tokens
|
|
17
|
+
* - `tokens/semantic/layouts.data.js`
|
|
18
|
+
* layout tokens (all derived from --spacing-* /
|
|
19
|
+
* --container-*) + the `@utility` blocks that
|
|
20
|
+
* build the container system on them
|
|
17
21
|
* - `tokens/primitives/animations/{animate,keyframes}.js`
|
|
18
22
|
* animation utilities (`--animate-*`) + `@keyframes`
|
|
19
23
|
* definitions + extra CSS (transform-origin) for
|
|
@@ -32,6 +36,7 @@ import { breakpoints } from '../tokens/primitives/breakpoints.js';
|
|
|
32
36
|
import { compilePrimitivesVars } from './compile-primitives.js';
|
|
33
37
|
import { compileThemeCss, compileThemeVars } from './compile-theme.js';
|
|
34
38
|
import { containersData } from '../tokens/semantic/containers.data.js';
|
|
39
|
+
import { layoutsData, layoutsUtilities } from '../tokens/semantic/layouts.data.js';
|
|
35
40
|
import { spacingsData } from '../tokens/semantic/spacings.data.js';
|
|
36
41
|
import { textsData } from '../tokens/semantic/texts.data.js';
|
|
37
42
|
import { zIndicesData } from '../tokens/semantic/z-indices.data.js';
|
|
@@ -92,6 +97,7 @@ const buildFlatModel = () => ({
|
|
|
92
97
|
containers: flattenSingleValue(containersData, (k) => `--container-${k}`),
|
|
93
98
|
spacings: flattenSingleValue(spacingsData, (k) => `--${k}`),
|
|
94
99
|
zIndices: flattenSingleValue(zIndicesData, (k) => `--${k}`),
|
|
100
|
+
layouts: flattenSingleValue(layoutsData, (k) => `--${k}`),
|
|
95
101
|
texts: flattenBundle(textsData),
|
|
96
102
|
});
|
|
97
103
|
|
|
@@ -234,6 +240,33 @@ const emitSemanticColorUtilities = () => {
|
|
|
234
240
|
* interactive element loses the hand cursor unless a component overrides it.
|
|
235
241
|
* Disabled controls keep the default cursor.
|
|
236
242
|
*/
|
|
243
|
+
/**
|
|
244
|
+
* Emit a map of `@utility` blocks. A string value is a plain declaration; an object
|
|
245
|
+
* value is a nested rule keyed by a literal selector (`&:first-child { … }`), the way
|
|
246
|
+
* the typography utilities nest their `&:hover`.
|
|
247
|
+
*/
|
|
248
|
+
const emitUtilities = (utilities) =>
|
|
249
|
+
Object.entries(utilities)
|
|
250
|
+
.map(([name, decls]) => {
|
|
251
|
+
const body = Object.entries(decls)
|
|
252
|
+
.map(([prop, value]) =>
|
|
253
|
+
typeof value === 'object'
|
|
254
|
+
? ` ${prop} { ${formatStateDecls(value)}; }`
|
|
255
|
+
: ` ${prop}: ${value};`,
|
|
256
|
+
)
|
|
257
|
+
.join('\n');
|
|
258
|
+
return `@utility ${name} {\n${body}\n}`;
|
|
259
|
+
})
|
|
260
|
+
.join('\n\n');
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* The container system as `@utility` blocks — same reason as the typography
|
|
264
|
+
* utilities: `@layer components` classes are opaque to the variant resolver, and a
|
|
265
|
+
* layout class is exactly the kind a consumer wants behind a variant
|
|
266
|
+
* (`md:layout-column`).
|
|
267
|
+
*/
|
|
268
|
+
const emitLayoutUtilities = () => emitUtilities(layoutsUtilities);
|
|
269
|
+
|
|
237
270
|
const emitBaseLayer = () =>
|
|
238
271
|
[
|
|
239
272
|
'@layer base {',
|
|
@@ -310,6 +343,7 @@ const emitCssV4 = () => {
|
|
|
310
343
|
...(m.containers._ || {}),
|
|
311
344
|
...(m.spacings._ || {}),
|
|
312
345
|
...(m.zIndices._ || {}),
|
|
346
|
+
...(m.layouts._ || {}),
|
|
313
347
|
...(m.texts._ || {}),
|
|
314
348
|
};
|
|
315
349
|
|
|
@@ -319,6 +353,7 @@ const emitCssV4 = () => {
|
|
|
319
353
|
...(m.containers[bp] || {}),
|
|
320
354
|
...(m.spacings[bp] || {}),
|
|
321
355
|
...(m.zIndices[bp] || {}),
|
|
356
|
+
...(m.layouts[bp] || {}),
|
|
322
357
|
...(m.texts[bp] || {}),
|
|
323
358
|
};
|
|
324
359
|
if (Object.keys(merged).length === 0) continue;
|
|
@@ -337,7 +372,7 @@ const emitCssV4 = () => {
|
|
|
337
372
|
'@import "tailwindcss";',
|
|
338
373
|
'',
|
|
339
374
|
'/*',
|
|
340
|
-
' * `@aziontech/webkit` components use arbitrary values (`bg-
|
|
375
|
+
' * `@aziontech/webkit` components use arbitrary values (`bg-(--x)`) that',
|
|
341
376
|
' * Tailwind v4 only picks up when the source files are inside the scan.',
|
|
342
377
|
' * Auto-detect scans the CWD only, so we point `@source` at the webkit',
|
|
343
378
|
' * package via a monorepo-relative path (this file is under',
|
|
@@ -366,6 +401,8 @@ const emitCssV4 = () => {
|
|
|
366
401
|
'',
|
|
367
402
|
emitTextUtilities(),
|
|
368
403
|
'',
|
|
404
|
+
emitLayoutUtilities(),
|
|
405
|
+
'',
|
|
369
406
|
emitSemanticColorUtilities(),
|
|
370
407
|
'',
|
|
371
408
|
emitBaseLayer(),
|
package/src/tokens/README.md
CHANGED
|
@@ -179,7 +179,31 @@ export const spacingsData = {
|
|
|
179
179
|
}
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
-
`_` is the base value emitted in `:root`; the breakpoint keys (`sm`, `md`, `lg`, `xl`, `2xl`) become media-query overrides.
|
|
182
|
+
`_` is the base value emitted in `:root`; the breakpoint keys (`sm`, `md`, `lg`, `xl`, `2xl`) become media-query overrides. A bare string is accepted as shorthand for `{ _: value }`.
|
|
183
|
+
|
|
184
|
+
### Derived groups (`layouts.data.js`)
|
|
185
|
+
|
|
186
|
+
`semantic/layouts` is a **derived** group: every value is a `var()` reference to `--spacing-*` /
|
|
187
|
+
`--container-*`, never a literal length.
|
|
188
|
+
|
|
189
|
+
```js
|
|
190
|
+
// tokens/semantic/layouts.data.js
|
|
191
|
+
export const layoutsData = {
|
|
192
|
+
'layout-boundary-inline': 'var(--spacing-lg)',
|
|
193
|
+
'layout-measure': 'var(--container-7xl)'
|
|
194
|
+
// …
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
That indirection is the whole point, and it is why these carry no breakpoint map of their own: the
|
|
199
|
+
spacing scale is already responsive (`--spacing-lg` is `1rem`, then `1.5rem` from `sm`), and a `var()`
|
|
200
|
+
is substituted at **use** time on the element — so a layout token follows the breakpoint override for
|
|
201
|
+
free. Giving it its own map would duplicate the spacing scale into layout and let the two drift.
|
|
202
|
+
|
|
203
|
+
The group also ships `layoutsUtilities`, the container-system classes (`.layout-column`,
|
|
204
|
+
`.layout-boundary`, …) emitted as Tailwind v4 `@utility` blocks so they support variants
|
|
205
|
+
(`md:layout-column`). Utilities are shaped exactly like `illustrationsUtilities`: a string value is a
|
|
206
|
+
declaration, an object value is a nested rule keyed by a literal selector (`'&:first-child'`).
|
|
183
207
|
|
|
184
208
|
---
|
|
185
209
|
|
|
@@ -25,6 +25,8 @@ export const animate: {
|
|
|
25
25
|
'fade-out': string;
|
|
26
26
|
'slide-down': string;
|
|
27
27
|
'highlight-fade': string;
|
|
28
|
+
'page-enter': string;
|
|
29
|
+
'content-enter': string;
|
|
28
30
|
'popup-scale-in': string;
|
|
29
31
|
'popup-scale-out': string;
|
|
30
32
|
'slide-in-left': string;
|
|
@@ -36,6 +38,8 @@ export const animate: {
|
|
|
36
38
|
'flow-dash': string;
|
|
37
39
|
};
|
|
38
40
|
export const useWhen: {
|
|
41
|
+
'page-enter': string;
|
|
42
|
+
'content-enter': string;
|
|
39
43
|
spin: string;
|
|
40
44
|
ping: string;
|
|
41
45
|
pulse: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animate.d.ts","sourceRoot":"","sources":["animate.js"],"names":[],"mappings":"AAAA;;;;;EAKC;AAED;;;;;;;;;EASC;AAED
|
|
1
|
+
{"version":3,"file":"animate.d.ts","sourceRoot":"","sources":["animate.js"],"names":[],"mappings":"AAAA;;;;;EAKC;AAED;;;;;;;;;EASC;AAED;;;;;;;;;;;;;;;;;;;;;;EAwBC;AAED;;;;;;;;;;;;;;;;;;;;;;EA4BC"}
|
|
@@ -26,7 +26,9 @@ export const animate = {
|
|
|
26
26
|
'fade-in': 'fadeIn 220ms ease-in-out',
|
|
27
27
|
'fade-out': 'fadeOut 220ms ease-in-out',
|
|
28
28
|
'slide-down': 'slideDown 220ms ease-in-out',
|
|
29
|
-
'highlight-fade':
|
|
29
|
+
'highlight-fade': `highlight ${duration['slow-03']} ease-in forwards`,
|
|
30
|
+
'page-enter': `pageEnter ${duration['moderate-02']} ${curve['productive-entrance']}`,
|
|
31
|
+
'content-enter': `contentEnter ${duration['moderate-02']} ${curve['productive-entrance']} var(--content-enter-delay, 0s) backwards`,
|
|
30
32
|
'popup-scale-in': `popupScaleIn ${duration['moderate-01']} ${curve['productive-entrance']}`,
|
|
31
33
|
'popup-scale-out': `popupScaleOut ${duration['fast-02']} ${curve['productive-exit']}`,
|
|
32
34
|
'slide-in-left': `slideInLeft ${duration['moderate-02']} ${curve['productive-entrance']}`,
|
|
@@ -41,6 +43,10 @@ export const animate = {
|
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
export const useWhen = {
|
|
46
|
+
'page-enter':
|
|
47
|
+
'A page arriving on a route change — on the CONTENT ZONE only, never the shell. The chrome is the same before and after, and sliding it announces a reload that did not happen. Key it on the route path so a component serving several paths still replays it. Nothing inside the page may animate on mount at the same time: the two run in lockstep and read as one element travelling on a diagonal.',
|
|
48
|
+
'content-enter':
|
|
49
|
+
'Content settling INSIDE a page that is already on screen — a loading window resolving, a filtered list swapping, a step changing. Never on first paint of a page whose own entrance is already running (use it after that entrance, or after a wire). Stagger a follower with --content-enter-delay.',
|
|
44
50
|
spin: 'Indeterminate circular spinners (loading icons).',
|
|
45
51
|
ping: 'One-off attention ring radiating from a small element (notification dot).',
|
|
46
52
|
pulse: 'Skeleton/placeholder opacity pulse while content loads.',
|
|
@@ -16,13 +16,21 @@ export namespace keyframes {
|
|
|
16
16
|
'50%': string;
|
|
17
17
|
};
|
|
18
18
|
let highlight: {
|
|
19
|
-
'0%': string;
|
|
19
|
+
'0%, 40%': string;
|
|
20
20
|
'100%': string;
|
|
21
21
|
};
|
|
22
22
|
let shimmer: {
|
|
23
23
|
'0%': string;
|
|
24
24
|
'100%': string;
|
|
25
25
|
};
|
|
26
|
+
let pageEnter: {
|
|
27
|
+
'0%': string;
|
|
28
|
+
'100%': string;
|
|
29
|
+
};
|
|
30
|
+
let contentEnter: {
|
|
31
|
+
'0%': string;
|
|
32
|
+
'100%': string;
|
|
33
|
+
};
|
|
26
34
|
let popupScaleIn: {
|
|
27
35
|
'0%': string;
|
|
28
36
|
'100%': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyframes.d.ts","sourceRoot":"","sources":["keyframes.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keyframes.d.ts","sourceRoot":"","sources":["keyframes.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FA;;;;GAIG;AACH;;;;;;;EAGC"}
|
|
@@ -28,14 +28,24 @@ export const keyframes = {
|
|
|
28
28
|
'0%, 100%': 'opacity: 1',
|
|
29
29
|
'50%': 'opacity: 0'
|
|
30
30
|
},
|
|
31
|
+
// Holds the highlight for the first 40% of the run, then fades it back to
|
|
32
|
+
// normal over the remaining 60% — a row-flash, not a permanent tint.
|
|
31
33
|
highlight: {
|
|
32
|
-
'0%': 'background-color: var(--surface-hover); font-weight: 500',
|
|
33
|
-
'100%': 'background-color:
|
|
34
|
+
'0%, 40%': 'background-color: var(--surface-hover); font-weight: 500',
|
|
35
|
+
'100%': 'background-color: transparent; font-weight: 400'
|
|
34
36
|
},
|
|
35
37
|
shimmer: {
|
|
36
38
|
'0%': 'background-position: 200% 0',
|
|
37
39
|
'100%': 'background-position: -200% 0'
|
|
38
40
|
},
|
|
41
|
+
pageEnter: {
|
|
42
|
+
'0%': 'opacity: 0; translate: calc(var(--page-enter-distance, var(--layout-boundary-inline)) * -1) 0',
|
|
43
|
+
'100%': 'opacity: 1; translate: 0 0'
|
|
44
|
+
},
|
|
45
|
+
contentEnter: {
|
|
46
|
+
'0%': 'opacity: 0; translate: 0 var(--spacing-xs)',
|
|
47
|
+
'100%': 'opacity: 1; translate: 0 0'
|
|
48
|
+
},
|
|
39
49
|
popupScaleIn: {
|
|
40
50
|
'0%': 'opacity: 0; transform: scale(0.9)',
|
|
41
51
|
'100%': 'opacity: 1; transform: scale(1)'
|