@nadicodeai/design-system 12.1.83 → 12.1.85
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/DESIGN.md +1 -1
- package/dist/css/index.css +35 -0
- package/package.json +1 -1
package/DESIGN.md
CHANGED
|
@@ -469,7 +469,7 @@ Geist and Geist Mono are the two families. The role scale follows the measured [
|
|
|
469
469
|
| `{typography.body-compact}` | 13 / 18 px | Dense secondary copy. |
|
|
470
470
|
| `{typography.code}` | 13 / 18 px | Inline code or code block. |
|
|
471
471
|
|
|
472
|
-
A token has one size at every width; nothing is sized in `vw` or `vh`. A role includes family, size, line height, weight and tracking together. Use the shared `nc-type-*` classes or the generated `text-<token>` utilities, such as `text-display-md`, with `font-label-mono` for the `label-mono` family and `font-code` for `code`, rather than assembling role metrics at a call site. Existing `text-xs`, `text-sm` and `text-base` body sizes match `caption`, `body-sm` and `body-md`. Card, panel and section titles are sentence-case Geist. Headings use weight 600 and their optical negative tracking. A softer run inside a heading uses 500; a strong run inside a label uses 500; strong paragraph copy uses 550. Labels align single lines and icons; paragraphs use the copy roles and can wrap. Numeric comparisons use tabular digits, and identifiers use mono. Semantic heading levels express document structure independently of visual size. Never shrink type to fit: wrap, reflow or move supporting detail.
|
|
472
|
+
A token has one size at every width; nothing is sized in `vw` or `vh`. A role includes family, size, line height, weight and tracking together. Use the shared `nc-type-*` classes or the generated `text-<token>` utilities, such as `text-display-md`, with `font-label-mono` for the `label-mono` family and `font-code` for `code`, rather than assembling role metrics at a call site. Existing `text-xs`, `text-sm` and `text-base` body sizes match `caption`, `body-sm` and `body-md`. Card, panel and section titles are sentence-case Geist. Headings use weight 600 and their optical negative tracking. A softer run inside a heading uses 500; a strong run inside a label uses 500; strong paragraph copy uses 550. Labels align single lines and icons; paragraphs use the copy roles and can wrap. Headings and the heading and display roles wrap balanced, so no line of a title is left short; copy wraps pretty, so a paragraph never ends on a lone word; centred copy wraps balanced, whatever its role. The type layer applies this, Nadia's skin takes it with the roles and Alveare's type adapter with its type steps, so a screen sets text wrapping only to depart from it. Numeric comparisons use tabular digits, and identifiers use mono. Semantic heading levels express document structure independently of visual size. Never shrink type to fit: wrap, reflow or move supporting detail.
|
|
473
473
|
|
|
474
474
|
### The website's text
|
|
475
475
|
|
package/dist/css/index.css
CHANGED
|
@@ -806,6 +806,17 @@
|
|
|
806
806
|
-apple-system,
|
|
807
807
|
sans-serif;
|
|
808
808
|
}
|
|
809
|
+
body {
|
|
810
|
+
text-wrap-style: pretty;
|
|
811
|
+
}
|
|
812
|
+
h1,
|
|
813
|
+
h2,
|
|
814
|
+
h3,
|
|
815
|
+
h4,
|
|
816
|
+
h5,
|
|
817
|
+
h6 {
|
|
818
|
+
text-wrap-style: balance;
|
|
819
|
+
}
|
|
809
820
|
:focus-visible {
|
|
810
821
|
outline: var(--nc-focus-outline-width) solid var(--nc-focus-ring);
|
|
811
822
|
outline-offset: var(--nc-focus-outline-offset);
|
|
@@ -874,6 +885,7 @@
|
|
|
874
885
|
font-weight: var(--nc-type-display-xl-font-weight);
|
|
875
886
|
line-height: var(--nc-type-display-xl-line-height);
|
|
876
887
|
letter-spacing: var(--nc-type-display-xl-letter-spacing);
|
|
888
|
+
text-wrap-style: balance;
|
|
877
889
|
}
|
|
878
890
|
.nc-type-display-wide {
|
|
879
891
|
font-family: var(--nc-type-display-wide-font-family);
|
|
@@ -881,6 +893,7 @@
|
|
|
881
893
|
font-weight: var(--nc-type-display-wide-font-weight);
|
|
882
894
|
line-height: var(--nc-type-display-wide-line-height);
|
|
883
895
|
letter-spacing: var(--nc-type-display-wide-letter-spacing);
|
|
896
|
+
text-wrap-style: balance;
|
|
884
897
|
}
|
|
885
898
|
.nc-type-display-lg {
|
|
886
899
|
font-family: var(--nc-type-display-lg-font-family);
|
|
@@ -888,6 +901,7 @@
|
|
|
888
901
|
font-weight: var(--nc-type-display-lg-font-weight);
|
|
889
902
|
line-height: var(--nc-type-display-lg-line-height);
|
|
890
903
|
letter-spacing: var(--nc-type-display-lg-letter-spacing);
|
|
904
|
+
text-wrap-style: balance;
|
|
891
905
|
}
|
|
892
906
|
.nc-type-display-section {
|
|
893
907
|
font-family: var(--nc-type-display-section-font-family);
|
|
@@ -895,6 +909,7 @@
|
|
|
895
909
|
font-weight: var(--nc-type-display-section-font-weight);
|
|
896
910
|
line-height: var(--nc-type-display-section-line-height);
|
|
897
911
|
letter-spacing: var(--nc-type-display-section-letter-spacing);
|
|
912
|
+
text-wrap-style: balance;
|
|
898
913
|
}
|
|
899
914
|
.nc-type-display-md {
|
|
900
915
|
font-family: var(--nc-type-display-md-font-family);
|
|
@@ -902,6 +917,7 @@
|
|
|
902
917
|
font-weight: var(--nc-type-display-md-font-weight);
|
|
903
918
|
line-height: var(--nc-type-display-md-line-height);
|
|
904
919
|
letter-spacing: var(--nc-type-display-md-letter-spacing);
|
|
920
|
+
text-wrap-style: balance;
|
|
905
921
|
}
|
|
906
922
|
.nc-type-heading-lg {
|
|
907
923
|
font-family: var(--nc-type-heading-lg-font-family);
|
|
@@ -909,6 +925,7 @@
|
|
|
909
925
|
font-weight: var(--nc-type-heading-lg-font-weight);
|
|
910
926
|
line-height: var(--nc-type-heading-lg-line-height);
|
|
911
927
|
letter-spacing: var(--nc-type-heading-lg-letter-spacing);
|
|
928
|
+
text-wrap-style: balance;
|
|
912
929
|
}
|
|
913
930
|
.nc-type-heading-md {
|
|
914
931
|
font-family: var(--nc-type-heading-md-font-family);
|
|
@@ -916,6 +933,7 @@
|
|
|
916
933
|
font-weight: var(--nc-type-heading-md-font-weight);
|
|
917
934
|
line-height: var(--nc-type-heading-md-line-height);
|
|
918
935
|
letter-spacing: var(--nc-type-heading-md-letter-spacing);
|
|
936
|
+
text-wrap-style: balance;
|
|
919
937
|
}
|
|
920
938
|
.nc-type-heading-sm {
|
|
921
939
|
font-family: var(--nc-type-heading-sm-font-family);
|
|
@@ -923,6 +941,7 @@
|
|
|
923
941
|
font-weight: var(--nc-type-heading-sm-font-weight);
|
|
924
942
|
line-height: var(--nc-type-heading-sm-line-height);
|
|
925
943
|
letter-spacing: var(--nc-type-heading-sm-letter-spacing);
|
|
944
|
+
text-wrap-style: balance;
|
|
926
945
|
}
|
|
927
946
|
.nc-type-heading-xs {
|
|
928
947
|
font-family: var(--nc-type-heading-xs-font-family);
|
|
@@ -930,6 +949,7 @@
|
|
|
930
949
|
font-weight: var(--nc-type-heading-xs-font-weight);
|
|
931
950
|
line-height: var(--nc-type-heading-xs-line-height);
|
|
932
951
|
letter-spacing: var(--nc-type-heading-xs-letter-spacing);
|
|
952
|
+
text-wrap-style: balance;
|
|
933
953
|
}
|
|
934
954
|
.nc-type-heading-compact {
|
|
935
955
|
font-family: var(--nc-type-heading-compact-font-family);
|
|
@@ -937,6 +957,7 @@
|
|
|
937
957
|
font-weight: var(--nc-type-heading-compact-font-weight);
|
|
938
958
|
line-height: var(--nc-type-heading-compact-line-height);
|
|
939
959
|
letter-spacing: var(--nc-type-heading-compact-letter-spacing);
|
|
960
|
+
text-wrap-style: balance;
|
|
940
961
|
}
|
|
941
962
|
.nc-type-button-lg {
|
|
942
963
|
font-family: var(--nc-type-button-lg-font-family);
|
|
@@ -1028,6 +1049,7 @@
|
|
|
1028
1049
|
font-weight: var(--nc-type-body-display-font-weight);
|
|
1029
1050
|
line-height: var(--nc-type-body-display-line-height);
|
|
1030
1051
|
letter-spacing: var(--nc-type-body-display-letter-spacing);
|
|
1052
|
+
text-wrap-style: pretty;
|
|
1031
1053
|
}
|
|
1032
1054
|
.nc-type-body-lead {
|
|
1033
1055
|
font-family: var(--nc-type-body-lead-font-family);
|
|
@@ -1035,6 +1057,7 @@
|
|
|
1035
1057
|
font-weight: var(--nc-type-body-lead-font-weight);
|
|
1036
1058
|
line-height: var(--nc-type-body-lead-line-height);
|
|
1037
1059
|
letter-spacing: var(--nc-type-body-lead-letter-spacing);
|
|
1060
|
+
text-wrap-style: pretty;
|
|
1038
1061
|
}
|
|
1039
1062
|
.nc-type-body-lg {
|
|
1040
1063
|
font-family: var(--nc-type-body-lg-font-family);
|
|
@@ -1042,6 +1065,7 @@
|
|
|
1042
1065
|
font-weight: var(--nc-type-body-lg-font-weight);
|
|
1043
1066
|
line-height: var(--nc-type-body-lg-line-height);
|
|
1044
1067
|
letter-spacing: var(--nc-type-body-lg-letter-spacing);
|
|
1068
|
+
text-wrap-style: pretty;
|
|
1045
1069
|
}
|
|
1046
1070
|
.nc-type-body-md {
|
|
1047
1071
|
font-family: var(--nc-type-body-md-font-family);
|
|
@@ -1049,6 +1073,7 @@
|
|
|
1049
1073
|
font-weight: var(--nc-type-body-md-font-weight);
|
|
1050
1074
|
line-height: var(--nc-type-body-md-line-height);
|
|
1051
1075
|
letter-spacing: var(--nc-type-body-md-letter-spacing);
|
|
1076
|
+
text-wrap-style: pretty;
|
|
1052
1077
|
}
|
|
1053
1078
|
.nc-type-body-sm {
|
|
1054
1079
|
font-family: var(--nc-type-body-sm-font-family);
|
|
@@ -1056,6 +1081,7 @@
|
|
|
1056
1081
|
font-weight: var(--nc-type-body-sm-font-weight);
|
|
1057
1082
|
line-height: var(--nc-type-body-sm-line-height);
|
|
1058
1083
|
letter-spacing: var(--nc-type-body-sm-letter-spacing);
|
|
1084
|
+
text-wrap-style: pretty;
|
|
1059
1085
|
}
|
|
1060
1086
|
.nc-type-body-compact {
|
|
1061
1087
|
font-family: var(--nc-type-body-compact-font-family);
|
|
@@ -1063,6 +1089,7 @@
|
|
|
1063
1089
|
font-weight: var(--nc-type-body-compact-font-weight);
|
|
1064
1090
|
line-height: var(--nc-type-body-compact-line-height);
|
|
1065
1091
|
letter-spacing: var(--nc-type-body-compact-letter-spacing);
|
|
1092
|
+
text-wrap-style: pretty;
|
|
1066
1093
|
}
|
|
1067
1094
|
.nc-type-code {
|
|
1068
1095
|
font-family: var(--nc-type-code-font-family);
|
|
@@ -1080,6 +1107,14 @@
|
|
|
1080
1107
|
:is(.nc-type-body-display, .nc-type-body-lead, .nc-type-body-lg, .nc-type-body-md, .nc-type-body-sm, .nc-type-body-compact) strong {
|
|
1081
1108
|
font-weight: 550;
|
|
1082
1109
|
}
|
|
1110
|
+
.text-center,
|
|
1111
|
+
.text-center :is(.nc-type-body-display, .nc-type-body-lead, .nc-type-body-lg, .nc-type-body-md, .nc-type-body-sm, .nc-type-body-compact) {
|
|
1112
|
+
text-wrap-style: balance;
|
|
1113
|
+
}
|
|
1114
|
+
textarea,
|
|
1115
|
+
[contenteditable]:not([contenteditable=false]) {
|
|
1116
|
+
text-wrap-style: auto;
|
|
1117
|
+
}
|
|
1083
1118
|
}
|
|
1084
1119
|
|
|
1085
1120
|
/* src/css/motion.css */
|