@godxjp/ui 33.9.1 → 33.10.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.
- package/DESIGN.md +9 -7
- package/README.md +2 -2
- package/agent/DESIGN.md +9 -7
- package/agent/START-HERE.md +1 -1
- package/agent/index.json +3 -3
- package/agent/llms.txt +4 -4
- package/agent/tokens.json +35 -35
- package/dist/contracts/measurement.json +1 -1
- package/dist/styles/layers.json +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens/components/card.css +3 -3
- package/dist/tokens/components/control.css +4 -4
- package/dist/tokens/components/form.css +1 -1
- package/dist/tokens/components/table.css +1 -1
- package/dist/tokens/foundation.css +11 -11
- package/dist/tokens/semantic/layout.css +3 -3
- package/docs/TOKENS.md +62 -1
- package/package.json +2 -2
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
--card-space-header-y: var(--space-stack-sm);
|
|
10
10
|
|
|
11
|
-
--card-space-body-y: var(--space-
|
|
11
|
+
--card-space-body-y: var(--space-6);
|
|
12
12
|
|
|
13
13
|
--card-space-solo-y: initial;
|
|
14
14
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
--card-space-divided-y: var(--card-space-header-y);
|
|
18
18
|
|
|
19
19
|
--card-space-gap: var(--space-stack-xs);
|
|
20
|
-
--card-title-font-size: var(--font-size-base);
|
|
20
|
+
--card-title-font-size: calc(var(--font-size-base) * var(--font-size-ratio));
|
|
21
21
|
--card-title-line-height: var(--line-height-tight);
|
|
22
22
|
--card-title-font-weight: var(--font-weight-semibold);
|
|
23
23
|
--card-description-font-size: var(--font-size-sm, var(--font-size-base));
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
--card-header-border-bottom: initial;
|
|
33
33
|
--card-radius: initial;
|
|
34
34
|
|
|
35
|
-
--card-shadow:
|
|
35
|
+
--card-shadow: none;
|
|
36
36
|
|
|
37
37
|
--card-glow: 0 0 0 0 transparent;
|
|
38
38
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
4
|
--control-height-compact: var(--band-height-sm);
|
|
5
|
-
--control-height-default: var(--band-height-
|
|
5
|
+
--control-height-default: var(--band-height-lg);
|
|
6
6
|
--control-height-comfortable: var(--band-height-xl);
|
|
7
7
|
--control-padding-x-compact: var(--space-2);
|
|
8
8
|
--control-padding-x-default: var(--space-3);
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
--control-gap-sm: var(--space-inline-xs);
|
|
23
23
|
--control-radius: var(--radius);
|
|
24
24
|
|
|
25
|
-
--button-radius: var(--radius
|
|
25
|
+
--button-radius: var(--radius);
|
|
26
26
|
|
|
27
27
|
--button-default-background: initial;
|
|
28
28
|
--button-destructive-background: initial;
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
--control-font-size: var(--font-size-base);
|
|
39
39
|
--control-border-width: initial;
|
|
40
|
-
--control-shadow:
|
|
40
|
+
--control-shadow: none;
|
|
41
41
|
--control-icon-size: calc(var(--icon-size-md) * var(--scaling));
|
|
42
42
|
--control-icon-size-sm: calc(var(--icon-size-sm) * var(--scaling));
|
|
43
43
|
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
--toggle-focus-ring-width: initial;
|
|
108
108
|
--toggle-focus-ring-alpha: 1;
|
|
109
109
|
|
|
110
|
-
--control-focus-ring-width:
|
|
110
|
+
--control-focus-ring-width: var(--stroke-md);
|
|
111
111
|
|
|
112
112
|
--rating-focus-ring-offset: 2px;
|
|
113
113
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
4
|
--table-row-height-compact: var(--band-height-sm);
|
|
5
|
-
--table-row-height-default: var(--band-height-
|
|
5
|
+
--table-row-height-default: var(--band-height-lg);
|
|
6
6
|
--table-row-height-comfortable: var(--band-height-xl);
|
|
7
7
|
--table-row-height: calc(var(--table-row-height-default) * var(--scaling));
|
|
8
8
|
--table-cell-padding-y: var(--space-2);
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
--border: 30 7% 93%;
|
|
32
32
|
|
|
33
|
-
--input: 30 7%
|
|
33
|
+
--input: 30 7% 51%;
|
|
34
34
|
|
|
35
35
|
--success: 146 40% 58%;
|
|
36
36
|
--success-foreground: 48 8% 13%;
|
|
@@ -109,9 +109,9 @@
|
|
|
109
109
|
--shadow-xs: 0 1px 1px 0 rgb(var(--shadow-color) / 0.04);
|
|
110
110
|
--shadow-sm: 0 1px 2px 0 rgb(var(--shadow-color) / 0.05);
|
|
111
111
|
--shadow-md:
|
|
112
|
-
0
|
|
112
|
+
0 6px 16px -4px rgb(var(--shadow-color) / 0.08), 0 1px 3px 0 rgb(var(--shadow-color) / 0.08);
|
|
113
113
|
--shadow-lg:
|
|
114
|
-
0
|
|
114
|
+
0 12px 28px -6px rgb(var(--shadow-color) / 0.1), 0 2px 6px -2px rgb(var(--shadow-color) / 0.08);
|
|
115
115
|
--shadow-xl:
|
|
116
116
|
0 20px 25px -5px rgb(var(--shadow-color) / 0.1), 0 8px 10px -6px rgb(var(--shadow-color) / 0.1);
|
|
117
117
|
--shadow-2xl: 0 25px 50px -12px rgb(var(--shadow-color) / 0.25);
|
|
@@ -125,12 +125,12 @@
|
|
|
125
125
|
--brand-glow: initial;
|
|
126
126
|
|
|
127
127
|
--focus-outline: 1;
|
|
128
|
-
--focus-outline-weight:
|
|
128
|
+
--focus-outline-weight: var(--stroke-md);
|
|
129
129
|
|
|
130
130
|
--focus-outline-color: initial;
|
|
131
131
|
|
|
132
132
|
--control-outline-width: calc(var(--stroke-md) * var(--focus-outline));
|
|
133
|
-
--focus-outline-offset:
|
|
133
|
+
--focus-outline-offset: 2px;
|
|
134
134
|
|
|
135
135
|
--focus-ring-color: initial;
|
|
136
136
|
|
|
@@ -263,9 +263,9 @@
|
|
|
263
263
|
--phi-p1: calc(var(--phi-unit) * var(--ratio-phi));
|
|
264
264
|
--phi-p2: calc(var(--phi-p1) * var(--ratio-phi));
|
|
265
265
|
|
|
266
|
-
--duration-fast:
|
|
267
|
-
--duration-base:
|
|
268
|
-
--duration-slow:
|
|
266
|
+
--duration-fast: 120ms;
|
|
267
|
+
--duration-base: 180ms;
|
|
268
|
+
--duration-slow: 320ms;
|
|
269
269
|
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
270
270
|
--ease-emphasized: cubic-bezier(0.32, 0.72, 0, 1);
|
|
271
271
|
--ease-decelerate: cubic-bezier(0, 0, 0, 1);
|
|
@@ -319,8 +319,8 @@
|
|
|
319
319
|
--table-row-height: var(--table-row-height-default);
|
|
320
320
|
--table-cell-padding-y: var(--space-2);
|
|
321
321
|
--phi-unit: var(--space-4);
|
|
322
|
-
--space-page-x: var(--space-
|
|
323
|
-
--space-page-y: var(--space-
|
|
322
|
+
--space-page-x: var(--space-8);
|
|
323
|
+
--space-page-y: var(--space-8);
|
|
324
324
|
--space-section: var(--space-4);
|
|
325
325
|
--space-section-band: var(--space-20);
|
|
326
326
|
--space-section-hero: var(--space-24);
|
|
@@ -364,7 +364,7 @@
|
|
|
364
364
|
|
|
365
365
|
--border: 45 6% 19%;
|
|
366
366
|
|
|
367
|
-
--input: 45 6%
|
|
367
|
+
--input: 45 6% 51%;
|
|
368
368
|
|
|
369
369
|
--success: 146 45% 55%;
|
|
370
370
|
--success-foreground: 48 9% 9%;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
4
|
|
|
5
|
-
--space-page-x: var(--space-
|
|
6
|
-
--space-page-y: var(--space-
|
|
5
|
+
--space-page-x: var(--space-8);
|
|
6
|
+
--space-page-y: var(--space-8);
|
|
7
7
|
--space-section: var(--space-4);
|
|
8
8
|
|
|
9
9
|
--space-section-band: var(--space-20);
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
--space-page-compact-y: var(--space-4);
|
|
47
47
|
--space-section-compact: var(--space-4);
|
|
48
48
|
|
|
49
|
-
--overlay-background: rgb(0 0 0 / 0.
|
|
49
|
+
--overlay-background: rgb(0 0 0 / 0.4);
|
|
50
50
|
|
|
51
51
|
--surface-recessed: hsl(var(--muted) / 0.4);
|
|
52
52
|
|
package/docs/TOKENS.md
CHANGED
|
@@ -175,7 +175,7 @@ These two look like synonyms and are not. Keep them apart:
|
|
|
175
175
|
| `--border` | Decorative chrome — table rules, card edges, section dividers, `<Separator>` | **None.** WCAG 2.2 SC 1.4.11 does not reach a divider; this system's dense JP grid depends on it staying quiet |
|
|
176
176
|
| `--input` | The boundary that **is** the control — Input, Textarea, Select, outline Button, TagInput, composite date field, topbar search, and the Switch's unchecked track | **≥ 3:1** (SC 1.4.11 Non-text Contrast) against every surface a control sits on — page, card, popover, muted/secondary panel, striped and hovered rows |
|
|
177
177
|
|
|
178
|
-
A field here has no fill of its own (`background: hsl(var(--background))`) and no shadow to speak of, so that 1px edge is the whole visual claim that you may type there. Current values: `30 7%
|
|
178
|
+
A field here has no fill of its own (`background: hsl(var(--background))`) and no shadow to speak of, so that 1px edge is the whole visual claim that you may type there. Current values: `30 7% 51%` light and `45 6% 51%` dark. Both clear 3:1 on background, card, popover, muted and the full accent surface. The earlier 53% / 47% pair passed translucent table hover backgrounds but failed the full accent surface (2.91:1 / 2.69:1).
|
|
179
179
|
|
|
180
180
|
**Re-theming rule:** a service theme that retints neutrals must move these two **independently** — setting `--input: var(--border)` re-opens the bug. `src/tokens/__tests__/input-boundary-contrast.test.ts` recomputes the ratios from `foundation.css` and fails below 3:1, and fails outright if the two roles are given the same value again.
|
|
181
181
|
|
|
@@ -482,3 +482,64 @@ It is reserved for `@container` / `@media` re-points. Everything static stays in
|
|
|
482
482
|
## MCP
|
|
483
483
|
|
|
484
484
|
`godxjp_ui_guide` topic=`golden-ratio` · `tokens`
|
|
485
|
+
|
|
486
|
+
## Second pass: hierarchy and rhythm
|
|
487
|
+
|
|
488
|
+
Fifteen existing token defaults build on the eight first-pass changes. Body stays 14px/1.7, labels and headings stay 500, with no Latin-style negative tracking on Japanese. Mobile gutters remain 16px. Zebra stays off; table numeric alignment and sidebar active styling are unchanged. Card header-to-body spacing grows to 24px; horizontal card/table insets and section gaps stay 16px so fixed-width date columns remain on one line. No new token or component API.
|
|
489
|
+
|
|
490
|
+
| Token | Previous | New |
|
|
491
|
+
|---|---|---|
|
|
492
|
+
| `--space-page-x` | `var(--space-6)` | `var(--space-8)` |
|
|
493
|
+
| `--space-page-y` | `var(--space-6)` | `var(--space-8)` |
|
|
494
|
+
| `--card-space-body-y` | `var(--space-section-active)` | `var(--space-6)` |
|
|
495
|
+
| `--page-title-font-size` | `var( --heading-h1, calc( var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) * var(--font-size-ratio) ) )` | `var( --heading-h1, calc( var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) * var(--font-size-ratio) ) )` |
|
|
496
|
+
| `--page-title-font-size-compact` | `var( --heading-h2, calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio)) )` | `var( --heading-h2, calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio)) )` |
|
|
497
|
+
| `--overlay-background` | `rgb(0 0 0 / 0.5)` | `rgb(0 0 0 / 0.4)` |
|
|
498
|
+
| `--card-title-font-size` | `var(--font-size-base)` | `calc(var(--font-size-base) * var(--font-size-ratio))` |
|
|
499
|
+
| `--card-shadow` | `initial` | `none` |
|
|
500
|
+
| `--form-field-row-gap` | `var(--space-3)` | `var(--space-3)` |
|
|
501
|
+
| `--form-block-gap` | `var(--space-4)` | `var(--space-6)` |
|
|
502
|
+
| `--control-height-default` | `var(--band-height-md)` | `var(--band-height-lg)` |
|
|
503
|
+
| `--control-focus-ring-width` | `initial` | `var(--stroke-md)` |
|
|
504
|
+
| `--table-row-height-default` | `var(--band-height-md)` | `var(--band-height-lg)` |
|
|
505
|
+
| `--focus-outline-weight` | `initial` | `var(--stroke-md)` |
|
|
506
|
+
| `--focus-outline-offset` | `0px` | `2px` |
|
|
507
|
+
|
|
508
|
+
### Complete restoration (both passes)
|
|
509
|
+
|
|
510
|
+
Load after library and preset styles. The original input colors restore the original sub-3:1 accent-boundary limitation.
|
|
511
|
+
|
|
512
|
+
```css
|
|
513
|
+
:root {
|
|
514
|
+
--space-page-x: var(--space-6);
|
|
515
|
+
--space-page-y: var(--space-6);
|
|
516
|
+
--card-space-body-y: var(--space-section-active);
|
|
517
|
+
--page-title-font-size: var( --heading-h1, calc( var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) * var(--font-size-ratio) ) );
|
|
518
|
+
--page-title-font-size-compact: var( --heading-h2, calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio)) );
|
|
519
|
+
--overlay-background: rgb(0 0 0 / 0.5);
|
|
520
|
+
--card-title-font-size: var(--font-size-base);
|
|
521
|
+
--card-shadow: initial;
|
|
522
|
+
--form-field-row-gap: var(--space-3);
|
|
523
|
+
--form-block-gap: var(--space-4);
|
|
524
|
+
--control-height-default: var(--band-height-md);
|
|
525
|
+
--control-focus-ring-width: initial;
|
|
526
|
+
--table-row-height-default: var(--band-height-md);
|
|
527
|
+
--focus-outline-weight: initial;
|
|
528
|
+
--focus-outline-offset: 0px;
|
|
529
|
+
--button-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
|
|
530
|
+
--control-shadow: var(--shadow-xs);
|
|
531
|
+
--shadow-md: 0 4px 6px -1px rgb(var(--shadow-color) / 0.1), 0 2px 4px -2px rgb(var(--shadow-color) / 0.1);
|
|
532
|
+
--shadow-lg: 0 10px 15px -3px rgb(var(--shadow-color) / 0.1), 0 4px 6px -4px rgb(var(--shadow-color) / 0.1);
|
|
533
|
+
--duration-fast: 150ms;
|
|
534
|
+
--duration-base: 250ms;
|
|
535
|
+
--duration-slow: 500ms;
|
|
536
|
+
--input: 30 7% 53%;
|
|
537
|
+
}
|
|
538
|
+
.dark, :root[data-theme="dark"] { --input: 45 6% 47%; }
|
|
539
|
+
|
|
540
|
+
.ui-scale-fixed {
|
|
541
|
+
--space-page-x: var(--space-6);
|
|
542
|
+
--space-page-y: var(--space-6);
|
|
543
|
+
--space-section: var(--space-4);
|
|
544
|
+
}
|
|
545
|
+
```
|