@kazamitte/design-token 0.0.0-stage → 0.4.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.
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Shadow primitives.
3
+ *
4
+ * Scale
5
+ * └─ 2xs / xs / sm / md / lg / xl / 2xl
6
+ *
7
+ * The `--shadow-*` namespace is redefined here with literal values so
8
+ * that the scale the style presets build on stays identical across
9
+ * Tailwind versions. `theme/style/*.css` maps these steps to the
10
+ * semantic roles (flat / raised / floating / overlay).
11
+ *
12
+ * Only `--shadow-*` is pinned; the sibling namespaces
13
+ * (`--inset-shadow-*`, `--drop-shadow-*`, `--text-shadow-*`) stay on
14
+ * the Tailwind defaults.
15
+ *
16
+ * Light and dark share one scale: every step is built from
17
+ * `var(--shadow-color-*)` for the cast and `var(--shadow-rim-color)`
18
+ * for the 1px rim, and only those colors flip by mode. A preset picks
19
+ * one step per role and is correct in both modes.
20
+ *
21
+ * These are raw steps with no semantic meaning; consume them through
22
+ * the style presets in `theme/style/` instead of referencing them
23
+ * directly.
24
+ */
25
+
26
+ /**
27
+ * Shadow colors.
28
+ *
29
+ * Cast
30
+ * └─ subtle / (default) / strong — black in both modes, far more
31
+ * opaque in dark because the surface it falls on is already dark.
32
+ *
33
+ * Rim
34
+ * └─ the 1px hairline every step carries. Nearly invisible black on a
35
+ * light surface, white on a dark one, where it — not the cast — is
36
+ * what separates a panel from its background.
37
+ *
38
+ * Plain custom properties rather than `@theme` values: they are
39
+ * building blocks for the scale, not utilities.
40
+ */
41
+ :root {
42
+ --shadow-color-subtle: oklch(0% 0 0 / 0.05);
43
+ --shadow-color: oklch(0% 0 0 / 0.1);
44
+ --shadow-color-strong: oklch(0% 0 0 / 0.25);
45
+
46
+ --shadow-rim-color: oklch(0% 0 0 / 0.07);
47
+ }
48
+
49
+ [data-mode='dark'] {
50
+ --shadow-color-subtle: oklch(0% 0 0 / 0.35);
51
+ --shadow-color: oklch(0% 0 0 / 0.5);
52
+ --shadow-color-strong: oklch(0% 0 0 / 0.7);
53
+
54
+ --shadow-rim-color: oklch(100% 0 0 / 0.12);
55
+ }
56
+
57
+ /**
58
+ * The scale.
59
+ *
60
+ * Tailwind's default geometry, with two changes:
61
+ *
62
+ * - every step opens with the 1px rim, so the edge is drawn at any
63
+ * elevation;
64
+ * - `2xs` is the rim alone — an edge with no elevation, which is what
65
+ * the flat presets are made of.
66
+ */
67
+ @theme {
68
+ --shadow-2xs: 0 0 0 1px var(--shadow-rim-color);
69
+ --shadow-xs:
70
+ 0 0 0 1px var(--shadow-rim-color), 0 1px 2px 0 var(--shadow-color-subtle);
71
+ --shadow-sm:
72
+ 0 0 0 1px var(--shadow-rim-color), 0 1px 3px 0 var(--shadow-color),
73
+ 0 1px 2px -1px var(--shadow-color);
74
+ --shadow-md:
75
+ 0 0 0 1px var(--shadow-rim-color), 0 4px 6px -1px var(--shadow-color),
76
+ 0 2px 4px -2px var(--shadow-color);
77
+ --shadow-lg:
78
+ 0 0 0 1px var(--shadow-rim-color), 0 10px 15px -3px var(--shadow-color),
79
+ 0 4px 6px -4px var(--shadow-color);
80
+ --shadow-xl:
81
+ 0 0 0 1px var(--shadow-rim-color), 0 20px 25px -5px var(--shadow-color),
82
+ 0 8px 10px -6px var(--shadow-color);
83
+ --shadow-2xl:
84
+ 0 0 0 1px var(--shadow-rim-color),
85
+ 0 25px 50px -12px var(--shadow-color-strong);
86
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Z-index primitives.
3
+ *
4
+ * Scale
5
+ * ├─ hide / base / docked
6
+ * ├─ dropdown / sticky / banner / overlay / modal / popover / skip-nav
7
+ * └─ toast / tooltip / max
8
+ *
9
+ * The steps and their values follow Chakra UI's z-index scale — note
10
+ * `popover` above `modal`, since a select opened inside a dialog has
11
+ * to clear it.
12
+ *
13
+ * Layering does not vary by preset, so unlike radius and shadow these
14
+ * steps already carry their meaning and are consumed directly.
15
+ *
16
+ * `<dialog>` and the Popover API render in the top layer, where
17
+ * z-index has no effect.
18
+ */
19
+ @theme {
20
+ --z-index-hide: -1;
21
+ --z-index-base: 0;
22
+ --z-index-docked: 10;
23
+ --z-index-dropdown: 1000;
24
+ --z-index-sticky: 1100;
25
+ --z-index-banner: 1200;
26
+ --z-index-overlay: 1300;
27
+ --z-index-modal: 1400;
28
+ --z-index-popover: 1500;
29
+ --z-index-skip-nav: 1600;
30
+ --z-index-toast: 1700;
31
+ --z-index-tooltip: 1800;
32
+ --z-index-max: 2147483647;
33
+ }
@@ -0,0 +1,15 @@
1
+ @theme {
2
+ --font-sans:
3
+ "Noto Sans JP", "Noto Sans CJK JP", "Meiryo", ui-sans-serif, system-ui,
4
+ sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
5
+ "Noto Color Emoji";
6
+ --font-serif:
7
+ "Noto Serif JP", "Noto Serif CJK JP", "BIZ UDPMincho", ui-serif, Georgia,
8
+ Cambria, "Times New Roman", Times, serif;
9
+ --font-mono:
10
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
11
+ "Courier New", monospace;
12
+
13
+ --font-weight-normal: 400;
14
+ --font-weight-bold: 700;
15
+ }
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Typography utilities based on the Digital Agency Design System.
3
+ *
4
+ * Typography
5
+ * ├─ Display
6
+ * │ └─ Decorative large text: 64 / 56 / 48 / 44
7
+ * ├─ Highlight
8
+ * │ └─ Headings and emphasized text: 36 / 32 / 28 / 26 / 24 / 22
9
+ * ├─ Body
10
+ * │ └─ Readable body text: 20 / 18 / 16
11
+ * ├─ Dense
12
+ * │ ├─ Compact UI text: 18 / 16 / 14
13
+ * │ └─ Compact variant: line-height 1.2
14
+ * ├─ Oneline
15
+ * │ └─ Single-line UI text: 18 / 16 / 14
16
+ * └─ Mono
17
+ * └─ Monospaced text and code: 18 / 16 / 14
18
+ *
19
+ * Font weight is controlled separately with Tailwind utilities such as
20
+ * `font-normal` and `font-bold`.
21
+ */
22
+
23
+ @utility text-display-64 {
24
+ font-size: 4rem;
25
+ line-height: 1.4;
26
+ letter-spacing: 0;
27
+ }
28
+
29
+ @utility text-display-56 {
30
+ font-size: 3.5rem;
31
+ line-height: 1.4;
32
+ letter-spacing: 0;
33
+ }
34
+
35
+ @utility text-display-48 {
36
+ font-size: 3rem;
37
+ line-height: 1.4;
38
+ letter-spacing: 0;
39
+ }
40
+
41
+ @utility text-display-44 {
42
+ font-size: 2.75rem;
43
+ line-height: 1.4;
44
+ letter-spacing: 0;
45
+ }
46
+
47
+ @utility text-highlight-36 {
48
+ font-size: 2.25rem;
49
+ line-height: 1.4;
50
+ letter-spacing: 0.01em;
51
+ }
52
+
53
+ @utility text-highlight-32 {
54
+ font-size: 2rem;
55
+ line-height: 1.5;
56
+ letter-spacing: 0.01em;
57
+ }
58
+
59
+ @utility text-highlight-28 {
60
+ font-size: 1.75rem;
61
+ line-height: 1.5;
62
+ letter-spacing: 0.01em;
63
+ }
64
+
65
+ @utility text-highlight-26 {
66
+ font-size: 1.625rem;
67
+ line-height: 1.5;
68
+ letter-spacing: 0.02em;
69
+ }
70
+
71
+ @utility text-highlight-24 {
72
+ font-size: 1.5rem;
73
+ line-height: 1.5;
74
+ letter-spacing: 0.02em;
75
+ }
76
+
77
+ @utility text-highlight-22 {
78
+ font-size: 1.375rem;
79
+ line-height: 1.5;
80
+ letter-spacing: 0.02em;
81
+ }
82
+
83
+ @utility text-body-20 {
84
+ font-size: 1.25rem;
85
+ line-height: 1.5;
86
+ letter-spacing: 0.02em;
87
+ }
88
+
89
+ @utility text-body-18 {
90
+ font-size: 1.125rem;
91
+ line-height: 1.6;
92
+ letter-spacing: 0.02em;
93
+ }
94
+
95
+ @utility text-body-16 {
96
+ font-size: 1rem;
97
+ line-height: 1.7;
98
+ letter-spacing: 0.02em;
99
+ }
100
+
101
+ @utility text-dense-18 {
102
+ font-size: 1.125rem;
103
+ line-height: 1.3;
104
+ letter-spacing: 0;
105
+ }
106
+
107
+ @utility text-dense-16 {
108
+ font-size: 1rem;
109
+ line-height: 1.3;
110
+ letter-spacing: 0;
111
+ }
112
+
113
+ @utility text-dense-14 {
114
+ font-size: 0.875rem;
115
+ line-height: 1.3;
116
+ letter-spacing: 0;
117
+ }
118
+
119
+ @utility text-dense-18-compact {
120
+ font-size: 1.125rem;
121
+ line-height: 1.2;
122
+ letter-spacing: 0;
123
+ }
124
+
125
+ @utility text-dense-16-compact {
126
+ font-size: 1rem;
127
+ line-height: 1.2;
128
+ letter-spacing: 0;
129
+ }
130
+
131
+ @utility text-dense-14-compact {
132
+ font-size: 0.875rem;
133
+ line-height: 1.2;
134
+ letter-spacing: 0;
135
+ }
136
+
137
+ @utility text-oneline-18 {
138
+ font-size: 1.125rem;
139
+ line-height: 1;
140
+ letter-spacing: 0.02em;
141
+ }
142
+
143
+ @utility text-oneline-16 {
144
+ font-size: 1rem;
145
+ line-height: 1;
146
+ letter-spacing: 0.02em;
147
+ }
148
+
149
+ @utility text-oneline-14 {
150
+ font-size: 0.875rem;
151
+ line-height: 1;
152
+ letter-spacing: 0.02em;
153
+ }
154
+
155
+ @utility text-mono-18 {
156
+ font-size: 1.125rem;
157
+ line-height: 1.5;
158
+ letter-spacing: 0;
159
+ }
160
+
161
+ @utility text-mono-16 {
162
+ font-size: 1rem;
163
+ line-height: 1.5;
164
+ letter-spacing: 0;
165
+ }
166
+
167
+ @utility text-mono-14 {
168
+ font-size: 0.875rem;
169
+ line-height: 1.5;
170
+ letter-spacing: 0;
171
+ }
@@ -0,0 +1,32 @@
1
+ @import "./base/initialize.css";
2
+ @import "./base/color/palette.css";
3
+ @import "./base/color/semantic.css";
4
+ @import "./base/color/status.css";
5
+ @import "./base/color/utility.css";
6
+ @import "./base/typography/font.css";
7
+ @import "./base/typography/utility.css";
8
+ @import "./base/style/animation.css";
9
+ @import "./base/style/radius.css";
10
+ @import "./base/style/shadow.css";
11
+ @import "./base/style/z-index.css";
12
+
13
+ @custom-variant dark (&:where([data-mode="dark"], [data-mode="dark"] *));
14
+
15
+ @utility duration-instant {
16
+ transition-duration: var(--duration-instant);
17
+ }
18
+ @utility duration-transition {
19
+ transition-duration: var(--duration-transition);
20
+ }
21
+ @utility duration-enter {
22
+ transition-duration: var(--duration-enter);
23
+ }
24
+
25
+ @media (prefers-reduced-motion: reduce) {
26
+ :root {
27
+ --duration-instant: 1ms;
28
+ --duration-transition: 1ms;
29
+ --duration-enter: 1ms;
30
+ --ease-emphasized: var(--ease-standard);
31
+ }
32
+ }
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Theme Color
3
+ * ├─ Base — Slate
4
+ * ├─ Primary — Sky
5
+ * ├─ Secondary — Lime
6
+ * └─ Link — Indigo
7
+ */
8
+
9
+ :root {
10
+ --r-base-bg: var(--c-slate-bg);
11
+ --r-base-bg-subtle: var(--c-slate-bg-subtle);
12
+ --r-base-bg-muted: var(--c-slate-bg-muted);
13
+ --r-base-bg-selected: var(--c-slate-bg-selected);
14
+ --r-base-bg-solid: var(--c-slate-bg-solid);
15
+ --r-base-border-subtle: var(--c-slate-border-subtle);
16
+ --r-base-border-muted: var(--c-slate-border-muted);
17
+ --r-base-border-selected: var(--c-slate-border-selected);
18
+ --r-base-border: var(--c-slate-border);
19
+ --r-base-border-solid: var(--c-slate-border-solid);
20
+ --r-base-fg-strong: var(--c-slate-fg-strong);
21
+ --r-base-fg: var(--c-slate-fg);
22
+ --r-base-fg-muted: var(--c-slate-fg-muted);
23
+ --r-base-fg-subtle: var(--c-slate-fg-subtle);
24
+ --r-base-fg-contrast: var(--c-slate-fg-contrast);
25
+ --r-base-focus-ring: var(--c-slate-focus-ring);
26
+
27
+ --r-primary-bg: var(--c-sky-bg);
28
+ --r-primary-bg-subtle: var(--c-sky-bg-subtle);
29
+ --r-primary-bg-muted: var(--c-sky-bg-muted);
30
+ --r-primary-bg-selected: var(--c-sky-bg-selected);
31
+ --r-primary-bg-solid: var(--c-sky-bg-solid);
32
+ --r-primary-border-subtle: var(--c-sky-border-subtle);
33
+ --r-primary-border-muted: var(--c-sky-border-muted);
34
+ --r-primary-border-selected: var(--c-sky-border-selected);
35
+ --r-primary-border: var(--c-sky-border);
36
+ --r-primary-border-solid: var(--c-sky-border-solid);
37
+ --r-primary-fg-strong: var(--c-sky-fg-strong);
38
+ --r-primary-fg: var(--c-sky-fg);
39
+ --r-primary-fg-muted: var(--c-sky-fg-muted);
40
+ --r-primary-fg-subtle: var(--c-sky-fg-subtle);
41
+ --r-primary-fg-contrast: var(--c-sky-fg-contrast);
42
+ --r-primary-focus-ring: var(--c-sky-focus-ring);
43
+
44
+ --r-secondary-bg: var(--c-lime-bg);
45
+ --r-secondary-bg-subtle: var(--c-lime-bg-subtle);
46
+ --r-secondary-bg-muted: var(--c-lime-bg-muted);
47
+ --r-secondary-bg-selected: var(--c-lime-bg-selected);
48
+ --r-secondary-bg-solid: var(--c-lime-bg-solid);
49
+ --r-secondary-border-subtle: var(--c-lime-border-subtle);
50
+ --r-secondary-border-muted: var(--c-lime-border-muted);
51
+ --r-secondary-border-selected: var(--c-lime-border-selected);
52
+ --r-secondary-border: var(--c-lime-border);
53
+ --r-secondary-border-solid: var(--c-lime-border-solid);
54
+ --r-secondary-fg-strong: var(--c-lime-fg-strong);
55
+ --r-secondary-fg: var(--c-lime-fg);
56
+ --r-secondary-fg-muted: var(--c-lime-fg-muted);
57
+ --r-secondary-fg-subtle: var(--c-lime-fg-subtle);
58
+ --r-secondary-fg-contrast: var(--c-lime-fg-contrast);
59
+ --r-secondary-focus-ring: var(--c-lime-focus-ring);
60
+
61
+ --r-link-fg: var(--c-indigo-fg-muted);
62
+ --r-link-fg-strong: var(--c-indigo-fg);
63
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Style preset: dense
3
+ * Minimal rounding and shallow elevation for information-dense interfaces.
4
+ *
5
+ * Preset
6
+ * ├─ Spacing
7
+ * │ └─ base step for the whole spacing scale
8
+ * ├─ Radius
9
+ * │ └─ tight / control / surface / overlay / pill
10
+ * ├─ Shadow — one step of the base scale per role, light and dark alike
11
+ * │ ├─ flat / raised / floating / overlay
12
+ * │ └─ hover variants for flat / raised / floating
13
+ * ├─ Easing
14
+ * │ └─ standard / emphasized
15
+ * └─ Duration
16
+ * └─ instant / transition / enter
17
+ */
18
+ @theme {
19
+ /* Tighter than the default so information-dense screens fit more. */
20
+ --spacing: 0.2rem;
21
+
22
+ --radius-tight: var(--radius-xs);
23
+ --radius-control: var(--radius-xs);
24
+ --radius-surface: var(--radius-sm);
25
+ --radius-overlay: var(--radius-md);
26
+ --radius-pill: var(--radius-full);
27
+
28
+ --shadow-flat: none;
29
+ --shadow-flat-hover: var(--shadow-xs);
30
+ --shadow-raised: var(--shadow-xs);
31
+ --shadow-raised-hover: var(--shadow-sm);
32
+ --shadow-floating: var(--shadow-sm);
33
+ --shadow-floating-hover: var(--shadow-md);
34
+ --shadow-overlay: var(--shadow-lg);
35
+
36
+ --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
37
+ --ease-emphasized: cubic-bezier(0.4, 0, 0.2, 1);
38
+ }
39
+
40
+ @theme static {
41
+ --duration-instant: 100ms;
42
+ --duration-transition: 140ms;
43
+ --duration-enter: 200ms;
44
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Style preset: editorial
3
+ * Sharp corners and the shallowest end of the scale. Hierarchy is
4
+ * expressed with hairline edges rather than elevation.
5
+ *
6
+ * Preset
7
+ * ├─ Spacing
8
+ * │ └─ base step for the whole spacing scale
9
+ * ├─ Radius
10
+ * │ └─ tight / control / surface / overlay / pill
11
+ * ├─ Shadow — one step of the base scale per role, light and dark alike
12
+ * │ ├─ flat / raised / floating / overlay
13
+ * │ └─ hover variants for flat / raised / floating
14
+ * ├─ Easing
15
+ * │ └─ standard / emphasized
16
+ * └─ Duration
17
+ * └─ instant / transition / enter
18
+ */
19
+ @theme {
20
+ /* Slightly airier, to give bordered blocks room to breathe. */
21
+ --spacing: 0.28rem;
22
+
23
+ --radius-tight: 0;
24
+ --radius-control: var(--radius-xs);
25
+ --radius-surface: 0;
26
+ --radius-overlay: var(--radius-xs);
27
+ --radius-pill: var(--radius-xs);
28
+
29
+ --shadow-flat: none;
30
+ --shadow-flat-hover: none;
31
+ --shadow-raised: none;
32
+ --shadow-raised-hover: var(--shadow-2xs);
33
+ --shadow-floating: var(--shadow-xs);
34
+ --shadow-floating-hover: var(--shadow-sm);
35
+ --shadow-overlay: var(--shadow-md);
36
+
37
+ --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
38
+ --ease-emphasized: cubic-bezier(0.3, 0, 0.1, 1);
39
+ }
40
+
41
+ @theme static {
42
+ --duration-instant: 120ms;
43
+ --duration-transition: 160ms;
44
+ --duration-enter: 240ms;
45
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Style preset: neutral
3
+ * A balanced default. Moderate rounding with a conventional elevation
4
+ * scale.
5
+ *
6
+ * Preset
7
+ * ├─ Spacing
8
+ * │ └─ base step for the whole spacing scale
9
+ * ├─ Radius
10
+ * │ └─ tight / control / surface / overlay / pill
11
+ * ├─ Shadow — one step of the base scale per role, light and dark alike
12
+ * │ ├─ flat / raised / floating / overlay
13
+ * │ └─ hover variants for flat / raised / floating
14
+ * ├─ Easing
15
+ * │ └─ standard / emphasized
16
+ * └─ Duration
17
+ * └─ instant / transition / enter
18
+ */
19
+ @theme {
20
+ /* The Tailwind default. */
21
+ --spacing: 0.25rem;
22
+
23
+ --radius-tight: var(--radius-xs);
24
+ --radius-control: var(--radius-sm);
25
+ --radius-surface: var(--radius-lg);
26
+ --radius-overlay: var(--radius-xl);
27
+ --radius-pill: var(--radius-full);
28
+
29
+ --shadow-flat: var(--shadow-xs);
30
+ --shadow-flat-hover: var(--shadow-sm);
31
+ --shadow-raised: var(--shadow-sm);
32
+ --shadow-raised-hover: var(--shadow-md);
33
+ --shadow-floating: var(--shadow-md);
34
+ --shadow-floating-hover: var(--shadow-lg);
35
+ --shadow-overlay: var(--shadow-xl);
36
+
37
+ --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
38
+ --ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
39
+ }
40
+
41
+ @theme static {
42
+ --duration-instant: 150ms;
43
+ --duration-transition: 200ms;
44
+ --duration-enter: 300ms;
45
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Style preset: soft
3
+ * Generous rounding and pronounced elevation.
4
+ *
5
+ * Preset
6
+ * ├─ Spacing
7
+ * │ └─ base step for the whole spacing scale
8
+ * ├─ Radius
9
+ * │ └─ tight / control / surface / overlay / pill
10
+ * ├─ Shadow — one step of the base scale per role, light and dark alike
11
+ * │ ├─ flat / raised / floating / overlay
12
+ * │ └─ hover variants for flat / raised / floating
13
+ * ├─ Easing
14
+ * │ └─ standard / emphasized
15
+ * └─ Duration
16
+ * └─ instant / transition / enter
17
+ */
18
+ @theme {
19
+ /* Airier still, matching the generous rounding. */
20
+ --spacing: 0.3rem;
21
+
22
+ --radius-tight: var(--radius-sm);
23
+ --radius-control: var(--radius-lg);
24
+ --radius-surface: var(--radius-2xl);
25
+ --radius-overlay: var(--radius-3xl);
26
+ --radius-pill: var(--radius-full);
27
+
28
+ --shadow-flat: var(--shadow-sm);
29
+ --shadow-flat-hover: var(--shadow-md);
30
+ --shadow-raised: var(--shadow-md);
31
+ --shadow-raised-hover: var(--shadow-lg);
32
+ --shadow-floating: var(--shadow-lg);
33
+ --shadow-floating-hover: var(--shadow-xl);
34
+ --shadow-overlay: var(--shadow-2xl);
35
+
36
+ --ease-standard: cubic-bezier(0.25, 0.1, 0.25, 1);
37
+ --ease-emphasized: cubic-bezier(0.34, 1.2, 0.64, 1);
38
+ }
39
+
40
+ @theme static {
41
+ --duration-instant: 180ms;
42
+ --duration-transition: 250ms;
43
+ --duration-enter: 400ms;
44
+ }