@dnanpm/ui-components 0.1.0 → 0.3.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.
Files changed (135) hide show
  1. package/README.md +2 -2
  2. package/dist/components/Accordion/Accordion.cjs +9 -3
  3. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  4. package/dist/components/Accordion/Accordion.css +1 -1
  5. package/dist/components/Accordion/Accordion.d.ts +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  7. package/dist/components/Accordion/Accordion.js +10 -4
  8. package/dist/components/Accordion/Accordion.js.map +1 -1
  9. package/dist/components/Accordion/Accordion.types.d.ts +2 -2
  10. package/dist/components/Accordion/Accordion.types.d.ts.map +1 -1
  11. package/dist/components/AccordionItem/AccordionItem.cjs +43 -43
  12. package/dist/components/AccordionItem/AccordionItem.cjs.map +1 -1
  13. package/dist/components/AccordionItem/AccordionItem.css +20 -20
  14. package/dist/components/AccordionItem/AccordionItem.d.ts +1 -1
  15. package/dist/components/AccordionItem/AccordionItem.d.ts.map +1 -1
  16. package/dist/components/AccordionItem/AccordionItem.js +43 -43
  17. package/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  18. package/dist/components/AccordionItem/AccordionItem.module.css.cjs +11 -11
  19. package/dist/components/AccordionItem/AccordionItem.module.css.js +11 -11
  20. package/dist/components/AccordionItem/AccordionItem.types.d.ts +2 -2
  21. package/dist/components/AccordionItem/AccordionItem.types.d.ts.map +1 -1
  22. package/dist/components/Breadcrumb/Breadcrumb.cjs +4 -5
  23. package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  24. package/dist/components/Breadcrumb/Breadcrumb.css +16 -15
  25. package/dist/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  26. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  27. package/dist/components/Breadcrumb/Breadcrumb.js +4 -5
  28. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  29. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +6 -6
  30. package/dist/components/Breadcrumb/Breadcrumb.module.css.js +6 -6
  31. package/dist/components/Breadcrumb/Breadcrumb.types.d.ts +1 -5
  32. package/dist/components/Breadcrumb/Breadcrumb.types.d.ts.map +1 -1
  33. package/dist/components/Button/Button.cjs +104 -0
  34. package/dist/components/Button/Button.cjs.map +1 -0
  35. package/dist/components/Button/Button.css +188 -0
  36. package/dist/components/Button/Button.d.ts +3 -0
  37. package/dist/components/Button/Button.d.ts.map +1 -0
  38. package/dist/components/Button/Button.js +104 -0
  39. package/dist/components/Button/Button.js.map +1 -0
  40. package/dist/components/Button/Button.module.css.cjs +24 -0
  41. package/dist/components/Button/Button.module.css.cjs.map +1 -0
  42. package/dist/components/Button/Button.module.css.js +24 -0
  43. package/dist/components/Button/Button.module.css.js.map +1 -0
  44. package/dist/components/Button/Button.types.d.ts +84 -0
  45. package/dist/components/Button/Button.types.d.ts.map +1 -0
  46. package/dist/components/Button/index.d.ts +3 -0
  47. package/dist/components/Button/index.d.ts.map +1 -0
  48. package/dist/components/ColorScheme/ColorScheme.cjs +9 -0
  49. package/dist/components/ColorScheme/ColorScheme.cjs.map +1 -0
  50. package/dist/components/ColorScheme/ColorScheme.d.ts +3 -0
  51. package/dist/components/ColorScheme/ColorScheme.d.ts.map +1 -0
  52. package/dist/components/ColorScheme/ColorScheme.js +9 -0
  53. package/dist/components/ColorScheme/ColorScheme.js.map +1 -0
  54. package/dist/components/ColorScheme/ColorScheme.types.d.ts +10 -0
  55. package/dist/components/ColorScheme/ColorScheme.types.d.ts.map +1 -0
  56. package/dist/components/ColorScheme/index.d.ts +3 -0
  57. package/dist/components/ColorScheme/index.d.ts.map +1 -0
  58. package/dist/components/Label/Label.cjs +2 -4
  59. package/dist/components/Label/Label.cjs.map +1 -1
  60. package/dist/components/Label/Label.css +15 -17
  61. package/dist/components/Label/Label.d.ts +1 -1
  62. package/dist/components/Label/Label.d.ts.map +1 -1
  63. package/dist/components/Label/Label.js +2 -4
  64. package/dist/components/Label/Label.js.map +1 -1
  65. package/dist/components/Label/Label.module.css.cjs +7 -7
  66. package/dist/components/Label/Label.module.css.js +7 -7
  67. package/dist/components/Label/Label.types.d.ts +1 -5
  68. package/dist/components/Label/Label.types.d.ts.map +1 -1
  69. package/dist/components/Notification/Notification.cjs +5 -6
  70. package/dist/components/Notification/Notification.cjs.map +1 -1
  71. package/dist/components/Notification/Notification.css +19 -20
  72. package/dist/components/Notification/Notification.d.ts +1 -1
  73. package/dist/components/Notification/Notification.d.ts.map +1 -1
  74. package/dist/components/Notification/Notification.js +5 -6
  75. package/dist/components/Notification/Notification.js.map +1 -1
  76. package/dist/components/Notification/Notification.module.css.cjs +9 -9
  77. package/dist/components/Notification/Notification.module.css.js +9 -9
  78. package/dist/components/Notification/Notification.types.d.ts +1 -1
  79. package/dist/components/Notification/Notification.types.d.ts.map +1 -1
  80. package/dist/components/Pictograph/Pictograph.cjs +33 -0
  81. package/dist/components/Pictograph/Pictograph.cjs.map +1 -0
  82. package/dist/components/Pictograph/Pictograph.css +190 -0
  83. package/dist/components/Pictograph/Pictograph.d.ts +3 -0
  84. package/dist/components/Pictograph/Pictograph.d.ts.map +1 -0
  85. package/dist/components/Pictograph/Pictograph.js +33 -0
  86. package/dist/components/Pictograph/Pictograph.js.map +1 -0
  87. package/dist/components/Pictograph/Pictograph.module.css.cjs +22 -0
  88. package/dist/components/Pictograph/Pictograph.module.css.cjs.map +1 -0
  89. package/dist/components/Pictograph/Pictograph.module.css.js +22 -0
  90. package/dist/components/Pictograph/Pictograph.module.css.js.map +1 -0
  91. package/dist/components/Pictograph/Pictograph.types.d.ts +46 -0
  92. package/dist/components/Pictograph/Pictograph.types.d.ts.map +1 -0
  93. package/dist/components/Pictograph/PictographItem.cjs +19 -0
  94. package/dist/components/Pictograph/PictographItem.cjs.map +1 -0
  95. package/dist/components/Pictograph/PictographItem.css +63 -0
  96. package/dist/components/Pictograph/PictographItem.d.ts +3 -0
  97. package/dist/components/Pictograph/PictographItem.d.ts.map +1 -0
  98. package/dist/components/Pictograph/PictographItem.js +19 -0
  99. package/dist/components/Pictograph/PictographItem.js.map +1 -0
  100. package/dist/components/Pictograph/PictographItem.module.css.cjs +9 -0
  101. package/dist/components/Pictograph/PictographItem.module.css.cjs.map +1 -0
  102. package/dist/components/Pictograph/PictographItem.module.css.js +10 -0
  103. package/dist/components/Pictograph/PictographItem.module.css.js.map +1 -0
  104. package/dist/components/Pictograph/index.d.ts +4 -0
  105. package/dist/components/Pictograph/index.d.ts.map +1 -0
  106. package/dist/components/Spinner/Spinner.cjs +62 -0
  107. package/dist/components/Spinner/Spinner.cjs.map +1 -0
  108. package/dist/components/Spinner/Spinner.css +116 -0
  109. package/dist/components/Spinner/Spinner.d.ts +3 -0
  110. package/dist/components/Spinner/Spinner.d.ts.map +1 -0
  111. package/dist/components/Spinner/Spinner.js +62 -0
  112. package/dist/components/Spinner/Spinner.js.map +1 -0
  113. package/dist/components/Spinner/Spinner.module.css.cjs +26 -0
  114. package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -0
  115. package/dist/components/Spinner/Spinner.module.css.js +26 -0
  116. package/dist/components/Spinner/Spinner.module.css.js.map +1 -0
  117. package/dist/components/Spinner/Spinner.types.d.ts +41 -0
  118. package/dist/components/Spinner/Spinner.types.d.ts.map +1 -0
  119. package/dist/components/Spinner/index.d.ts +3 -0
  120. package/dist/components/Spinner/index.d.ts.map +1 -0
  121. package/dist/index.cjs +10 -0
  122. package/dist/index.cjs.map +1 -1
  123. package/dist/index.d.ts +8 -0
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +10 -0
  126. package/dist/index.js.map +1 -1
  127. package/dist/styles/utils/elevation.css +8 -8
  128. package/dist/styles/utils/elevation.module.css.cjs +1 -1
  129. package/dist/styles/utils/elevation.module.css.js +1 -1
  130. package/dist/styles/utils/focus.css +34 -13
  131. package/dist/styles/utils/focus.module.css.cjs +3 -3
  132. package/dist/styles/utils/focus.module.css.js +3 -3
  133. package/dist/styles/utils/text-decoration.css +1 -1
  134. package/dist/styles.css +349 -174
  135. package/package.json +3 -3
package/dist/styles.css CHANGED
@@ -1,122 +1,95 @@
1
- @layer dna-design-system {
1
+ @layer dds-base {
2
2
 
3
3
  /**
4
4
  * Do not edit directly, this file was auto-generated.
5
5
  */
6
6
 
7
7
  :root {
8
- --colors-primitive-neutral-100: #ffffff;
9
- --colors-primitive-neutral-200: #f7f7f7;
10
- --colors-primitive-neutral-300: #efeeed;
11
- --colors-primitive-neutral-400: #e7e5e3;
12
- --colors-primitive-neutral-500: #d4d2ce;
13
- --colors-primitive-neutral-600: #948b89;
14
- --colors-primitive-neutral-700: #505050;
15
- --colors-primitive-neutral-800: #121212;
16
- --colors-primitive-neutral-900: #000000;
17
- --colors-primitive-pink-200: #ffbfe0;
18
- --colors-primitive-pink-300: #ff82c1;
19
- --colors-primitive-pink-400: #f7007f;
20
- --colors-primitive-pink-500: #da0070;
21
- --colors-primitive-pink-600: #ae005a;
22
- --colors-primitive-plum-200: #792a59;
23
- --colors-primitive-plum-300: #732654;
24
- --colors-primitive-plum-400: #69214c;
25
- --colors-primitive-plum-500: #551c3e;
26
- --colors-primitive-plum-600: #441632;
27
- --colors-primitive-sand-200: #fdfbfa;
28
- --colors-primitive-sand-300: #f8f4f1;
29
- --colors-primitive-sand-400: #efeae4;
30
- --colors-primitive-sand-500: #ede8e1;
31
- --colors-primitive-sand-600: #cabca7;
32
- --colors-primitive-lemon-300: #fffaba;
33
- --colors-primitive-lemon-400: #fff9a3;
34
- --colors-primitive-lemon-500: #fff347;
35
- --colors-primitive-orange-300: #ffdbad;
36
- --colors-primitive-orange-400: #ffca85;
37
- --colors-primitive-orange-500: #ffa633;
38
- --colors-primitive-orange-600: #eb6600;
39
- --colors-primitive-sky-300: #96e4f8;
40
- --colors-primitive-sky-400: #77dcf5;
41
- --colors-primitive-sky-500: #2ecaf0;
42
- --colors-primitive-blue-400: #d8e9ff;
43
- --colors-primitive-blue-500: #0064e2;
44
- --colors-primitive-red-500: #dd0a0a;
45
- --colors-primitive-green-500: #008500;
46
- --colors-primitive-teal-500: #0b7c99;
47
- --colors-semantic-foreground-default: #121212;
48
- --colors-semantic-foreground-muted: #505050;
49
- --colors-semantic-foreground-inverse: #ffffff;
50
- --colors-semantic-foreground-primary-strong: #da0070;
51
- --colors-semantic-foreground-primary-mid: #ff82c1;
52
- --colors-semantic-foreground-primary-soft: #ffbfe0;
53
- --colors-semantic-foreground-secondary-strong: #551c3e;
54
- --colors-semantic-foreground-secondary-mid: #69214c;
55
- --colors-semantic-foreground-secondary-soft: #792a59;
56
- --colors-semantic-foreground-status-error: #dd0a0a;
57
- --colors-semantic-foreground-status-warning: #eb6600;
58
- --colors-semantic-foreground-status-success: #008500;
59
- --colors-semantic-foreground-status-info: #0b7c99;
60
- --colors-semantic-foreground-link: #da0070;
61
- --colors-semantic-foreground-link-inverse: #ffffff;
62
- --colors-semantic-foreground-link-hover: #ae005a;
63
- --colors-semantic-foreground-link-inverse-hover: rgba(255, 255, 255, 0.8);
64
- --colors-semantic-surface-base: #ffffff;
65
- --colors-semantic-surface-neutral-soft: #fdfbfa;
66
- --colors-semantic-surface-neutral-mid: #f8f4f1;
67
- --colors-semantic-surface-neutral-strong: #ede8e1;
68
- --colors-semantic-surface-primary-strong: #da0070;
69
- --colors-semantic-surface-primary-mid: #ff82c1;
70
- --colors-semantic-surface-primary-soft: #ffbfe0;
71
- --colors-semantic-surface-secondary-strong: #551c3e;
72
- --colors-semantic-surface-secondary-mid: #69214c;
73
- --colors-semantic-surface-secondary-soft: #792a59;
74
- --colors-semantic-border-neutral-mid: #d4d2ce;
75
- --colors-semantic-border-neutral-soft: #e7e5e3;
76
- --colors-semantic-border-neutral-base: #efeeed;
77
- --colors-semantic-border-neutral-strong: #948b89;
78
- --colors-semantic-border-secondary: #551c3e;
79
- --colors-semantic-border-primary: #da0070;
80
- --colors-semantic-border-focus: #0064e2;
81
- --colors-semantic-border-inverse: #ffffff;
82
- --colors-semantic-border-error: #dd0a0a;
83
- --colors-semantic-border-warning: #eb6600;
84
- --colors-semantic-border-success: #008500;
85
- --colors-semantic-border-info: #0b7c99;
86
- --colors-semantic-utility-focus-soft: #d8e9ff;
87
- --colors-semantic-utility-focus-strong: #0064e2;
88
- --colors-semantic-utility-overlay-strong: rgba(85, 28, 62, 0.4);
89
- --colors-semantic-utility-overlay-soft: rgba(85, 28, 62, 0.1);
90
- --colors-semantic-status-info: #0b7c99;
91
- --colors-semantic-status-success: #008500;
92
- --colors-semantic-status-warning: #eb6600;
93
- --colors-semantic-status-error: #dd0a0a;
94
- --colors-semantic-accent-lemon-300: #fffaba;
95
- --colors-semantic-accent-lemon-400: #fff9a3;
96
- --colors-semantic-accent-lemon-500: #fff347;
97
- --colors-semantic-accent-orange-300: #ffdbad;
98
- --colors-semantic-accent-orange-400: #ffca85;
99
- --colors-semantic-accent-orange-500: #ffa633;
100
- --colors-semantic-accent-sky-300: #96e4f8;
101
- --colors-semantic-accent-sky-400: #77dcf5;
102
- --colors-semantic-accent-sky-500: #2ecaf0;
103
- --colors-semantic-interactive-primary-default: #da0070;
104
- --colors-semantic-interactive-primary-hover: #ae005a;
105
- --colors-semantic-interactive-primary-active: #f7007f;
106
- --colors-semantic-interactive-primary-disabled: rgba(218, 0, 112, 0.3);
107
- --colors-semantic-interactive-primary-focus: #ae005a;
108
- --colors-semantic-interactive-secondary-default: #551c3e;
109
- --colors-semantic-interactive-secondary-hover: #441632;
110
- --colors-semantic-interactive-secondary-focus: #441632;
111
- --colors-semantic-interactive-secondary-active: #732654;
112
- --colors-semantic-interactive-secondary-disabled: rgba(85, 28, 62, 0.3);
113
- --colors-semantic-interactive-neutral-default: #ede8e1;
114
- --colors-semantic-interactive-neutral-hover: #cabca7;
115
- --colors-semantic-interactive-neutral-focus: #cabca7;
116
- --colors-semantic-interactive-neutral-active: #efeae4;
117
- --colors-semantic-interactive-neutral-disabled: rgba(237, 232, 225, 0.3);
118
- --colors-semantic-interactive-focus-ring: #0064e2;
119
- --colors-semantic-interactive-focus-ring-weak: #d8e9ff;
8
+ --color-semantic-foreground-default: #121212;
9
+ --color-semantic-foreground-muted: #505050;
10
+ --color-semantic-foreground-inverse: #ffffff;
11
+ --color-semantic-foreground-primary-strong: #da0070;
12
+ --color-semantic-foreground-primary-mid: #ff82c1;
13
+ --color-semantic-foreground-primary-soft: #ffbfe0;
14
+ --color-semantic-foreground-secondary-strong: #551c3e;
15
+ --color-semantic-foreground-secondary-mid: #69214c;
16
+ --color-semantic-foreground-secondary-soft: #792a59;
17
+ --color-semantic-foreground-status-error: #dd0a0a;
18
+ --color-semantic-foreground-status-warning: #eb6600;
19
+ --color-semantic-foreground-status-success: #008500;
20
+ --color-semantic-foreground-status-info: #0b7c99;
21
+ --color-semantic-foreground-link: #da0070;
22
+ --color-semantic-foreground-link-inverse: #ffffff;
23
+ --color-semantic-foreground-link-hover: #ae005a;
24
+ --color-semantic-foreground-link-inverse-hover: rgba(255, 255, 255, 0.8);
25
+ --color-semantic-foreground-inverse-muted: rgba(255, 255, 255, 0.7);
26
+ --color-semantic-surface-base: #ffffff;
27
+ --color-semantic-surface-neutral-soft: #fdfbfa;
28
+ --color-semantic-surface-neutral-mid: #f8f4f1;
29
+ --color-semantic-surface-neutral-strong: #ede8e1;
30
+ --color-semantic-surface-primary-strong: #da0070;
31
+ --color-semantic-surface-primary-mid: #ff82c1;
32
+ --color-semantic-surface-primary-soft: #ffbfe0;
33
+ --color-semantic-surface-secondary-strong: #551c3e;
34
+ --color-semantic-surface-secondary-mid: #69214c;
35
+ --color-semantic-surface-secondary-soft: #792a59;
36
+ --color-semantic-surface-base-inverse: #121212;
37
+ --color-semantic-border-neutral-mid: #d4d2ce;
38
+ --color-semantic-border-neutral-soft: #e7e5e3;
39
+ --color-semantic-border-neutral-base: #efeeed;
40
+ --color-semantic-border-neutral-strong: #948b89;
41
+ --color-semantic-border-secondary: #551c3e;
42
+ --color-semantic-border-primary: #da0070;
43
+ --color-semantic-border-focus: #0064e2;
44
+ --color-semantic-border-inverse: #ffffff;
45
+ --color-semantic-border-error: #dd0a0a;
46
+ --color-semantic-border-warning: #eb6600;
47
+ --color-semantic-border-success: #008500;
48
+ --color-semantic-border-info: #0b7c99;
49
+ --color-semantic-utility-focus-soft: #d8e9ff;
50
+ --color-semantic-utility-focus-strong: #0064e2;
51
+ --color-semantic-utility-overlay-strong: rgba(85, 28, 62, 0.4);
52
+ --color-semantic-utility-overlay-soft: rgba(85, 28, 62, 0.1);
53
+ --color-semantic-status-info: #0b7c99;
54
+ --color-semantic-status-success: #008500;
55
+ --color-semantic-status-warning: #eb6600;
56
+ --color-semantic-status-error: #dd0a0a;
57
+ --color-semantic-accent-lemon-strong: #fff347;
58
+ --color-semantic-accent-lemon-mid: #fff9a3;
59
+ --color-semantic-accent-lemon-soft: #fffaba;
60
+ --color-semantic-accent-orange-strong: #ffa633;
61
+ --color-semantic-accent-orange-mid: #ffca85;
62
+ --color-semantic-accent-orange-soft: #ffdbad;
63
+ --color-semantic-accent-sky-strong: #2ecaf0;
64
+ --color-semantic-accent-sky-mid: #77dcf5;
65
+ --color-semantic-accent-sky-soft: #96e4f8;
66
+ --color-semantic-interactive-primary-default: #da0070;
67
+ --color-semantic-interactive-primary-hover: #ae005a;
68
+ --color-semantic-interactive-primary-active: #f7007f;
69
+ --color-semantic-interactive-primary-disabled: rgba(218, 0, 112, 0.3);
70
+ --color-semantic-interactive-primary-focus: #ae005a;
71
+ --color-semantic-interactive-secondary-default: #551c3e;
72
+ --color-semantic-interactive-secondary-hover: #441632;
73
+ --color-semantic-interactive-secondary-focus: #441632;
74
+ --color-semantic-interactive-secondary-active: #732654;
75
+ --color-semantic-interactive-secondary-disabled: rgba(85, 28, 62, 0.3);
76
+ --color-semantic-interactive-neutral-default: #ede8e1;
77
+ --color-semantic-interactive-neutral-hover: #cabca7;
78
+ --color-semantic-interactive-neutral-focus: #cabca7;
79
+ --color-semantic-interactive-neutral-active: #efeae4;
80
+ --color-semantic-interactive-neutral-disabled: rgba(237, 232, 225, 0.3);
81
+ --color-semantic-interactive-focus-ring: #0064e2;
82
+ --color-semantic-interactive-focus-ring-weak: #d8e9ff;
83
+ --color-semantic-interactive-inverse-default: #ffffff;
84
+ --color-semantic-interactive-inverse-hover: #ffffff;
85
+ --color-semantic-interactive-inverse-focus: #ffffff;
86
+ --color-semantic-interactive-inverse-active: rgba(255, 255, 255, 0.9);
87
+ --color-semantic-interactive-inverse-disabled: rgba(255, 255, 255, 0.3);
88
+ --color-semantic-interactive-auxiliary-default: #ffdbad;
89
+ --color-semantic-interactive-auxiliary-hover: #ffb557;
90
+ --color-semantic-interactive-auxiliary-focus: #ffb557;
91
+ --color-semantic-interactive-auxiliary-active: #ffdbad;
92
+ --color-semantic-interactive-auxiliary-disabled: rgba(255, 219, 173, 0.3);
120
93
  --spacing-ui-md: 16px;
121
94
  --spacing-ui-lg: 20px;
122
95
  --spacing-ui-sm: 12px;
@@ -125,31 +98,7 @@
125
98
  --spacing-ui-xxs: 4px;
126
99
  --spacing-ui-xxl: 32px;
127
100
  --spacing-ui-none: 0px;
128
- --spacing-primitive-size0: 0px;
129
- --spacing-primitive-size8: 8px;
130
- --spacing-primitive-size16: 16px;
131
- --spacing-primitive-size24: 24px;
132
- --spacing-primitive-size32: 32px;
133
- --spacing-primitive-size40: 40px;
134
- --spacing-primitive-size12: 12px;
135
- --spacing-primitive-size20: 20px;
136
- --spacing-primitive-size4: 4px;
137
- --spacing-primitive-size2: 2px;
138
- --spacing-primitive-size48: 48px;
139
- --spacing-primitive-size56: 56px;
140
- --spacing-primitive-size64: 64px;
141
- --spacing-primitive-size72: 72px;
142
- --spacing-primitive-size80: 80px;
143
- --spacing-primitive-size88: 88px;
144
- --spacing-primitive-size96: 96px;
145
- --spacing-primitive-size104: 104px;
146
- --spacing-primitive-size112: 112px;
147
- --spacing-primitive-size120: 120px;
148
- --spacing-primitive-size128: 128px;
149
- --spacing-primitive-size136: 136px;
150
- --spacing-primitive-size144: 144px;
151
- --spacing-primitive-size152: 152px;
152
- --spacing-primitive-size160: 160px;
101
+ --spacing-ui-xxxl: 40px;
153
102
  --spacing-layout-none: 0px;
154
103
  --spacing-layout-xxs: 16px;
155
104
  --spacing-layout-xs: 32px;
@@ -163,11 +112,6 @@
163
112
  --radius-semantic-md: 8px;
164
113
  --radius-semantic-lg: 12px;
165
114
  --radius-semantic-full: 1000px;
166
- --radius-primitive-size0: 0px;
167
- --radius-primitive-size4: 4px;
168
- --radius-primitive-size8: 8px;
169
- --radius-primitive-size12: 12px;
170
- --radius-primitive-size1000: 1000px;
171
115
  --borderwidth-semantic-none: 0px;
172
116
  --borderwidth-semantic-xs: 1px;
173
117
  --borderwidth-semantic-md: 3px;
@@ -175,17 +119,35 @@
175
119
  --borderwidth-semantic-xl: 5px;
176
120
  --borderwidth-semantic-xxl: 6px;
177
121
  --borderwidth-semantic-sm: 2px;
178
- --borderwidth-primitive-size0: 0px;
179
- --borderwidth-primitive-size1: 1px;
180
- --borderwidth-primitive-size2: 2px;
181
- --borderwidth-primitive-size3: 3px;
182
- --borderwidth-primitive-size4: 4px;
183
- --borderwidth-primitive-size5: 5px;
184
- --borderwidth-primitive-size6: 6px;
122
+ --typography-font-size-heading-xxl: 48px;
123
+ --typography-font-size-heading-xl: 40px;
124
+ --typography-font-size-heading-lg: 34px;
125
+ --typography-font-size-heading-md: 28px;
126
+ --typography-font-size-heading-sm: 24px;
127
+ --typography-font-size-heading-xs: 20px;
128
+ --typography-font-size-heading-xxs: 18px;
129
+ --typography-font-size-text-lg: 20px;
130
+ --typography-font-size-text-md: 16px;
131
+ --typography-font-size-text-sm: 14px;
132
+ --typography-font-size-text-xs: 12px;
133
+ --typography-font-weight-regular: 400;
134
+ --typography-font-weight-medium: 500;
135
+ --typography-font-weight-bold: 700;
136
+ --typography-font-weight-black: 900;
137
+ --typography-font-weight-demi-bold: 600;
138
+ --typography-line-height-xs: 1;
139
+ --typography-line-height-sm: 1.1;
140
+ --typography-line-height-md: 1.25;
141
+ --typography-line-height-lg: 1.5;
142
+ --typography-letter-spacing-tight: -0.02em;
143
+ --typography-letter-spacing-normal: 0em;
144
+ --typography-letter-spacing-wide: 0.02em;
145
+ --typography-font-family-heading: DNA Heading;
146
+ --typography-font-family-text: DNA Text;
185
147
  }
186
148
  }
187
149
 
188
- @layer dna-design-system {
150
+ @layer dds-base {
189
151
 
190
152
  *,
191
153
  *::before,
@@ -217,34 +179,107 @@ video {
217
179
  }
218
180
  }
219
181
 
220
- @layer dna-design-system {
182
+ @layer dds-base {
183
+
184
+ /* ==========================================================================
185
+ Typography shorthand variables
186
+
187
+ Each variable holds a complete CSS font shorthand value:
188
+ weight size/line-height family
189
+
190
+ Usage: font: var(--typography-heading-xxl);
191
+
192
+ Figma doesn't support composing typography tokens from multiple
193
+ design token categories, so we need to define these shorthands in CSS.
194
+ This also allows us to use the clamp() function for fluid typography,
195
+ which isn't possible to do in Figma tokens.
196
+ ========================================================================== */
221
197
 
222
198
  :root {
223
- /* Example variables for fonts, these will be replaced with actual design tokens */
224
- --font-family-text: 'DNA Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
225
- --font-family-heading: 'DNA Heading', 'Helvetica Neue', Helvetica, Arial, sans-serif;
226
-
227
- --font-size-xxs: 0.625rem; /* 10px */
228
- --font-size-xs: 0.75rem; /* 12px */
229
- --font-size-sm: 0.875rem; /* 14px */
230
- --font-size-default: 1rem;
231
- --font-size-lg: 1.125rem; /* 18px */
232
- --font-size-xl: 1.25rem; /* 20px */
233
-
234
- --font-weight-regular: 400;
235
- --font-weight-medium: 500;
236
- --font-weight-semi-bold: 600;
237
- --font-weight-bold: 700;
238
- --font-weight-black: 900;
239
-
240
- --line-height-default: 1.25;
241
- --line-height-text: 1.5;
199
+ /* Font-family with fallbacks — Figma tokens only contain the primary font name,
200
+ so we override here to add the full fallback stack for CSS. */
201
+ --typography-font-family-heading: 'DNA Heading', 'Helvetica Neue', Helvetica, Arial, sans-serif;
202
+ --typography-font-family-text: 'DNA Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
203
+
204
+ /* Headings */
205
+ --typography-heading-xxl: var(--typography-font-weight-black)
206
+ clamp(2.25rem, 2rem + 1.25cqw, 3rem)/var(--typography-line-height-sm)
207
+ var(--typography-font-family-heading);
208
+ --typography-heading-xl: var(--typography-font-weight-black)
209
+ clamp(2rem, 1.833rem + 0.833cqw, 2.5rem)/var(--typography-line-height-sm)
210
+ var(--typography-font-family-heading);
211
+ --typography-heading-lg: var(--typography-font-weight-black)
212
+ clamp(1.625rem, 1.458rem + 0.833cqw, 2.125rem)/var(--typography-line-height-sm)
213
+ var(--typography-font-family-heading);
214
+ --typography-heading-md: var(--typography-font-weight-bold)
215
+ clamp(1.375rem, 1.25rem + 0.625cqw, 1.75rem)/var(--typography-line-height-md)
216
+ var(--typography-font-family-heading);
217
+ --typography-heading-sm: var(--typography-font-weight-bold)
218
+ clamp(1.25rem, 1.167rem + 0.417cqw, 1.5rem)/var(--typography-line-height-md)
219
+ var(--typography-font-family-text);
220
+ --typography-heading-xs: var(--typography-font-weight-bold)
221
+ clamp(1.125rem, 1.083rem + 0.208cqw, 1.25rem)/var(--typography-line-height-md)
222
+ var(--typography-font-family-text);
223
+ --typography-heading-xxs: var(--typography-font-weight-bold)
224
+ clamp(1.0625rem, 1.042rem + 0.104cqw, 1.125rem)/var(--typography-line-height-md)
225
+ var(--typography-font-family-text);
226
+
227
+ /* Body */
228
+ --typography-body-lg: var(--typography-font-weight-regular)
229
+ clamp(1.125rem, 1.083rem + 0.208cqw, 1.25rem)/var(--typography-line-height-lg)
230
+ var(--typography-font-family-text);
231
+ --typography-body-lg-medium: var(--typography-font-weight-medium)
232
+ clamp(1.125rem, 1.083rem + 0.208cqw, 1.25rem)/var(--typography-line-height-lg)
233
+ var(--typography-font-family-text);
234
+ --typography-body-md: var(--typography-font-weight-regular)
235
+ var(--typography-font-size-text-md)/var(--typography-line-height-lg)
236
+ var(--typography-font-family-text);
237
+ --typography-body-md-medium: var(--typography-font-weight-medium)
238
+ var(--typography-font-size-text-md)/var(--typography-line-height-lg)
239
+ var(--typography-font-family-text);
240
+ --typography-body-md-bold: var(--typography-font-weight-bold)
241
+ var(--typography-font-size-text-md)/var(--typography-line-height-lg)
242
+ var(--typography-font-family-text);
243
+ --typography-body-sm: var(--typography-font-weight-regular)
244
+ var(--typography-font-size-text-sm)/var(--typography-line-height-lg)
245
+ var(--typography-font-family-text);
246
+ --typography-body-sm-medium: var(--typography-font-weight-medium)
247
+ var(--typography-font-size-text-sm)/var(--typography-line-height-lg)
248
+ var(--typography-font-family-text);
249
+ --typography-body-xs: var(--typography-font-weight-medium)
250
+ var(--typography-font-size-text-xs)/var(--typography-line-height-lg)
251
+ var(--typography-font-family-text);
252
+
253
+ /* Labels */
254
+ --typography-label-lg: var(--typography-font-weight-medium)
255
+ var(--typography-font-size-text-md)/var(--typography-line-height-xs)
256
+ var(--typography-font-family-text);
257
+ --typography-label-lg-bold: var(--typography-font-weight-bold)
258
+ var(--typography-font-size-text-md)/var(--typography-line-height-xs)
259
+ var(--typography-font-family-text);
260
+ --typography-label-md: var(--typography-font-weight-medium)
261
+ var(--typography-font-size-text-sm)/var(--typography-line-height-xs)
262
+ var(--typography-font-family-text);
263
+ --typography-label-md-bold: var(--typography-font-weight-bold)
264
+ var(--typography-font-size-text-sm)/var(--typography-line-height-xs)
265
+ var(--typography-font-family-text);
266
+ --typography-label-sm: var(--typography-font-weight-medium)
267
+ var(--typography-font-size-text-xs)/var(--typography-line-height-xs)
268
+ var(--typography-font-family-text);
242
269
  }
243
270
 
271
+ /* ==========================================================================
272
+ Base typography styles
273
+
274
+ These styles apply to native HTML elements and provide a baseline for
275
+ typography across the design system. They ensure that basic typographic
276
+ properties are set consistently, and they can be overridden by utility
277
+ classes for specific use cases.
278
+
279
+ ========================================================================== */
280
+
244
281
  html {
245
- font-family: var(--font-family-text);
246
- font-size: var(--font-size-default);
247
- line-height: var(--line-height-default);
282
+ font: var(--typography-body-md);
248
283
  }
249
284
 
250
285
  h1,
@@ -254,5 +289,145 @@ h4,
254
289
  h5,
255
290
  h6 {
256
291
  text-wrap: balance;
292
+ margin: 1em 0;
293
+ }
294
+ p {
295
+ margin: 1em 0;
296
+ }
297
+
298
+ h1 {
299
+ font: var(--typography-heading-xxl);
300
+ }
301
+ h2 {
302
+ font: var(--typography-heading-lg);
303
+ }
304
+ h3 {
305
+ font: var(--typography-heading-md);
306
+ }
307
+ h4 {
308
+ font: var(--typography-heading-sm);
309
+ }
310
+ h5 {
311
+ font: var(--typography-heading-xs);
312
+ }
313
+ h6 {
314
+ font: var(--typography-heading-xxs);
315
+ }
316
+
317
+ b,
318
+ strong {
319
+ font-weight: var(--typography-font-weight-bold);
320
+ }
321
+
322
+ /*
323
+ * Design decision (ADR-003): discard italic rendering for em/i.
324
+ * Keep semantic tags in markup, but render without slanted glyphs.
325
+ */
326
+ i,
327
+ em {
328
+ font-style: normal;
329
+ }
330
+ small {
331
+ font-size: var(--typography-font-size-text-sm);
332
+ }
333
+
334
+ /*
335
+ * Design decision (ADR-003): base links are color-driven, not underlined.
336
+ * Long-form content uses .dds-prose which adds underline + external link icon.
337
+ *
338
+ * :where() gives these base styles zero specificity so component classes
339
+ * (e.g. Button rendered as <a>) always win without needing !important.
340
+ */
341
+ :where(a) {
342
+ color: var(--color-semantic-foreground-link);
343
+ text-decoration: none;
344
+ cursor: pointer;
345
+ transition: color 0.2s ease-in-out;
346
+ }
347
+ :where(a:hover) {
348
+ color: var(--color-semantic-foreground-link-hover);
349
+ text-decoration: none;
350
+ }
351
+
352
+ ul {
353
+ list-style-type: disc;
354
+ li::marker {
355
+ color: var(--color-semantic-foreground-primary-strong);
356
+ }
357
+ }
358
+ ul,
359
+ ol {
360
+ margin: 1em 0;
361
+ padding: 0;
362
+
363
+ li {
364
+ margin: 0.5em 0 0.5em 1.5em;
365
+ }
366
+ }
367
+ :is(ul, ol) :is(ul, ol) {
368
+ margin: 0;
369
+ }
370
+
371
+ /* ==========================================================================
372
+ Prose — long-form content scope
373
+
374
+ Apply .dds-prose to a container to enable rich typographic styles for
375
+ article/editorial content (underlined links, paragraph spacing, etc.).
376
+
377
+ Usage: <article class="dds-prose">...</article>
378
+ ========================================================================== */
379
+
380
+ .dds-prose {
381
+ /* Icon uses mask-image + background-color: currentColor so it inherits
382
+ the link color automatically in all color schemes. */
383
+ --icon-external-link: url('data:image/svg+xml;utf8,<svg aria-hidden="true" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M2.004 12c0 4.402 0 6.203.002 4.002V7.998c-.001-2.201-.002-.4-.002 4.002" clip-rule="evenodd"/><path d="M2.628 2.628a2.14 2.14 0 0 1 1.305-.619c.04-.004 1.58-.006 3.425-.006 3.217.001 3.356.002 3.401.016a.75.75 0 0 1 .51.513c.012.049.017.09.018.172a.64.64 0 0 1-.053.29.74.74 0 0 1-.501.42c-.05.012-.32.014-3.387.018-3.014.004-3.337.006-3.373.017a.76.76 0 0 0-.332.191.76.76 0 0 0-.193.344c-.017.066-.017 15.966 0 16.032a.73.73 0 0 0 .537.537c.066.017 15.972.017 16.038 0a.76.76 0 0 0 .344-.193.76.76 0 0 0 .191-.332c.012-.036.014-.36.017-3.376l.005-3.336.017-.063a.7.7 0 0 1 .192-.329.66.66 0 0 1 .515-.207c.12.001.196.017.286.059a.74.74 0 0 1 .41.527l-.004 6.776a2.14 2.14 0 0 1-1.945 1.913c-.075.006-2.309.008-8.115.006-7.66-.002-8.015-.003-8.095-.017a2.15 2.15 0 0 1-1.832-1.925c-.012-.13-.012-15.982 0-16.112.046-.498.263-.96.62-1.316"/><path d="M21.416 2.008c.205.034.469.155.58.344v5.501a.73.73 0 0 1-.51.551.75.75 0 0 1-.51-.048.72.72 0 0 1-.392-.56 82 82 0 0 1-.008-1.712v-1.64l-4.06 4.057c-2.233 2.231-4.078 4.07-4.1 4.085a.8.8 0 0 1-.218.104.6.6 0 0 1-.194.018.6.6 0 0 1-.194-.018.73.73 0 0 1-.496-.496.6.6 0 0 1-.018-.194.6.6 0 0 1 .018-.194.8.8 0 0 1 .103-.217c.016-.023 1.856-1.867 4.088-4.099l4.058-4.058h-1.64a81 81 0 0 1-1.713-.008.7.7 0 0 1-.499-.292.73.73 0 0 1-.11-.612.72.72 0 0 1 .385-.452c.144-.07-.154-.063 2.777-.066 1.825-.002 2.616 0 2.653.006"/></svg>');
384
+
385
+ a {
386
+ text-decoration: underline;
387
+ text-underline-offset: 0.2em;
388
+ text-decoration-skip-ink: auto;
389
+ text-decoration-thickness: from-font;
390
+
391
+ &[target='_blank'] {
392
+ &::after {
393
+ content: '';
394
+ display: inline-block;
395
+ width: 1em;
396
+ height: 1em;
397
+ margin-left: 0.25em;
398
+ vertical-align: text-top;
399
+ background-color: currentColor;
400
+ mask-image: var(--icon-external-link);
401
+ mask-size: contain;
402
+ mask-repeat: no-repeat;
403
+ }
404
+ }
405
+ }
406
+
407
+ h1,
408
+ h2,
409
+ h3,
410
+ h4,
411
+ h5,
412
+ h6 {
413
+ margin: 1.25em 0 1rem 0;
414
+ }
415
+ p {
416
+ text-wrap: pretty;
417
+ }
418
+ }
419
+
420
+ /* ─── Dark color scheme ─── */
421
+
422
+ @scope ([data-color-scheme='dark']) to ([data-color-scheme='light']) {
423
+ .dds-prose {
424
+ a {
425
+ color: var(--color-semantic-foreground-link-inverse);
426
+
427
+ &:hover {
428
+ color: var(--color-semantic-foreground-link-inverse-hover);
429
+ }
430
+ }
431
+ }
257
432
  }
258
433
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dnanpm/ui-components",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "DNA Design System - React UI Components",
5
5
  "author": "DNA Oy",
6
6
  "license": "ISC",
@@ -56,8 +56,8 @@
56
56
  "clsx": "^2.1.1"
57
57
  },
58
58
  "peerDependencies": {
59
- "react": "^18.0.0 || ^19.0.0",
60
- "react-dom": "^18.0.0 || ^19.0.0"
59
+ "react": "^19.0.0",
60
+ "react-dom": "^19.0.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@dnanpm/design-tokens": "workspace:*",