@datrix-team-product/website-ds 0.1.0 → 0.1.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 (2) hide show
  1. package/dist/components.css +206 -0
  2. package/package.json +1 -1
@@ -0,0 +1,206 @@
1
+ /*
2
+ * packages/ui-html — Datrix component CSS (vanilla, no build step).
3
+ * RULE: only `var(--dx-*)` tokens — no raw hex/px/rem values (enforced by scripts/build/lint-tokens.ts).
4
+ * Provenance: tokens/*.tokens.json (site evidence) — see DESIGN.md + docs/gates/.
5
+ * Gate G3 D4/D5: library reproduces the live site; hover = ACSS --primary-dark (D5), focus ring = 3px (site states.json).
6
+ * Gate G3 D6: hairline color is a minted site-evidence token.
7
+ */
8
+
9
+ /* ---------- layout ---------- */
10
+ .dx-container {
11
+ width: 100%;
12
+ max-width: var(--dx-container-content);
13
+ margin-inline: auto;
14
+ padding-inline: var(--dx-spacing-space-l);
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ .dx-section {
19
+ padding-block: var(--dx-spacing-section-space-m);
20
+ background: var(--dx-color-white);
21
+ color: var(--dx-color-text-default);
22
+ }
23
+ .dx-section--primary {
24
+ background: var(--dx-color-primary-ultra-dark);
25
+ color: var(--dx-color-text-inverse);
26
+ }
27
+ .dx-section--white {
28
+ background: var(--dx-color-white);
29
+ }
30
+
31
+ /* ---------- typography ---------- */
32
+ .dx-h1 {
33
+ font-family: var(--dx-typography-heading-h1-family);
34
+ font-weight: var(--dx-typography-heading-h1-weight);
35
+ font-size: var(--dx-typography-heading-h1-size);
36
+ line-height: var(--dx-typography-heading-h1-line-height);
37
+ color: inherit;
38
+ margin-block: 0 var(--dx-spacing-space-m);
39
+ }
40
+ .dx-h2 {
41
+ font-family: var(--dx-typography-heading-display-family);
42
+ font-weight: var(--dx-typography-heading-display-weight);
43
+ font-size: var(--dx-typography-heading-display-size);
44
+ line-height: var(--dx-typography-heading-display-line-height);
45
+ margin-block: 0 var(--dx-spacing-space-m);
46
+ }
47
+ .dx-h3 {
48
+ font-family: var(--dx-typography-heading-h3-family);
49
+ font-weight: var(--dx-typography-heading-h3-weight);
50
+ font-size: var(--dx-typography-heading-h3-size);
51
+ line-height: var(--dx-typography-heading-h3-line-height);
52
+ margin-block: 0 var(--dx-spacing-space-s);
53
+ }
54
+ .dx-body {
55
+ font-family: var(--dx-typography-body-18-family);
56
+ font-weight: var(--dx-typography-body-18-weight);
57
+ font-size: var(--dx-typography-body-18-size);
58
+ line-height: var(--dx-typography-body-18-line-height);
59
+ }
60
+
61
+ /* ---------- buttons (matrix per Figma: State × Size 38/46/56 × icon; hover per G3 D5) ---------- */
62
+ .dx-btn {
63
+ display: inline-flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ gap: var(--dx-spacing-space-xs);
67
+ font-family: var(--dx-typography-body-16-family);
68
+ font-weight: var(--dx-typography-body-16-weight);
69
+ font-size: var(--dx-typography-body-16-size);
70
+ line-height: 1;
71
+ text-decoration: none;
72
+ border-radius: var(--dx-radius-m);
73
+ border: var(--dx-border-width-1) solid transparent;
74
+ cursor: pointer;
75
+ min-height: var(--dx-space-60);
76
+ padding-inline: var(--dx-spacing-space-m);
77
+ transition: background-color var(--dx-motion-duration-1) var(--dx-motion-easing-1), color var(--dx-motion-duration-1) var(--dx-motion-easing-1);
78
+ }
79
+ .dx-btn--sm { min-height: calc(var(--dx-space-60) - var(--dx-spacing-space-m)); }
80
+ .dx-btn--lg { min-height: calc(var(--dx-space-60) + var(--dx-spacing-space-xs)); }
81
+ .dx-btn--primary { background: var(--dx-color-primary); color: var(--dx-color-text-inverse); }
82
+ .dx-btn--primary:hover { background: var(--dx-color-primary-dark); }
83
+ .dx-btn--secondary { background: transparent; color: var(--dx-color-primary); border-color: var(--dx-color-primary); }
84
+ .dx-btn--secondary:hover { background: var(--dx-color-primary); color: var(--dx-color-text-inverse); }
85
+ .dx-btn--white { background: var(--dx-color-white); color: var(--dx-color-primary); }
86
+ .dx-btn--white:hover { color: var(--dx-color-primary-dark); }
87
+ .dx-btn--ghost { background: transparent; color: inherit; }
88
+ .dx-btn--ghost:hover { background: color-mix(in srgb, currentColor 12%, transparent); }
89
+ .dx-btn:focus-visible {
90
+ outline: var(--dx-focus-ring-width) solid var(--dx-color-primary);
91
+ outline-offset: var(--dx-focus-ring-offset);
92
+ }
93
+ .dx-btn:disabled { opacity: 0.5; cursor: not-allowed; }
94
+
95
+ /* ---------- cards / lists / badge ---------- */
96
+ .dx-card {
97
+ background: var(--dx-color-white);
98
+ border: var(--dx-border-width-1) solid var(--dx-color-hairline);
99
+ border-radius: var(--dx-radius-m);
100
+ padding: var(--dx-spacing-space-l);
101
+ box-sizing: border-box;
102
+ }
103
+ .dx-card__title {
104
+ font-family: var(--dx-typography-body-18-family);
105
+ font-weight: 600;
106
+ font-size: var(--dx-typography-body-18-size);
107
+ line-height: var(--dx-typography-body-18-line-height);
108
+ margin-block: 0 0 var(--dx-spacing-space-s);
109
+ color: var(--dx-color-text-default);
110
+ }
111
+ .dx-card__body {
112
+ font-family: var(--dx-typography-body-16-family);
113
+ font-weight: var(--dx-typography-body-16-weight);
114
+ font-size: var(--dx-typography-body-16-size);
115
+ line-height: var(--dx-typography-body-16-line-height);
116
+ color: var(--dx-color-text-muted);
117
+ margin: 0;
118
+ }
119
+ .dx-list {
120
+ list-style: none;
121
+ margin: 0;
122
+ padding: 0;
123
+ display: grid;
124
+ gap: var(--dx-spacing-space-m);
125
+ }
126
+ .dx-badge {
127
+ display: inline-block;
128
+ font-family: var(--dx-typography-body-14-family);
129
+ font-weight: var(--dx-typography-body-14-weight);
130
+ font-size: var(--dx-typography-body-14-size);
131
+ line-height: var(--dx-typography-body-14-line-height);
132
+ padding: var(--dx-spacing-space-xs) var(--dx-spacing-space-s);
133
+ border-radius: var(--dx-radius-m);
134
+ background: var(--dx-color-secondary-ultra-light);
135
+ color: var(--dx-color-primary-ultra-dark);
136
+ }
137
+ .dx-breadcrumbs {
138
+ display: flex;
139
+ flex-wrap: wrap;
140
+ gap: var(--dx-spacing-space-xs);
141
+ font-family: var(--dx-typography-body-14-family);
142
+ font-size: var(--dx-typography-body-14-size);
143
+ line-height: var(--dx-typography-body-14-line-height);
144
+ color: var(--dx-color-text-muted);
145
+ }
146
+ .dx-breadcrumbs a { color: var(--dx-color-primary); text-decoration: none; }
147
+ .dx-breadcrumbs a:hover { text-decoration: underline; }
148
+
149
+ /* ---------- forms (Figma Primitive_Components; field styling site-evidence) ---------- */
150
+ .dx-field {
151
+ display: flex;
152
+ flex-direction: column;
153
+ gap: var(--dx-spacing-space-xs);
154
+ font-family: var(--dx-typography-body-14-family);
155
+ font-size: var(--dx-typography-body-14-size);
156
+ line-height: var(--dx-typography-body-14-line-height);
157
+ }
158
+ .dx-field__input {
159
+ font-family: inherit;
160
+ font-size: var(--dx-typography-body-16-size);
161
+ line-height: var(--dx-typography-body-16-line-height);
162
+ color: var(--dx-color-text-default);
163
+ background: var(--dx-color-white);
164
+ border: var(--dx-border-width-1) solid var(--dx-color-hairline);
165
+ border-radius: var(--dx-radius-s);
166
+ padding: var(--dx-spacing-space-s) var(--dx-spacing-space-m);
167
+ min-height: var(--dx-space-60);
168
+ box-sizing: border-box;
169
+ }
170
+ .dx-field__input:focus-visible {
171
+ outline: var(--dx-focus-ring-width) solid var(--dx-color-primary);
172
+ outline-offset: 0;
173
+ border-color: var(--dx-color-primary);
174
+ }
175
+
176
+ /* ---------- footer (site-faithful per Gate G3 D4; gradient documented as brand family) ---------- */
177
+ .dx-footer {
178
+ background: var(--dx-color-primary);
179
+ color: var(--dx-color-text-inverse);
180
+ padding-block: var(--dx-spacing-section-space-l);
181
+ }
182
+ .dx-footer a { color: var(--dx-color-text-inverse); text-decoration: none; }
183
+ .dx-footer a:hover { text-decoration: underline; }
184
+ .dx-footer__motto {
185
+ font-family: var(--dx-typography-heading-h1-family);
186
+ font-weight: var(--dx-typography-heading-h1-weight);
187
+ font-size: var(--dx-typography-heading-display-size);
188
+ line-height: var(--dx-typography-heading-display-line-height);
189
+ text-transform: uppercase;
190
+ margin: 0 0 var(--dx-spacing-space-l);
191
+ /* Site-faithful motto gradient (Gate G3 D4 + Hallmark site-audit BRAND DECISION NEEDED):
192
+ documented Figma families Electric Purple + Gradient duo tone blue. */
193
+ background: linear-gradient(127deg, rgba(241, 179, 255, 0.8) 6.92%, rgba(212, 19, 255, 0.5) 34.46%, #7895d3 86.62%);
194
+ -webkit-background-clip: text;
195
+ background-clip: text;
196
+ -webkit-text-fill-color: transparent;
197
+ color: transparent;
198
+ }
199
+
200
+ /* ---------- newsletter band ---------- */
201
+ .dx-newsletter {
202
+ background: var(--dx-color-primary);
203
+ color: var(--dx-color-text-inverse);
204
+ padding-block: var(--dx-spacing-section-space-m);
205
+ }
206
+ .dx-newsletter .dx-field__input { border-color: transparent; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datrix-team-product/website-ds",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Design tokens for the Datrix website design system — evidence-based reconstruction (AGENTS.md). Scoped name confirmed (Gate G3 D10).",
5
5
  "license": "SEE LICENSE IN ../../LICENSE",
6
6
  "type": "module",