@brijbyte/agentic-ui 0.0.1 → 0.0.3
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 +183 -111
- package/dist/accordion/accordion.css +6 -10
- package/dist/accordion/accordion.d.ts +1 -1
- package/dist/accordion/accordion.js +1 -1
- package/dist/accordion/accordion.module.js.map +1 -1
- package/dist/accordion/parts.d.ts +1 -1
- package/dist/accordion/parts.js +2 -2
- package/dist/alert-dialog/alert-dialog.css +84 -0
- package/dist/alert-dialog/alert-dialog.d.ts +44 -0
- package/dist/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/alert-dialog/alert-dialog.js +46 -0
- package/dist/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/alert-dialog/alert-dialog.module.css.d.ts +2 -0
- package/dist/alert-dialog/alert-dialog.module.js +14 -0
- package/dist/alert-dialog/alert-dialog.module.js.map +1 -0
- package/dist/alert-dialog/index.d.ts +3 -0
- package/dist/alert-dialog/index.js +4 -0
- package/dist/alert-dialog/parts.d.ts +28 -0
- package/dist/alert-dialog/parts.d.ts.map +1 -0
- package/dist/alert-dialog/parts.js +62 -0
- package/dist/alert-dialog/parts.js.map +1 -0
- package/dist/badge/badge.css +3 -7
- package/dist/badge/badge.d.ts +1 -1
- package/dist/badge/badge.module.js.map +1 -1
- package/dist/button/button.css +36 -22
- package/dist/button/button.d.ts +7 -7
- package/dist/button/button.js +1 -1
- package/dist/button/button.js.map +1 -1
- package/dist/button/button.module.js.map +1 -1
- package/dist/card/card.css +5 -9
- package/dist/card/card.d.ts +1 -1
- package/dist/card/card.module.js.map +1 -1
- package/dist/checkbox/checkbox.css +3 -7
- package/dist/checkbox/checkbox.d.ts +1 -1
- package/dist/checkbox/checkbox.js +1 -1
- package/dist/checkbox/checkbox.module.js.map +1 -1
- package/dist/checkbox/parts.js +1 -1
- package/dist/collapsible/collapsible.css +7 -11
- package/dist/collapsible/collapsible.d.ts +1 -1
- package/dist/collapsible/collapsible.module.js.map +1 -1
- package/dist/collapsible/parts.js +1 -1
- package/dist/context-menu/context-menu.css +151 -0
- package/dist/context-menu/context-menu.d.ts +36 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -0
- package/dist/context-menu/context-menu.js +54 -0
- package/dist/context-menu/context-menu.js.map +1 -0
- package/dist/context-menu/context-menu.module.css.d.ts +2 -0
- package/dist/context-menu/context-menu.module.js +18 -0
- package/dist/context-menu/context-menu.module.js.map +1 -0
- package/dist/context-menu/index.d.ts +3 -0
- package/dist/context-menu/index.js +4 -0
- package/dist/context-menu/parts.d.ts +38 -0
- package/dist/context-menu/parts.d.ts.map +1 -0
- package/dist/context-menu/parts.js +91 -0
- package/dist/context-menu/parts.js.map +1 -0
- package/dist/dialog/dialog.css +27 -22
- package/dist/dialog/dialog.d.ts +9 -1
- package/dist/dialog/dialog.d.ts.map +1 -1
- package/dist/dialog/dialog.js +7 -4
- package/dist/dialog/dialog.js.map +1 -1
- package/dist/dialog/dialog.module.js +2 -0
- package/dist/dialog/dialog.module.js.map +1 -1
- package/dist/dialog/parts.js +1 -1
- package/dist/drawer/drawer.css +9 -13
- package/dist/drawer/drawer.d.ts +1 -1
- package/dist/drawer/drawer.module.js.map +1 -1
- package/dist/drawer/parts.d.ts +1 -1
- package/dist/drawer/parts.js +1 -1
- package/dist/index.css +1603 -1299
- package/dist/index.d.ts +30 -24
- package/dist/index.js +41 -32
- package/dist/input/input.css +5 -9
- package/dist/input/input.js +1 -1
- package/dist/input/input.module.js.map +1 -1
- package/dist/layer-order.css +22 -0
- package/dist/menu/menu.css +13 -17
- package/dist/menu/menu.d.ts +1 -1
- package/dist/menu/menu.module.js.map +1 -1
- package/dist/menu/menuitemshortcut.js +1 -1
- package/dist/menu/parts.js +1 -1
- package/dist/number-field/number-field.css +12 -16
- package/dist/number-field/number-field.d.ts +1 -1
- package/dist/number-field/number-field.js +1 -1
- package/dist/number-field/number-field.module.js.map +1 -1
- package/dist/number-field/parts.js +1 -1
- package/dist/progress/parts.js +1 -1
- package/dist/progress/progress.css +1 -5
- package/dist/progress/progress.module.js.map +1 -1
- package/dist/reset.css +6 -6
- package/dist/select/parts.js +1 -1
- package/dist/select/select.css +14 -16
- package/dist/select/select.d.ts +5 -2
- package/dist/select/select.d.ts.map +1 -1
- package/dist/select/select.js +11 -2
- package/dist/select/select.js.map +1 -1
- package/dist/select/select.module.js.map +1 -1
- package/dist/separator/separator.css +1 -5
- package/dist/separator/separator.js +1 -1
- package/dist/separator/separator.module.js.map +1 -1
- package/dist/slider/index.d.ts +3 -0
- package/dist/slider/index.js +4 -0
- package/dist/slider/parts.d.ts +38 -0
- package/dist/slider/parts.d.ts.map +1 -0
- package/dist/slider/parts.js +69 -0
- package/dist/slider/parts.js.map +1 -0
- package/dist/slider/slider.css +97 -0
- package/dist/slider/slider.d.ts +38 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +41 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/slider/slider.module.css.d.ts +2 -0
- package/dist/slider/slider.module.js +15 -0
- package/dist/slider/slider.module.js.map +1 -0
- package/dist/styles/reset.css +6 -6
- package/dist/styles/tokens.css +91 -76
- package/dist/switch/parts.js +1 -1
- package/dist/switch/switch.css +2 -6
- package/dist/switch/switch.d.ts +1 -1
- package/dist/switch/switch.js +1 -1
- package/dist/switch/switch.module.js.map +1 -1
- package/dist/tabs/parts.js +1 -1
- package/dist/tabs/tabs.css +5 -9
- package/dist/tabs/tabs.d.ts +1 -1
- package/dist/tabs/tabs.module.js.map +1 -1
- package/dist/tailwind-theme.css +23 -23
- package/dist/toast/parts.js +1 -1
- package/dist/toast/toast.css +11 -15
- package/dist/toast/toast.d.ts +1 -1
- package/dist/toast/toast.module.js.map +1 -1
- package/dist/tokens.css +98 -82
- package/dist/tooltip/parts.js +1 -1
- package/dist/tooltip/tooltip.css +7 -11
- package/dist/tooltip/tooltip.d.ts +1 -1
- package/dist/tooltip/tooltip.module.js.map +1 -1
- package/package.json +18 -1
- package/src/accordion/accordion.module.css +6 -20
- package/src/alert-dialog/alert-dialog.module.css +91 -0
- package/src/alert-dialog/alert-dialog.tsx +69 -0
- package/src/alert-dialog/index.ts +7 -0
- package/src/alert-dialog/parts.tsx +73 -0
- package/src/badge/badge.module.css +3 -13
- package/src/button/button.module.css +44 -64
- package/src/button/button.tsx +7 -7
- package/src/card/card.module.css +5 -16
- package/src/checkbox/checkbox.module.css +3 -14
- package/src/collapsible/collapsible.module.css +7 -20
- package/src/context-menu/context-menu.module.css +168 -0
- package/src/context-menu/context-menu.tsx +75 -0
- package/src/context-menu/index.ts +21 -0
- package/src/context-menu/parts.tsx +99 -0
- package/src/dialog/dialog.module.css +26 -33
- package/src/dialog/dialog.tsx +14 -1
- package/src/drawer/drawer.module.css +9 -58
- package/src/index.ts +21 -185
- package/src/input/input.module.css +5 -21
- package/src/menu/menu.module.css +13 -43
- package/src/number-field/number-field.module.css +12 -28
- package/src/progress/progress.module.css +1 -10
- package/src/select/select.module.css +14 -35
- package/src/select/select.tsx +14 -5
- package/src/separator/separator.module.css +1 -5
- package/src/slider/index.ts +14 -0
- package/src/slider/parts.tsx +90 -0
- package/src/slider/slider.module.css +110 -0
- package/src/slider/slider.tsx +68 -0
- package/src/styles/layer-order.css +22 -0
- package/src/styles/reset.css +6 -6
- package/src/styles/tailwind-theme.css +23 -23
- package/src/styles/tokens.css +98 -82
- package/src/switch/switch.module.css +2 -12
- package/src/tabs/tabs.module.css +5 -18
- package/src/toast/toast.module.css +11 -51
- package/src/tooltip/tooltip.module.css +7 -18
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.root {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
gap: var(--space-2);
|
|
6
|
+
width: 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/* ─── Label + Value row ──────────────────────────────────────── */
|
|
10
|
+
|
|
11
|
+
.header {
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
gap: var(--space-2);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.label {
|
|
19
|
+
font-family: var(--font-mono);
|
|
20
|
+
font-size: var(--font-size-xs);
|
|
21
|
+
font-weight: var(--font-weight-medium);
|
|
22
|
+
color: var(--color-secondary);
|
|
23
|
+
letter-spacing: var(--letter-spacing-wide);
|
|
24
|
+
text-transform: uppercase;
|
|
25
|
+
user-select: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.value {
|
|
29
|
+
font-family: var(--font-mono);
|
|
30
|
+
font-size: var(--font-size-xs);
|
|
31
|
+
color: var(--color-tertiary);
|
|
32
|
+
font-variant-numeric: tabular-nums;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* ─── Control (hit area) ─────────────────────────────────────── */
|
|
36
|
+
|
|
37
|
+
.control {
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: center;
|
|
40
|
+
width: 100%;
|
|
41
|
+
padding-block: var(--space-2);
|
|
42
|
+
touch-action: none;
|
|
43
|
+
user-select: none;
|
|
44
|
+
cursor: pointer;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.control[data-disabled] {
|
|
48
|
+
opacity: 0.44;
|
|
49
|
+
cursor: not-allowed;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* ─── Track ──────────────────────────────────────────────────── */
|
|
53
|
+
|
|
54
|
+
.track {
|
|
55
|
+
position: relative;
|
|
56
|
+
width: 100%;
|
|
57
|
+
height: 4px;
|
|
58
|
+
border-radius: var(--radius-full);
|
|
59
|
+
background-color: var(--color-surface-3);
|
|
60
|
+
border: var(--border-width-base) solid var(--color-line-subtle);
|
|
61
|
+
user-select: none;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* ─── Indicator (filled portion) ────────────────────────────── */
|
|
65
|
+
|
|
66
|
+
.indicator {
|
|
67
|
+
border-radius: var(--radius-full);
|
|
68
|
+
background-color: var(--color-accent);
|
|
69
|
+
user-select: none;
|
|
70
|
+
transition: background-color var(--duration-fast) var(--easing-standard);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.root[data-disabled] .indicator {
|
|
74
|
+
background-color: var(--color-tertiary);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* ─── Thumb ──────────────────────────────────────────────────── */
|
|
78
|
+
|
|
79
|
+
.thumb {
|
|
80
|
+
width: 16px;
|
|
81
|
+
height: 16px;
|
|
82
|
+
border-radius: var(--radius-full);
|
|
83
|
+
background-color: var(--color-elevated);
|
|
84
|
+
border: var(--border-width-base) solid var(--color-line);
|
|
85
|
+
box-shadow: var(--shadow-sm);
|
|
86
|
+
user-select: none;
|
|
87
|
+
transition:
|
|
88
|
+
transform var(--duration-fast) var(--easing-spring),
|
|
89
|
+
box-shadow var(--duration-fast) var(--easing-standard),
|
|
90
|
+
border-color var(--duration-fast) var(--easing-standard);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Grow on drag — gives tactile feedback */
|
|
94
|
+
.thumb[data-dragging] {
|
|
95
|
+
transform: scale(1.2);
|
|
96
|
+
border-color: var(--color-accent);
|
|
97
|
+
box-shadow: var(--shadow-md);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* Focus ring via the nested <input> */
|
|
101
|
+
.thumb:has(:focus-visible) {
|
|
102
|
+
border-color: var(--color-accent);
|
|
103
|
+
box-shadow: var(--shadow-focus);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.thumb[data-disabled] {
|
|
107
|
+
cursor: not-allowed;
|
|
108
|
+
background-color: var(--color-surface-3);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { Slider as BaseSlider } from "@base-ui/react/slider";
|
|
3
|
+
import styles from "./slider.module.css";
|
|
4
|
+
|
|
5
|
+
export interface SliderProps {
|
|
6
|
+
value?: number | number[];
|
|
7
|
+
defaultValue?: number | number[];
|
|
8
|
+
onValueChange?: (value: number | number[], eventDetails: unknown) => void;
|
|
9
|
+
onValueCommitted?: (value: number | number[], eventDetails: unknown) => void;
|
|
10
|
+
min?: number;
|
|
11
|
+
max?: number;
|
|
12
|
+
step?: number;
|
|
13
|
+
largeStep?: number;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
name?: string;
|
|
16
|
+
orientation?: "horizontal" | "vertical";
|
|
17
|
+
format?: Intl.NumberFormatOptions;
|
|
18
|
+
/** Visible label rendered above the track. */
|
|
19
|
+
label?: ReactNode;
|
|
20
|
+
/** Show the current value next to the label. */
|
|
21
|
+
showValue?: boolean;
|
|
22
|
+
/** Aria-label for single-thumb sliders without a visible label. */
|
|
23
|
+
"aria-label"?: string;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function Slider({
|
|
28
|
+
label,
|
|
29
|
+
showValue = false,
|
|
30
|
+
className,
|
|
31
|
+
onValueChange,
|
|
32
|
+
onValueCommitted,
|
|
33
|
+
"aria-label": ariaLabel,
|
|
34
|
+
...props
|
|
35
|
+
}: SliderProps) {
|
|
36
|
+
const isRange = Array.isArray(props.defaultValue ?? props.value);
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<BaseSlider.Root
|
|
40
|
+
className={`${styles.root} ${className ?? ""}`}
|
|
41
|
+
onValueChange={onValueChange as never}
|
|
42
|
+
onValueCommitted={onValueCommitted as never}
|
|
43
|
+
{...props}
|
|
44
|
+
>
|
|
45
|
+
{(label || showValue) && (
|
|
46
|
+
<div className={styles.header}>
|
|
47
|
+
{label && <BaseSlider.Label className={styles.label}>{label}</BaseSlider.Label>}
|
|
48
|
+
{showValue && <BaseSlider.Value className={styles.value} />}
|
|
49
|
+
</div>
|
|
50
|
+
)}
|
|
51
|
+
<BaseSlider.Control className={styles.control}>
|
|
52
|
+
<BaseSlider.Track className={styles.track}>
|
|
53
|
+
<BaseSlider.Indicator className={styles.indicator} />
|
|
54
|
+
{isRange ? (
|
|
55
|
+
<>
|
|
56
|
+
<BaseSlider.Thumb index={0} className={styles.thumb} aria-label="Minimum value" />
|
|
57
|
+
<BaseSlider.Thumb index={1} className={styles.thumb} aria-label="Maximum value" />
|
|
58
|
+
</>
|
|
59
|
+
) : (
|
|
60
|
+
<BaseSlider.Thumb className={styles.thumb} aria-label={ariaLabel} />
|
|
61
|
+
)}
|
|
62
|
+
</BaseSlider.Track>
|
|
63
|
+
</BaseSlider.Control>
|
|
64
|
+
</BaseSlider.Root>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { styles as SliderStyles };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @brijbyte/agentic-ui — CSS layer order declaration
|
|
3
|
+
*
|
|
4
|
+
* Import this ONCE, before any other stylesheet in your app entry.
|
|
5
|
+
* It establishes the cascade order so component styles always beat
|
|
6
|
+
* Tailwind preflight resets, and Tailwind utilities always beat components.
|
|
7
|
+
*
|
|
8
|
+
* If you use the full bundle (@brijbyte/agentic-ui/styles) or tokens.css,
|
|
9
|
+
* this is already included — you don't need to import it separately.
|
|
10
|
+
*
|
|
11
|
+
* Manual setup (without Tailwind):
|
|
12
|
+
* @import "@brijbyte/agentic-ui/layer-order";
|
|
13
|
+
* @import "@brijbyte/agentic-ui/tokens";
|
|
14
|
+
* @import "@brijbyte/agentic-ui/reset";
|
|
15
|
+
*
|
|
16
|
+
* With Tailwind v4:
|
|
17
|
+
* @import "tailwindcss";
|
|
18
|
+
* @import "@brijbyte/agentic-ui/layer-order"; ← before tokens
|
|
19
|
+
* @import "@brijbyte/agentic-ui/tokens";
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
@layer theme, base, components, utilities;
|
package/src/styles/reset.css
CHANGED
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
font-family: var(--font-mono);
|
|
22
22
|
font-size: var(--font-size-md);
|
|
23
23
|
line-height: var(--line-height-normal);
|
|
24
|
-
color: var(--color-
|
|
25
|
-
background-color: var(--color-
|
|
24
|
+
color: var(--color-primary);
|
|
25
|
+
background-color: var(--color-canvas);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
img,
|
|
@@ -66,13 +66,13 @@
|
|
|
66
66
|
font-weight: var(--font-weight-semibold);
|
|
67
67
|
line-height: var(--line-height-tight);
|
|
68
68
|
letter-spacing: var(--letter-spacing-tight);
|
|
69
|
-
color: var(--color-
|
|
69
|
+
color: var(--color-primary);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
/* Scrollbar styling */
|
|
73
73
|
* {
|
|
74
74
|
scrollbar-width: thin;
|
|
75
|
-
scrollbar-color: var(--color-
|
|
75
|
+
scrollbar-color: var(--color-thumb) var(--color-track);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
*::-webkit-scrollbar {
|
|
@@ -81,11 +81,11 @@
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
*::-webkit-scrollbar-thumb {
|
|
84
|
-
background: var(--color-
|
|
84
|
+
background: var(--color-thumb);
|
|
85
85
|
border-radius: var(--radius-full);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
*::-webkit-scrollbar-track {
|
|
89
|
-
background: var(--color-
|
|
89
|
+
background: var(--color-track);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
* overrides work automatically without any Tailwind configuration.
|
|
15
15
|
*
|
|
16
16
|
* Generated utility examples:
|
|
17
|
-
* bg-
|
|
18
|
-
* text-
|
|
19
|
-
* border-
|
|
17
|
+
* bg-canvas → background-color: var(--color-canvas)
|
|
18
|
+
* text-primary → color: var(--color-primary)
|
|
19
|
+
* border-line → border-color: var(--color-line)
|
|
20
20
|
* font-mono → font-family: var(--font-mono)
|
|
21
21
|
* rounded-md → border-radius: var(--radius-md)
|
|
22
22
|
* shadow-sm → box-shadow: var(--shadow-sm)
|
|
@@ -24,34 +24,34 @@
|
|
|
24
24
|
|
|
25
25
|
@theme inline {
|
|
26
26
|
/* ── Backgrounds ────────────────────────────────────────────── */
|
|
27
|
-
--color-
|
|
28
|
-
--color-
|
|
29
|
-
--color-
|
|
30
|
-
--color-
|
|
31
|
-
--color-
|
|
27
|
+
--color-canvas: var(--color-canvas);
|
|
28
|
+
--color-elevated: var(--color-elevated);
|
|
29
|
+
--color-sunken: var(--color-sunken);
|
|
30
|
+
--color-overlay: var(--color-overlay);
|
|
31
|
+
--color-sidebar: var(--color-sidebar);
|
|
32
32
|
|
|
33
33
|
/* ── Surfaces ───────────────────────────────────────────────── */
|
|
34
34
|
--color-surface-1: var(--color-surface-1);
|
|
35
35
|
--color-surface-2: var(--color-surface-2);
|
|
36
36
|
--color-surface-3: var(--color-surface-3);
|
|
37
|
-
--color-
|
|
38
|
-
--color-
|
|
39
|
-
--color-
|
|
37
|
+
--color-hover: var(--color-hover);
|
|
38
|
+
--color-active: var(--color-active);
|
|
39
|
+
--color-selected: var(--color-selected);
|
|
40
40
|
|
|
41
41
|
/* ── Text ───────────────────────────────────────────────────── */
|
|
42
|
-
--color-
|
|
43
|
-
--color-
|
|
44
|
-
--color-
|
|
45
|
-
--color-
|
|
46
|
-
--color-
|
|
47
|
-
--color-
|
|
48
|
-
--color-
|
|
42
|
+
--color-primary: var(--color-primary);
|
|
43
|
+
--color-secondary: var(--color-secondary);
|
|
44
|
+
--color-tertiary: var(--color-tertiary);
|
|
45
|
+
--color-disabled: var(--color-disabled);
|
|
46
|
+
--color-inverse: var(--color-inverse);
|
|
47
|
+
--color-on-accent: var(--color-on-accent);
|
|
48
|
+
--color-code: var(--color-code);
|
|
49
49
|
|
|
50
50
|
/* ── Borders ────────────────────────────────────────────────── */
|
|
51
|
-
--color-
|
|
52
|
-
--color-
|
|
53
|
-
--color-
|
|
54
|
-
--color-
|
|
51
|
+
--color-line: var(--color-line);
|
|
52
|
+
--color-line-strong: var(--color-line-strong);
|
|
53
|
+
--color-line-subtle: var(--color-line-subtle);
|
|
54
|
+
--color-line-focus: var(--color-line-focus);
|
|
55
55
|
|
|
56
56
|
/* ── Accent (macOS blue) ────────────────────────────────────── */
|
|
57
57
|
--color-accent: var(--color-accent);
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
--color-info-solid: var(--color-info-solid);
|
|
86
86
|
|
|
87
87
|
/* ── Code syntax ────────────────────────────────────────────── */
|
|
88
|
-
--color-code-
|
|
88
|
+
--color-code-canvas: var(--color-code-canvas);
|
|
89
89
|
--color-code-border: var(--color-code-border);
|
|
90
90
|
--color-code-keyword: var(--color-code-keyword);
|
|
91
91
|
--color-code-string: var(--color-code-string);
|
package/src/styles/tokens.css
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @brijbyte/agentic-ui — Design Tokens
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* developer-focused design system, loosely inspired by native desktop and mobile UI.
|
|
5
5
|
* Monospace-first, semantic color tokens, supports light & dark modes.
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
@layer theme {
|
|
8
9
|
:root {
|
|
9
10
|
/* ─── Typography ──────────────────────────────────────────────── */
|
|
10
11
|
/*
|
|
@@ -125,35 +126,35 @@
|
|
|
125
126
|
[data-theme="light"] {
|
|
126
127
|
color-scheme: light;
|
|
127
128
|
|
|
128
|
-
/* Background layers (
|
|
129
|
-
--color-
|
|
130
|
-
--color-
|
|
131
|
-
--color-
|
|
132
|
-
--color-
|
|
133
|
-
--color-
|
|
129
|
+
/* Background layers (inspired by system vibrancy) */
|
|
130
|
+
--color-canvas: #f0eff0;
|
|
131
|
+
--color-elevated: #fafafa;
|
|
132
|
+
--color-sunken: #e8e7e8;
|
|
133
|
+
--color-overlay: rgba(250, 250, 250, 0.92);
|
|
134
|
+
--color-sidebar: rgba(244, 243, 244, 0.96);
|
|
134
135
|
|
|
135
136
|
/* Surface (card/panel backgrounds) */
|
|
136
|
-
--color-surface-1: #
|
|
137
|
-
--color-surface-2: #
|
|
138
|
-
--color-surface-3: #
|
|
139
|
-
--color-
|
|
140
|
-
--color-
|
|
141
|
-
--color-
|
|
137
|
+
--color-surface-1: #fafafa;
|
|
138
|
+
--color-surface-2: #f4f3f4;
|
|
139
|
+
--color-surface-3: #eeeded;
|
|
140
|
+
--color-hover: rgba(0, 0, 0, 0.04);
|
|
141
|
+
--color-active: rgba(0, 0, 0, 0.07);
|
|
142
|
+
--color-selected: rgba(0, 120, 212, 0.1);
|
|
142
143
|
|
|
143
144
|
/* Text */
|
|
144
|
-
--color-
|
|
145
|
-
--color-
|
|
146
|
-
--color-
|
|
147
|
-
--color-
|
|
148
|
-
--color-
|
|
149
|
-
--color-
|
|
150
|
-
--color-
|
|
145
|
+
--color-primary: rgba(0, 0, 0, 0.88);
|
|
146
|
+
--color-secondary: rgba(0, 0, 0, 0.6); /* raised from 0.55 — AA 5.01:1 on hover bg */
|
|
147
|
+
--color-tertiary: rgba(0, 0, 0, 0.36);
|
|
148
|
+
--color-disabled: rgba(0, 0, 0, 0.24);
|
|
149
|
+
--color-inverse: rgba(255, 255, 255, 0.95);
|
|
150
|
+
--color-on-accent: #ffffff;
|
|
151
|
+
--color-code: #0f766e;
|
|
151
152
|
|
|
152
153
|
/* Borders */
|
|
153
|
-
--color-
|
|
154
|
-
--color-
|
|
155
|
-
--color-
|
|
156
|
-
--color-
|
|
154
|
+
--color-line: rgba(0, 0, 0, 0.12);
|
|
155
|
+
--color-line-strong: rgba(0, 0, 0, 0.22);
|
|
156
|
+
--color-line-subtle: rgba(0, 0, 0, 0.06);
|
|
157
|
+
--color-line-focus: var(--color-focus-ring);
|
|
157
158
|
|
|
158
159
|
/* Accent — macOS blue
|
|
159
160
|
* Semantic names instead of opaque Radix-style numbers:
|
|
@@ -166,6 +167,8 @@
|
|
|
166
167
|
--color-accent: #0078d4;
|
|
167
168
|
--color-accent-hover: #006bbf;
|
|
168
169
|
--color-accent-pressed: #005ea8;
|
|
170
|
+
--color-accent-solid: #0078d4; /* solid button bg — same as accent in light (4.83:1 vs white) */
|
|
171
|
+
--color-accent-text: #005ea8; /* text/icon on tinted surfaces — AA 5.09:1 on accent-tint bg */
|
|
169
172
|
--color-accent-tint: rgba(0, 120, 212, 0.1);
|
|
170
173
|
--color-accent-tint-hover: rgba(0, 120, 212, 0.16);
|
|
171
174
|
|
|
@@ -181,25 +184,28 @@
|
|
|
181
184
|
--shadow-popover: 0 8px 24px -4px rgb(0 0 0 / 0.16), 0 2px 6px -2px rgb(0 0 0 / 0.1);
|
|
182
185
|
--shadow-sheet: 0 -4px 16px 0 rgb(0 0 0 / 0.12);
|
|
183
186
|
--shadow-inset: inset 0 1px 2px 0 rgb(0 0 0 / 0.08);
|
|
184
|
-
--shadow-focus: 0 0 0 2px var(--color-
|
|
187
|
+
--shadow-focus: 0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-focus-ring);
|
|
185
188
|
|
|
186
189
|
/* Status — Success */
|
|
187
190
|
--color-success-bg: #f0fdf4;
|
|
188
191
|
--color-success-border: #bbf7d0;
|
|
189
|
-
--color-success-text: #15803d
|
|
190
|
-
--color-success-solid: #16a34a
|
|
192
|
+
--color-success-text: #147a39; /* darkened from #15803d — AA 4.73:1 on canvas */
|
|
193
|
+
--color-success-solid: #15803d; /* darkened from #16a34a — AA 5.02:1 vs white */
|
|
194
|
+
--color-success-on-solid: #ffffff;
|
|
191
195
|
|
|
192
196
|
/* Status — Warning */
|
|
193
197
|
--color-warning-bg: #fffbeb;
|
|
194
198
|
--color-warning-border: #fde68a;
|
|
195
199
|
--color-warning-text: #92400e;
|
|
196
|
-
--color-warning-solid: #d97706
|
|
200
|
+
--color-warning-solid: #b45309; /* darkened from #d97706 — AA 5.02:1 vs white */
|
|
201
|
+
--color-warning-on-solid: #ffffff;
|
|
197
202
|
|
|
198
203
|
/* Status — Error */
|
|
199
204
|
--color-error-bg: #fef2f2;
|
|
200
205
|
--color-error-border: #fecaca;
|
|
201
206
|
--color-error-text: #991b1b;
|
|
202
207
|
--color-error-solid: #dc2626;
|
|
208
|
+
--color-error-on-solid: #ffffff;
|
|
203
209
|
|
|
204
210
|
/* Status — Info */
|
|
205
211
|
--color-info-bg: #eff6ff;
|
|
@@ -208,7 +214,7 @@
|
|
|
208
214
|
--color-info-solid: #2563eb;
|
|
209
215
|
|
|
210
216
|
/* Code / terminal palette */
|
|
211
|
-
--color-code-
|
|
217
|
+
--color-code-canvas: #f6f8fa;
|
|
212
218
|
--color-code-border: #d0d7de;
|
|
213
219
|
--color-code-comment: #6e7781;
|
|
214
220
|
--color-code-keyword: #cf222e;
|
|
@@ -217,8 +223,8 @@
|
|
|
217
223
|
--color-code-function: #8250df;
|
|
218
224
|
|
|
219
225
|
/* Scrollbar */
|
|
220
|
-
--color-
|
|
221
|
-
--color-
|
|
226
|
+
--color-thumb: rgba(0, 0, 0, 0.2);
|
|
227
|
+
--color-track: transparent;
|
|
222
228
|
}
|
|
223
229
|
|
|
224
230
|
/* ═══════════════════════════════════════════════════════════════════
|
|
@@ -232,38 +238,40 @@
|
|
|
232
238
|
color-scheme: dark;
|
|
233
239
|
|
|
234
240
|
/* Background */
|
|
235
|
-
--color-
|
|
236
|
-
--color-
|
|
237
|
-
--color-
|
|
238
|
-
--color-
|
|
239
|
-
--color-
|
|
241
|
+
--color-canvas: #1c1c1e;
|
|
242
|
+
--color-elevated: #2c2c2e;
|
|
243
|
+
--color-sunken: #141416;
|
|
244
|
+
--color-overlay: rgba(30, 30, 32, 0.92);
|
|
245
|
+
--color-sidebar: rgba(28, 28, 30, 0.95);
|
|
240
246
|
|
|
241
247
|
/* Surface */
|
|
242
248
|
--color-surface-1: #2c2c2e;
|
|
243
249
|
--color-surface-2: #3a3a3c;
|
|
244
250
|
--color-surface-3: #48484a;
|
|
245
|
-
--color-
|
|
246
|
-
--color-
|
|
247
|
-
--color-
|
|
251
|
+
--color-hover: rgba(255, 255, 255, 0.06);
|
|
252
|
+
--color-active: rgba(255, 255, 255, 0.1);
|
|
253
|
+
--color-selected: rgba(10, 132, 255, 0.16);
|
|
248
254
|
|
|
249
255
|
/* Text */
|
|
250
|
-
--color-
|
|
251
|
-
--color-
|
|
252
|
-
--color-
|
|
253
|
-
--color-
|
|
254
|
-
--color-
|
|
255
|
-
--color-
|
|
256
|
-
--color-
|
|
256
|
+
--color-primary: rgba(255, 255, 255, 0.92);
|
|
257
|
+
--color-secondary: rgba(255, 255, 255, 0.55);
|
|
258
|
+
--color-tertiary: rgba(255, 255, 255, 0.36);
|
|
259
|
+
--color-disabled: rgba(255, 255, 255, 0.24);
|
|
260
|
+
--color-inverse: rgba(0, 0, 0, 0.88);
|
|
261
|
+
--color-on-accent: #ffffff;
|
|
262
|
+
--color-code: #2dd4bf;
|
|
257
263
|
|
|
258
264
|
/* Borders */
|
|
259
|
-
--color-
|
|
260
|
-
--color-
|
|
261
|
-
--color-
|
|
265
|
+
--color-line: rgba(255, 255, 255, 0.12);
|
|
266
|
+
--color-line-strong: rgba(255, 255, 255, 0.22);
|
|
267
|
+
--color-line-subtle: rgba(255, 255, 255, 0.06);
|
|
262
268
|
|
|
263
269
|
/* Accent — macOS blue dark */
|
|
264
270
|
--color-accent: #0a84ff;
|
|
265
271
|
--color-accent-hover: #0071e3;
|
|
266
272
|
--color-accent-pressed: #005bb5;
|
|
273
|
+
--color-accent-solid: #0071e3; /* solid button bg — darkened from #0a84ff — AA 4.70:1 vs white */
|
|
274
|
+
--color-accent-text: #60a5fa; /* text/icon on tinted surfaces — AA 5.87:1 on accent-tint bg */
|
|
267
275
|
--color-accent-tint: rgba(10, 132, 255, 0.12);
|
|
268
276
|
--color-accent-tint-hover: rgba(10, 132, 255, 0.2);
|
|
269
277
|
|
|
@@ -279,25 +287,28 @@
|
|
|
279
287
|
--shadow-popover: 0 8px 24px -4px rgb(0 0 0 / 0.5), 0 2px 6px -2px rgb(0 0 0 / 0.4);
|
|
280
288
|
--shadow-sheet: 0 -4px 16px 0 rgb(0 0 0 / 0.4);
|
|
281
289
|
--shadow-inset: inset 0 1px 2px 0 rgb(0 0 0 / 0.3);
|
|
282
|
-
--shadow-focus: 0 0 0 2px var(--color-
|
|
290
|
+
--shadow-focus: 0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-focus-ring);
|
|
283
291
|
|
|
284
292
|
/* Status — Success */
|
|
285
293
|
--color-success-bg: rgba(22, 163, 74, 0.12);
|
|
286
294
|
--color-success-border: rgba(22, 163, 74, 0.3);
|
|
287
295
|
--color-success-text: #4ade80;
|
|
288
|
-
--color-success-solid: #22c55e;
|
|
296
|
+
--color-success-solid: #22c55e; /* vivid — AA 9.22:1 vs black text */
|
|
297
|
+
--color-success-on-solid: #000000; /* dark text preserves vibrancy */
|
|
289
298
|
|
|
290
299
|
/* Status — Warning */
|
|
291
300
|
--color-warning-bg: rgba(217, 119, 6, 0.12);
|
|
292
301
|
--color-warning-border: rgba(217, 119, 6, 0.3);
|
|
293
302
|
--color-warning-text: #fbbf24;
|
|
294
|
-
--color-warning-solid: #f59e0b;
|
|
303
|
+
--color-warning-solid: #f59e0b; /* vivid — AA 9.78:1 vs black text */
|
|
304
|
+
--color-warning-on-solid: #000000; /* dark text preserves vibrancy */
|
|
295
305
|
|
|
296
306
|
/* Status — Error */
|
|
297
307
|
--color-error-bg: rgba(220, 38, 38, 0.12);
|
|
298
308
|
--color-error-border: rgba(220, 38, 38, 0.3);
|
|
299
309
|
--color-error-text: #f87171;
|
|
300
|
-
--color-error-solid: #ef4444
|
|
310
|
+
--color-error-solid: #dc2626; /* darkened from #ef4444 — AA 4.83:1 vs white */
|
|
311
|
+
--color-error-on-solid: #ffffff;
|
|
301
312
|
|
|
302
313
|
/* Status — Info */
|
|
303
314
|
--color-info-bg: rgba(37, 99, 235, 0.12);
|
|
@@ -306,7 +317,7 @@
|
|
|
306
317
|
--color-info-solid: #3b82f6;
|
|
307
318
|
|
|
308
319
|
/* Code / terminal palette */
|
|
309
|
-
--color-code-
|
|
320
|
+
--color-code-canvas: #161b22;
|
|
310
321
|
--color-code-border: rgba(255, 255, 255, 0.1);
|
|
311
322
|
--color-code-comment: #8b949e;
|
|
312
323
|
--color-code-keyword: #ff7b72;
|
|
@@ -315,42 +326,44 @@
|
|
|
315
326
|
--color-code-function: #d2a8ff;
|
|
316
327
|
|
|
317
328
|
/* Scrollbar */
|
|
318
|
-
--color-
|
|
319
|
-
--color-
|
|
329
|
+
--color-thumb: rgba(255, 255, 255, 0.2);
|
|
330
|
+
--color-track: transparent;
|
|
320
331
|
}
|
|
321
332
|
}
|
|
322
333
|
|
|
323
334
|
[data-theme="dark"] {
|
|
324
335
|
color-scheme: dark;
|
|
325
336
|
|
|
326
|
-
--color-
|
|
327
|
-
--color-
|
|
328
|
-
--color-
|
|
329
|
-
--color-
|
|
330
|
-
--color-
|
|
337
|
+
--color-canvas: #1c1c1e;
|
|
338
|
+
--color-elevated: #2c2c2e;
|
|
339
|
+
--color-sunken: #141416;
|
|
340
|
+
--color-overlay: rgba(30, 30, 32, 0.92);
|
|
341
|
+
--color-sidebar: rgba(28, 28, 30, 0.95);
|
|
331
342
|
|
|
332
343
|
--color-surface-1: #2c2c2e;
|
|
333
344
|
--color-surface-2: #3a3a3c;
|
|
334
345
|
--color-surface-3: #48484a;
|
|
335
|
-
--color-
|
|
336
|
-
--color-
|
|
337
|
-
--color-
|
|
338
|
-
|
|
339
|
-
--color-
|
|
340
|
-
--color-
|
|
341
|
-
--color-
|
|
342
|
-
--color-
|
|
343
|
-
--color-
|
|
344
|
-
--color-
|
|
345
|
-
--color-
|
|
346
|
-
|
|
347
|
-
--color-
|
|
348
|
-
--color-
|
|
349
|
-
--color-
|
|
346
|
+
--color-hover: rgba(255, 255, 255, 0.06);
|
|
347
|
+
--color-active: rgba(255, 255, 255, 0.1);
|
|
348
|
+
--color-selected: rgba(10, 132, 255, 0.16);
|
|
349
|
+
|
|
350
|
+
--color-primary: rgba(255, 255, 255, 0.92);
|
|
351
|
+
--color-secondary: rgba(255, 255, 255, 0.55);
|
|
352
|
+
--color-tertiary: rgba(255, 255, 255, 0.36);
|
|
353
|
+
--color-disabled: rgba(255, 255, 255, 0.24);
|
|
354
|
+
--color-inverse: rgba(0, 0, 0, 0.88);
|
|
355
|
+
--color-on-accent: #ffffff;
|
|
356
|
+
--color-code: #2dd4bf;
|
|
357
|
+
|
|
358
|
+
--color-line: rgba(255, 255, 255, 0.12);
|
|
359
|
+
--color-line-strong: rgba(255, 255, 255, 0.22);
|
|
360
|
+
--color-line-subtle: rgba(255, 255, 255, 0.06);
|
|
350
361
|
|
|
351
362
|
--color-accent: #0a84ff;
|
|
352
363
|
--color-accent-hover: #0071e3;
|
|
353
364
|
--color-accent-pressed: #005bb5;
|
|
365
|
+
--color-accent-solid: #0071e3;
|
|
366
|
+
--color-accent-text: #60a5fa;
|
|
354
367
|
--color-accent-tint: rgba(10, 132, 255, 0.12);
|
|
355
368
|
--color-accent-tint-hover: rgba(10, 132, 255, 0.2);
|
|
356
369
|
|
|
@@ -364,29 +377,32 @@
|
|
|
364
377
|
--shadow-popover: 0 8px 24px -4px rgb(0 0 0 / 0.5), 0 2px 6px -2px rgb(0 0 0 / 0.4);
|
|
365
378
|
--shadow-sheet: 0 -4px 16px 0 rgb(0 0 0 / 0.4);
|
|
366
379
|
--shadow-inset: inset 0 1px 2px 0 rgb(0 0 0 / 0.3);
|
|
367
|
-
--shadow-focus: 0 0 0 2px var(--color-
|
|
380
|
+
--shadow-focus: 0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-focus-ring);
|
|
368
381
|
|
|
369
382
|
--color-success-bg: rgba(22, 163, 74, 0.12);
|
|
370
383
|
--color-success-border: rgba(22, 163, 74, 0.3);
|
|
371
384
|
--color-success-text: #4ade80;
|
|
372
385
|
--color-success-solid: #22c55e;
|
|
386
|
+
--color-success-on-solid: #000000;
|
|
373
387
|
|
|
374
388
|
--color-warning-bg: rgba(217, 119, 6, 0.12);
|
|
375
389
|
--color-warning-border: rgba(217, 119, 6, 0.3);
|
|
376
390
|
--color-warning-text: #fbbf24;
|
|
377
391
|
--color-warning-solid: #f59e0b;
|
|
392
|
+
--color-warning-on-solid: #000000;
|
|
378
393
|
|
|
379
394
|
--color-error-bg: rgba(220, 38, 38, 0.12);
|
|
380
395
|
--color-error-border: rgba(220, 38, 38, 0.3);
|
|
381
396
|
--color-error-text: #f87171;
|
|
382
|
-
--color-error-solid: #
|
|
397
|
+
--color-error-solid: #dc2626;
|
|
398
|
+
--color-error-on-solid: #ffffff;
|
|
383
399
|
|
|
384
400
|
--color-info-bg: rgba(37, 99, 235, 0.12);
|
|
385
401
|
--color-info-border: rgba(37, 99, 235, 0.3);
|
|
386
402
|
--color-info-text: #60a5fa;
|
|
387
403
|
--color-info-solid: #3b82f6;
|
|
388
404
|
|
|
389
|
-
--color-code-
|
|
405
|
+
--color-code-canvas: #161b22;
|
|
390
406
|
--color-code-border: rgba(255, 255, 255, 0.1);
|
|
391
407
|
--color-code-comment: #8b949e;
|
|
392
408
|
--color-code-keyword: #ff7b72;
|
|
@@ -394,7 +410,7 @@
|
|
|
394
410
|
--color-code-number: #79c0ff;
|
|
395
411
|
--color-code-function: #d2a8ff;
|
|
396
412
|
|
|
397
|
-
--color-
|
|
398
|
-
--color-
|
|
413
|
+
--color-thumb: rgba(255, 255, 255, 0.2);
|
|
414
|
+
--color-track: transparent;
|
|
399
415
|
}
|
|
400
416
|
}
|