@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 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
+ }