@yuva-devlab/tokens 1.2.0 → 1.3.1
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 +97 -4
- package/dist/index.cjs +41 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.js +41 -5
- package/dist/index.js.map +1 -1
- package/dist/preset.css +40 -0
- package/dist/styles.css +1 -0
- package/dist/themes/finai.css +57 -0
- package/dist/themes/logs.css +84 -0
- package/dist/themes/orchestrai.css +26 -0
- package/dist/themes/portal.css +57 -0
- package/dist/themes/vitalai.css +248 -0
- package/package.json +25 -5
- package/styles/preset.css +40 -0
- package/styles/styles.css +1 -0
- package/styles/themes/finai.css +57 -0
- package/styles/themes/logs.css +84 -0
- package/styles/themes/orchestrai.css +26 -0
- package/styles/themes/portal.css +57 -0
- package/styles/themes/vitalai.css +248 -0
package/README.md
CHANGED
|
@@ -1,21 +1,114 @@
|
|
|
1
|
-
# @yuva-devlab/tokens
|
|
1
|
+
# 🎨 @yuva-devlab/tokens
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@yuva-devlab/tokens)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://tailwindcss.com)
|
|
6
|
+
|
|
7
|
+
> Core design token engine, OKLCH color palettes, typography scales, responsive density profiles, and Tailwind CSS 4 preset bridge for the DevLab ecosystem.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- 🌈 **Modern OKLCH Color Space** - Perceptually uniform, wide-gamut color scales optimized for high-dynamic displays.
|
|
14
|
+
- ⚡ **Zero-Runtime CSS Variables** - Pure CSS custom properties with zero JavaScript runtime overhead.
|
|
15
|
+
- 🏷️ **Multi-Brand Theme Architecture** - Scoped brand theming for OrchestrAI, VitalAI, FinAI, Logs, and Portal.
|
|
16
|
+
- 📐 **Density & Geometry Controls** - Brand-aware control heights, padding tokens, border radii, and typography scaling.
|
|
17
|
+
- 🌉 **Tailwind CSS 4 Bridge** - Native `@theme` declarations providing seamless utility class integration.
|
|
18
|
+
- 📦 **Typed Metadata Exports** - Full TypeScript contracts for programmatic brand discovery and switching.
|
|
19
|
+
|
|
20
|
+
---
|
|
4
21
|
|
|
5
22
|
## Installation
|
|
6
23
|
|
|
7
24
|
```bash
|
|
25
|
+
# pnpm (recommended)
|
|
8
26
|
pnpm add @yuva-devlab/tokens
|
|
27
|
+
|
|
28
|
+
# npm
|
|
29
|
+
npm install @yuva-devlab/tokens
|
|
30
|
+
|
|
31
|
+
# yarn
|
|
32
|
+
yarn add @yuva-devlab/tokens
|
|
9
33
|
```
|
|
10
34
|
|
|
35
|
+
---
|
|
36
|
+
|
|
11
37
|
## Usage
|
|
12
38
|
|
|
13
|
-
### Tailwind CSS 4
|
|
39
|
+
### 1. Tailwind CSS 4 Integration
|
|
14
40
|
|
|
15
|
-
|
|
41
|
+
Import the preset and your chosen brand theme in your root CSS file (e.g. `globals.css` or `app.css`):
|
|
16
42
|
|
|
17
43
|
```css
|
|
18
44
|
@import "tailwindcss";
|
|
19
45
|
@import "@yuva-devlab/tokens/preset.css";
|
|
20
46
|
@import "@yuva-devlab/tokens/themes/orchestrai.css";
|
|
21
47
|
```
|
|
48
|
+
|
|
49
|
+
### 2. Available Brand Themes
|
|
50
|
+
|
|
51
|
+
Import any brand theme stylesheet from `@yuva-devlab/tokens/themes/*`:
|
|
52
|
+
|
|
53
|
+
| Brand Theme | Import Path | Signature Aesthetic |
|
|
54
|
+
| :---------------- | :------------------------------------------ | :------------------------------------------------ |
|
|
55
|
+
| **OrchestrAI** | `@yuva-devlab/tokens/themes/orchestrai.css` | Midnight Neon Violet (`oklch(0.65 0.24 285)`) |
|
|
56
|
+
| **VitalAI** | `@yuva-devlab/tokens/themes/vitalai.css` | Athletic Volt Kinetic (`oklch(0.93 0.23 125)`) |
|
|
57
|
+
| **FinAI** | `@yuva-devlab/tokens/themes/finai.css` | High-Finance Emerald (`oklch(0.68 0.2 155)`) |
|
|
58
|
+
| **DevLab Logs** | `@yuva-devlab/tokens/themes/logs.css` | High-Density Matrix Amber (`oklch(0.78 0.18 75)`) |
|
|
59
|
+
| **DevLab Portal** | `@yuva-devlab/tokens/themes/portal.css` | Enterprise Modern Indigo (`oklch(0.62 0.22 260)`) |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Dynamic Brand Switching
|
|
64
|
+
|
|
65
|
+
Themes are scoped using `data-brand` and `data-theme` HTML attributes:
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<!-- VitalAI in Dark Mode -->
|
|
69
|
+
<html data-brand="vitalai" class="dark">
|
|
70
|
+
<body>
|
|
71
|
+
...
|
|
72
|
+
</body>
|
|
73
|
+
</html>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## TypeScript Brand Metadata
|
|
79
|
+
|
|
80
|
+
For programmatic brand switching, `@yuva-devlab/tokens` exports brand constants and density metadata:
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
import { BRAND_THEMES, BRAND_PROFILES } from "@yuva-devlab/tokens";
|
|
84
|
+
|
|
85
|
+
console.log(BRAND_THEMES);
|
|
86
|
+
// ["orchestrai", "vitalai", "finai", "logs", "portal"]
|
|
87
|
+
|
|
88
|
+
console.log(BRAND_PROFILES.vitalai);
|
|
89
|
+
// {
|
|
90
|
+
// name: "VitalAI",
|
|
91
|
+
// primary: "oklch(0.93 0.23 125)",
|
|
92
|
+
// fontFamily: "Barlow Condensed, Inter, sans-serif",
|
|
93
|
+
// density: "athletic"
|
|
94
|
+
// }
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Token Specifications
|
|
100
|
+
|
|
101
|
+
Every theme defines a comprehensive set of semantic CSS custom properties:
|
|
102
|
+
|
|
103
|
+
- **Surfaces**: `--background`, `--foreground`, `--card`, `--popover`, `--surface`, `--surface-2`
|
|
104
|
+
- **Actions**: `--primary`, `--primary-foreground`, `--secondary`, `--accent`, `--muted`
|
|
105
|
+
- **Feedback**: `--destructive`, `--warning`, `--success`, `--info`
|
|
106
|
+
- **Geometry**: `--radius`, `--control-height-xs` to `--control-height-xl`
|
|
107
|
+
- **Spacing**: `--space-1` to `--space-10`
|
|
108
|
+
- **Glassmorphism**: `--glass`, `--glass-border`, `--shadow-glass`, `--glow`
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## License
|
|
113
|
+
|
|
114
|
+
MIT © [Yuva DevLab](https://github.com/yuvadevlab)
|
package/dist/index.cjs
CHANGED
|
@@ -1,28 +1,64 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// src/index.ts
|
|
4
|
-
var THEMES = [
|
|
4
|
+
var THEMES = [
|
|
5
|
+
"orchestrai",
|
|
6
|
+
"finai",
|
|
7
|
+
"portal",
|
|
8
|
+
"logs",
|
|
9
|
+
"vitalai"
|
|
10
|
+
];
|
|
5
11
|
var BRAND_MODES = ["light", "dark"];
|
|
6
12
|
var THEME_CONFIGS = {
|
|
7
13
|
orchestrai: {
|
|
8
14
|
name: "orchestrai",
|
|
9
15
|
defaultMode: "dark",
|
|
10
|
-
label: "OrchestrAI"
|
|
16
|
+
label: "OrchestrAI",
|
|
17
|
+
fontSans: '"Manrope", sans-serif',
|
|
18
|
+
fontDisplay: '"Sora", sans-serif',
|
|
19
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
20
|
+
radius: "0.75rem",
|
|
21
|
+
density: "standard"
|
|
11
22
|
},
|
|
12
23
|
finai: {
|
|
13
24
|
name: "finai",
|
|
14
25
|
defaultMode: "dark",
|
|
15
|
-
label: "FinAI"
|
|
26
|
+
label: "FinAI",
|
|
27
|
+
fontSans: '"Inter", sans-serif',
|
|
28
|
+
fontDisplay: '"Inter", sans-serif',
|
|
29
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
30
|
+
radius: "0.75rem",
|
|
31
|
+
density: "spacious"
|
|
16
32
|
},
|
|
17
33
|
portal: {
|
|
18
34
|
name: "portal",
|
|
19
35
|
defaultMode: "dark",
|
|
20
|
-
label: "DevLab Portal"
|
|
36
|
+
label: "DevLab Portal",
|
|
37
|
+
fontSans: '"Inter", sans-serif',
|
|
38
|
+
fontDisplay: '"Inter", sans-serif',
|
|
39
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
40
|
+
radius: "0.5rem",
|
|
41
|
+
density: "standard"
|
|
21
42
|
},
|
|
22
43
|
logs: {
|
|
23
44
|
name: "logs",
|
|
24
45
|
defaultMode: "dark",
|
|
25
|
-
label: "DevLab Logs"
|
|
46
|
+
label: "DevLab Logs",
|
|
47
|
+
fontSans: '"Space Grotesk", sans-serif',
|
|
48
|
+
fontDisplay: '"Space Grotesk", sans-serif',
|
|
49
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
50
|
+
radius: "0.375rem",
|
|
51
|
+
density: "high"
|
|
52
|
+
},
|
|
53
|
+
vitalai: {
|
|
54
|
+
name: "vitalai",
|
|
55
|
+
defaultMode: "dark",
|
|
56
|
+
label: "VitalAI",
|
|
57
|
+
fontSans: '"Inter", sans-serif',
|
|
58
|
+
fontDisplay: '"Barlow Condensed", "Inter", sans-serif',
|
|
59
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
60
|
+
radius: "1rem",
|
|
61
|
+
density: "spacious"
|
|
26
62
|
}
|
|
27
63
|
};
|
|
28
64
|
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;AAKO,IAAM,MAAA,GAAS,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;AAKO,IAAM,MAAA,GAAS;AAAA,EACpB,YAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;AAGO,IAAM,WAAA,GAAc,CAAC,OAAA,EAAS,MAAM;AAyBpC,IAAM,aAAA,GAAgD;AAAA,EAC3D,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,YAAA;AAAA,IACP,QAAA,EAAU,uBAAA;AAAA,IACV,WAAA,EAAa,oBAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,SAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,OAAA;AAAA,IACP,QAAA,EAAU,qBAAA;AAAA,IACV,WAAA,EAAa,qBAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,SAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,eAAA;AAAA,IACP,QAAA,EAAU,qBAAA;AAAA,IACV,WAAA,EAAa,qBAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,QAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,aAAA;AAAA,IACP,QAAA,EAAU,6BAAA;AAAA,IACV,WAAA,EAAa,6BAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,UAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,qBAAA;AAAA,IACV,WAAA,EAAa,yCAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS;AAAA;AAEb","file":"index.cjs","sourcesContent":["/**\n * @file src/index.ts\n * @description Yuva DevLab Design System — Design Tokens & Theme Definitions.\n */\n\nexport const THEMES = [\n \"orchestrai\",\n \"finai\",\n \"portal\",\n \"logs\",\n \"vitalai\",\n] 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\n/**\n * Brand Theme Configuration Object Interface.\n */\nexport interface ThemeConfig {\n /** Identifier of the theme */\n readonly name: ThemeName;\n /** Default mode (light/dark) */\n readonly defaultMode: BrandMode;\n /** Human-readable brand label */\n readonly label: string;\n /** Primary body font stack */\n readonly fontSans: string;\n /** Display/Heading font stack */\n readonly fontDisplay: string;\n /** Monospace code/terminal font stack */\n readonly fontMono: string;\n /** Corner radius token */\n readonly radius: string;\n /** Density profile of the brand */\n readonly density: \"high\" | \"standard\" | \"spacious\";\n}\n\nexport const THEME_CONFIGS: Record<ThemeName, ThemeConfig> = {\n orchestrai: {\n name: \"orchestrai\",\n defaultMode: \"dark\",\n label: \"OrchestrAI\",\n fontSans: '\"Manrope\", sans-serif',\n fontDisplay: '\"Sora\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"0.75rem\",\n density: \"standard\",\n },\n finai: {\n name: \"finai\",\n defaultMode: \"dark\",\n label: \"FinAI\",\n fontSans: '\"Inter\", sans-serif',\n fontDisplay: '\"Inter\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"0.75rem\",\n density: \"spacious\",\n },\n portal: {\n name: \"portal\",\n defaultMode: \"dark\",\n label: \"DevLab Portal\",\n fontSans: '\"Inter\", sans-serif',\n fontDisplay: '\"Inter\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"0.5rem\",\n density: \"standard\",\n },\n logs: {\n name: \"logs\",\n defaultMode: \"dark\",\n label: \"DevLab Logs\",\n fontSans: '\"Space Grotesk\", sans-serif',\n fontDisplay: '\"Space Grotesk\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"0.375rem\",\n density: \"high\",\n },\n vitalai: {\n name: \"vitalai\",\n defaultMode: \"dark\",\n label: \"VitalAI\",\n fontSans: '\"Inter\", sans-serif',\n fontDisplay: '\"Barlow Condensed\", \"Inter\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"1rem\",\n density: \"spacious\",\n },\n} as const;\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -2,14 +2,30 @@
|
|
|
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", "portal", "logs"];
|
|
5
|
+
declare const THEMES: readonly ["orchestrai", "finai", "portal", "logs", "vitalai"];
|
|
6
6
|
type ThemeName = (typeof THEMES)[number];
|
|
7
7
|
declare const BRAND_MODES: readonly ["light", "dark"];
|
|
8
8
|
type BrandMode = (typeof BRAND_MODES)[number];
|
|
9
|
+
/**
|
|
10
|
+
* Brand Theme Configuration Object Interface.
|
|
11
|
+
*/
|
|
9
12
|
interface ThemeConfig {
|
|
13
|
+
/** Identifier of the theme */
|
|
10
14
|
readonly name: ThemeName;
|
|
15
|
+
/** Default mode (light/dark) */
|
|
11
16
|
readonly defaultMode: BrandMode;
|
|
17
|
+
/** Human-readable brand label */
|
|
12
18
|
readonly label: string;
|
|
19
|
+
/** Primary body font stack */
|
|
20
|
+
readonly fontSans: string;
|
|
21
|
+
/** Display/Heading font stack */
|
|
22
|
+
readonly fontDisplay: string;
|
|
23
|
+
/** Monospace code/terminal font stack */
|
|
24
|
+
readonly fontMono: string;
|
|
25
|
+
/** Corner radius token */
|
|
26
|
+
readonly radius: string;
|
|
27
|
+
/** Density profile of the brand */
|
|
28
|
+
readonly density: "high" | "standard" | "spacious";
|
|
13
29
|
}
|
|
14
30
|
declare const THEME_CONFIGS: Record<ThemeName, ThemeConfig>;
|
|
15
31
|
|
package/dist/index.d.ts
CHANGED
|
@@ -2,14 +2,30 @@
|
|
|
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", "portal", "logs"];
|
|
5
|
+
declare const THEMES: readonly ["orchestrai", "finai", "portal", "logs", "vitalai"];
|
|
6
6
|
type ThemeName = (typeof THEMES)[number];
|
|
7
7
|
declare const BRAND_MODES: readonly ["light", "dark"];
|
|
8
8
|
type BrandMode = (typeof BRAND_MODES)[number];
|
|
9
|
+
/**
|
|
10
|
+
* Brand Theme Configuration Object Interface.
|
|
11
|
+
*/
|
|
9
12
|
interface ThemeConfig {
|
|
13
|
+
/** Identifier of the theme */
|
|
10
14
|
readonly name: ThemeName;
|
|
15
|
+
/** Default mode (light/dark) */
|
|
11
16
|
readonly defaultMode: BrandMode;
|
|
17
|
+
/** Human-readable brand label */
|
|
12
18
|
readonly label: string;
|
|
19
|
+
/** Primary body font stack */
|
|
20
|
+
readonly fontSans: string;
|
|
21
|
+
/** Display/Heading font stack */
|
|
22
|
+
readonly fontDisplay: string;
|
|
23
|
+
/** Monospace code/terminal font stack */
|
|
24
|
+
readonly fontMono: string;
|
|
25
|
+
/** Corner radius token */
|
|
26
|
+
readonly radius: string;
|
|
27
|
+
/** Density profile of the brand */
|
|
28
|
+
readonly density: "high" | "standard" | "spacious";
|
|
13
29
|
}
|
|
14
30
|
declare const THEME_CONFIGS: Record<ThemeName, ThemeConfig>;
|
|
15
31
|
|
package/dist/index.js
CHANGED
|
@@ -1,26 +1,62 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
var THEMES = [
|
|
2
|
+
var THEMES = [
|
|
3
|
+
"orchestrai",
|
|
4
|
+
"finai",
|
|
5
|
+
"portal",
|
|
6
|
+
"logs",
|
|
7
|
+
"vitalai"
|
|
8
|
+
];
|
|
3
9
|
var BRAND_MODES = ["light", "dark"];
|
|
4
10
|
var THEME_CONFIGS = {
|
|
5
11
|
orchestrai: {
|
|
6
12
|
name: "orchestrai",
|
|
7
13
|
defaultMode: "dark",
|
|
8
|
-
label: "OrchestrAI"
|
|
14
|
+
label: "OrchestrAI",
|
|
15
|
+
fontSans: '"Manrope", sans-serif',
|
|
16
|
+
fontDisplay: '"Sora", sans-serif',
|
|
17
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
18
|
+
radius: "0.75rem",
|
|
19
|
+
density: "standard"
|
|
9
20
|
},
|
|
10
21
|
finai: {
|
|
11
22
|
name: "finai",
|
|
12
23
|
defaultMode: "dark",
|
|
13
|
-
label: "FinAI"
|
|
24
|
+
label: "FinAI",
|
|
25
|
+
fontSans: '"Inter", sans-serif',
|
|
26
|
+
fontDisplay: '"Inter", sans-serif',
|
|
27
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
28
|
+
radius: "0.75rem",
|
|
29
|
+
density: "spacious"
|
|
14
30
|
},
|
|
15
31
|
portal: {
|
|
16
32
|
name: "portal",
|
|
17
33
|
defaultMode: "dark",
|
|
18
|
-
label: "DevLab Portal"
|
|
34
|
+
label: "DevLab Portal",
|
|
35
|
+
fontSans: '"Inter", sans-serif',
|
|
36
|
+
fontDisplay: '"Inter", sans-serif',
|
|
37
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
38
|
+
radius: "0.5rem",
|
|
39
|
+
density: "standard"
|
|
19
40
|
},
|
|
20
41
|
logs: {
|
|
21
42
|
name: "logs",
|
|
22
43
|
defaultMode: "dark",
|
|
23
|
-
label: "DevLab Logs"
|
|
44
|
+
label: "DevLab Logs",
|
|
45
|
+
fontSans: '"Space Grotesk", sans-serif',
|
|
46
|
+
fontDisplay: '"Space Grotesk", sans-serif',
|
|
47
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
48
|
+
radius: "0.375rem",
|
|
49
|
+
density: "high"
|
|
50
|
+
},
|
|
51
|
+
vitalai: {
|
|
52
|
+
name: "vitalai",
|
|
53
|
+
defaultMode: "dark",
|
|
54
|
+
label: "VitalAI",
|
|
55
|
+
fontSans: '"Inter", sans-serif',
|
|
56
|
+
fontDisplay: '"Barlow Condensed", "Inter", sans-serif',
|
|
57
|
+
fontMono: '"JetBrains Mono", monospace',
|
|
58
|
+
radius: "1rem",
|
|
59
|
+
density: "spacious"
|
|
24
60
|
}
|
|
25
61
|
};
|
|
26
62
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";AAKO,IAAM,MAAA,GAAS,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";AAKO,IAAM,MAAA,GAAS;AAAA,EACpB,YAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;AAGO,IAAM,WAAA,GAAc,CAAC,OAAA,EAAS,MAAM;AAyBpC,IAAM,aAAA,GAAgD;AAAA,EAC3D,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,YAAA;AAAA,IACP,QAAA,EAAU,uBAAA;AAAA,IACV,WAAA,EAAa,oBAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,SAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,OAAA;AAAA,IACP,QAAA,EAAU,qBAAA;AAAA,IACV,WAAA,EAAa,qBAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,SAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,eAAA;AAAA,IACP,QAAA,EAAU,qBAAA;AAAA,IACV,WAAA,EAAa,qBAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,QAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,aAAA;AAAA,IACP,QAAA,EAAU,6BAAA;AAAA,IACV,WAAA,EAAa,6BAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,UAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,MAAA;AAAA,IACb,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,qBAAA;AAAA,IACV,WAAA,EAAa,yCAAA;AAAA,IACb,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS;AAAA;AAEb","file":"index.js","sourcesContent":["/**\n * @file src/index.ts\n * @description Yuva DevLab Design System — Design Tokens & Theme Definitions.\n */\n\nexport const THEMES = [\n \"orchestrai\",\n \"finai\",\n \"portal\",\n \"logs\",\n \"vitalai\",\n] 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\n/**\n * Brand Theme Configuration Object Interface.\n */\nexport interface ThemeConfig {\n /** Identifier of the theme */\n readonly name: ThemeName;\n /** Default mode (light/dark) */\n readonly defaultMode: BrandMode;\n /** Human-readable brand label */\n readonly label: string;\n /** Primary body font stack */\n readonly fontSans: string;\n /** Display/Heading font stack */\n readonly fontDisplay: string;\n /** Monospace code/terminal font stack */\n readonly fontMono: string;\n /** Corner radius token */\n readonly radius: string;\n /** Density profile of the brand */\n readonly density: \"high\" | \"standard\" | \"spacious\";\n}\n\nexport const THEME_CONFIGS: Record<ThemeName, ThemeConfig> = {\n orchestrai: {\n name: \"orchestrai\",\n defaultMode: \"dark\",\n label: \"OrchestrAI\",\n fontSans: '\"Manrope\", sans-serif',\n fontDisplay: '\"Sora\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"0.75rem\",\n density: \"standard\",\n },\n finai: {\n name: \"finai\",\n defaultMode: \"dark\",\n label: \"FinAI\",\n fontSans: '\"Inter\", sans-serif',\n fontDisplay: '\"Inter\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"0.75rem\",\n density: \"spacious\",\n },\n portal: {\n name: \"portal\",\n defaultMode: \"dark\",\n label: \"DevLab Portal\",\n fontSans: '\"Inter\", sans-serif',\n fontDisplay: '\"Inter\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"0.5rem\",\n density: \"standard\",\n },\n logs: {\n name: \"logs\",\n defaultMode: \"dark\",\n label: \"DevLab Logs\",\n fontSans: '\"Space Grotesk\", sans-serif',\n fontDisplay: '\"Space Grotesk\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"0.375rem\",\n density: \"high\",\n },\n vitalai: {\n name: \"vitalai\",\n defaultMode: \"dark\",\n label: \"VitalAI\",\n fontSans: '\"Inter\", sans-serif',\n fontDisplay: '\"Barlow Condensed\", \"Inter\", sans-serif',\n fontMono: '\"JetBrains Mono\", monospace',\n radius: \"1rem\",\n density: \"spacious\",\n },\n} as const;\n"]}
|
package/dist/preset.css
CHANGED
|
@@ -96,6 +96,19 @@
|
|
|
96
96
|
--section-gap: var(--space-5);
|
|
97
97
|
--table-row-padding-x: var(--space-4);
|
|
98
98
|
--table-row-padding-y: var(--space-3);
|
|
99
|
+
|
|
100
|
+
/* ── Typography Fallback Baseline ───────────────────────────────────── */
|
|
101
|
+
--theme-font-sans:
|
|
102
|
+
system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
103
|
+
--theme-font-display: var(--theme-font-sans);
|
|
104
|
+
--theme-font-mono:
|
|
105
|
+
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
106
|
+
--font-sans: var(--theme-font-sans);
|
|
107
|
+
--font-display: var(--theme-font-display);
|
|
108
|
+
--font-mono: var(--theme-font-mono);
|
|
109
|
+
|
|
110
|
+
--theme-font-size-root: 16px;
|
|
111
|
+
--theme-spacing: 0.25rem;
|
|
99
112
|
}
|
|
100
113
|
|
|
101
114
|
.dark,
|
|
@@ -158,9 +171,28 @@
|
|
|
158
171
|
--chart-3: oklch(0.75 0.12 70);
|
|
159
172
|
--chart-4: oklch(0.8 0.14 80);
|
|
160
173
|
--chart-5: oklch(0.65 0.18 25);
|
|
174
|
+
|
|
175
|
+
/* ── Typography Fallback Baseline ───────────────────────────────────── */
|
|
176
|
+
--theme-font-sans:
|
|
177
|
+
system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
178
|
+
--theme-font-display: var(--theme-font-sans);
|
|
179
|
+
--theme-font-mono:
|
|
180
|
+
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
181
|
+
--font-sans: var(--theme-font-sans);
|
|
182
|
+
--font-display: var(--theme-font-display);
|
|
183
|
+
--font-mono: var(--theme-font-mono);
|
|
184
|
+
|
|
185
|
+
--theme-font-size-root: 16px;
|
|
186
|
+
--theme-spacing: 0.25rem;
|
|
161
187
|
}
|
|
162
188
|
|
|
163
189
|
@theme inline {
|
|
190
|
+
/* ── Typography & Spacing Tokens ────────────────────────────────── */
|
|
191
|
+
--font-sans: var(--font-sans);
|
|
192
|
+
--font-display: var(--font-display);
|
|
193
|
+
--font-mono: var(--font-mono);
|
|
194
|
+
--spacing: var(--theme-spacing, 0.25rem);
|
|
195
|
+
|
|
164
196
|
/* ── Radii Mappings ─────────────────────────────────────────────── */
|
|
165
197
|
--radius-sm: calc(var(--radius, 0.5rem) - 4px);
|
|
166
198
|
--radius-md: calc(var(--radius, 0.5rem) - 2px);
|
|
@@ -221,6 +253,14 @@
|
|
|
221
253
|
--color-chart-4: var(--chart-4);
|
|
222
254
|
--color-chart-5: var(--chart-5);
|
|
223
255
|
|
|
256
|
+
/* ── VitalAI High-Performance Athletic & Kinetic Tokens ────────── */
|
|
257
|
+
--color-volt: var(--volt);
|
|
258
|
+
--color-cyan: var(--cyan);
|
|
259
|
+
--color-ember: var(--ember);
|
|
260
|
+
--color-slate-muscle: var(--slate-muscle);
|
|
261
|
+
--color-glass: var(--glass);
|
|
262
|
+
--color-glass-border: var(--glass-border);
|
|
263
|
+
|
|
224
264
|
/* ── Component Control Dimensions ─────────────────────────────────── */
|
|
225
265
|
--height-control-xs: var(--control-height-xs, 1.75rem);
|
|
226
266
|
--height-control-sm: var(--control-height-sm, 2rem);
|
package/dist/styles.css
CHANGED
package/dist/themes/finai.css
CHANGED
|
@@ -106,6 +106,20 @@
|
|
|
106
106
|
--section-gap: var(--space-6);
|
|
107
107
|
--table-row-padding-x: var(--space-6);
|
|
108
108
|
--table-row-padding-y: var(--space-4);
|
|
109
|
+
|
|
110
|
+
/* ── FinAI Typography Tokens ─────────────────────────────────────────── */
|
|
111
|
+
--theme-font-sans:
|
|
112
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
113
|
+
--theme-font-display:
|
|
114
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
115
|
+
--theme-font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
116
|
+
--font-sans: var(--theme-font-sans);
|
|
117
|
+
--font-display: var(--theme-font-display);
|
|
118
|
+
--font-mono: var(--theme-font-mono);
|
|
119
|
+
|
|
120
|
+
/* ── Financial Wellness Scaling ──────────────────────────────────────── */
|
|
121
|
+
--theme-font-size-root: 16px;
|
|
122
|
+
--theme-spacing: 0.265rem;
|
|
109
123
|
}
|
|
110
124
|
|
|
111
125
|
/* ── FinAI Theme — Dark Mode ──────────────────────────────────────────── */
|
|
@@ -189,4 +203,47 @@
|
|
|
189
203
|
--expense-foreground: var(--destructive-foreground);
|
|
190
204
|
--investment: oklch(0.68 0.19 260);
|
|
191
205
|
--investment-foreground: oklch(0.97 0.003 260);
|
|
206
|
+
|
|
207
|
+
/* ── Sizing, Spacing & Layout Tokens ───────────────────────────────────── */
|
|
208
|
+
--control-height-xs: 1.75rem;
|
|
209
|
+
--control-height-sm: 2rem;
|
|
210
|
+
--control-height-md: 2.375rem;
|
|
211
|
+
--control-height-lg: 2.75rem;
|
|
212
|
+
--control-height-xl: 3.25rem;
|
|
213
|
+
|
|
214
|
+
--icon-xs: 0.75rem;
|
|
215
|
+
--icon-sm: 0.875rem;
|
|
216
|
+
--icon-md: 1rem;
|
|
217
|
+
--icon-lg: 1.25rem;
|
|
218
|
+
--icon-xl: 1.5rem;
|
|
219
|
+
|
|
220
|
+
--space-1: 0.25rem;
|
|
221
|
+
--space-2: 0.5rem;
|
|
222
|
+
--space-3: 0.75rem;
|
|
223
|
+
--space-4: 1rem;
|
|
224
|
+
--space-5: 1.25rem;
|
|
225
|
+
--space-6: 1.5rem;
|
|
226
|
+
--space-8: 2rem;
|
|
227
|
+
--space-10: 2.5rem;
|
|
228
|
+
|
|
229
|
+
--card-padding: var(--space-5);
|
|
230
|
+
--dialog-padding: var(--space-6);
|
|
231
|
+
--form-field-gap: var(--space-4);
|
|
232
|
+
--section-gap: var(--space-6);
|
|
233
|
+
--table-row-padding-x: var(--space-6);
|
|
234
|
+
--table-row-padding-y: var(--space-4);
|
|
235
|
+
|
|
236
|
+
/* ── FinAI Typography Tokens ─────────────────────────────────────────── */
|
|
237
|
+
--theme-font-sans:
|
|
238
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
239
|
+
--theme-font-display:
|
|
240
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
241
|
+
--theme-font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
242
|
+
--font-sans: var(--theme-font-sans);
|
|
243
|
+
--font-display: var(--theme-font-display);
|
|
244
|
+
--font-mono: var(--theme-font-mono);
|
|
245
|
+
|
|
246
|
+
/* ── Financial Wellness Scaling ──────────────────────────────────────── */
|
|
247
|
+
--theme-font-size-root: 16px;
|
|
248
|
+
--theme-spacing: 0.265rem;
|
|
192
249
|
}
|
package/dist/themes/logs.css
CHANGED
|
@@ -64,6 +64,48 @@
|
|
|
64
64
|
oklch(0 0 0 / 5%) 1px,
|
|
65
65
|
transparent 0
|
|
66
66
|
);
|
|
67
|
+
|
|
68
|
+
/* ── DevLab Logs Typography Tokens ───────────────────────────────────── */
|
|
69
|
+
--theme-font-sans: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
|
|
70
|
+
--theme-font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
|
|
71
|
+
--theme-font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
72
|
+
--font-sans: var(--theme-font-sans);
|
|
73
|
+
--font-display: var(--theme-font-display);
|
|
74
|
+
--font-mono: var(--theme-font-mono);
|
|
75
|
+
|
|
76
|
+
/* ── High-Density Observability Scaling ──────────────────────────────── */
|
|
77
|
+
--theme-font-size-root: 14.5px;
|
|
78
|
+
--theme-spacing: 0.2rem;
|
|
79
|
+
--radius: 0.375rem;
|
|
80
|
+
|
|
81
|
+
/* ── Sizing, Spacing & Layout Tokens ─────────────────────────────────── */
|
|
82
|
+
--control-height-xs: 1.5rem;
|
|
83
|
+
--control-height-sm: 1.75rem;
|
|
84
|
+
--control-height-md: 2rem;
|
|
85
|
+
--control-height-lg: 2.25rem;
|
|
86
|
+
--control-height-xl: 2.5rem;
|
|
87
|
+
|
|
88
|
+
--icon-xs: 0.75rem;
|
|
89
|
+
--icon-sm: 0.875rem;
|
|
90
|
+
--icon-md: 1rem;
|
|
91
|
+
--icon-lg: 1.125rem;
|
|
92
|
+
--icon-xl: 1.25rem;
|
|
93
|
+
|
|
94
|
+
--space-1: 0.125rem;
|
|
95
|
+
--space-2: 0.25rem;
|
|
96
|
+
--space-3: 0.5rem;
|
|
97
|
+
--space-4: 0.75rem;
|
|
98
|
+
--space-5: 1rem;
|
|
99
|
+
--space-6: 1.25rem;
|
|
100
|
+
--space-8: 1.5rem;
|
|
101
|
+
--space-10: 2rem;
|
|
102
|
+
|
|
103
|
+
--card-padding: var(--space-3);
|
|
104
|
+
--dialog-padding: var(--space-4);
|
|
105
|
+
--form-field-gap: var(--space-2);
|
|
106
|
+
--section-gap: var(--space-4);
|
|
107
|
+
--table-row-padding-x: var(--space-3);
|
|
108
|
+
--table-row-padding-y: var(--space-2);
|
|
67
109
|
}
|
|
68
110
|
|
|
69
111
|
/* ── DevLab Logs Theme — Dark Mode ─────────────────────────────────────────── */
|
|
@@ -134,4 +176,46 @@
|
|
|
134
176
|
oklch(1 0 0 / 4%) 1px,
|
|
135
177
|
transparent 0
|
|
136
178
|
);
|
|
179
|
+
|
|
180
|
+
/* ── DevLab Logs Typography Tokens ───────────────────────────────────── */
|
|
181
|
+
--theme-font-sans: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
|
|
182
|
+
--theme-font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
|
|
183
|
+
--theme-font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
184
|
+
--font-sans: var(--theme-font-sans);
|
|
185
|
+
--font-display: var(--theme-font-display);
|
|
186
|
+
--font-mono: var(--theme-font-mono);
|
|
187
|
+
|
|
188
|
+
/* ── High-Density Observability Scaling ──────────────────────────────── */
|
|
189
|
+
--theme-font-size-root: 14.5px;
|
|
190
|
+
--theme-spacing: 0.2rem;
|
|
191
|
+
--radius: 0.375rem;
|
|
192
|
+
|
|
193
|
+
/* ── Sizing, Spacing & Layout Tokens ─────────────────────────────────── */
|
|
194
|
+
--control-height-xs: 1.5rem;
|
|
195
|
+
--control-height-sm: 1.75rem;
|
|
196
|
+
--control-height-md: 2rem;
|
|
197
|
+
--control-height-lg: 2.25rem;
|
|
198
|
+
--control-height-xl: 2.5rem;
|
|
199
|
+
|
|
200
|
+
--icon-xs: 0.75rem;
|
|
201
|
+
--icon-sm: 0.875rem;
|
|
202
|
+
--icon-md: 1rem;
|
|
203
|
+
--icon-lg: 1.125rem;
|
|
204
|
+
--icon-xl: 1.25rem;
|
|
205
|
+
|
|
206
|
+
--space-1: 0.125rem;
|
|
207
|
+
--space-2: 0.25rem;
|
|
208
|
+
--space-3: 0.5rem;
|
|
209
|
+
--space-4: 0.75rem;
|
|
210
|
+
--space-5: 1rem;
|
|
211
|
+
--space-6: 1.25rem;
|
|
212
|
+
--space-8: 1.5rem;
|
|
213
|
+
--space-10: 2rem;
|
|
214
|
+
|
|
215
|
+
--card-padding: var(--space-3);
|
|
216
|
+
--dialog-padding: var(--space-4);
|
|
217
|
+
--form-field-gap: var(--space-2);
|
|
218
|
+
--section-gap: var(--space-4);
|
|
219
|
+
--table-row-padding-x: var(--space-3);
|
|
220
|
+
--table-row-padding-y: var(--space-2);
|
|
137
221
|
}
|
|
@@ -98,6 +98,19 @@
|
|
|
98
98
|
--section-gap: var(--space-5);
|
|
99
99
|
--table-row-padding-x: var(--space-4);
|
|
100
100
|
--table-row-padding-y: var(--space-3);
|
|
101
|
+
|
|
102
|
+
/* ── OrchestrAI Typography Tokens ─────────────────────────────────────── */
|
|
103
|
+
--theme-font-sans:
|
|
104
|
+
"Manrope", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
105
|
+
--theme-font-display: "Sora", ui-sans-serif, system-ui, sans-serif;
|
|
106
|
+
--theme-font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
107
|
+
--font-sans: var(--theme-font-sans);
|
|
108
|
+
--font-display: var(--theme-font-display);
|
|
109
|
+
--font-mono: var(--theme-font-mono);
|
|
110
|
+
|
|
111
|
+
/* ── Balanced Cybernetic Scaling ─────────────────────────────────────── */
|
|
112
|
+
--theme-font-size-root: 16px;
|
|
113
|
+
--theme-spacing: 0.25rem;
|
|
101
114
|
}
|
|
102
115
|
|
|
103
116
|
/* ── OrchestrAI Theme — Dark Mode ──────────────────────────────────────── */
|
|
@@ -202,4 +215,17 @@
|
|
|
202
215
|
--section-gap: var(--space-5);
|
|
203
216
|
--table-row-padding-x: var(--space-4);
|
|
204
217
|
--table-row-padding-y: var(--space-3);
|
|
218
|
+
|
|
219
|
+
/* ── OrchestrAI Typography Tokens ─────────────────────────────────────── */
|
|
220
|
+
--theme-font-sans:
|
|
221
|
+
"Manrope", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
222
|
+
--theme-font-display: "Sora", ui-sans-serif, system-ui, sans-serif;
|
|
223
|
+
--theme-font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
224
|
+
--font-sans: var(--theme-font-sans);
|
|
225
|
+
--font-display: var(--theme-font-display);
|
|
226
|
+
--font-mono: var(--theme-font-mono);
|
|
227
|
+
|
|
228
|
+
/* ── Balanced Cybernetic Scaling ─────────────────────────────────────── */
|
|
229
|
+
--theme-font-size-root: 16px;
|
|
230
|
+
--theme-spacing: 0.25rem;
|
|
205
231
|
}
|