@yuva-devlab/tokens 1.1.0 → 1.2.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/dist/index.cjs +11 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/preset.css +156 -2
- package/dist/styles.css +2 -0
- package/dist/themes/finai.css +83 -5
- package/dist/themes/logs.css +137 -0
- package/dist/themes/orchestrai.css +41 -33
- package/dist/themes/portal.css +192 -0
- package/package.json +6 -1
- package/styles/preset.css +156 -2
- package/styles/styles.css +2 -0
- package/styles/themes/finai.css +83 -5
- package/styles/themes/logs.css +137 -0
- package/styles/themes/orchestrai.css +41 -33
- package/styles/themes/portal.css +192 -0
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// src/index.ts
|
|
4
|
-
var THEMES = ["orchestrai", "finai"];
|
|
4
|
+
var THEMES = ["orchestrai", "finai", "portal", "logs"];
|
|
5
5
|
var BRAND_MODES = ["light", "dark"];
|
|
6
6
|
var THEME_CONFIGS = {
|
|
7
7
|
orchestrai: {
|
|
@@ -13,6 +13,16 @@ var THEME_CONFIGS = {
|
|
|
13
13
|
name: "finai",
|
|
14
14
|
defaultMode: "dark",
|
|
15
15
|
label: "FinAI"
|
|
16
|
+
},
|
|
17
|
+
portal: {
|
|
18
|
+
name: "portal",
|
|
19
|
+
defaultMode: "dark",
|
|
20
|
+
label: "DevLab Portal"
|
|
21
|
+
},
|
|
22
|
+
logs: {
|
|
23
|
+
name: "logs",
|
|
24
|
+
defaultMode: "dark",
|
|
25
|
+
label: "DevLab Logs"
|
|
16
26
|
}
|
|
17
27
|
};
|
|
18
28
|
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;AAKO,IAAM,MAAA,GAAS,CAAC,YAAA,EAAc,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;AAKO,IAAM,MAAA,GAAS,CAAC,YAAA,EAAc,OAAA,EAAS,UAAU,MAAM;AAGvD,IAAM,WAAA,GAAc,CAAC,OAAA,EAAS,MAAM;AASpC,IAAM,aAAA,GAAgD;AAAA,EAC3D,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO;AAAA;AAEX","file":"index.cjs","sourcesContent":["/**\n * @file src/index.ts\n * @description Yuva DevLab Design System — Design Tokens & Theme Definitions.\n */\n\nexport const THEMES = [\"orchestrai\", \"finai\", \"portal\", \"logs\"] as const;\nexport type ThemeName = (typeof THEMES)[number];\n\nexport const BRAND_MODES = [\"light\", \"dark\"] as const;\nexport type BrandMode = (typeof BRAND_MODES)[number];\n\nexport interface ThemeConfig {\n readonly name: ThemeName;\n readonly defaultMode: BrandMode;\n readonly label: string;\n}\n\nexport const THEME_CONFIGS: Record<ThemeName, ThemeConfig> = {\n orchestrai: {\n name: \"orchestrai\",\n defaultMode: \"dark\",\n label: \"OrchestrAI\",\n },\n finai: {\n name: \"finai\",\n defaultMode: \"dark\",\n label: \"FinAI\",\n },\n portal: {\n name: \"portal\",\n defaultMode: \"dark\",\n label: \"DevLab Portal\",\n },\n logs: {\n name: \"logs\",\n defaultMode: \"dark\",\n label: \"DevLab Logs\",\n },\n} as const;\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @file src/index.ts
|
|
3
3
|
* @description Yuva DevLab Design System — Design Tokens & Theme Definitions.
|
|
4
4
|
*/
|
|
5
|
-
declare const THEMES: readonly ["orchestrai", "finai"];
|
|
5
|
+
declare const THEMES: readonly ["orchestrai", "finai", "portal", "logs"];
|
|
6
6
|
type ThemeName = (typeof THEMES)[number];
|
|
7
7
|
declare const BRAND_MODES: readonly ["light", "dark"];
|
|
8
8
|
type BrandMode = (typeof BRAND_MODES)[number];
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @file src/index.ts
|
|
3
3
|
* @description Yuva DevLab Design System — Design Tokens & Theme Definitions.
|
|
4
4
|
*/
|
|
5
|
-
declare const THEMES: readonly ["orchestrai", "finai"];
|
|
5
|
+
declare const THEMES: readonly ["orchestrai", "finai", "portal", "logs"];
|
|
6
6
|
type ThemeName = (typeof THEMES)[number];
|
|
7
7
|
declare const BRAND_MODES: readonly ["light", "dark"];
|
|
8
8
|
type BrandMode = (typeof BRAND_MODES)[number];
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
var THEMES = ["orchestrai", "finai"];
|
|
2
|
+
var THEMES = ["orchestrai", "finai", "portal", "logs"];
|
|
3
3
|
var BRAND_MODES = ["light", "dark"];
|
|
4
4
|
var THEME_CONFIGS = {
|
|
5
5
|
orchestrai: {
|
|
@@ -11,6 +11,16 @@ var THEME_CONFIGS = {
|
|
|
11
11
|
name: "finai",
|
|
12
12
|
defaultMode: "dark",
|
|
13
13
|
label: "FinAI"
|
|
14
|
+
},
|
|
15
|
+
portal: {
|
|
16
|
+
name: "portal",
|
|
17
|
+
defaultMode: "dark",
|
|
18
|
+
label: "DevLab Portal"
|
|
19
|
+
},
|
|
20
|
+
logs: {
|
|
21
|
+
name: "logs",
|
|
22
|
+
defaultMode: "dark",
|
|
23
|
+
label: "DevLab Logs"
|
|
14
24
|
}
|
|
15
25
|
};
|
|
16
26
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";AAKO,IAAM,MAAA,GAAS,CAAC,YAAA,EAAc,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";AAKO,IAAM,MAAA,GAAS,CAAC,YAAA,EAAc,OAAA,EAAS,UAAU,MAAM;AAGvD,IAAM,WAAA,GAAc,CAAC,OAAA,EAAS,MAAM;AASpC,IAAM,aAAA,GAAgD;AAAA,EAC3D,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO;AAAA;AAEX","file":"index.js","sourcesContent":["/**\n * @file src/index.ts\n * @description Yuva DevLab Design System — Design Tokens & Theme Definitions.\n */\n\nexport const THEMES = [\"orchestrai\", \"finai\", \"portal\", \"logs\"] as const;\nexport type ThemeName = (typeof THEMES)[number];\n\nexport const BRAND_MODES = [\"light\", \"dark\"] as const;\nexport type BrandMode = (typeof BRAND_MODES)[number];\n\nexport interface ThemeConfig {\n readonly name: ThemeName;\n readonly defaultMode: BrandMode;\n readonly label: string;\n}\n\nexport const THEME_CONFIGS: Record<ThemeName, ThemeConfig> = {\n orchestrai: {\n name: \"orchestrai\",\n defaultMode: \"dark\",\n label: \"OrchestrAI\",\n },\n finai: {\n name: \"finai\",\n defaultMode: \"dark\",\n label: \"FinAI\",\n },\n portal: {\n name: \"portal\",\n defaultMode: \"dark\",\n label: \"DevLab Portal\",\n },\n logs: {\n name: \"logs\",\n defaultMode: \"dark\",\n label: \"DevLab Logs\",\n },\n} as const;\n"]}
|
package/dist/preset.css
CHANGED
|
@@ -2,10 +2,164 @@
|
|
|
2
2
|
* Yuva DevLab Design System — Tailwind CSS 4 Preset Bridge
|
|
3
3
|
*
|
|
4
4
|
* Maps standard design tokens and CSS custom properties to Tailwind utility classes.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Acts as the universal preset and neutral baseline when no brands are mapped.
|
|
6
|
+
* Zero individual brand tokens are declared here.
|
|
7
|
+
* Can be consumed downstream via: `@import "@yuva-devlab/tokens/preset.css";`
|
|
7
8
|
*/
|
|
8
9
|
|
|
10
|
+
/* ── Neutral Fallback Baseline (Active when no brands are mapped) ─────────── */
|
|
11
|
+
:root {
|
|
12
|
+
--radius: 0.75rem;
|
|
13
|
+
|
|
14
|
+
/* Surfaces */
|
|
15
|
+
--background: oklch(0.985 0 0);
|
|
16
|
+
--foreground: oklch(0.18 0.01 260);
|
|
17
|
+
--card: oklch(1 0 0);
|
|
18
|
+
--card-foreground: oklch(0.18 0.01 260);
|
|
19
|
+
--popover: oklch(1 0 0);
|
|
20
|
+
--popover-foreground: oklch(0.18 0.01 260);
|
|
21
|
+
|
|
22
|
+
/* Core Neutral Action */
|
|
23
|
+
--primary: oklch(0.35 0.04 260);
|
|
24
|
+
--primary-foreground: oklch(0.99 0 0);
|
|
25
|
+
--secondary: oklch(0.96 0.005 260);
|
|
26
|
+
--secondary-foreground: oklch(0.2 0.01 260);
|
|
27
|
+
|
|
28
|
+
/* Muted / Accent */
|
|
29
|
+
--muted: oklch(0.96 0.005 260);
|
|
30
|
+
--muted-foreground: oklch(0.5 0.01 260);
|
|
31
|
+
--accent: oklch(0.94 0.01 260);
|
|
32
|
+
--accent-foreground: oklch(0.2 0.01 260);
|
|
33
|
+
|
|
34
|
+
/* System Status Feedback */
|
|
35
|
+
--destructive: oklch(0.6 0.22 25);
|
|
36
|
+
--destructive-foreground: oklch(0.99 0 0);
|
|
37
|
+
--warning: oklch(0.75 0.14 80);
|
|
38
|
+
--warning-foreground: oklch(0.2 0.02 80);
|
|
39
|
+
--success: oklch(0.65 0.15 150);
|
|
40
|
+
--success-foreground: oklch(0.99 0 0);
|
|
41
|
+
--info: oklch(0.68 0.13 245);
|
|
42
|
+
--info-foreground: oklch(0.99 0 0);
|
|
43
|
+
|
|
44
|
+
/* Form & Interactive */
|
|
45
|
+
--border: oklch(0.92 0.005 260);
|
|
46
|
+
--input: oklch(0.92 0.005 260);
|
|
47
|
+
--ring: oklch(0.35 0.04 260);
|
|
48
|
+
|
|
49
|
+
/* Surfaces & Overlay */
|
|
50
|
+
--surface: oklch(1 0 0 / 70%);
|
|
51
|
+
--surface-2: oklch(0.975 0.005 260);
|
|
52
|
+
--overlay: oklch(0.985 0 0 / 80%);
|
|
53
|
+
|
|
54
|
+
/* Navigation & Sidebar */
|
|
55
|
+
--sidebar: oklch(1 0 0);
|
|
56
|
+
--sidebar-foreground: oklch(0.18 0.01 260);
|
|
57
|
+
--sidebar-primary: oklch(0.35 0.04 260);
|
|
58
|
+
--sidebar-primary-foreground: oklch(0.99 0 0);
|
|
59
|
+
--sidebar-accent: oklch(0.95 0.01 260);
|
|
60
|
+
--sidebar-accent-foreground: oklch(0.2 0.01 260);
|
|
61
|
+
--sidebar-border: oklch(0.92 0.005 260);
|
|
62
|
+
--sidebar-ring: oklch(0.35 0.04 260);
|
|
63
|
+
|
|
64
|
+
/* Charts */
|
|
65
|
+
--chart-1: oklch(0.6 0.15 250);
|
|
66
|
+
--chart-2: oklch(0.65 0.15 150);
|
|
67
|
+
--chart-3: oklch(0.7 0.12 70);
|
|
68
|
+
--chart-4: oklch(0.75 0.14 80);
|
|
69
|
+
--chart-5: oklch(0.6 0.18 25);
|
|
70
|
+
|
|
71
|
+
/* Sizing, Spacing & Layout */
|
|
72
|
+
--control-height-xs: 1.75rem;
|
|
73
|
+
--control-height-sm: 2rem;
|
|
74
|
+
--control-height-md: 2.25rem;
|
|
75
|
+
--control-height-lg: 2.5rem;
|
|
76
|
+
--control-height-xl: 3rem;
|
|
77
|
+
|
|
78
|
+
--icon-xs: 0.875rem;
|
|
79
|
+
--icon-sm: 1rem;
|
|
80
|
+
--icon-md: 1.25rem;
|
|
81
|
+
--icon-lg: 1.5rem;
|
|
82
|
+
--icon-xl: 2rem;
|
|
83
|
+
|
|
84
|
+
--space-1: 0.25rem;
|
|
85
|
+
--space-2: 0.5rem;
|
|
86
|
+
--space-3: 0.75rem;
|
|
87
|
+
--space-4: 1rem;
|
|
88
|
+
--space-5: 1.25rem;
|
|
89
|
+
--space-6: 1.5rem;
|
|
90
|
+
--space-8: 2rem;
|
|
91
|
+
--space-10: 2.5rem;
|
|
92
|
+
|
|
93
|
+
--card-padding: var(--space-4);
|
|
94
|
+
--dialog-padding: var(--space-5);
|
|
95
|
+
--form-field-gap: var(--space-3);
|
|
96
|
+
--section-gap: var(--space-5);
|
|
97
|
+
--table-row-padding-x: var(--space-4);
|
|
98
|
+
--table-row-padding-y: var(--space-3);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.dark,
|
|
102
|
+
[data-theme="dark"] {
|
|
103
|
+
--radius: 0.75rem;
|
|
104
|
+
|
|
105
|
+
/* Surfaces */
|
|
106
|
+
--background: oklch(0.16 0.01 260);
|
|
107
|
+
--foreground: oklch(0.97 0.003 260);
|
|
108
|
+
--card: oklch(0.2 0.01 260);
|
|
109
|
+
--card-foreground: oklch(0.97 0.003 260);
|
|
110
|
+
--popover: oklch(0.2 0.01 260);
|
|
111
|
+
--popover-foreground: oklch(0.97 0.003 260);
|
|
112
|
+
|
|
113
|
+
/* Core Neutral Action */
|
|
114
|
+
--primary: oklch(0.75 0.05 260);
|
|
115
|
+
--primary-foreground: oklch(0.15 0.01 260);
|
|
116
|
+
--secondary: oklch(0.25 0.01 260);
|
|
117
|
+
--secondary-foreground: oklch(0.97 0.003 260);
|
|
118
|
+
|
|
119
|
+
/* Muted / Accent */
|
|
120
|
+
--muted: oklch(0.25 0.01 260);
|
|
121
|
+
--muted-foreground: oklch(0.7 0.01 260);
|
|
122
|
+
--accent: oklch(0.3 0.02 260);
|
|
123
|
+
--accent-foreground: oklch(0.95 0.005 260);
|
|
124
|
+
|
|
125
|
+
/* System Status Feedback */
|
|
126
|
+
--destructive: oklch(0.65 0.2 25);
|
|
127
|
+
--destructive-foreground: oklch(0.97 0.003 0);
|
|
128
|
+
--warning: oklch(0.75 0.14 80);
|
|
129
|
+
--warning-foreground: oklch(0.15 0.02 80);
|
|
130
|
+
--success: oklch(0.7 0.15 150);
|
|
131
|
+
--success-foreground: oklch(0.15 0.01 260);
|
|
132
|
+
--info: oklch(0.72 0.12 245);
|
|
133
|
+
--info-foreground: oklch(0.15 0.01 260);
|
|
134
|
+
|
|
135
|
+
/* Form & Interactive */
|
|
136
|
+
--border: oklch(1 0 0 / 10%);
|
|
137
|
+
--input: oklch(1 0 0 / 14%);
|
|
138
|
+
--ring: oklch(0.75 0.05 260);
|
|
139
|
+
|
|
140
|
+
/* Surfaces & Overlay */
|
|
141
|
+
--surface: oklch(0.22 0.01 260 / 70%);
|
|
142
|
+
--surface-2: oklch(0.235 0.01 260);
|
|
143
|
+
--overlay: oklch(0.11 0.01 260 / 80%);
|
|
144
|
+
|
|
145
|
+
/* Navigation & Sidebar */
|
|
146
|
+
--sidebar: oklch(0.18 0.01 260);
|
|
147
|
+
--sidebar-foreground: oklch(0.97 0.003 260);
|
|
148
|
+
--sidebar-primary: oklch(0.75 0.05 260);
|
|
149
|
+
--sidebar-primary-foreground: oklch(0.15 0.01 260);
|
|
150
|
+
--sidebar-accent: oklch(0.26 0.01 260);
|
|
151
|
+
--sidebar-accent-foreground: oklch(0.97 0.003 260);
|
|
152
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
153
|
+
--sidebar-ring: oklch(0.75 0.05 260);
|
|
154
|
+
|
|
155
|
+
/* Charts */
|
|
156
|
+
--chart-1: oklch(0.7 0.15 250);
|
|
157
|
+
--chart-2: oklch(0.72 0.15 150);
|
|
158
|
+
--chart-3: oklch(0.75 0.12 70);
|
|
159
|
+
--chart-4: oklch(0.8 0.14 80);
|
|
160
|
+
--chart-5: oklch(0.65 0.18 25);
|
|
161
|
+
}
|
|
162
|
+
|
|
9
163
|
@theme inline {
|
|
10
164
|
/* ── Radii Mappings ─────────────────────────────────────────────── */
|
|
11
165
|
--radius-sm: calc(var(--radius, 0.5rem) - 4px);
|
package/dist/styles.css
CHANGED
package/dist/themes/finai.css
CHANGED
|
@@ -1,33 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FinAI Theme Preset — Emerald / Forest Green Palette
|
|
3
3
|
* Modern OKLCH color spaces optimized for trust, clarity, and financial wellness.
|
|
4
|
+
* High-specificity scoped tokens for FinAI applications.
|
|
4
5
|
*/
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
/* ── FinAI Theme — Light Mode ─────────────────────────────────────────── */
|
|
7
8
|
[data-brand="finai"],
|
|
8
|
-
[data-theme="finai"]
|
|
9
|
+
[data-theme="finai"],
|
|
10
|
+
[data-theme="finai-light"],
|
|
11
|
+
:root[data-brand="finai"],
|
|
12
|
+
:root[data-theme="finai"],
|
|
13
|
+
:root[data-theme="finai-light"] {
|
|
9
14
|
--radius: 0.75rem;
|
|
15
|
+
|
|
16
|
+
/* Surfaces */
|
|
10
17
|
--background: oklch(0.985 0.001 247);
|
|
11
18
|
--foreground: oklch(0.21 0.02 260);
|
|
12
19
|
--card: oklch(1 0 0);
|
|
13
20
|
--card-foreground: oklch(0.21 0.02 260);
|
|
14
21
|
--popover: oklch(1 0 0);
|
|
15
22
|
--popover-foreground: oklch(0.21 0.02 260);
|
|
23
|
+
|
|
24
|
+
/* Brand */
|
|
16
25
|
--primary: oklch(0.63 0.14 156);
|
|
17
26
|
--primary-foreground: oklch(0.99 0.005 150);
|
|
18
27
|
--secondary: oklch(0.965 0.003 260);
|
|
19
28
|
--secondary-foreground: oklch(0.21 0.02 260);
|
|
29
|
+
|
|
30
|
+
/* Muted / Accent */
|
|
20
31
|
--muted: oklch(0.965 0.003 260);
|
|
21
32
|
--muted-foreground: oklch(0.52 0.015 260);
|
|
22
33
|
--accent: oklch(0.95 0.03 156);
|
|
23
34
|
--accent-foreground: oklch(0.35 0.09 156);
|
|
35
|
+
|
|
36
|
+
/* Status */
|
|
24
37
|
--destructive: oklch(0.6 0.22 25);
|
|
25
38
|
--destructive-foreground: oklch(0.99 0.005 0);
|
|
26
39
|
--warning: oklch(0.75 0.14 80);
|
|
27
40
|
--warning-foreground: oklch(0.2 0.02 80);
|
|
41
|
+
--success: oklch(0.63 0.14 156);
|
|
42
|
+
--success-foreground: oklch(0.99 0.005 150);
|
|
43
|
+
--info: oklch(0.68 0.12 245);
|
|
44
|
+
--info-foreground: oklch(0.99 0.005 245);
|
|
45
|
+
|
|
46
|
+
/* Form / Ring */
|
|
28
47
|
--border: oklch(0.92 0.005 260);
|
|
29
48
|
--input: oklch(0.92 0.005 260);
|
|
30
49
|
--ring: oklch(0.63 0.14 156);
|
|
50
|
+
|
|
51
|
+
/* Glass / Surface Tokens */
|
|
52
|
+
--surface: oklch(1 0 0 / 70%);
|
|
53
|
+
--surface-2: oklch(0.975 0.003 260);
|
|
54
|
+
--overlay: oklch(0.985 0.001 247 / 80%);
|
|
55
|
+
|
|
56
|
+
/* Navigation & Sidebar */
|
|
31
57
|
--sidebar: oklch(1 0 0);
|
|
32
58
|
--sidebar-foreground: oklch(0.21 0.02 260);
|
|
33
59
|
--sidebar-primary: oklch(0.63 0.14 156);
|
|
@@ -36,12 +62,22 @@
|
|
|
36
62
|
--sidebar-accent-foreground: oklch(0.35 0.09 156);
|
|
37
63
|
--sidebar-border: oklch(0.93 0.005 260);
|
|
38
64
|
--sidebar-ring: oklch(0.63 0.14 156);
|
|
65
|
+
|
|
66
|
+
/* Visual Data Telemetry (Charts) */
|
|
39
67
|
--chart-1: oklch(0.63 0.14 156);
|
|
40
68
|
--chart-2: oklch(0.55 0.02 260);
|
|
41
69
|
--chart-3: oklch(0.75 0.04 156);
|
|
42
70
|
--chart-4: oklch(0.7 0.15 60);
|
|
43
71
|
--chart-5: oklch(0.6 0.18 25);
|
|
44
72
|
|
|
73
|
+
/* ── Financial Flow Tokens (Income, Expense, Investment) ───────────────── */
|
|
74
|
+
--income: var(--primary);
|
|
75
|
+
--income-foreground: var(--primary-foreground);
|
|
76
|
+
--expense: var(--destructive);
|
|
77
|
+
--expense-foreground: var(--destructive-foreground);
|
|
78
|
+
--investment: oklch(0.62 0.19 260);
|
|
79
|
+
--investment-foreground: oklch(0.99 0.005 260);
|
|
80
|
+
|
|
45
81
|
/* ── Sizing, Spacing & Layout Tokens ───────────────────────────────────── */
|
|
46
82
|
--control-height-xs: 1.75rem;
|
|
47
83
|
--control-height-sm: 2rem;
|
|
@@ -72,32 +108,64 @@
|
|
|
72
108
|
--table-row-padding-y: var(--space-4);
|
|
73
109
|
}
|
|
74
110
|
|
|
75
|
-
|
|
76
|
-
[data-theme="dark"],
|
|
111
|
+
/* ── FinAI Theme — Dark Mode ──────────────────────────────────────────── */
|
|
77
112
|
[data-theme="finai-dark"],
|
|
113
|
+
[data-brand="finai"][data-theme="dark"],
|
|
114
|
+
[data-brand="finai"][data-theme="finai-dark"],
|
|
78
115
|
[data-brand="finai"].dark,
|
|
79
|
-
[data-brand="finai"]
|
|
116
|
+
[data-brand="finai"] .dark,
|
|
117
|
+
[data-theme="finai"] .dark,
|
|
118
|
+
.dark [data-brand="finai"],
|
|
119
|
+
.dark [data-theme="finai"],
|
|
120
|
+
:root[data-theme="finai-dark"],
|
|
121
|
+
:root[data-brand="finai"].dark,
|
|
122
|
+
:root[data-brand="finai"][data-theme="dark"],
|
|
123
|
+
:root[data-brand="finai"][data-theme="finai-dark"],
|
|
124
|
+
:root.dark[data-brand="finai"],
|
|
125
|
+
:root.dark[data-theme="finai"] {
|
|
126
|
+
--radius: 0.75rem;
|
|
127
|
+
|
|
128
|
+
/* Surfaces */
|
|
80
129
|
--background: oklch(0.16 0.015 260);
|
|
81
130
|
--foreground: oklch(0.97 0.003 260);
|
|
82
131
|
--card: oklch(0.2 0.015 260);
|
|
83
132
|
--card-foreground: oklch(0.97 0.003 260);
|
|
84
133
|
--popover: oklch(0.2 0.015 260);
|
|
85
134
|
--popover-foreground: oklch(0.97 0.003 260);
|
|
135
|
+
|
|
136
|
+
/* Brand */
|
|
86
137
|
--primary: oklch(0.7 0.15 156);
|
|
87
138
|
--primary-foreground: oklch(0.15 0.02 260);
|
|
88
139
|
--secondary: oklch(0.25 0.015 260);
|
|
89
140
|
--secondary-foreground: oklch(0.97 0.003 260);
|
|
141
|
+
|
|
142
|
+
/* Muted / Accent */
|
|
90
143
|
--muted: oklch(0.25 0.015 260);
|
|
91
144
|
--muted-foreground: oklch(0.7 0.01 260);
|
|
92
145
|
--accent: oklch(0.3 0.05 156);
|
|
93
146
|
--accent-foreground: oklch(0.9 0.08 156);
|
|
147
|
+
|
|
148
|
+
/* Status */
|
|
94
149
|
--destructive: oklch(0.65 0.2 25);
|
|
95
150
|
--destructive-foreground: oklch(0.97 0.003 0);
|
|
96
151
|
--warning: oklch(0.75 0.14 80);
|
|
97
152
|
--warning-foreground: oklch(0.15 0.02 80);
|
|
153
|
+
--success: oklch(0.7 0.15 156);
|
|
154
|
+
--success-foreground: oklch(0.15 0.02 260);
|
|
155
|
+
--info: oklch(0.72 0.12 245);
|
|
156
|
+
--info-foreground: oklch(0.15 0.02 260);
|
|
157
|
+
|
|
158
|
+
/* Form / Ring */
|
|
98
159
|
--border: oklch(1 0 0 / 8%);
|
|
99
160
|
--input: oklch(1 0 0 / 12%);
|
|
100
161
|
--ring: oklch(0.7 0.15 156);
|
|
162
|
+
|
|
163
|
+
/* Glass / Surface Tokens */
|
|
164
|
+
--surface: oklch(0.2 0.015 260 / 70%);
|
|
165
|
+
--surface-2: oklch(0.235 0.015 260);
|
|
166
|
+
--overlay: oklch(0.12 0.015 260 / 80%);
|
|
167
|
+
|
|
168
|
+
/* Navigation & Sidebar */
|
|
101
169
|
--sidebar: oklch(0.18 0.015 260);
|
|
102
170
|
--sidebar-foreground: oklch(0.97 0.003 260);
|
|
103
171
|
--sidebar-primary: oklch(0.7 0.15 156);
|
|
@@ -106,9 +174,19 @@
|
|
|
106
174
|
--sidebar-accent-foreground: oklch(0.97 0.003 260);
|
|
107
175
|
--sidebar-border: oklch(1 0 0 / 8%);
|
|
108
176
|
--sidebar-ring: oklch(0.7 0.15 156);
|
|
177
|
+
|
|
178
|
+
/* Visual Data Telemetry (Charts) */
|
|
109
179
|
--chart-1: oklch(0.7 0.15 156);
|
|
110
180
|
--chart-2: oklch(0.6 0.02 260);
|
|
111
181
|
--chart-3: oklch(0.8 0.04 156);
|
|
112
182
|
--chart-4: oklch(0.75 0.15 60);
|
|
113
183
|
--chart-5: oklch(0.65 0.2 25);
|
|
184
|
+
|
|
185
|
+
/* ── Financial Flow Tokens (Income, Expense, Investment) ───────────────── */
|
|
186
|
+
--income: var(--primary);
|
|
187
|
+
--income-foreground: var(--primary-foreground);
|
|
188
|
+
--expense: var(--destructive);
|
|
189
|
+
--expense-foreground: var(--destructive-foreground);
|
|
190
|
+
--investment: oklch(0.68 0.19 260);
|
|
191
|
+
--investment-foreground: oklch(0.97 0.003 260);
|
|
114
192
|
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DevLab Logs Theme — High-Density Observability & Telemetry Console Palette
|
|
3
|
+
* Modern OKLCH color spaces optimized for real-time distributed log streaming,
|
|
4
|
+
* trace inspection, DuckDB SQL analytics, and Log-RAG root-cause analysis.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* ── DevLab Logs Theme — Light Mode ────────────────────────────────────────── */
|
|
8
|
+
[data-brand="logs"],
|
|
9
|
+
[data-theme="logs"],
|
|
10
|
+
[data-theme="logs-light"],
|
|
11
|
+
:root[data-brand="logs"],
|
|
12
|
+
:root[data-theme="logs"],
|
|
13
|
+
:root[data-theme="logs-light"] {
|
|
14
|
+
--radius: 0.5rem;
|
|
15
|
+
|
|
16
|
+
/* Surfaces */
|
|
17
|
+
--background: oklch(0.975 0.005 240);
|
|
18
|
+
--foreground: oklch(0.2 0.02 250);
|
|
19
|
+
--surface: oklch(0.95 0.008 240);
|
|
20
|
+
--surface-2: oklch(0.92 0.01 240);
|
|
21
|
+
--card: oklch(0.98 0.004 240);
|
|
22
|
+
--card-foreground: oklch(0.2 0.02 250);
|
|
23
|
+
--popover: oklch(0.97 0.006 240);
|
|
24
|
+
--popover-foreground: oklch(0.2 0.02 250);
|
|
25
|
+
|
|
26
|
+
/* Brand / Neon Green Accent */
|
|
27
|
+
--primary: oklch(0.62 0.18 150);
|
|
28
|
+
--primary-foreground: oklch(0.99 0.005 150);
|
|
29
|
+
--secondary: oklch(0.92 0.012 245);
|
|
30
|
+
--secondary-foreground: oklch(0.25 0.02 250);
|
|
31
|
+
|
|
32
|
+
/* Muted / Accent */
|
|
33
|
+
--muted: oklch(0.92 0.01 240);
|
|
34
|
+
--muted-foreground: oklch(0.5 0.02 245);
|
|
35
|
+
--accent: oklch(0.9 0.015 240);
|
|
36
|
+
--accent-foreground: oklch(0.2 0.02 250);
|
|
37
|
+
|
|
38
|
+
/* Severity & Status */
|
|
39
|
+
--destructive: oklch(0.6 0.22 25);
|
|
40
|
+
--destructive-foreground: oklch(0.99 0 0);
|
|
41
|
+
--fatal: oklch(0.58 0.24 350);
|
|
42
|
+
--error: oklch(0.6 0.22 25);
|
|
43
|
+
--warn: oklch(0.7 0.16 80);
|
|
44
|
+
--info: oklch(0.62 0.14 230);
|
|
45
|
+
--debug: oklch(0.52 0.04 250);
|
|
46
|
+
--ai: oklch(0.65 0.15 195);
|
|
47
|
+
|
|
48
|
+
/* Syntax Highlighting */
|
|
49
|
+
--syn-key: oklch(0.55 0.14 235);
|
|
50
|
+
--syn-str: oklch(0.55 0.16 145);
|
|
51
|
+
--syn-num: oklch(0.62 0.16 75);
|
|
52
|
+
|
|
53
|
+
/* Form & Interactive */
|
|
54
|
+
--border: oklch(0.85 0.01 240);
|
|
55
|
+
--input: oklch(0.85 0.01 240);
|
|
56
|
+
--ring: oklch(0.62 0.18 150 / 60%);
|
|
57
|
+
|
|
58
|
+
/* Visual Glow & Matrix Background */
|
|
59
|
+
--glow-primary:
|
|
60
|
+
0 0 0 1px color-mix(in oklab, var(--primary) 30%, transparent),
|
|
61
|
+
0 0 18px -4px color-mix(in oklab, var(--primary) 40%, transparent);
|
|
62
|
+
--grid-bg: radial-gradient(
|
|
63
|
+
circle at 1px 1px,
|
|
64
|
+
oklch(0 0 0 / 5%) 1px,
|
|
65
|
+
transparent 0
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* ── DevLab Logs Theme — Dark Mode ─────────────────────────────────────────── */
|
|
70
|
+
[data-theme="logs-dark"],
|
|
71
|
+
[data-brand="logs"][data-theme="dark"],
|
|
72
|
+
[data-brand="logs"][data-theme="logs-dark"],
|
|
73
|
+
[data-brand="logs"].dark,
|
|
74
|
+
[data-brand="logs"] .dark,
|
|
75
|
+
[data-theme="logs"] .dark,
|
|
76
|
+
.dark [data-brand="logs"],
|
|
77
|
+
.dark [data-theme="logs"],
|
|
78
|
+
:root[data-theme="logs-dark"],
|
|
79
|
+
:root[data-brand="logs"].dark,
|
|
80
|
+
:root[data-brand="logs"][data-theme="dark"],
|
|
81
|
+
:root[data-brand="logs"][data-theme="logs-dark"],
|
|
82
|
+
:root.dark[data-brand="logs"],
|
|
83
|
+
:root.dark[data-theme="logs"] {
|
|
84
|
+
--radius: 0.5rem;
|
|
85
|
+
|
|
86
|
+
/* Surfaces */
|
|
87
|
+
--background: oklch(0.155 0.012 250);
|
|
88
|
+
--foreground: oklch(0.93 0.01 240);
|
|
89
|
+
--surface: oklch(0.19 0.014 250);
|
|
90
|
+
--surface-2: oklch(0.225 0.016 250);
|
|
91
|
+
--card: oklch(0.19 0.014 250);
|
|
92
|
+
--card-foreground: oklch(0.93 0.01 240);
|
|
93
|
+
--popover: oklch(0.21 0.016 250);
|
|
94
|
+
--popover-foreground: oklch(0.93 0.01 240);
|
|
95
|
+
|
|
96
|
+
/* Brand / Neon Green Accent */
|
|
97
|
+
--primary: oklch(0.86 0.17 150);
|
|
98
|
+
--primary-foreground: oklch(0.17 0.03 150);
|
|
99
|
+
--secondary: oklch(0.25 0.016 250);
|
|
100
|
+
--secondary-foreground: oklch(0.93 0.01 240);
|
|
101
|
+
|
|
102
|
+
/* Muted / Accent */
|
|
103
|
+
--muted: oklch(0.24 0.014 250);
|
|
104
|
+
--muted-foreground: oklch(0.64 0.02 245);
|
|
105
|
+
--accent: oklch(0.27 0.02 250);
|
|
106
|
+
--accent-foreground: oklch(0.96 0.01 240);
|
|
107
|
+
|
|
108
|
+
/* Severity & Status */
|
|
109
|
+
--destructive: oklch(0.66 0.21 25);
|
|
110
|
+
--destructive-foreground: oklch(0.98 0 0);
|
|
111
|
+
--fatal: oklch(0.68 0.24 350);
|
|
112
|
+
--error: oklch(0.68 0.21 25);
|
|
113
|
+
--warn: oklch(0.82 0.16 80);
|
|
114
|
+
--info: oklch(0.76 0.12 230);
|
|
115
|
+
--debug: oklch(0.6 0.03 250);
|
|
116
|
+
--ai: oklch(0.78 0.14 195);
|
|
117
|
+
|
|
118
|
+
/* Syntax Highlighting */
|
|
119
|
+
--syn-key: oklch(0.78 0.12 230);
|
|
120
|
+
--syn-str: oklch(0.84 0.14 140);
|
|
121
|
+
--syn-num: oklch(0.82 0.15 70);
|
|
122
|
+
|
|
123
|
+
/* Form & Interactive */
|
|
124
|
+
--border: oklch(0.28 0.016 250);
|
|
125
|
+
--input: oklch(0.3 0.016 250);
|
|
126
|
+
--ring: oklch(0.86 0.17 150 / 60%);
|
|
127
|
+
|
|
128
|
+
/* Visual Glow & Matrix Background */
|
|
129
|
+
--glow-primary:
|
|
130
|
+
0 0 0 1px color-mix(in oklab, var(--primary) 40%, transparent),
|
|
131
|
+
0 0 24px -4px color-mix(in oklab, var(--primary) 50%, transparent);
|
|
132
|
+
--grid-bg: radial-gradient(
|
|
133
|
+
circle at 1px 1px,
|
|
134
|
+
oklch(1 0 0 / 4%) 1px,
|
|
135
|
+
transparent 0
|
|
136
|
+
);
|
|
137
|
+
}
|