@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 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
 
@@ -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 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadicodeai/design-system",
3
- "version": "12.1.83",
3
+ "version": "12.1.85",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"