kanto-ds 1.5.2 → 1.6.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.
- package/README.md +10 -10
- package/dist/chunks/floating-B33g-M_1.js +63 -0
- package/dist/chunks/floating-B33g-M_1.js.map +1 -0
- package/dist/chunks/{index-STEEvEP7.js → index-TWJzttLX.js} +38 -15
- package/dist/chunks/index-TWJzttLX.js.map +1 -0
- package/dist/chunks/kt-calendar-CtwOby1R.js +780 -0
- package/dist/chunks/kt-calendar-CtwOby1R.js.map +1 -0
- package/dist/chunks/{kt-element-Djx2JcGl.js → kt-element-T0VbIBNp.js} +2 -2
- package/dist/chunks/{kt-element-Djx2JcGl.js.map → kt-element-T0VbIBNp.js.map} +1 -1
- package/dist/chunks/{listbox-llcUu_V-.js → listbox-LsUEyGhQ.js} +2 -2
- package/dist/chunks/{listbox-llcUu_V-.js.map → listbox-LsUEyGhQ.js.map} +1 -1
- package/dist/chunks/segmented-field-BBXR4XFL.js +384 -0
- package/dist/chunks/segmented-field-BBXR4XFL.js.map +1 -0
- package/dist/chunks/typed-date-CPAUNHzr.js +103 -0
- package/dist/chunks/typed-date-CPAUNHzr.js.map +1 -0
- package/dist/components/core/kt-avatar/kt-avatar.js +2 -2
- package/dist/components/core/kt-badge/kt-badge.js +2 -2
- package/dist/components/core/kt-button/kt-button.js +1 -1
- package/dist/components/core/kt-card/kt-card.js +1 -1
- package/dist/components/core/kt-code/kt-code.js +13 -13
- package/dist/components/core/kt-code/kt-code.js.map +1 -1
- package/dist/components/core/kt-icon/kt-icon.js +1 -1
- package/dist/components/core/kt-kbd/kt-kbd.js +5 -5
- package/dist/components/core/kt-kbd/kt-kbd.js.map +1 -1
- package/dist/components/core/kt-split-button/kt-split-button.js +3 -3
- package/dist/components/data/kt-chart/kt-chart.js +3 -3
- package/dist/components/data/kt-chart/kt-chart.js.map +1 -1
- package/dist/components/data/kt-meter/kt-meter.js +1 -1
- package/dist/components/data/kt-pagination/kt-pagination.js +2 -2
- package/dist/components/data/kt-stat/kt-stat.js +1 -1
- package/dist/components/data/kt-table/kt-table.js +85 -85
- package/dist/components/data/kt-table/kt-table.js.map +1 -1
- package/dist/components/data/kt-timeline/kt-timeline.js +1 -1
- package/dist/components/feedback/kt-alert/kt-alert.js +15 -15
- package/dist/components/feedback/kt-alert/kt-alert.js.map +1 -1
- package/dist/components/feedback/kt-empty-state/kt-empty-state.js +1 -1
- package/dist/components/feedback/kt-progress-bar/kt-progress-bar.js +1 -1
- package/dist/components/feedback/kt-skeleton/kt-skeleton.js +13 -13
- package/dist/components/feedback/kt-skeleton/kt-skeleton.js.map +1 -1
- package/dist/components/feedback/kt-toast/kt-toast.js +3 -3
- package/dist/components/feedback/kt-toast/kt-toast.js.map +1 -1
- package/dist/components/feedback/kt-toast-container/kt-toast-container.js +1 -1
- package/dist/components/feedback/kt-tooltip/kt-tooltip.js +1 -1
- package/dist/components/forms/kt-calendar/kt-calendar.d.ts +35 -9
- package/dist/components/forms/kt-calendar/kt-calendar.js +3 -3
- package/dist/components/forms/kt-checkbox/kt-checkbox.js +2 -2
- package/dist/components/forms/kt-date-input/kt-date-input.d.ts +65 -0
- package/dist/components/forms/kt-date-input/kt-date-input.js +241 -0
- package/dist/components/forms/kt-date-input/kt-date-input.js.map +1 -0
- package/dist/components/forms/kt-date-picker/kt-date-picker.d.ts +47 -3
- package/dist/components/forms/kt-date-picker/kt-date-picker.js +430 -199
- package/dist/components/forms/kt-date-picker/kt-date-picker.js.map +1 -1
- package/dist/components/forms/kt-drag-drop/kt-drag-drop.js +3 -3
- package/dist/components/forms/kt-drag-drop/kt-drag-drop.js.map +1 -1
- package/dist/components/forms/kt-form/kt-form.js +2 -2
- package/dist/components/forms/kt-input/kt-input.js +10 -10
- package/dist/components/forms/kt-input/kt-input.js.map +1 -1
- package/dist/components/forms/kt-input-menu/kt-input-menu.js +4 -4
- package/dist/components/forms/kt-label-input/kt-label-input.js +1 -1
- package/dist/components/forms/kt-multi-select/kt-multi-select.d.ts +113 -0
- package/dist/components/forms/kt-multi-select/kt-multi-select.js +532 -0
- package/dist/components/forms/kt-multi-select/kt-multi-select.js.map +1 -0
- package/dist/components/forms/kt-radio-group/kt-radio-group.js +56 -51
- package/dist/components/forms/kt-radio-group/kt-radio-group.js.map +1 -1
- package/dist/components/forms/kt-select/kt-select.js +4 -4
- package/dist/components/forms/kt-textarea/kt-textarea.js +2 -2
- package/dist/components/forms/kt-time-input/kt-time-input.d.ts +48 -0
- package/dist/components/forms/kt-time-input/kt-time-input.js +114 -0
- package/dist/components/forms/kt-time-input/kt-time-input.js.map +1 -0
- package/dist/components/forms/kt-toggle/kt-toggle.js +1 -1
- package/dist/components/navigation/kt-breadcrumb/kt-breadcrumb.js +6 -6
- package/dist/components/navigation/kt-breadcrumb/kt-breadcrumb.js.map +1 -1
- package/dist/components/navigation/kt-header/kt-header.js +2 -2
- package/dist/components/navigation/kt-page-header/kt-page-header.js +1 -1
- package/dist/components/navigation/kt-segmented-control/kt-segmented-control.js +2 -2
- package/dist/components/navigation/kt-sub-menu-navigation/kt-sub-menu-navigation.js +2 -2
- package/dist/components/navigation/kt-tabs/kt-tabs.js +2 -2
- package/dist/components/navigation/kt-tabs/kt-tabs.js.map +1 -1
- package/dist/components/navigation/kt-toggle-button/kt-toggle-button.js +1 -1
- package/dist/components/navigation/kt-toggle-button-group/kt-toggle-button-group.js +2 -2
- package/dist/components/overlays/kt-collapsible/kt-collapsible.js +3 -3
- package/dist/components/overlays/kt-collapsible/kt-collapsible.js.map +1 -1
- package/dist/components/overlays/kt-confirm-dialog/kt-confirm-dialog.js +2 -2
- package/dist/components/overlays/kt-dropdown/kt-dropdown.js +24 -24
- package/dist/components/overlays/kt-dropdown/kt-dropdown.js.map +1 -1
- package/dist/components/overlays/kt-modal/kt-modal.js +2 -2
- package/dist/components/overlays/kt-side-panel/kt-side-panel.js +2 -2
- package/dist/custom-elements.json +2230 -842
- package/dist/index.d.ts +9 -1
- package/dist/index.js +316 -109
- package/dist/index.js.map +1 -1
- package/dist/internal/floating.d.ts +3 -0
- package/dist/internal/segmented-field.d.ts +114 -0
- package/dist/internal/segments.d.ts +30 -0
- package/dist/internal/strings.d.ts +30 -0
- package/dist/internal/typed-date.d.ts +33 -0
- package/dist/react/index.d.ts +23 -0
- package/dist/react/index.js +193 -169
- package/dist/react/index.js.map +1 -1
- package/dist/react/jsx.d.ts +20 -1
- package/dist/strings/index.js +1 -1
- package/dist/theme/accent.d.ts +51 -0
- package/dist/theme/appearance.d.ts +37 -0
- package/dist/tokens/README.md +100 -1
- package/dist/tokens/accents.css +80 -0
- package/dist/tokens/appearance.css +65 -0
- package/dist/tokens/base.css +3 -0
- package/dist/tokens/colors.css +78 -25
- package/dist/tokens/index.css +2 -0
- package/dist/tokens/responsive.css +160 -75
- package/dist/tokens/spacing.css +47 -28
- package/dist/tokens/theme-light.css +124 -38
- package/dist/tokens/typography.css +20 -13
- package/dist/vscode.css-custom-data.json +36 -1
- package/dist/vscode.html-custom-data.json +67 -2
- package/dist/vue/index.d.ts +6 -0
- package/dist/vue/index.js +11 -8
- package/dist/vue/index.js.map +1 -1
- package/dist/web-types.json +190 -3
- package/package.json +13 -1
- package/dist/chunks/floating-B7_Dahpn.js +0 -54
- package/dist/chunks/floating-B7_Dahpn.js.map +0 -1
- package/dist/chunks/index-STEEvEP7.js.map +0 -1
- package/dist/chunks/kt-calendar-B_hFdD9V.js +0 -640
- package/dist/chunks/kt-calendar-B_hFdD9V.js.map +0 -1
package/dist/tokens/colors.css
CHANGED
|
@@ -17,17 +17,23 @@
|
|
|
17
17
|
* them their colour.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
:
|
|
20
|
+
/* The accent and the tint of the neutrals are inputs: set them on any
|
|
21
|
+
element — directly, through a data-accent preset (accents.css) or with
|
|
22
|
+
setAccent() — and the tokens below follow. Each falls back to Kanto's
|
|
23
|
+
violet. An element carrying data-accent re-declares the tokens, so an
|
|
24
|
+
accent set on a container themes that container. */
|
|
25
|
+
:root,
|
|
26
|
+
[data-accent] {
|
|
21
27
|
color-scheme: dark;
|
|
22
28
|
|
|
23
29
|
/* === BRAND === */
|
|
24
30
|
--color-white: rgba(244, 244, 245, 1);
|
|
25
31
|
/* Dark enough to carry white text at 4.5:1 in both themes — hover steps
|
|
26
32
|
darker, not lighter, for the same reason. */
|
|
27
|
-
--color-primary-base: rgba(95, 93, 234, 1);
|
|
28
|
-
--color-primary-hover: rgba(88, 86, 224, 1);
|
|
29
|
-
--color-primary-soft:
|
|
30
|
-
--color-secondary-hover: rgba(111, 116, 246, 0.16);
|
|
33
|
+
--color-primary-base: var(--accent-base, rgba(95, 93, 234, 1));
|
|
34
|
+
--color-primary-hover: var(--accent-hover, rgba(88, 86, 224, 1));
|
|
35
|
+
--color-primary-soft: color-mix(in srgb, var(--color-primary-base) 12%, transparent);
|
|
36
|
+
--color-secondary-hover: var(--accent-wash, rgba(111, 116, 246, 0.16));
|
|
31
37
|
|
|
32
38
|
/* === SEMANTIC === */
|
|
33
39
|
--color-danger-base: rgba(245, 61, 92, 1);
|
|
@@ -50,34 +56,73 @@
|
|
|
50
56
|
--color-success-soft: rgba(53, 221, 131, 0.12);
|
|
51
57
|
|
|
52
58
|
/* === TEXT STEPS OF THE BRAND AND SEMANTIC COLOURS === */
|
|
53
|
-
--color-primary-text: #8e97ff;
|
|
59
|
+
--color-primary-text: var(--accent-text-dark, #8e97ff);
|
|
54
60
|
--color-danger-text: #ff727f;
|
|
55
61
|
--color-info-text: #06b0fc;
|
|
56
62
|
--color-warning-text: #fca80d;
|
|
57
63
|
--color-success-text: #01df7e;
|
|
58
64
|
|
|
59
|
-
/* === TEXT (100 = highest contrast) ===
|
|
60
|
-
|
|
65
|
+
/* === TEXT (100 = highest contrast) ===
|
|
66
|
+
Neutral, tinted by the accent: each step keeps its lightness and chroma
|
|
67
|
+
and sits at a fixed offset from --neutral-hue, so the default reproduces
|
|
68
|
+
the ramp Kanto shipped to within a tenth of an sRGB unit. */
|
|
69
|
+
--color-text-100: oklch(
|
|
70
|
+
0.9674 calc(0.0013 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 8.4)
|
|
71
|
+
);
|
|
61
72
|
/* 4.5:1 on every surface up to --color-dark-24, and on the tinted alerts. */
|
|
62
|
-
--color-text-400:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
--color-text-
|
|
66
|
-
|
|
67
|
-
|
|
73
|
+
--color-text-400: oklch(
|
|
74
|
+
0.7386 calc(0.0171 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 8)
|
|
75
|
+
);
|
|
76
|
+
--color-text-500: oklch(
|
|
77
|
+
0.5113 calc(0.0204 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 7.7)
|
|
78
|
+
);
|
|
79
|
+
--color-text-600: oklch(
|
|
80
|
+
0.4178 calc(0.0215 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 7.4)
|
|
81
|
+
);
|
|
82
|
+
--color-text-700: oklch(
|
|
83
|
+
0.3833 calc(0.0186 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 7.5)
|
|
84
|
+
);
|
|
85
|
+
--color-text-800: oklch(
|
|
86
|
+
0.3524 calc(0.0172 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 7.5)
|
|
87
|
+
);
|
|
88
|
+
--color-text-900: oklch(
|
|
89
|
+
0.2739 calc(0.0055 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 8)
|
|
90
|
+
);
|
|
68
91
|
|
|
69
92
|
/* === SURFACES (low → high elevation) === */
|
|
70
|
-
--color-dark-8:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
--color-dark-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
--color-dark-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
--color-dark-
|
|
80
|
-
|
|
93
|
+
--color-dark-8: oklch(
|
|
94
|
+
0.1852 calc(0.0082 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 19)
|
|
95
|
+
);
|
|
96
|
+
--color-dark-12: oklch(
|
|
97
|
+
0.2302 calc(0.0115 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 15.1)
|
|
98
|
+
);
|
|
99
|
+
--color-dark-14: oklch(
|
|
100
|
+
0.2514 calc(0.0113 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 15.2)
|
|
101
|
+
);
|
|
102
|
+
--color-dark-15: oklch(
|
|
103
|
+
0.2597 calc(0.0112 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 15.3)
|
|
104
|
+
);
|
|
105
|
+
--color-dark-16: oklch(
|
|
106
|
+
0.2685 calc(0.0129 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 14.1)
|
|
107
|
+
);
|
|
108
|
+
--color-dark-18: oklch(
|
|
109
|
+
0.2894 calc(0.0145 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 13.2)
|
|
110
|
+
);
|
|
111
|
+
--color-dark-19: oklch(
|
|
112
|
+
0.2979 calc(0.0162 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 12.5)
|
|
113
|
+
);
|
|
114
|
+
--color-dark-20: oklch(
|
|
115
|
+
0.3074 calc(0.018 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 16.5)
|
|
116
|
+
);
|
|
117
|
+
--color-dark-22: oklch(
|
|
118
|
+
0.3271 calc(0.0177 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 16.6)
|
|
119
|
+
);
|
|
120
|
+
--color-dark-23: oklch(
|
|
121
|
+
0.3354 calc(0.0193 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 15.7)
|
|
122
|
+
);
|
|
123
|
+
--color-dark-24: oklch(
|
|
124
|
+
0.3471 calc(0.0191 * var(--neutral-chroma, 1)) calc(var(--neutral-hue, 278) + 15.7)
|
|
125
|
+
);
|
|
81
126
|
|
|
82
127
|
/* === NAVIGATION === */
|
|
83
128
|
--color-navigation-top-icon: #f4f4f5;
|
|
@@ -137,6 +182,14 @@
|
|
|
137
182
|
/* Deliberately opposite the page, for anything that must read as floating
|
|
138
183
|
above it — the tooltip. */
|
|
139
184
|
--surface-inverted: var(--color-dark-8);
|
|
185
|
+
|
|
186
|
+
/* What floats over the page — a list, a calendar, a menu. In the dark the
|
|
187
|
+
ramp sets it apart on its own: a lighter surface, no edge, no shadow. */
|
|
188
|
+
--surface-popover: var(--color-dark-20);
|
|
189
|
+
--border-popover: transparent;
|
|
190
|
+
--shadow-popover: none;
|
|
191
|
+
/* Lines inside a popover: --border-subtle is the popover's own colour here. */
|
|
192
|
+
--divider-popover: var(--color-dark-24);
|
|
140
193
|
--text-inverted: var(--color-text-100);
|
|
141
194
|
--text-body: var(--color-text-100);
|
|
142
195
|
--text-muted: var(--color-text-400);
|
package/dist/tokens/index.css
CHANGED
|
@@ -8,62 +8,116 @@
|
|
|
8
8
|
|
|
9
9
|
/* === MOBILE (< 600px) === */
|
|
10
10
|
@media (max-width: 599px) {
|
|
11
|
-
:root
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
--font-
|
|
17
|
-
|
|
18
|
-
--font-
|
|
11
|
+
:root,
|
|
12
|
+
[data-radius],
|
|
13
|
+
[data-density],
|
|
14
|
+
[data-text-size],
|
|
15
|
+
[data-font] {
|
|
16
|
+
--font-title-studio: 400 calc(36px * var(--text-scale, 1)) / calc(44px * var(--text-scale, 1))
|
|
17
|
+
var(--font-family-display);
|
|
18
|
+
--font-title-h1: 600 calc(30px * var(--text-scale, 1)) / calc(36px * var(--text-scale, 1))
|
|
19
|
+
var(--font-family-display);
|
|
20
|
+
--font-title-h4: 400 calc(22px * var(--text-scale, 1)) / calc(28px * var(--text-scale, 1))
|
|
21
|
+
var(--font-family-display);
|
|
22
|
+
--font-title-h6: 600 calc(18px * var(--text-scale, 1)) / calc(22px * var(--text-scale, 1))
|
|
23
|
+
var(--font-family-display);
|
|
24
|
+
--font-normal-regular: 400 calc(12px * var(--text-scale, 1)) / calc(18px * var(--text-scale, 1))
|
|
25
|
+
var(--font-family-body);
|
|
26
|
+
--font-normal-medium: 500 calc(12px * var(--text-scale, 1)) / calc(18px * var(--text-scale, 1))
|
|
27
|
+
var(--font-family-body);
|
|
28
|
+
--font-normal-small: 400 calc(10px * var(--text-scale, 1)) / calc(14px * var(--text-scale, 1))
|
|
29
|
+
var(--font-family-body);
|
|
19
30
|
/* 16px keeps iOS Safari from zooming on focus. */
|
|
20
|
-
--font-input: 400 16px/1.4 var(--font-family-body);
|
|
21
|
-
--font-code-regular: 400 12px/16px var(--
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
--padding-
|
|
25
|
-
--padding-
|
|
26
|
-
--padding-
|
|
27
|
-
--
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
--gap-
|
|
31
|
-
--gap-
|
|
32
|
-
--gap-
|
|
33
|
-
--gap-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
--button-height:
|
|
37
|
-
--button-height
|
|
31
|
+
--font-input: 400 calc(16px * var(--text-scale, 1))/1.4 var(--font-family-body);
|
|
32
|
+
--font-code-regular: 400 calc(12px * var(--text-scale, 1)) / calc(16px * var(--text-scale, 1))
|
|
33
|
+
var(--font-family-code);
|
|
34
|
+
|
|
35
|
+
--padding-card: calc(16px * var(--density-scale, 1));
|
|
36
|
+
--padding-modal: calc(16px * var(--density-scale, 1));
|
|
37
|
+
--padding-input: calc(8px * var(--density-scale, 1)) 0;
|
|
38
|
+
--padding-form: calc(12px * var(--density-scale, 1));
|
|
39
|
+
--button-padding-x: calc(12px * var(--density-scale, 1));
|
|
40
|
+
|
|
41
|
+
--gap-card: calc(14px * var(--density-scale, 1));
|
|
42
|
+
--gap-modal: calc(14px * var(--density-scale, 1));
|
|
43
|
+
--gap-element: calc(4px * var(--density-scale, 1));
|
|
44
|
+
--gap-form: calc(12px * var(--density-scale, 1));
|
|
45
|
+
--gap-button: calc(8px * var(--density-scale, 1));
|
|
46
|
+
|
|
47
|
+
--button-height-small: calc(30px * var(--density-scale, 1));
|
|
48
|
+
--button-height: calc(36px * var(--density-scale, 1));
|
|
49
|
+
--button-height-large: calc(42px * var(--density-scale, 1));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Heights land on even pixels, so text centres on whole ones. CSS rounding
|
|
53
|
+
is newer than the rest of Kanto's CSS: behind @supports, an older
|
|
54
|
+
browser keeps the unrounded height rather than losing it. */
|
|
55
|
+
@supports (width: round(nearest, 1px, 1px)) {
|
|
56
|
+
:root,
|
|
57
|
+
[data-radius],
|
|
58
|
+
[data-density],
|
|
59
|
+
[data-text-size],
|
|
60
|
+
[data-font] {
|
|
61
|
+
--button-height-small: round(nearest, calc(30px * var(--density-scale, 1)), 2px);
|
|
62
|
+
--button-height: round(nearest, calc(36px * var(--density-scale, 1)), 2px);
|
|
63
|
+
--button-height-large: round(nearest, calc(42px * var(--density-scale, 1)), 2px);
|
|
64
|
+
}
|
|
38
65
|
}
|
|
39
66
|
}
|
|
40
67
|
|
|
41
68
|
/* === TABLET (600px – 1023px) === */
|
|
42
69
|
@media (min-width: 600px) and (max-width: 1023px) {
|
|
43
|
-
:root
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
--font-
|
|
49
|
-
|
|
50
|
-
--font-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
--
|
|
55
|
-
|
|
56
|
-
--
|
|
57
|
-
|
|
58
|
-
--
|
|
59
|
-
|
|
60
|
-
--
|
|
61
|
-
|
|
62
|
-
--
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
--
|
|
66
|
-
--
|
|
70
|
+
:root,
|
|
71
|
+
[data-radius],
|
|
72
|
+
[data-density],
|
|
73
|
+
[data-text-size],
|
|
74
|
+
[data-font] {
|
|
75
|
+
--font-title-studio: 400 calc(44px * var(--text-scale, 1)) / calc(52px * var(--text-scale, 1))
|
|
76
|
+
var(--font-family-display);
|
|
77
|
+
--font-title-h1: 600 calc(36px * var(--text-scale, 1)) / calc(42px * var(--text-scale, 1))
|
|
78
|
+
var(--font-family-display);
|
|
79
|
+
--font-title-h4: 400 calc(26px * var(--text-scale, 1)) / calc(32px * var(--text-scale, 1))
|
|
80
|
+
var(--font-family-display);
|
|
81
|
+
--font-title-h6: 600 calc(20px * var(--text-scale, 1)) / calc(24px * var(--text-scale, 1))
|
|
82
|
+
var(--font-family-display);
|
|
83
|
+
--font-normal-regular: 400 calc(14px * var(--text-scale, 1)) / calc(18px * var(--text-scale, 1))
|
|
84
|
+
var(--font-family-body);
|
|
85
|
+
--font-normal-medium: 500 calc(14px * var(--text-scale, 1)) / calc(18px * var(--text-scale, 1))
|
|
86
|
+
var(--font-family-body);
|
|
87
|
+
--font-normal-small: 400 calc(12px * var(--text-scale, 1)) / calc(16px * var(--text-scale, 1))
|
|
88
|
+
var(--font-family-body);
|
|
89
|
+
--font-code-regular: 400 calc(14px * var(--text-scale, 1)) / calc(18px * var(--text-scale, 1))
|
|
90
|
+
var(--font-family-code);
|
|
91
|
+
|
|
92
|
+
--padding-card: calc(20px * var(--density-scale, 1));
|
|
93
|
+
--padding-modal: calc(20px * var(--density-scale, 1));
|
|
94
|
+
--padding-input: calc(10px * var(--density-scale, 1)) 0;
|
|
95
|
+
--padding-form: calc(16px * var(--density-scale, 1));
|
|
96
|
+
|
|
97
|
+
--gap-card: calc(18px * var(--density-scale, 1));
|
|
98
|
+
--gap-modal: calc(18px * var(--density-scale, 1));
|
|
99
|
+
--gap-element: calc(4px * var(--density-scale, 1));
|
|
100
|
+
--gap-form: calc(14px * var(--density-scale, 1));
|
|
101
|
+
--gap-button: calc(10px * var(--density-scale, 1));
|
|
102
|
+
|
|
103
|
+
--button-height-small: calc(32px * var(--density-scale, 1));
|
|
104
|
+
--button-height: calc(40px * var(--density-scale, 1));
|
|
105
|
+
--button-height-large: calc(46px * var(--density-scale, 1));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* Heights land on even pixels, so text centres on whole ones. CSS rounding
|
|
109
|
+
is newer than the rest of Kanto's CSS: behind @supports, an older
|
|
110
|
+
browser keeps the unrounded height rather than losing it. */
|
|
111
|
+
@supports (width: round(nearest, 1px, 1px)) {
|
|
112
|
+
:root,
|
|
113
|
+
[data-radius],
|
|
114
|
+
[data-density],
|
|
115
|
+
[data-text-size],
|
|
116
|
+
[data-font] {
|
|
117
|
+
--button-height-small: round(nearest, calc(32px * var(--density-scale, 1)), 2px);
|
|
118
|
+
--button-height: round(nearest, calc(40px * var(--density-scale, 1)), 2px);
|
|
119
|
+
--button-height-large: round(nearest, calc(46px * var(--density-scale, 1)), 2px);
|
|
120
|
+
}
|
|
67
121
|
}
|
|
68
122
|
}
|
|
69
123
|
|
|
@@ -71,36 +125,67 @@
|
|
|
71
125
|
Kanto ships on trading-desk and NOC displays; at 21:9 the desktop scale
|
|
72
126
|
reads as tiny rather than dense. */
|
|
73
127
|
@media (min-aspect-ratio: 21/9) {
|
|
74
|
-
:root
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
--font-
|
|
80
|
-
|
|
81
|
-
--font-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
--
|
|
86
|
-
|
|
87
|
-
--
|
|
88
|
-
|
|
89
|
-
--
|
|
90
|
-
|
|
91
|
-
--
|
|
92
|
-
|
|
93
|
-
--
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
--
|
|
97
|
-
--
|
|
128
|
+
:root,
|
|
129
|
+
[data-radius],
|
|
130
|
+
[data-density],
|
|
131
|
+
[data-text-size],
|
|
132
|
+
[data-font] {
|
|
133
|
+
--font-title-studio: 400 calc(72px * var(--text-scale, 1)) / calc(84px * var(--text-scale, 1))
|
|
134
|
+
var(--font-family-display);
|
|
135
|
+
--font-title-h1: 600 calc(56px * var(--text-scale, 1)) / calc(64px * var(--text-scale, 1))
|
|
136
|
+
var(--font-family-display);
|
|
137
|
+
--font-title-h4: 400 calc(36px * var(--text-scale, 1)) / calc(44px * var(--text-scale, 1))
|
|
138
|
+
var(--font-family-display);
|
|
139
|
+
--font-title-h6: 600 calc(28px * var(--text-scale, 1)) / calc(34px * var(--text-scale, 1))
|
|
140
|
+
var(--font-family-display);
|
|
141
|
+
--font-normal-regular: 400 calc(16px * var(--text-scale, 1)) / calc(22px * var(--text-scale, 1))
|
|
142
|
+
var(--font-family-body);
|
|
143
|
+
--font-normal-medium: 500 calc(16px * var(--text-scale, 1)) / calc(22px * var(--text-scale, 1))
|
|
144
|
+
var(--font-family-body);
|
|
145
|
+
--font-normal-small: 400 calc(14px * var(--text-scale, 1)) / calc(18px * var(--text-scale, 1))
|
|
146
|
+
var(--font-family-body);
|
|
147
|
+
--font-code-regular: 400 calc(16px * var(--text-scale, 1)) / calc(22px * var(--text-scale, 1))
|
|
148
|
+
var(--font-family-code);
|
|
149
|
+
|
|
150
|
+
--padding-card: calc(36px * var(--density-scale, 1));
|
|
151
|
+
--padding-modal: calc(36px * var(--density-scale, 1));
|
|
152
|
+
--padding-input: calc(16px * var(--density-scale, 1)) 0;
|
|
153
|
+
--padding-form: calc(24px * var(--density-scale, 1));
|
|
154
|
+
|
|
155
|
+
--gap-card: calc(32px * var(--density-scale, 1));
|
|
156
|
+
--gap-modal: calc(32px * var(--density-scale, 1));
|
|
157
|
+
--gap-element: calc(6px * var(--density-scale, 1));
|
|
158
|
+
--gap-form: calc(20px * var(--density-scale, 1));
|
|
159
|
+
--gap-button: calc(16px * var(--density-scale, 1));
|
|
160
|
+
|
|
161
|
+
--button-height-small: calc(40px * var(--density-scale, 1));
|
|
162
|
+
--button-height: calc(52px * var(--density-scale, 1));
|
|
163
|
+
--button-height-large: calc(60px * var(--density-scale, 1));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* Heights land on even pixels, so text centres on whole ones. CSS rounding
|
|
167
|
+
is newer than the rest of Kanto's CSS: behind @supports, an older
|
|
168
|
+
browser keeps the unrounded height rather than losing it. */
|
|
169
|
+
@supports (width: round(nearest, 1px, 1px)) {
|
|
170
|
+
:root,
|
|
171
|
+
[data-radius],
|
|
172
|
+
[data-density],
|
|
173
|
+
[data-text-size],
|
|
174
|
+
[data-font] {
|
|
175
|
+
--button-height-small: round(nearest, calc(40px * var(--density-scale, 1)), 2px);
|
|
176
|
+
--button-height: round(nearest, calc(52px * var(--density-scale, 1)), 2px);
|
|
177
|
+
--button-height-large: round(nearest, calc(60px * var(--density-scale, 1)), 2px);
|
|
178
|
+
}
|
|
98
179
|
}
|
|
99
180
|
}
|
|
100
181
|
|
|
101
182
|
/* === REDUCED MOTION === */
|
|
102
183
|
@media (prefers-reduced-motion: reduce) {
|
|
103
|
-
:root
|
|
184
|
+
:root,
|
|
185
|
+
[data-radius],
|
|
186
|
+
[data-density],
|
|
187
|
+
[data-text-size],
|
|
188
|
+
[data-font] {
|
|
104
189
|
--duration-instant: 0s;
|
|
105
190
|
--duration-fast: 0s;
|
|
106
191
|
--duration-normal: 0s;
|
package/dist/tokens/spacing.css
CHANGED
|
@@ -3,43 +3,47 @@
|
|
|
3
3
|
* overrides live in `responsive.css`.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
:root
|
|
6
|
+
:root,
|
|
7
|
+
[data-radius],
|
|
8
|
+
[data-density],
|
|
9
|
+
[data-text-size],
|
|
10
|
+
[data-font] {
|
|
7
11
|
/* === RADIUS === */
|
|
8
|
-
--border-radius: 8px; /* inputs, buttons, square chips */
|
|
9
|
-
--border-radius-card: 12px;
|
|
10
|
-
--radius-input: 8px;
|
|
11
|
-
--radius-modal: 12px;
|
|
12
|
-
--radius-sub-menu: 2px;
|
|
12
|
+
--border-radius: calc(8px * var(--radius-scale, 1)); /* inputs, buttons, square chips */
|
|
13
|
+
--border-radius-card: calc(12px * var(--radius-scale, 1));
|
|
14
|
+
--radius-input: calc(8px * var(--radius-scale, 1));
|
|
15
|
+
--radius-modal: calc(12px * var(--radius-scale, 1));
|
|
16
|
+
--radius-sub-menu: calc(2px * var(--radius-scale, 1));
|
|
13
17
|
--radius-pill: 20px; /* tag chips */
|
|
14
18
|
--radius-full: 9999px; /* toggle track and thumb */
|
|
15
19
|
|
|
16
20
|
/* === PADDING === */
|
|
17
|
-
--padding-card: 24px;
|
|
18
|
-
--padding-modal: 24px;
|
|
19
|
-
--padding-input: 8px 0;
|
|
20
|
-
--padding-form: 16px;
|
|
21
|
-
--padding-sub-menu: 12px 24px;
|
|
22
|
-
--padding-sub-menu-item: 8px 16px;
|
|
23
|
-
--padding-expand: 8px;
|
|
24
|
-
--padding-expand-item: 8px 16px;
|
|
25
|
-
--padding-drag-drop: 16px 24px;
|
|
26
|
-
--padding-chip: 4px 12px;
|
|
27
|
-
--text-area-padding: 10px 16px;
|
|
21
|
+
--padding-card: calc(24px * var(--density-scale, 1));
|
|
22
|
+
--padding-modal: calc(24px * var(--density-scale, 1));
|
|
23
|
+
--padding-input: calc(8px * var(--density-scale, 1)) 0;
|
|
24
|
+
--padding-form: calc(16px * var(--density-scale, 1));
|
|
25
|
+
--padding-sub-menu: calc(12px * var(--density-scale, 1)) calc(24px * var(--density-scale, 1));
|
|
26
|
+
--padding-sub-menu-item: calc(8px * var(--density-scale, 1)) calc(16px * var(--density-scale, 1));
|
|
27
|
+
--padding-expand: calc(8px * var(--density-scale, 1));
|
|
28
|
+
--padding-expand-item: calc(8px * var(--density-scale, 1)) calc(16px * var(--density-scale, 1));
|
|
29
|
+
--padding-drag-drop: calc(16px * var(--density-scale, 1)) calc(24px * var(--density-scale, 1));
|
|
30
|
+
--padding-chip: calc(4px * var(--density-scale, 1)) calc(12px * var(--density-scale, 1));
|
|
31
|
+
--text-area-padding: calc(10px * var(--density-scale, 1)) calc(16px * var(--density-scale, 1));
|
|
28
32
|
|
|
29
33
|
/* === GAP === */
|
|
30
|
-
--gap-element: 4px;
|
|
31
|
-
--gap-button: 8px;
|
|
32
|
-
--gap-drag-drop: 12px;
|
|
33
|
-
--gap-form: 16px;
|
|
34
|
-
--gap-card: 20px;
|
|
35
|
-
--gap-modal: 20px;
|
|
36
|
-
--gap-sub-menu: 24px;
|
|
34
|
+
--gap-element: calc(4px * var(--density-scale, 1));
|
|
35
|
+
--gap-button: calc(8px * var(--density-scale, 1));
|
|
36
|
+
--gap-drag-drop: calc(12px * var(--density-scale, 1));
|
|
37
|
+
--gap-form: calc(16px * var(--density-scale, 1));
|
|
38
|
+
--gap-card: calc(20px * var(--density-scale, 1));
|
|
39
|
+
--gap-modal: calc(20px * var(--density-scale, 1));
|
|
40
|
+
--gap-sub-menu: calc(24px * var(--density-scale, 1));
|
|
37
41
|
|
|
38
42
|
/* === DIMENSIONS === */
|
|
39
|
-
--button-height-small: 32px;
|
|
40
|
-
--button-height: 40px;
|
|
41
|
-
--button-height-large: 48px;
|
|
42
|
-
--button-padding-x: 16px;
|
|
43
|
+
--button-height-small: calc(32px * var(--density-scale, 1));
|
|
44
|
+
--button-height: calc(40px * var(--density-scale, 1));
|
|
45
|
+
--button-height-large: calc(48px * var(--density-scale, 1));
|
|
46
|
+
--button-padding-x: calc(16px * var(--density-scale, 1));
|
|
43
47
|
|
|
44
48
|
/* === BORDERS === */
|
|
45
49
|
--border-width: 1px;
|
|
@@ -65,3 +69,18 @@
|
|
|
65
69
|
--z-modal: 400;
|
|
66
70
|
--z-toast: 500;
|
|
67
71
|
}
|
|
72
|
+
|
|
73
|
+
/* Heights land on even pixels, so text centres on whole ones. CSS rounding
|
|
74
|
+
is newer than the rest of Kanto's CSS: behind @supports, an older
|
|
75
|
+
browser keeps the unrounded height rather than losing it. */
|
|
76
|
+
@supports (width: round(nearest, 1px, 1px)) {
|
|
77
|
+
:root,
|
|
78
|
+
[data-radius],
|
|
79
|
+
[data-density],
|
|
80
|
+
[data-text-size],
|
|
81
|
+
[data-font] {
|
|
82
|
+
--button-height-small: round(nearest, calc(32px * var(--density-scale, 1)), 2px);
|
|
83
|
+
--button-height: round(nearest, calc(40px * var(--density-scale, 1)), 2px);
|
|
84
|
+
--button-height-large: round(nearest, calc(48px * var(--density-scale, 1)), 2px);
|
|
85
|
+
}
|
|
86
|
+
}
|