astralkit 0.5.0 → 0.7.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/CHANGELOG.md +21 -0
- package/LICENSE +73 -34
- package/README.md +31 -1
- package/astralkit-theme-v4.css +120 -66
- package/astralkit-theme.css +120 -66
- package/astralkit-utilities.css +587 -2
- package/lib/presets/appearance-presets.d.ts +12 -0
- package/lib/presets/appearance-presets.js +102 -0
- package/lib/presets/chart-palettes.d.ts +29 -0
- package/lib/presets/chart-palettes.js +99 -0
- package/lib/presets/dials.d.ts +31 -0
- package/lib/presets/dials.js +330 -0
- package/lib/presets/font-pairings.d.ts +29 -0
- package/lib/presets/font-pairings.js +123 -0
- package/lib/presets/fonts.d.ts +16 -0
- package/lib/presets/fonts.js +76 -0
- package/lib/presets/index.d.ts +7 -0
- package/lib/presets/index.js +24 -0
- package/lib/presets/materials.d.ts +15 -0
- package/lib/presets/materials.js +245 -0
- package/lib/presets/theme-palettes.d.ts +90 -0
- package/lib/presets/theme-palettes.js +720 -0
- package/lib/theme-context.d.ts +17 -0
- package/lib/theme-context.js +33 -0
- package/package.json +9 -3
- package/palettes.css +961 -90
- package/primitives/animations.css +43 -1
- package/primitives/effects.css +373 -115
- package/tailwind.cjs +11 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@ All notable changes to the `astralkit` SDK package.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.7.0] — 2026-08-22
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Material utilities** — `ak-material-surface`, `ak-material-control`, refined `ak-dark-material`: the opaque elevated material surfaces the kanban/core component sets use for modals, drawers, and floating controls. Components built against these rendered **transparent overlays** on 0.6.0 (found live via the kanban-01 task drawer).
|
|
12
|
+
- **Semantic font utilities** — `ak-font-heading`, `ak-font-label`, `ak-font-ui`, `ak-font-ui-strong`, `ak-font-body`, backed by new font-dial variables (`--font-ak-heading` etc., with the previous literal stacks as fallbacks) so a theme can re-font at runtime.
|
|
13
|
+
- **Radix animation helpers** — `ak-overlay-anim`, `ak-pop-anim`, `ak-sheet-anim`, `ak-accordion-anim`, `ak-collapsible-anim`.
|
|
14
|
+
- **Control primitives** — `ak-control-track`, `ak-control-thumb`, `ak-control-knob`; plus `ak-button-group`(+`-separator`), `ak-scrollbar`, `ak-quiet-hover`.
|
|
15
|
+
- **`astralkit/presets` export** — appearance presets, theme palettes, chart palettes, font pairings, dials, and materials as data (the role system + font library per the no-font-dials-in-builder decision).
|
|
16
|
+
- **`ak-hover-shimmer`** animation (+ `ak-hover-shimmer-sweep` keyframes).
|
|
17
|
+
- **Error-role hover tokens** — `ak-error-hover`, `ak-danger-hover`.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- `font-ak-sans`/`-serif`/`-mono` (v3 plugin) are now var-driven (`var(--font-ak-sans, Inter)` …) so containers can re-font at runtime; literal stacks remain as fallbacks — no visual change for existing consumers.
|
|
21
|
+
- `ak-focus-ring` implementation refined.
|
|
22
|
+
|
|
23
|
+
## [0.6.0] — 2026-07-06
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **`astralkit/theme-context` export** — `AkThemeProvider` / `useAkTheme`, the React context that propagates per-component dark mode across Radix portal boundaries (Dialog/DropdownMenu/Popover content portals to `document.body`, escaping the `data-ak-dark-*` attribute scope). Installable components now import this from the SDK instead of shipping a local provider file. Adds `react >= 18` as an **optional** peer dependency — CSS-only consumers are unaffected.
|
|
27
|
+
- **Sidebar theming layer** (authored post-0.5.0, first published here): `primitives/sidebar.css`, `ak-dark-material` / `ak-mirror-shimmer` and `ak-sidebar-*` utilities, plus the gradient / selection / inverse / surface-container token extensions the themed sidebar set depends on.
|
|
28
|
+
|
|
8
29
|
## [0.5.0] — 2026-06-12
|
|
9
30
|
|
|
10
31
|
### Added (Material 3 role grammar)
|
package/LICENSE
CHANGED
|
@@ -1,34 +1,73 @@
|
|
|
1
|
-
AstralKit License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025-2026 Blue Beacon Creative LLC.
|
|
4
|
-
|
|
5
|
-
This
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
1
|
+
AstralKit SDK License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-2026 Blue Beacon Creative LLC.
|
|
4
|
+
|
|
5
|
+
This package contains the AstralKit design token system, utility classes, and
|
|
6
|
+
component primitives (the "SDK"). It does NOT include AstralKit components,
|
|
7
|
+
boosters, workflows, or launchpads, which are licensed separately (see below).
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
1. FREE USE GRANT
|
|
11
|
+
|
|
12
|
+
You may use the SDK free of charge, without an account, in any number of
|
|
13
|
+
projects — personal or commercial, closed source or open source, for yourself
|
|
14
|
+
or for clients. No attribution is required. There is no requirement that your
|
|
15
|
+
project also use AstralKit components.
|
|
16
|
+
|
|
17
|
+
You may modify the SDK for use within your own projects.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
2. DESIGN TOKENS ARE MIT LICENSED
|
|
21
|
+
|
|
22
|
+
The design token layer — the CSS custom properties defining colors, type and
|
|
23
|
+
spacing scales, radii, sizes, shadows, and motion — is additionally available
|
|
24
|
+
under the MIT License, distributed as `astralkit-tokens.css` via
|
|
25
|
+
https://cdn.astralkit.com. Use of that file is governed by MIT terms only, and
|
|
26
|
+
nothing in section 3 restricts it.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
3. RESTRICTIONS
|
|
30
|
+
|
|
31
|
+
You may NOT, without express prior written consent of Blue Beacon Creative LLC:
|
|
32
|
+
|
|
33
|
+
a. Repackage or redistribute the SDK — in whole or in substantial part — as a
|
|
34
|
+
standalone design system, token library, UI kit, theme, or CSS framework,
|
|
35
|
+
whether free or paid. (Using the SDK inside a website or application you
|
|
36
|
+
build is expressly permitted; redistributing it AS the product is not.)
|
|
37
|
+
|
|
38
|
+
b. Build a product that competes with AstralKit using the SDK's component
|
|
39
|
+
primitives or CSS architecture.
|
|
40
|
+
|
|
41
|
+
These restrictions do not apply to `astralkit-tokens.css` (see section 2).
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
4. AI AND MACHINE LEARNING
|
|
45
|
+
|
|
46
|
+
Use of the SDK as training data for AI systems, machine learning models, and
|
|
47
|
+
large language models is permitted. AstralKit is designed to be agent-native;
|
|
48
|
+
we want AI tools to know this design language.
|
|
49
|
+
|
|
50
|
+
This permission covers the SDK only. AstralKit components, boosters, workflows,
|
|
51
|
+
and launchpads are excluded — see their license.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
5. COMPONENTS, BOOSTERS, WORKFLOWS, AND LAUNCHPADS
|
|
55
|
+
|
|
56
|
+
Content installed via the AstralKit CLI or MCP server — components, boosters,
|
|
57
|
+
workflows, and launchpads — is NOT covered by this license. It is governed by
|
|
58
|
+
the AstralKit End User License Agreement at https://astralkit.com/license,
|
|
59
|
+
which restricts redistribution, competing use, and AI training.
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
6. NO WARRANTY
|
|
63
|
+
|
|
64
|
+
THE SDK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
65
|
+
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
66
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL BLUE BEACON CREATIVE
|
|
67
|
+
LLC BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
68
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
69
|
+
SDK OR THE USE OR OTHER DEALINGS IN THE SDK.
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
Full terms: https://astralkit.com/license
|
|
73
|
+
Contact: hello@astralkit.com
|
package/README.md
CHANGED
|
@@ -66,6 +66,36 @@ export function Button({ className, ...props }) {
|
|
|
66
66
|
- [CSS Variables Reference](https://astralkit.com/documentation/css-variables-reference)
|
|
67
67
|
- [Theming & Customization](https://astralkit.com/documentation/theming-customization)
|
|
68
68
|
|
|
69
|
+
## CDN (no build step)
|
|
70
|
+
|
|
71
|
+
For plain HTML pages, load the CSS directly — no npm, no Tailwind, no build:
|
|
72
|
+
|
|
73
|
+
```html
|
|
74
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
75
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
76
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=DM+Serif+Display&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
77
|
+
<link rel="stylesheet" href="https://cdn.astralkit.com/v0.6.0/astralkit.min.css">
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
| CDN file | Contents |
|
|
81
|
+
|---|---|
|
|
82
|
+
| `astralkit.min.css` | Tokens + `ak-*` utilities + component primitives |
|
|
83
|
+
| `astralkit-tokens.min.css` | Design tokens only (**MIT licensed**) |
|
|
84
|
+
| `astralkit-palettes.min.css` | Curated palettes — set `data-ak-theme="…"` |
|
|
85
|
+
|
|
86
|
+
Dark mode: `data-theme="dark"` on `<html>`. Fonts are intentionally not bundled
|
|
87
|
+
(an `@import` inside CSS is render-blocking) — add the `<link>` tags above.
|
|
88
|
+
|
|
69
89
|
## License
|
|
70
90
|
|
|
71
|
-
|
|
91
|
+
**This SDK is free to use** — any project, commercial or personal, closed or
|
|
92
|
+
open source, no account required. The **design tokens are MIT licensed**
|
|
93
|
+
(`astralkit-tokens.css`). Training AI models on this SDK is permitted.
|
|
94
|
+
|
|
95
|
+
You may not repackage or redistribute the SDK as a competing design system,
|
|
96
|
+
token library, or UI kit.
|
|
97
|
+
|
|
98
|
+
AstralKit components, boosters, workflows, and launchpads are **licensed
|
|
99
|
+
separately** under the [AstralKit EULA](https://astralkit.com/license).
|
|
100
|
+
|
|
101
|
+
Full terms: [`LICENSE`](./LICENSE) · [astralkit.com/license](https://astralkit.com/license)
|
package/astralkit-theme-v4.css
CHANGED
|
@@ -26,31 +26,35 @@
|
|
|
26
26
|
--color-ak-neutral-950: #0a0a0a;
|
|
27
27
|
|
|
28
28
|
/* ── Primary scale (full 11-shade ramp) ── */
|
|
29
|
-
--color-ak-primary-50: #
|
|
30
|
-
--color-ak-primary-100: #
|
|
31
|
-
--color-ak-primary-200: #
|
|
32
|
-
--color-ak-primary-300: #
|
|
33
|
-
--color-ak-primary-400: #
|
|
34
|
-
--color-ak-primary-500: #
|
|
35
|
-
--color-ak-primary-600: #
|
|
36
|
-
--color-ak-primary-700: #
|
|
37
|
-
--color-ak-primary-800: #
|
|
38
|
-
--color-ak-primary-900: #
|
|
39
|
-
--color-ak-primary-950: #
|
|
29
|
+
--color-ak-primary-50: #f6f6f3;
|
|
30
|
+
--color-ak-primary-100: #eeeeea;
|
|
31
|
+
--color-ak-primary-200: #deded6;
|
|
32
|
+
--color-ak-primary-300: #c8c8bd;
|
|
33
|
+
--color-ak-primary-400: #8a8a84;
|
|
34
|
+
--color-ak-primary-500: #55564f;
|
|
35
|
+
--color-ak-primary-600: #3b3c37;
|
|
36
|
+
--color-ak-primary-700: #272823;
|
|
37
|
+
--color-ak-primary-800: #171814;
|
|
38
|
+
--color-ak-primary-900: #0b0b0b;
|
|
39
|
+
--color-ak-primary-950: #050505;
|
|
40
40
|
|
|
41
41
|
/* ── Primary action colors ── */
|
|
42
|
-
--color-ak-primary: #
|
|
43
|
-
--color-ak-primary-hover: #
|
|
44
|
-
--color-ak-primary-active: #
|
|
42
|
+
--color-ak-primary: #0b0b0b;
|
|
43
|
+
--color-ak-primary-hover: #1f1f1d;
|
|
44
|
+
--color-ak-primary-active: #33332f;
|
|
45
|
+
--color-ak-primary-outline: var(--color-ak-primary-400);
|
|
46
|
+
--color-ak-secondary-outline: var(--color-ak-primary-400);
|
|
47
|
+
--color-ak-primary-selection: #1f1f1d;
|
|
48
|
+
--color-ak-on-primary-selection: var(--color-ak-on-primary);
|
|
45
49
|
|
|
46
50
|
/* ── Semantic color aliases ── */
|
|
47
51
|
--color-ak-bg: #ffffff;
|
|
48
|
-
--color-ak-surface: #
|
|
49
|
-
--color-ak-surface-2: #
|
|
50
|
-
--color-ak-surface-3: #
|
|
51
|
-
--color-ak-surface-4: #
|
|
52
|
-
--color-ak-hover: #
|
|
53
|
-
--color-ak-active: #
|
|
52
|
+
--color-ak-surface: #ffffff;
|
|
53
|
+
--color-ak-surface-2: #eeeeea;
|
|
54
|
+
--color-ak-surface-3: #e7e7e0;
|
|
55
|
+
--color-ak-surface-4: #ddddd6;
|
|
56
|
+
--color-ak-hover: #f3f3f0;
|
|
57
|
+
--color-ak-active: #ecece6;
|
|
54
58
|
--color-ak-elevated: #ffffff;
|
|
55
59
|
--color-ak-surface-raised: #ffffff;
|
|
56
60
|
--color-ak-surface-raised-soft: rgba(255, 255, 255, 0.78);
|
|
@@ -66,7 +70,7 @@
|
|
|
66
70
|
(e.g. Pulse: ink CTAs via primary, volt-lime selection via accent). */
|
|
67
71
|
--color-ak-accent: var(--color-ak-primary);
|
|
68
72
|
--color-ak-on-accent: var(--color-ak-on-primary);
|
|
69
|
-
--color-ak-accent-soft:
|
|
73
|
+
--color-ak-accent-soft: #f8f8f5;
|
|
70
74
|
/* M3 names as alias vars (follow their targets in dark automatically) */
|
|
71
75
|
--color-ak-surface-container-lowest: var(--color-ak-bg);
|
|
72
76
|
--color-ak-surface-container-low: var(--color-ak-surface);
|
|
@@ -79,6 +83,8 @@
|
|
|
79
83
|
--color-ak-outline-variant: var(--color-ak-border-subtle);
|
|
80
84
|
--color-ak-primary-container: var(--color-ak-primary-subtle);
|
|
81
85
|
--color-ak-on-primary-container: var(--color-ak-primary-900);
|
|
86
|
+
--color-ak-selection-ink: var(--color-ak-on-primary-container);
|
|
87
|
+
--color-ak-primary-container-emphasis: var(--color-ak-selection-ink);
|
|
82
88
|
--color-ak-secondary: var(--color-ak-accent);
|
|
83
89
|
--color-ak-on-secondary: var(--color-ak-on-accent);
|
|
84
90
|
--color-ak-secondary-container: var(--color-ak-accent-soft);
|
|
@@ -87,33 +93,34 @@
|
|
|
87
93
|
--color-ak-tertiary-container: var(--color-ak-info-subtle);
|
|
88
94
|
--color-ak-on-tertiary-container: var(--color-ak-info-text);
|
|
89
95
|
--color-ak-error: var(--color-ak-danger);
|
|
96
|
+
--color-ak-error-hover: var(--color-ak-danger-hover);
|
|
90
97
|
--color-ak-error-container: var(--color-ak-danger-subtle);
|
|
91
98
|
--color-ak-on-error-container: var(--color-ak-danger-text);
|
|
92
99
|
--color-ak-scrim: var(--color-ak-overlay);
|
|
93
100
|
--color-ak-highlight-soft: rgba(255, 255, 255, 0.45);
|
|
94
101
|
--color-ak-highlight-strong: rgba(255, 255, 255, 0.72);
|
|
95
|
-
--color-ak-skeleton-base: #
|
|
102
|
+
--color-ak-skeleton-base: #eeeeea;
|
|
96
103
|
--color-ak-skeleton-shine: rgba(255, 255, 255, 0.72);
|
|
97
104
|
--color-ak-overlay: rgba(0, 0, 0, 0.5);
|
|
98
105
|
--color-ak-on-primary: #ffffff;
|
|
99
|
-
--color-ak-primary-subtle: #
|
|
100
|
-
--color-ak-primary-subtle-hover: #
|
|
106
|
+
--color-ak-primary-subtle: #eeeeea;
|
|
107
|
+
--color-ak-primary-subtle-hover: #deded6;
|
|
101
108
|
|
|
102
109
|
/* ── Semantic text ── */
|
|
103
|
-
--color-ak-text: #
|
|
104
|
-
--color-ak-text-emphasis: #
|
|
105
|
-
--color-ak-text-secondary: #
|
|
106
|
-
--color-ak-text-muted: #
|
|
107
|
-
--color-ak-text-disabled: #
|
|
110
|
+
--color-ak-text: #0b0b0b;
|
|
111
|
+
--color-ak-text-emphasis: #171814;
|
|
112
|
+
--color-ak-text-secondary: #55564f;
|
|
113
|
+
--color-ak-text-muted: #8a8a84;
|
|
114
|
+
--color-ak-text-disabled: #c8c8bd;
|
|
108
115
|
--color-ak-text-inverse: #ffffff;
|
|
109
|
-
--color-ak-text-link: #
|
|
110
|
-
--color-ak-text-placeholder:#
|
|
116
|
+
--color-ak-text-link: #0b0b0b;
|
|
117
|
+
--color-ak-text-placeholder:#6f7068;
|
|
111
118
|
|
|
112
119
|
/* ── Semantic border ── */
|
|
113
|
-
--color-ak-border: #
|
|
114
|
-
--color-ak-border-subtle: #
|
|
115
|
-
--color-ak-border-strong: #
|
|
116
|
-
--color-ak-border-focus: #
|
|
120
|
+
--color-ak-border: #deded6;
|
|
121
|
+
--color-ak-border-subtle: #e8e8e2;
|
|
122
|
+
--color-ak-border-strong: #55564f;
|
|
123
|
+
--color-ak-border-focus: #0b0b0b;
|
|
117
124
|
|
|
118
125
|
/* ── Status colors ── */
|
|
119
126
|
--color-ak-success: #16a34a;
|
|
@@ -123,6 +130,7 @@
|
|
|
123
130
|
--color-ak-warning-subtle: #fffbeb;
|
|
124
131
|
--color-ak-warning-text: #b45309;
|
|
125
132
|
--color-ak-danger: #dc2626;
|
|
133
|
+
--color-ak-danger-hover: #b91c1c;
|
|
126
134
|
--color-ak-danger-subtle: #fef2f2;
|
|
127
135
|
--color-ak-danger-text: #b91c1c;
|
|
128
136
|
--color-ak-info: #2563eb;
|
|
@@ -133,6 +141,9 @@
|
|
|
133
141
|
|
|
134
142
|
/* ── Font families ── */
|
|
135
143
|
--font-ak-sans: 'Inter', system-ui, -apple-system, sans-serif;
|
|
144
|
+
--font-ak-heading: var(--font-ak-sans);
|
|
145
|
+
--font-ak-ui: var(--font-ak-sans);
|
|
146
|
+
--font-ak-label: var(--font-ak-sans);
|
|
136
147
|
--font-ak-serif: 'DM Serif Display', Georgia, serif;
|
|
137
148
|
--font-ak-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
|
|
138
149
|
|
|
@@ -324,15 +335,23 @@
|
|
|
324
335
|
--spacing-ak-fl-xl-3xl: clamp(3rem, 0.57rem + 8.33vw, 9rem);
|
|
325
336
|
|
|
326
337
|
/* ── Border Radius ── */
|
|
327
|
-
--
|
|
338
|
+
/* One-knob radius system: every step derives from --ak-radius, so a theme,
|
|
339
|
+
palette, or container can re-radius the whole tree by setting ONE variable
|
|
340
|
+
(default 0.5rem reproduces the historic fixed values exactly).
|
|
341
|
+
--radius-ak-control-sm is the clamped radius for compact controls - it
|
|
342
|
+
tracks the knob but caps at 10px so small elements never go pill-shaped
|
|
343
|
+
when the knob is cranked. */
|
|
344
|
+
--ak-radius: 0.5rem;
|
|
345
|
+
--radius-ak-xs: calc(var(--ak-radius) * 0.25);
|
|
328
346
|
--radius-ak-none: 0;
|
|
329
|
-
--radius-ak-sm: 0.
|
|
330
|
-
--radius-ak-md:
|
|
331
|
-
--radius-ak-lg:
|
|
332
|
-
--radius-ak-xl:
|
|
333
|
-
--radius-ak-2xl:
|
|
334
|
-
--radius-ak-3xl:
|
|
347
|
+
--radius-ak-sm: calc(var(--ak-radius) * 0.5);
|
|
348
|
+
--radius-ak-md: var(--ak-radius);
|
|
349
|
+
--radius-ak-lg: calc(var(--ak-radius) * 1.5);
|
|
350
|
+
--radius-ak-xl: calc(var(--ak-radius) * 2);
|
|
351
|
+
--radius-ak-2xl: calc(var(--ak-radius) * 3);
|
|
352
|
+
--radius-ak-3xl: calc(var(--ak-radius) * 4);
|
|
335
353
|
--radius-ak-full: 9999px;
|
|
354
|
+
--radius-ak-control-sm: min(var(--ak-radius), 0.625rem);
|
|
336
355
|
|
|
337
356
|
/* ── Shadows ── */
|
|
338
357
|
--shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
|
|
@@ -535,7 +554,7 @@
|
|
|
535
554
|
--color-ak-chart-6: #edc949;
|
|
536
555
|
|
|
537
556
|
/* ── Form input border radius ── */
|
|
538
|
-
--radius-ak-input:
|
|
557
|
+
--radius-ak-input: calc(var(--ak-radius) * 1.25);
|
|
539
558
|
|
|
540
559
|
/* ── Sidebar widths ── */
|
|
541
560
|
--width-ak-sidebar-collapsed: 5rem;
|
|
@@ -604,13 +623,25 @@
|
|
|
604
623
|
--color-ak-surface-4: #2c2d30;
|
|
605
624
|
--color-ak-inverse-surface: #f4f4f5;
|
|
606
625
|
--color-ak-inverse-on-surface: #111113;
|
|
607
|
-
--color-ak-on-error: #
|
|
626
|
+
--color-ak-on-error: #ffffff;
|
|
627
|
+
/* Alias redeclarations: var() chains substitute where DEFINED, so the
|
|
628
|
+
:root aliases froze against LIGHT danger. Redeclaring here re-substitutes
|
|
629
|
+
against the dark danger family. */
|
|
630
|
+
--color-ak-error: var(--color-ak-danger);
|
|
631
|
+
--color-ak-error-hover: var(--color-ak-danger-hover);
|
|
632
|
+
--color-ak-error-container: var(--color-ak-danger-subtle);
|
|
633
|
+
--color-ak-on-error-container: var(--color-ak-danger-text);
|
|
608
634
|
--color-ak-on-tertiary: #111113;
|
|
609
635
|
--color-ak-hover: rgba(255,255,255,0.04);
|
|
610
636
|
--color-ak-active: rgba(255,255,255,0.08);
|
|
611
637
|
--color-ak-elevated: #252628;
|
|
612
638
|
--color-ak-surface-raised: #1e1f21;
|
|
613
639
|
--color-ak-surface-raised-soft: rgba(255,255,255,0.04);
|
|
640
|
+
--color-ak-surface-container-lowest: #1e1f21;
|
|
641
|
+
--color-ak-surface-container-low: #252628;
|
|
642
|
+
--color-ak-surface-container: #2c2d30;
|
|
643
|
+
--color-ak-surface-container-high: #333436;
|
|
644
|
+
--color-ak-surface-container-highest: #3a3b3d;
|
|
614
645
|
--color-ak-surface-glass: rgba(255,255,255,0.05);
|
|
615
646
|
--color-ak-surface-glass-strong: rgba(255,255,255,0.08);
|
|
616
647
|
--color-ak-highlight-soft: rgba(255,255,255,0.06);
|
|
@@ -619,8 +650,8 @@
|
|
|
619
650
|
--color-ak-skeleton-shine: rgba(255,255,255,0.06);
|
|
620
651
|
--color-ak-overlay: rgba(0,0,0,0.7);
|
|
621
652
|
--color-ak-on-primary: #111113;
|
|
622
|
-
--color-ak-primary-subtle: rgba(
|
|
623
|
-
--color-ak-primary-subtle-hover: rgba(
|
|
653
|
+
--color-ak-primary-subtle: rgba(255, 255, 255, 0.10);
|
|
654
|
+
--color-ak-primary-subtle-hover: rgba(255, 255, 255, 0.16);
|
|
624
655
|
|
|
625
656
|
/* ── Text ── */
|
|
626
657
|
--color-ak-text: #f4f4f5;
|
|
@@ -629,31 +660,53 @@
|
|
|
629
660
|
--color-ak-text-muted: #71717a;
|
|
630
661
|
--color-ak-text-disabled: #52525b;
|
|
631
662
|
--color-ak-text-inverse: #111113;
|
|
632
|
-
--color-ak-text-link: #
|
|
663
|
+
--color-ak-text-link: #f4f4f5;
|
|
633
664
|
--color-ak-text-placeholder:#a1a1aa;
|
|
665
|
+
--color-ak-on-surface: #f4f4f5;
|
|
666
|
+
--color-ak-on-surface-variant: #a1a1aa;
|
|
634
667
|
|
|
635
668
|
/* ── Borders (alpha — adapts to any surface) ── */
|
|
636
669
|
--color-ak-border: rgba(255, 255, 255, 0.10);
|
|
637
670
|
--color-ak-border-subtle: rgba(255, 255, 255, 0.06);
|
|
638
671
|
--color-ak-border-strong: rgba(255, 255, 255, 0.16);
|
|
639
672
|
--color-ak-border-focus: #ffffff;
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
--color-ak-primary
|
|
645
|
-
|
|
646
|
-
--color-ak-primary-
|
|
647
|
-
--color-ak-primary-
|
|
648
|
-
--color-ak-
|
|
649
|
-
--color-ak-primary-
|
|
650
|
-
--color-ak-primary-
|
|
651
|
-
--color-ak-primary-
|
|
652
|
-
--color-ak-
|
|
653
|
-
--color-ak-primary-
|
|
654
|
-
--color-ak-
|
|
655
|
-
--color-ak-
|
|
656
|
-
--color-ak-
|
|
673
|
+
--color-ak-outline: rgba(255, 255, 255, 0.16);
|
|
674
|
+
--color-ak-outline-variant: rgba(255, 255, 255, 0.10);
|
|
675
|
+
|
|
676
|
+
/* ── Primary (neutral fallback; palettes provide intentional accent color) ── */
|
|
677
|
+
--color-ak-primary: #f4f4f5;
|
|
678
|
+
--color-ak-primary-hover: #e4e4e7;
|
|
679
|
+
--color-ak-primary-active: #d4d4d8;
|
|
680
|
+
--color-ak-primary-outline: rgba(255, 255, 255, 0.34);
|
|
681
|
+
--color-ak-secondary-outline: rgba(255, 255, 255, 0.34);
|
|
682
|
+
--color-ak-on-primary-selection: var(--color-ak-on-primary);
|
|
683
|
+
--color-ak-primary-container: rgba(255, 255, 255, 0.10);
|
|
684
|
+
--color-ak-on-primary-container: #f4f4f5;
|
|
685
|
+
--color-ak-selection-ink: #f4f4f5;
|
|
686
|
+
--color-ak-primary-container-emphasis: #f4f4f5;
|
|
687
|
+
--color-ak-secondary: #f4f4f5;
|
|
688
|
+
--color-ak-on-secondary: #111113;
|
|
689
|
+
--color-ak-secondary-container: rgba(255, 255, 255, 0.10);
|
|
690
|
+
--color-ak-on-secondary-container: #f4f4f5;
|
|
691
|
+
--color-ak-tertiary: #f4f4f5;
|
|
692
|
+
--color-ak-tertiary-container: rgba(255, 255, 255, 0.10);
|
|
693
|
+
--color-ak-on-tertiary-container: #f4f4f5;
|
|
694
|
+
--color-ak-accent: #f4f4f5;
|
|
695
|
+
--color-ak-on-accent: #111113;
|
|
696
|
+
--color-ak-accent-soft: rgba(255, 255, 255, 0.10);
|
|
697
|
+
--color-ak-on-accent-soft: #f4f4f5;
|
|
698
|
+
|
|
699
|
+
--color-ak-primary-50: rgba(255, 255, 255, 0.06);
|
|
700
|
+
--color-ak-primary-100: rgba(255, 255, 255, 0.10);
|
|
701
|
+
--color-ak-primary-200: rgba(255, 255, 255, 0.16);
|
|
702
|
+
--color-ak-primary-300: rgba(255, 255, 255, 0.24);
|
|
703
|
+
--color-ak-primary-400: #d4d4d8;
|
|
704
|
+
--color-ak-primary-500: #f4f4f5;
|
|
705
|
+
--color-ak-primary-600: #fafafa;
|
|
706
|
+
--color-ak-primary-700: #ffffff;
|
|
707
|
+
--color-ak-primary-800: #ffffff;
|
|
708
|
+
--color-ak-primary-900: #ffffff;
|
|
709
|
+
--color-ak-primary-950: #ffffff;
|
|
657
710
|
|
|
658
711
|
/* ── Status (lighter for dark bg readability) ── */
|
|
659
712
|
--color-ak-success: #4ade80;
|
|
@@ -662,7 +715,8 @@
|
|
|
662
715
|
--color-ak-warning: #fbbf24;
|
|
663
716
|
--color-ak-warning-subtle: rgba(251, 191, 36, 0.12);
|
|
664
717
|
--color-ak-warning-text: #fbbf24;
|
|
665
|
-
--color-ak-danger: #
|
|
718
|
+
--color-ak-danger: #dc2626;
|
|
719
|
+
--color-ak-danger-hover: #b91c1c;
|
|
666
720
|
--color-ak-danger-subtle: rgba(248, 113, 113, 0.12);
|
|
667
721
|
--color-ak-danger-text: #f87171;
|
|
668
722
|
--color-ak-info: #60a5fa;
|
|
@@ -680,7 +734,7 @@
|
|
|
680
734
|
/* ── Focus rings (solid for AAA 2.4.13 compliance) ── */
|
|
681
735
|
--color-ak-border-focus: #ffffff;
|
|
682
736
|
--shadow-ak-focus: 0 0 0 3px rgba(255, 255, 255, 0.20);
|
|
683
|
-
--shadow-ak-focus-primary: 0 0 0 3px rgba(
|
|
737
|
+
--shadow-ak-focus-primary: 0 0 0 3px rgba(255, 255, 255, 0.24);
|
|
684
738
|
--shadow-ak-focus-danger: 0 0 0 3px rgba(248, 113, 113, 0.25);
|
|
685
739
|
--shadow-ak-focus-success: 0 0 0 3px rgba(74, 222, 128, 0.25);
|
|
686
740
|
|