@oneqode/design-system 0.3.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/LICENSE +21 -0
- package/README.md +37 -0
- package/build/css/lagom-theme-custom.css +29 -0
- package/build/css/remake/tokens.css +64 -0
- package/build/css/shadcn-vars.css +31 -0
- package/build/css/tailwind-theme.css +64 -0
- package/build/css/tokens.css +64 -0
- package/build/json/tokens.json +60 -0
- package/build/md/design-tokens.md +104 -0
- package/package.json +49 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 OneQode
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# OneQode Design System
|
|
2
|
+
|
|
3
|
+
Centralized design tokens for all OneQode projects.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm install
|
|
9
|
+
pnpm build:tokens # Generate CSS, Tailwind, shadcn, and JSON outputs
|
|
10
|
+
pnpm dev # Start Starlight docs site
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Consuming Tokens
|
|
14
|
+
|
|
15
|
+
**Any project (CSS):**
|
|
16
|
+
```html
|
|
17
|
+
<link rel="stylesheet" href="path/to/build/css/tokens.css">
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Tailwind projects (Astro, Nuxt):**
|
|
21
|
+
```css
|
|
22
|
+
@import "@oneqode/design-system/build/css/tailwind-theme.css";
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**shadcn-vue projects:**
|
|
26
|
+
```css
|
|
27
|
+
@import "@oneqode/design-system/build/css/shadcn-vars.css";
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Build Outputs
|
|
31
|
+
|
|
32
|
+
| File | Format | Consumers |
|
|
33
|
+
|------|--------|-----------|
|
|
34
|
+
| `build/css/tokens.css` | CSS custom properties | All projects |
|
|
35
|
+
| `build/css/tailwind-theme.css` | Tailwind v4 @theme | Website, Frontier |
|
|
36
|
+
| `build/css/shadcn-vars.css` | HSL variables | shadcn-vue projects |
|
|
37
|
+
| `build/json/tokens.json` | Flat JSON | AI agents, scripts |
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/* Lagom2 theme override - generated from OneQode Design System tokens.
|
|
6
|
+
* Deploy to: templates/lagom2/core/styles/<style>/assets/css/theme-custom.css
|
|
7
|
+
* Do not edit manually - regenerate with: pnpm build:tokens
|
|
8
|
+
*/
|
|
9
|
+
:root {
|
|
10
|
+
--brand-primary: #1774e0;
|
|
11
|
+
--brand-primary-gradient-end: #1774e0;
|
|
12
|
+
--brand-info: #1774e0;
|
|
13
|
+
--brand-info-gradient-end: #1774e0;
|
|
14
|
+
--brand-secondary: #00c1ff;
|
|
15
|
+
--brand-primary-lighter: #00c1ff;
|
|
16
|
+
--brand-success: #69fea2;
|
|
17
|
+
--brand-success-gradient-end: #69fea2;
|
|
18
|
+
--brand-warning: #fec33c;
|
|
19
|
+
--brand-warning-gradient-end: #fec33c;
|
|
20
|
+
--body-bg: #0d0f10;
|
|
21
|
+
--gray-base: rgba(255, 255, 255, 0.7);
|
|
22
|
+
--gray-lighter: #bbc4d0;
|
|
23
|
+
--gray-lighter-2: #a4acb6;
|
|
24
|
+
--font-family-base: Inter, system-ui, -apple-system, sans-serif;
|
|
25
|
+
--font-family-monospace: "Fira Code", ui-monospace, monospace;
|
|
26
|
+
--input-border-radius: 0.5rem;
|
|
27
|
+
--dropdown-border-radius: 0.5rem;
|
|
28
|
+
--alert-border-radius: 0.5rem;
|
|
29
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
--color-border-dark: rgb(26, 28, 28); /** Default dark border */
|
|
7
|
+
--color-line: rgba(255, 255, 255, 0.1); /** Standard line/border - 10% white */
|
|
8
|
+
--color-line-faint: rgba(255, 255, 255, 0.05); /** Faint line/border - 5% white */
|
|
9
|
+
--color-divider: #ffffff08; /** Section divider */
|
|
10
|
+
--color-divider-soft: #ffffff05; /** Soft section divider */
|
|
11
|
+
--color-hover: rgba(255, 255, 255, 0.05); /** Hover overlay */
|
|
12
|
+
--color-tint: rgba(255, 255, 255, 0.02); /** Subtle tint overlay */
|
|
13
|
+
--color-overlay: rgba(255, 255, 255, 0.05); /** General overlay */
|
|
14
|
+
--color-primary: #1774e0; /** OneQode blue - primary CTA, links, active states */
|
|
15
|
+
--color-accent-cyan: #00c1ff; /** Secondary accent - highlights, secondary CTAs */
|
|
16
|
+
--color-accent-gold: #fec33c; /** Tertiary accent - badges, warnings */
|
|
17
|
+
--color-accent-green: #69fea2; /** Success states, positive indicators */
|
|
18
|
+
--color-muted: rgba(255, 255, 255, 0.7); /** Secondary text - 70% white opacity */
|
|
19
|
+
--color-subtle: #bbc4d0; /** Tertiary text - soft blue-gray */
|
|
20
|
+
--color-dim: #a4acb6; /** Quaternary text - dimmed blue-gray */
|
|
21
|
+
--color-bar-inactive: rgb(62, 70, 78); /** Inactive bar/strikethrough elements */
|
|
22
|
+
--color-dark: #0d0f10; /** Primary background */
|
|
23
|
+
--color-dark-deep: #0c0d0d; /** Deep background */
|
|
24
|
+
--color-dark-deeper: #090a0a; /** Deepest background */
|
|
25
|
+
--color-surface: #0c0d0d; /** Card/component surface */
|
|
26
|
+
--color-surface-elevated: rgb(15, 17, 18); /** Raised surface (modals, popovers) */
|
|
27
|
+
--color-surface-hover: rgb(25, 27, 28); /** Surface hover state */
|
|
28
|
+
--color-surface-inset: rgb(16, 18, 19); /** Inset/recessed surface */
|
|
29
|
+
--color-surface-badge: rgb(32, 35, 37); /** Badge background */
|
|
30
|
+
--radius: 0.5rem; /** Default border radius for cards and inputs */
|
|
31
|
+
--shadow-dropdown: 0 8px 40px rgba(255, 255, 255, 0.06); /** Dropdown panel shadow */
|
|
32
|
+
--shadow-avatar-glow: inset 0 11.46px 22.92px #ffffff14, inset 0 2.87px 2.87px #ffffff59; /** Avatar/icon glow effect */
|
|
33
|
+
--container-wide: 1400px; /** Wide layouts (3-col grids, special sections) */
|
|
34
|
+
--container-default: 1536px; /** Main sections, standard content */
|
|
35
|
+
--container-narrow: 900px; /** Forms, contact pages, narrower sections */
|
|
36
|
+
--container-medium: 850px; /** Logo strips, tech stack sections */
|
|
37
|
+
--container-narrower: 800px; /** Hero text, centered content blocks */
|
|
38
|
+
--container-text: 720px; /** Prose content, legal pages, CTAs */
|
|
39
|
+
--container-compact: 650px; /** Tight text blocks, centered descriptions */
|
|
40
|
+
--container-content: 600px; /** Paragraph descriptions, subtitles */
|
|
41
|
+
--spacing-section: 5rem; /** Standard spacing between page sections */
|
|
42
|
+
--font-sans: Inter, system-ui, -apple-system, sans-serif; /** Body text font stack */
|
|
43
|
+
--font-display: Manrope, system-ui, sans-serif; /** Heading/display font stack */
|
|
44
|
+
--font-mono: "Fira Code", ui-monospace, monospace; /** Code/monospace font stack */
|
|
45
|
+
--font-size-micro: 0.625rem; /** 10px - status badges, chart labels, mono captions */
|
|
46
|
+
--font-size-tiny: 0.6875rem; /** 11px - dashboard data, small card text */
|
|
47
|
+
--font-size-caption: 0.75rem; /** 12px - metadata labels, breadcrumbs, image captions */
|
|
48
|
+
--font-size-label: 0.875rem; /** 14px - data values, small UI text */
|
|
49
|
+
--font-size-nav: 0.9375rem; /** 15px - mobile navigation items */
|
|
50
|
+
--font-size-body: 1rem; /** 16px - standard body text */
|
|
51
|
+
--font-size-body-lg: 1.125rem; /** 18px - marketing descriptions, hero subtitles */
|
|
52
|
+
--font-size-subtitle: 1.25rem; /** 20px - feature titles, checklist items */
|
|
53
|
+
--font-size-quote: 1.625rem; /** 26px - pull quotes, testimonials */
|
|
54
|
+
--font-size-heading-sm: 1.75rem; /** 28px - mobile section headings, small titles */
|
|
55
|
+
--font-size-heading-md: 2rem; /** 32px - page titles (contact/legal), sub-headings */
|
|
56
|
+
--font-size-heading: 2.625rem; /** 42px - section headings (desktop) */
|
|
57
|
+
--font-size-hero-sm: 3.5rem; /** 56px - secondary hero headings */
|
|
58
|
+
--font-size-hero: 3.75rem; /** 60px - primary hero headings */
|
|
59
|
+
--font-size-display: 4.5rem; /** 72px - maximum display heading */
|
|
60
|
+
--font-weight-normal: 400; /** Normal body text */
|
|
61
|
+
--font-weight-medium: 500; /** Medium emphasis */
|
|
62
|
+
--font-weight-semibold: 600; /** Buttons, labels, subheadings */
|
|
63
|
+
--font-weight-bold: 700; /** Headings, strong emphasis */
|
|
64
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
--background: 0 0% 4%;
|
|
7
|
+
--foreground: 0 0% 98%;
|
|
8
|
+
--card: 0 0% 3%;
|
|
9
|
+
--card-foreground: 0 0% 98%;
|
|
10
|
+
--popover: 0 0% 4%;
|
|
11
|
+
--popover-foreground: 0 0% 98%;
|
|
12
|
+
--primary: 211 78% 49%;
|
|
13
|
+
--primary-foreground: 0 0% 100%;
|
|
14
|
+
--secondary: 0 0% 10%;
|
|
15
|
+
--secondary-foreground: 0 0% 98%;
|
|
16
|
+
--muted: 0 0% 15%;
|
|
17
|
+
--muted-foreground: 0 0% 64%;
|
|
18
|
+
--accent: 193 100% 50%;
|
|
19
|
+
--accent-foreground: 0 0% 9%;
|
|
20
|
+
--destructive: 0 84% 60%;
|
|
21
|
+
--destructive-foreground: 0 0% 98%;
|
|
22
|
+
--border: 0 0% 15%;
|
|
23
|
+
--input: 0 0% 15%;
|
|
24
|
+
--ring: 211 78% 49%;
|
|
25
|
+
--radius: 0.5rem;
|
|
26
|
+
--chart-1: 211 78% 49%;
|
|
27
|
+
--chart-2: 193 100% 50%;
|
|
28
|
+
--chart-3: 45 97% 61%;
|
|
29
|
+
--chart-4: 145 91% 70%;
|
|
30
|
+
--chart-5: 0 84% 60%;
|
|
31
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@theme {
|
|
6
|
+
--color-border-dark: rgb(26, 28, 28);
|
|
7
|
+
--color-line: rgba(255, 255, 255, 0.1);
|
|
8
|
+
--color-line-faint: rgba(255, 255, 255, 0.05);
|
|
9
|
+
--color-divider: #ffffff08;
|
|
10
|
+
--color-divider-soft: #ffffff05;
|
|
11
|
+
--color-hover: rgba(255, 255, 255, 0.05);
|
|
12
|
+
--color-tint: rgba(255, 255, 255, 0.02);
|
|
13
|
+
--color-overlay: rgba(255, 255, 255, 0.05);
|
|
14
|
+
--color-primary: #1774e0;
|
|
15
|
+
--color-accent-cyan: #00c1ff;
|
|
16
|
+
--color-accent-gold: #fec33c;
|
|
17
|
+
--color-accent-green: #69fea2;
|
|
18
|
+
--color-muted: rgba(255, 255, 255, 0.7);
|
|
19
|
+
--color-subtle: #bbc4d0;
|
|
20
|
+
--color-dim: #a4acb6;
|
|
21
|
+
--color-bar-inactive: rgb(62, 70, 78);
|
|
22
|
+
--color-dark: #0d0f10;
|
|
23
|
+
--color-dark-deep: #0c0d0d;
|
|
24
|
+
--color-dark-deeper: #090a0a;
|
|
25
|
+
--color-surface: #0c0d0d;
|
|
26
|
+
--color-surface-elevated: rgb(15, 17, 18);
|
|
27
|
+
--color-surface-hover: rgb(25, 27, 28);
|
|
28
|
+
--color-surface-inset: rgb(16, 18, 19);
|
|
29
|
+
--color-surface-badge: rgb(32, 35, 37);
|
|
30
|
+
--radius: 0.5rem;
|
|
31
|
+
--shadow-dropdown: 0 8px 40px rgba(255, 255, 255, 0.06);
|
|
32
|
+
--shadow-avatar-glow: inset 0 11.46px 22.92px #ffffff14, inset 0 2.87px 2.87px #ffffff59;
|
|
33
|
+
--container-wide: 1400px;
|
|
34
|
+
--container-default: 1536px;
|
|
35
|
+
--container-narrow: 900px;
|
|
36
|
+
--container-medium: 850px;
|
|
37
|
+
--container-narrower: 800px;
|
|
38
|
+
--container-text: 720px;
|
|
39
|
+
--container-compact: 650px;
|
|
40
|
+
--container-content: 600px;
|
|
41
|
+
--spacing-section: 5rem;
|
|
42
|
+
--font-sans: Inter, system-ui, -apple-system, sans-serif;
|
|
43
|
+
--font-display: Manrope, system-ui, sans-serif;
|
|
44
|
+
--font-mono: "Fira Code", ui-monospace, monospace;
|
|
45
|
+
--font-size-micro: 0.625rem;
|
|
46
|
+
--font-size-tiny: 0.6875rem;
|
|
47
|
+
--font-size-caption: 0.75rem;
|
|
48
|
+
--font-size-label: 0.875rem;
|
|
49
|
+
--font-size-nav: 0.9375rem;
|
|
50
|
+
--font-size-body: 1rem;
|
|
51
|
+
--font-size-body-lg: 1.125rem;
|
|
52
|
+
--font-size-subtitle: 1.25rem;
|
|
53
|
+
--font-size-quote: 1.625rem;
|
|
54
|
+
--font-size-heading-sm: 1.75rem;
|
|
55
|
+
--font-size-heading-md: 2rem;
|
|
56
|
+
--font-size-heading: 2.625rem;
|
|
57
|
+
--font-size-hero-sm: 3.5rem;
|
|
58
|
+
--font-size-hero: 3.75rem;
|
|
59
|
+
--font-size-display: 4.5rem;
|
|
60
|
+
--font-weight-normal: 400;
|
|
61
|
+
--font-weight-medium: 500;
|
|
62
|
+
--font-weight-semibold: 600;
|
|
63
|
+
--font-weight-bold: 700;
|
|
64
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
--color-border-dark: rgb(26, 28, 28); /** Default dark border */
|
|
7
|
+
--color-line: rgba(255, 255, 255, 0.1); /** Standard line/border - 10% white */
|
|
8
|
+
--color-line-faint: rgba(255, 255, 255, 0.05); /** Faint line/border - 5% white */
|
|
9
|
+
--color-divider: #ffffff08; /** Section divider */
|
|
10
|
+
--color-divider-soft: #ffffff05; /** Soft section divider */
|
|
11
|
+
--color-hover: rgba(255, 255, 255, 0.05); /** Hover overlay */
|
|
12
|
+
--color-tint: rgba(255, 255, 255, 0.02); /** Subtle tint overlay */
|
|
13
|
+
--color-overlay: rgba(255, 255, 255, 0.05); /** General overlay */
|
|
14
|
+
--color-primary: #1774e0; /** OneQode blue - primary CTA, links, active states */
|
|
15
|
+
--color-accent-cyan: #00c1ff; /** Secondary accent - highlights, secondary CTAs */
|
|
16
|
+
--color-accent-gold: #fec33c; /** Tertiary accent - badges, warnings */
|
|
17
|
+
--color-accent-green: #69fea2; /** Success states, positive indicators */
|
|
18
|
+
--color-muted: rgba(255, 255, 255, 0.7); /** Secondary text - 70% white opacity */
|
|
19
|
+
--color-subtle: #bbc4d0; /** Tertiary text - soft blue-gray */
|
|
20
|
+
--color-dim: #a4acb6; /** Quaternary text - dimmed blue-gray */
|
|
21
|
+
--color-bar-inactive: rgb(62, 70, 78); /** Inactive bar/strikethrough elements */
|
|
22
|
+
--color-dark: #0d0f10; /** Primary background */
|
|
23
|
+
--color-dark-deep: #0c0d0d; /** Deep background */
|
|
24
|
+
--color-dark-deeper: #090a0a; /** Deepest background */
|
|
25
|
+
--color-surface: #0c0d0d; /** Card/component surface */
|
|
26
|
+
--color-surface-elevated: rgb(15, 17, 18); /** Raised surface (modals, popovers) */
|
|
27
|
+
--color-surface-hover: rgb(25, 27, 28); /** Surface hover state */
|
|
28
|
+
--color-surface-inset: rgb(16, 18, 19); /** Inset/recessed surface */
|
|
29
|
+
--color-surface-badge: rgb(32, 35, 37); /** Badge background */
|
|
30
|
+
--radius: 0.5rem; /** Default border radius for cards and inputs */
|
|
31
|
+
--shadow-dropdown: 0 8px 40px rgba(255, 255, 255, 0.06); /** Dropdown panel shadow */
|
|
32
|
+
--shadow-avatar-glow: inset 0 11.46px 22.92px #ffffff14, inset 0 2.87px 2.87px #ffffff59; /** Avatar/icon glow effect */
|
|
33
|
+
--container-wide: 1400px; /** Wide layouts (3-col grids, special sections) */
|
|
34
|
+
--container-default: 1536px; /** Main sections, standard content */
|
|
35
|
+
--container-narrow: 900px; /** Forms, contact pages, narrower sections */
|
|
36
|
+
--container-medium: 850px; /** Logo strips, tech stack sections */
|
|
37
|
+
--container-narrower: 800px; /** Hero text, centered content blocks */
|
|
38
|
+
--container-text: 720px; /** Prose content, legal pages, CTAs */
|
|
39
|
+
--container-compact: 650px; /** Tight text blocks, centered descriptions */
|
|
40
|
+
--container-content: 600px; /** Paragraph descriptions, subtitles */
|
|
41
|
+
--spacing-section: 5rem; /** Standard spacing between page sections */
|
|
42
|
+
--font-sans: Inter, system-ui, -apple-system, sans-serif; /** Body text font stack */
|
|
43
|
+
--font-display: Manrope, system-ui, sans-serif; /** Heading/display font stack */
|
|
44
|
+
--font-mono: "Fira Code", ui-monospace, monospace; /** Code/monospace font stack */
|
|
45
|
+
--font-size-micro: 0.625rem; /** 10px - status badges, chart labels, mono captions */
|
|
46
|
+
--font-size-tiny: 0.6875rem; /** 11px - dashboard data, small card text */
|
|
47
|
+
--font-size-caption: 0.75rem; /** 12px - metadata labels, breadcrumbs, image captions */
|
|
48
|
+
--font-size-label: 0.875rem; /** 14px - data values, small UI text */
|
|
49
|
+
--font-size-nav: 0.9375rem; /** 15px - mobile navigation items */
|
|
50
|
+
--font-size-body: 1rem; /** 16px - standard body text */
|
|
51
|
+
--font-size-body-lg: 1.125rem; /** 18px - marketing descriptions, hero subtitles */
|
|
52
|
+
--font-size-subtitle: 1.25rem; /** 20px - feature titles, checklist items */
|
|
53
|
+
--font-size-quote: 1.625rem; /** 26px - pull quotes, testimonials */
|
|
54
|
+
--font-size-heading-sm: 1.75rem; /** 28px - mobile section headings, small titles */
|
|
55
|
+
--font-size-heading-md: 2rem; /** 32px - page titles (contact/legal), sub-headings */
|
|
56
|
+
--font-size-heading: 2.625rem; /** 42px - section headings (desktop) */
|
|
57
|
+
--font-size-hero-sm: 3.5rem; /** 56px - secondary hero headings */
|
|
58
|
+
--font-size-hero: 3.75rem; /** 60px - primary hero headings */
|
|
59
|
+
--font-size-display: 4.5rem; /** 72px - maximum display heading */
|
|
60
|
+
--font-weight-normal: 400; /** Normal body text */
|
|
61
|
+
--font-weight-medium: 500; /** Medium emphasis */
|
|
62
|
+
--font-weight-semibold: 600; /** Buttons, labels, subheadings */
|
|
63
|
+
--font-weight-bold: 700; /** Headings, strong emphasis */
|
|
64
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"color-border-dark": "rgb(26, 28, 28)",
|
|
3
|
+
"color-line": "rgba(255, 255, 255, 0.1)",
|
|
4
|
+
"color-line-faint": "rgba(255, 255, 255, 0.05)",
|
|
5
|
+
"color-divider": "#ffffff08",
|
|
6
|
+
"color-divider-soft": "#ffffff05",
|
|
7
|
+
"color-hover": "rgba(255, 255, 255, 0.05)",
|
|
8
|
+
"color-tint": "rgba(255, 255, 255, 0.02)",
|
|
9
|
+
"color-overlay": "rgba(255, 255, 255, 0.05)",
|
|
10
|
+
"color-primary": "#1774e0",
|
|
11
|
+
"color-accent-cyan": "#00c1ff",
|
|
12
|
+
"color-accent-gold": "#fec33c",
|
|
13
|
+
"color-accent-green": "#69fea2",
|
|
14
|
+
"color-muted": "rgba(255, 255, 255, 0.7)",
|
|
15
|
+
"color-subtle": "#bbc4d0",
|
|
16
|
+
"color-dim": "#a4acb6",
|
|
17
|
+
"color-bar-inactive": "rgb(62, 70, 78)",
|
|
18
|
+
"color-dark": "#0d0f10",
|
|
19
|
+
"color-dark-deep": "#0c0d0d",
|
|
20
|
+
"color-dark-deeper": "#090a0a",
|
|
21
|
+
"color-surface": "#0c0d0d",
|
|
22
|
+
"color-surface-elevated": "rgb(15, 17, 18)",
|
|
23
|
+
"color-surface-hover": "rgb(25, 27, 28)",
|
|
24
|
+
"color-surface-inset": "rgb(16, 18, 19)",
|
|
25
|
+
"color-surface-badge": "rgb(32, 35, 37)",
|
|
26
|
+
"radius": "0.5rem",
|
|
27
|
+
"shadow-dropdown": "0 8px 40px rgba(255, 255, 255, 0.06)",
|
|
28
|
+
"shadow-avatar-glow": "inset 0 11.46px 22.92px #ffffff14, inset 0 2.87px 2.87px #ffffff59",
|
|
29
|
+
"container-wide": "1400px",
|
|
30
|
+
"container-default": "1536px",
|
|
31
|
+
"container-narrow": "900px",
|
|
32
|
+
"container-medium": "850px",
|
|
33
|
+
"container-narrower": "800px",
|
|
34
|
+
"container-text": "720px",
|
|
35
|
+
"container-compact": "650px",
|
|
36
|
+
"container-content": "600px",
|
|
37
|
+
"spacing-section": "5rem",
|
|
38
|
+
"font-sans": "Inter, system-ui, -apple-system, sans-serif",
|
|
39
|
+
"font-display": "Manrope, system-ui, sans-serif",
|
|
40
|
+
"font-mono": "\"Fira Code\", ui-monospace, monospace",
|
|
41
|
+
"font-size-micro": "0.625rem",
|
|
42
|
+
"font-size-tiny": "0.6875rem",
|
|
43
|
+
"font-size-caption": "0.75rem",
|
|
44
|
+
"font-size-label": "0.875rem",
|
|
45
|
+
"font-size-nav": "0.9375rem",
|
|
46
|
+
"font-size-body": "1rem",
|
|
47
|
+
"font-size-body-lg": "1.125rem",
|
|
48
|
+
"font-size-subtitle": "1.25rem",
|
|
49
|
+
"font-size-quote": "1.625rem",
|
|
50
|
+
"font-size-heading-sm": "1.75rem",
|
|
51
|
+
"font-size-heading-md": "2rem",
|
|
52
|
+
"font-size-heading": "2.625rem",
|
|
53
|
+
"font-size-hero-sm": "3.5rem",
|
|
54
|
+
"font-size-hero": "3.75rem",
|
|
55
|
+
"font-size-display": "4.5rem",
|
|
56
|
+
"font-weight-normal": "400",
|
|
57
|
+
"font-weight-medium": "500",
|
|
58
|
+
"font-weight-semibold": "600",
|
|
59
|
+
"font-weight-bold": "700"
|
|
60
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
## OneQode Design Tokens
|
|
2
|
+
|
|
3
|
+
> Source of truth: `oneqode-design-system/build/json/tokens.json`
|
|
4
|
+
> Generated: 2026-04-22
|
|
5
|
+
> Auto-synced to `.claude-plugin/oneqode-workspace/data/design-tokens.md` on each build.
|
|
6
|
+
> If values here seem wrong, rebuild with `pnpm build:tokens` in the design system repo.
|
|
7
|
+
|
|
8
|
+
### Brand Colors
|
|
9
|
+
| Token | CSS Variable | Value | Usage |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| primary | --color-primary | #1774e0 | OneQode blue - primary CTA, links, active states |
|
|
12
|
+
| accent-cyan | --color-accent-cyan | #00c1ff | Secondary accent - highlights, secondary CTAs |
|
|
13
|
+
| accent-gold | --color-accent-gold | #fec33c | Tertiary accent - badges, warnings |
|
|
14
|
+
| accent-green | --color-accent-green | #69fea2 | Success states, positive indicators |
|
|
15
|
+
|
|
16
|
+
### Surface Colors
|
|
17
|
+
| Token | CSS Variable | Value | Usage |
|
|
18
|
+
| --- | --- | --- | --- |
|
|
19
|
+
| dark | --color-dark | #0d0f10 | Primary background |
|
|
20
|
+
| dark-deep | --color-dark-deep | #0c0d0d | Deep background |
|
|
21
|
+
| dark-deeper | --color-dark-deeper | #090a0a | Deepest background |
|
|
22
|
+
| surface | --color-surface | #0c0d0d | Card/component surface |
|
|
23
|
+
| surface-elevated | --color-surface-elevated | rgb(15, 17, 18) | Raised surface (modals, popovers) |
|
|
24
|
+
| surface-hover | --color-surface-hover | rgb(25, 27, 28) | Surface hover state |
|
|
25
|
+
| surface-inset | --color-surface-inset | rgb(16, 18, 19) | Inset/recessed surface |
|
|
26
|
+
| surface-badge | --color-surface-badge | rgb(32, 35, 37) | Badge background |
|
|
27
|
+
|
|
28
|
+
### Content Colors
|
|
29
|
+
| Token | CSS Variable | Value | Usage |
|
|
30
|
+
| --- | --- | --- | --- |
|
|
31
|
+
| muted | --color-muted | rgba(255, 255, 255, 0.7) | Secondary text - 70% white opacity |
|
|
32
|
+
| subtle | --color-subtle | #bbc4d0 | Tertiary text - soft blue-gray |
|
|
33
|
+
| dim | --color-dim | #a4acb6 | Quaternary text - dimmed blue-gray |
|
|
34
|
+
| bar-inactive | --color-bar-inactive | rgb(62, 70, 78) | Inactive bar/strikethrough elements |
|
|
35
|
+
|
|
36
|
+
### Border Colors
|
|
37
|
+
| Token | CSS Variable | Value | Usage |
|
|
38
|
+
| --- | --- | --- | --- |
|
|
39
|
+
| border-dark | --color-border-dark | rgb(26, 28, 28) | Default dark border |
|
|
40
|
+
| line | --color-line | rgba(255, 255, 255, 0.1) | Standard line/border - 10% white |
|
|
41
|
+
| line-faint | --color-line-faint | rgba(255, 255, 255, 0.05) | Faint line/border - 5% white |
|
|
42
|
+
| divider | --color-divider | #ffffff08 | Section divider |
|
|
43
|
+
| divider-soft | --color-divider-soft | #ffffff05 | Soft section divider |
|
|
44
|
+
| hover | --color-hover | rgba(255, 255, 255, 0.05) | Hover overlay |
|
|
45
|
+
| tint | --color-tint | rgba(255, 255, 255, 0.02) | Subtle tint overlay |
|
|
46
|
+
| overlay | --color-overlay | rgba(255, 255, 255, 0.05) | General overlay |
|
|
47
|
+
|
|
48
|
+
### Typography - Families
|
|
49
|
+
| Token | CSS Variable | Value | Usage |
|
|
50
|
+
| --- | --- | --- | --- |
|
|
51
|
+
| sans | --font-sans | Inter, system-ui, -apple-system, sans-serif | Body text font stack |
|
|
52
|
+
| display | --font-display | Manrope, system-ui, sans-serif | Heading/display font stack |
|
|
53
|
+
| mono | --font-mono | "Fira Code", ui-monospace, monospace | Code/monospace font stack |
|
|
54
|
+
|
|
55
|
+
### Typography - Scale
|
|
56
|
+
| Token | CSS Variable | Value | Usage |
|
|
57
|
+
| --- | --- | --- | --- |
|
|
58
|
+
| micro | --font-size-micro | 0.625rem | 10px - status badges, chart labels, mono captions |
|
|
59
|
+
| tiny | --font-size-tiny | 0.6875rem | 11px - dashboard data, small card text |
|
|
60
|
+
| caption | --font-size-caption | 0.75rem | 12px - metadata labels, breadcrumbs, image captions |
|
|
61
|
+
| label | --font-size-label | 0.875rem | 14px - data values, small UI text |
|
|
62
|
+
| nav | --font-size-nav | 0.9375rem | 15px - mobile navigation items |
|
|
63
|
+
| body | --font-size-body | 1rem | 16px - standard body text |
|
|
64
|
+
| body-lg | --font-size-body-lg | 1.125rem | 18px - marketing descriptions, hero subtitles |
|
|
65
|
+
| subtitle | --font-size-subtitle | 1.25rem | 20px - feature titles, checklist items |
|
|
66
|
+
| quote | --font-size-quote | 1.625rem | 26px - pull quotes, testimonials |
|
|
67
|
+
| heading-sm | --font-size-heading-sm | 1.75rem | 28px - mobile section headings, small titles |
|
|
68
|
+
| heading-md | --font-size-heading-md | 2rem | 32px - page titles (contact/legal), sub-headings |
|
|
69
|
+
| heading | --font-size-heading | 2.625rem | 42px - section headings (desktop) |
|
|
70
|
+
| hero-sm | --font-size-hero-sm | 3.5rem | 56px - secondary hero headings |
|
|
71
|
+
| hero | --font-size-hero | 3.75rem | 60px - primary hero headings |
|
|
72
|
+
| display | --font-size-display | 4.5rem | 72px - maximum display heading |
|
|
73
|
+
|
|
74
|
+
### Typography - Weights
|
|
75
|
+
| Token | CSS Variable | Value | Usage |
|
|
76
|
+
| --- | --- | --- | --- |
|
|
77
|
+
| normal | --font-weight-normal | 400 | Normal body text |
|
|
78
|
+
| medium | --font-weight-medium | 500 | Medium emphasis |
|
|
79
|
+
| semibold | --font-weight-semibold | 600 | Buttons, labels, subheadings |
|
|
80
|
+
| bold | --font-weight-bold | 700 | Headings, strong emphasis |
|
|
81
|
+
|
|
82
|
+
### Containers
|
|
83
|
+
| Token | CSS Variable | Value | Usage |
|
|
84
|
+
| --- | --- | --- | --- |
|
|
85
|
+
| wide | --container-wide | 1400px | Wide layouts (3-col grids, special sections) |
|
|
86
|
+
| default | --container-default | 1536px | Main sections, standard content |
|
|
87
|
+
| narrow | --container-narrow | 900px | Forms, contact pages, narrower sections |
|
|
88
|
+
| medium | --container-medium | 850px | Logo strips, tech stack sections |
|
|
89
|
+
| narrower | --container-narrower | 800px | Hero text, centered content blocks |
|
|
90
|
+
| text | --container-text | 720px | Prose content, legal pages, CTAs |
|
|
91
|
+
| compact | --container-compact | 650px | Tight text blocks, centered descriptions |
|
|
92
|
+
| content | --container-content | 600px | Paragraph descriptions, subtitles |
|
|
93
|
+
|
|
94
|
+
### Spacing
|
|
95
|
+
| Token | CSS Variable | Value | Usage |
|
|
96
|
+
| --- | --- | --- | --- |
|
|
97
|
+
| section | --spacing-section | 5rem | Standard spacing between page sections |
|
|
98
|
+
|
|
99
|
+
### Effects
|
|
100
|
+
| Token | CSS Variable | Value | Usage |
|
|
101
|
+
| --- | --- | --- | --- |
|
|
102
|
+
| shadow-dropdown | --shadow-dropdown | 0 8px 40px rgba(255, 255, 255, 0.06) | Dropdown panel shadow |
|
|
103
|
+
| shadow-avatar-glow | --shadow-avatar-glow | inset 0 11.46px 22.92px #ffffff14, inset 0 2.87px 2.87px #ffffff59 | Avatar/icon glow effect |
|
|
104
|
+
| radius | --radius | 0.5rem | Default border radius for cards and inputs |
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@oneqode/design-system",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "OneQode design tokens: CSS custom properties, Tailwind v4 theme, shadcn variables, and flat JSON.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/OneQode/oneqode-design-system.git"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/OneQode/oneqode-design-system#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/OneQode/oneqode-design-system/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"design-system",
|
|
17
|
+
"design-tokens",
|
|
18
|
+
"oneqode",
|
|
19
|
+
"css",
|
|
20
|
+
"tailwind",
|
|
21
|
+
"shadcn",
|
|
22
|
+
"style-dictionary"
|
|
23
|
+
],
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public",
|
|
26
|
+
"registry": "https://registry.npmjs.org"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"build/"
|
|
30
|
+
],
|
|
31
|
+
"exports": {
|
|
32
|
+
"./tokens.css": "./build/css/tokens.css",
|
|
33
|
+
"./tailwind-theme.css": "./build/css/tailwind-theme.css",
|
|
34
|
+
"./shadcn-vars.css": "./build/css/shadcn-vars.css",
|
|
35
|
+
"./tokens.json": "./build/json/tokens.json",
|
|
36
|
+
"./remake.css": "./build/css/remake/tokens.css"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"style-dictionary": "^5.4.0"
|
|
40
|
+
},
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build:tokens": "style-dictionary build --config config/style-dictionary.config.mjs && pnpm build:agent-ref",
|
|
43
|
+
"build:agent-ref": "node scripts/generate-agent-reference.mjs",
|
|
44
|
+
"build:docs": "cd docs && pnpm build",
|
|
45
|
+
"build": "pnpm build:tokens && pnpm build:docs",
|
|
46
|
+
"dev": "cd docs && pnpm dev",
|
|
47
|
+
"preview": "cd docs && pnpm preview"
|
|
48
|
+
}
|
|
49
|
+
}
|