7k-design-system 1.0.0-alpha.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.
Files changed (89) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/CONSUMER_GUIDE.md +471 -0
  3. package/DESIGN.md +1207 -0
  4. package/LICENSE +21 -0
  5. package/README.md +192 -0
  6. package/SKILL.md +252 -0
  7. package/build/icon.svg +10 -0
  8. package/build/logo-7k-light.svg +10 -0
  9. package/build/logo-7k.svg +10 -0
  10. package/dist/7k-design-system.css +1 -0
  11. package/dist/animations.css +1 -0
  12. package/dist/build/icon.svg +10 -0
  13. package/dist/build/logo-7k-light.svg +10 -0
  14. package/dist/build/logo-7k.svg +10 -0
  15. package/dist/components.css +1 -0
  16. package/dist/fonts/GeistPixel-Circle.ttf +0 -0
  17. package/dist/fonts/GeistPixel-Grid.ttf +0 -0
  18. package/dist/fonts/GeistPixel-Line.ttf +0 -0
  19. package/dist/fonts/GeistPixel-Square.ttf +0 -0
  20. package/dist/fonts/GeistPixel-Triangle.ttf +0 -0
  21. package/dist/preview/brand-assets.html +83 -0
  22. package/dist/preview/brand-assets.html.artifact.json +19 -0
  23. package/dist/preview/colors-primary.html +101 -0
  24. package/dist/preview/colors-primary.html.artifact.json +19 -0
  25. package/dist/preview/components-buttons.html +84 -0
  26. package/dist/preview/components-buttons.html.artifact.json +19 -0
  27. package/dist/preview/spacing-tokens.html +79 -0
  28. package/dist/preview/spacing-tokens.html.artifact.json +19 -0
  29. package/dist/preview/textures-backgrounds.html +102 -0
  30. package/dist/preview/textures-backgrounds.html.artifact.json +19 -0
  31. package/dist/preview/typography-specimens.html +73 -0
  32. package/dist/preview/typography-specimens.html.artifact.json +19 -0
  33. package/dist/react/index.cjs +1 -0
  34. package/dist/react/index.js +129 -0
  35. package/dist/react/react/components/Badge.d.ts +3 -0
  36. package/dist/react/react/components/Badge.d.ts.map +1 -0
  37. package/dist/react/react/components/Badge.stories.d.ts +12 -0
  38. package/dist/react/react/components/Badge.stories.d.ts.map +1 -0
  39. package/dist/react/react/components/Button.d.ts +3 -0
  40. package/dist/react/react/components/Button.d.ts.map +1 -0
  41. package/dist/react/react/components/Button.stories.d.ts +16 -0
  42. package/dist/react/react/components/Button.stories.d.ts.map +1 -0
  43. package/dist/react/react/components/Input.d.ts +3 -0
  44. package/dist/react/react/components/Input.d.ts.map +1 -0
  45. package/dist/react/react/components/Input.stories.d.ts +11 -0
  46. package/dist/react/react/components/Input.stories.d.ts.map +1 -0
  47. package/dist/react/react/components/ThemeToggle.d.ts +4 -0
  48. package/dist/react/react/components/ThemeToggle.d.ts.map +1 -0
  49. package/dist/react/react/components/ThemeToggle.stories.d.ts +7 -0
  50. package/dist/react/react/components/ThemeToggle.stories.d.ts.map +1 -0
  51. package/dist/react/react/hooks/useTheme.d.ts +11 -0
  52. package/dist/react/react/hooks/useTheme.d.ts.map +1 -0
  53. package/dist/react/react/index.d.ts +8 -0
  54. package/dist/react/react/index.d.ts.map +1 -0
  55. package/dist/react/react/theme/ThemeContext.d.ts +3 -0
  56. package/dist/react/react/theme/ThemeProvider.d.ts +9 -0
  57. package/dist/react/react/theme/useTheme.d.ts +3 -0
  58. package/dist/react/react/types.d.ts +33 -0
  59. package/dist/react/react/types.d.ts.map +1 -0
  60. package/dist/react/stories/Button.d.ts +17 -0
  61. package/dist/react/stories/Button.d.ts.map +1 -0
  62. package/dist/react/stories/Button.stories.d.ts +25 -0
  63. package/dist/react/stories/Button.stories.d.ts.map +1 -0
  64. package/dist/react/stories/Components.stories.d.ts +10 -0
  65. package/dist/react/stories/Components.stories.d.ts.map +1 -0
  66. package/dist/react/stories/Header.d.ts +14 -0
  67. package/dist/react/stories/Header.d.ts.map +1 -0
  68. package/dist/react/stories/Header.stories.d.ts +20 -0
  69. package/dist/react/stories/Header.stories.d.ts.map +1 -0
  70. package/dist/react/stories/Page.d.ts +4 -0
  71. package/dist/react/stories/Page.d.ts.map +1 -0
  72. package/dist/react/stories/Page.stories.d.ts +14 -0
  73. package/dist/react/stories/Page.stories.d.ts.map +1 -0
  74. package/dist/react/stories/Textures.stories.d.ts +11 -0
  75. package/dist/react/stories/Textures.stories.d.ts.map +1 -0
  76. package/dist/textures.css +1 -0
  77. package/dist/tokens.css +1 -0
  78. package/fonts/GeistPixel-Circle.ttf +0 -0
  79. package/fonts/GeistPixel-Grid.ttf +0 -0
  80. package/fonts/GeistPixel-Line.ttf +0 -0
  81. package/fonts/GeistPixel-Square.ttf +0 -0
  82. package/fonts/GeistPixel-Triangle.ttf +0 -0
  83. package/package.json +147 -0
  84. package/preview/brand-assets.html +83 -0
  85. package/preview/colors-primary.html +101 -0
  86. package/preview/components-buttons.html +84 -0
  87. package/preview/spacing-tokens.html +79 -0
  88. package/preview/textures-backgrounds.html +102 -0
  89. package/preview/typography-specimens.html +73 -0
package/package.json ADDED
@@ -0,0 +1,147 @@
1
+ {
2
+ "name": "7k-design-system",
3
+ "version": "1.0.0-alpha.1",
4
+ "description": "Dark, neon-accented, manga-inflected design system for multi-project tech company 7K. Three-font system (Geist sans + Geist Mono + Geist Pixel 5 geometric variants), #FF0FF brand pulse, Tokyo neon atmosphere with 1-bit manga punctuation.",
5
+ "type": "module",
6
+ "main": "./dist/7k-design-system.css",
7
+ "module": "./dist/7k-design-system.esm.css",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/7k-design-system.css",
12
+ "require": "./dist/7k-design-system.css",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./css": "./dist/7k-design-system.css",
16
+ "./css/tokens": "./dist/tokens.css",
17
+ "./css/components": "./dist/components.css",
18
+ "./css/textures": "./dist/textures.css",
19
+ "./css/animations": "./dist/animations.css",
20
+ "./react": {
21
+ "import": "./dist/react/index.js",
22
+ "require": "./dist/react/index.cjs",
23
+ "types": "./dist/react/index.d.ts"
24
+ },
25
+ "./fonts/*": "./fonts/*",
26
+ "./build/*": "./build/*"
27
+ },
28
+ "files": [
29
+ "dist/",
30
+ "fonts/",
31
+ "build/",
32
+ "preview/",
33
+ "DESIGN.md",
34
+ "SKILL.md",
35
+ "README.md",
36
+ "CHANGELOG.md",
37
+ "CONSUMER_GUIDE.md",
38
+ "LICENSE"
39
+ ],
40
+ "sideEffects": [
41
+ "*.css"
42
+ ],
43
+ "scripts": {
44
+ "dev": "vite",
45
+ "build": "npm run build:css && npm run build:react && npm run build:copy-assets",
46
+ "build:css": "vite build --config vite.css.config.ts",
47
+ "build:react": "vite build --config vite.react.config.ts",
48
+ "build:copy-assets": "node scripts/copy-assets.js",
49
+ "test": "vitest run",
50
+ "test:watch": "vitest",
51
+ "test:a11y": "vitest run --config vitest.a11y.config.ts",
52
+ "lint": "npm run lint:js && npm run lint:css",
53
+ "lint:js": "eslint src --ext .ts,.tsx,.js,.jsx",
54
+ "lint:css": "stylelint 'src/**/*.css' 'colors_and_type.css'",
55
+ "lint:fix": "npm run lint:js -- --fix && npm run lint:css -- --fix",
56
+ "format": "prettier --write 'src/**/*.{ts,tsx,js,jsx,css,json,md}'",
57
+ "format:check": "prettier --check 'src/**/*.{ts,tsx,js,jsx,css,json,md}'",
58
+ "typecheck": "tsc --noEmit",
59
+ "preview": "vite preview",
60
+ "semantic-release": "semantic-release",
61
+ "storybook": "storybook dev -p 6006",
62
+ "build-storybook": "storybook build",
63
+ "chromatic": "npx chromatic --exit-zero-on-changes"
64
+ },
65
+ "keywords": [
66
+ "design-system",
67
+ "css",
68
+ "dark-theme",
69
+ "neon",
70
+ "manga",
71
+ "1-bit",
72
+ "geist",
73
+ "typography",
74
+ "tokens",
75
+ "react",
76
+ "components"
77
+ ],
78
+ "author": "7K",
79
+ "license": "MIT",
80
+ "repository": {
81
+ "type": "git",
82
+ "url": "https://github.com/7K-Group/7k-design-system.git"
83
+ },
84
+ "bugs": {
85
+ "url": "https://github.com/7K-Group/7k-design-system/issues"
86
+ },
87
+ "homepage": "https://github.com/7K-Group/7k-design-system#readme",
88
+ "engines": {
89
+ "node": ">=18.0.0",
90
+ "npm": ">=9.0.0"
91
+ },
92
+ "peerDependencies": {
93
+ "react": ">=18.0.0",
94
+ "react-dom": ">=18.0.0"
95
+ },
96
+ "peerDependenciesMeta": {
97
+ "react": {
98
+ "optional": true
99
+ },
100
+ "react-dom": {
101
+ "optional": true
102
+ }
103
+ },
104
+ "devDependencies": {
105
+ "@semantic-release/changelog": "^6.0.3",
106
+ "@semantic-release/git": "^10.0.1",
107
+ "@storybook/addon-a11y": "^10.4.1",
108
+ "@storybook/addon-docs": "^10.4.1",
109
+ "@storybook/react-vite": "^10.4.1",
110
+ "@testing-library/jest-dom": "^6.9.1",
111
+ "@testing-library/react": "^16.3.2",
112
+ "@types/jest-axe": "^3.5.9",
113
+ "@types/react": "^18.2.0",
114
+ "@types/react-dom": "^18.2.0",
115
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
116
+ "@typescript-eslint/parser": "^6.0.0",
117
+ "@vitejs/plugin-react": "^4.2.0",
118
+ "@vitest/browser": "^1.0.0",
119
+ "@vitest/coverage-v8": "^1.0.0",
120
+ "autoprefixer": "^10.4.16",
121
+ "axe-core": "^4.8.0",
122
+ "chromatic": "^17.2.0",
123
+ "cssnano": "^6.0.1",
124
+ "eslint": "^8.55.0",
125
+ "eslint-config-prettier": "^9.1.0",
126
+ "eslint-plugin-react": "^7.33.2",
127
+ "eslint-plugin-react-hooks": "^4.6.0",
128
+ "eslint-plugin-react-refresh": "^0.4.5",
129
+ "eslint-plugin-storybook": "^0.12.0",
130
+ "jest-axe": "^10.0.0",
131
+ "jsdom": "^23.0.0",
132
+ "playwright": "^1.60.0",
133
+ "postcss": "^8.4.32",
134
+ "postcss-custom-properties": "^13.3.2",
135
+ "postcss-import": "^15.1.0",
136
+ "postcss-nesting": "^12.0.1",
137
+ "prettier": "^3.1.1",
138
+ "semantic-release": "^22.0.0",
139
+ "storybook": "^10.4.1",
140
+ "stylelint": "^16.0.0",
141
+ "stylelint-config-standard": "^36.0.0",
142
+ "typescript": "^5.3.0",
143
+ "vite": "^5.0.0",
144
+ "vite-plugin-dts": "^3.6.0",
145
+ "vitest": "^1.0.0"
146
+ }
147
+ }
@@ -0,0 +1,83 @@
1
+ <!doctype html>
2
+ <html lang="en" data-theme="dark">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Brand Assets · 7k-design-system</title>
7
+ <link rel="stylesheet" href="../colors_and_type.css">
8
+ <style>
9
+ body { padding: 32px; background: var(--bg-base); color: var(--text-primary); }
10
+ h1 { margin-bottom: 8px; }
11
+ .mono-label { margin-bottom: 32px; display: block; }
12
+ section { margin-bottom: 48px; }
13
+ h2 { margin-bottom: 16px; }
14
+ .logo-grid { display: flex; gap: 32px; flex-wrap: wrap; align-items: center; }
15
+ .logo-card { display: flex; flex-direction: column; align-items: center; gap: 8px; }
16
+ .logo-card img, .logo-card object { border: 2px solid #FFFFFF; padding: 24px; background: #000; max-width: 320px; }
17
+ .logo-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); }
18
+ .logo-path { font-family: var(--font-mono); font-size: 10px; color: var(--text-tertiary); }
19
+ .preview-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
20
+ .preview-card { border: 2px solid #FFFFFF; padding: 24px; position: relative; overflow: hidden; min-height: 160px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; }
21
+ .preview-card .preview-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-primary); position: relative; z-index: 2; }
22
+ </style>
23
+ </head>
24
+ <body>
25
+ <h1>Brand Assets</h1>
26
+ <span class="mono-label">7k-design-system · Logo + brand marks</span>
27
+
28
+ <section>
29
+ <h2>Logos</h2>
30
+ <div class="logo-grid">
31
+ <div class="logo-card">
32
+ <img src="../build/logo-7k.svg" alt="7K Logo" style="width:240px;height:auto">
33
+ <span class="logo-label">build/logo-7k.svg</span>
34
+ <span class="logo-path">Color variant — star-burst pattern with #FF0FF accent</span>
35
+ </div>
36
+ <div class="logo-card">
37
+ <img src="../build/logo-7k-light.svg" alt="7K Light Logo" style="width:240px;height:auto">
38
+ <span class="logo-label">build/logo-7k-light.svg</span>
39
+ <span class="logo-path">Light variant — black polygons for light backgrounds</span>
40
+ </div>
41
+ <div class="logo-card">
42
+ <img src="../build/icon.svg" alt="7K Icon" style="width:64px;height:auto">
43
+ <span class="logo-label">build/icon.svg</span>
44
+ <span class="logo-path">App icon — 208×207, 7K star-burst pattern</span>
45
+ </div>
46
+ </div>
47
+ </section>
48
+
49
+ <section>
50
+ <h2>Brand in Context</h2>
51
+ <p class="body" style="margin-bottom:24px">The 7K wordmark uses Geist Pixel Triangle (800 weight) in brand-primary. Below: logo applied to dark canvas, scanline hero, and one-bit section.</p>
52
+ <div class="preview-grid">
53
+ <div class="preview-card scanline" style="background:#000">
54
+ <img src="../build/logo-7k.svg" alt="7K" style="width:160px;height:auto;position:relative;z-index:2">
55
+ <span class="preview-label">Scanline Hero</span>
56
+ </div>
57
+ <div class="preview-card halftone-sm" style="background:#000">
58
+ <img src="../build/logo-7k-light.svg" alt="7K" style="width:140px;height:auto;position:relative;z-index:2">
59
+ <span class="preview-label">Light variant / Manga Section</span>
60
+ </div>
61
+ <div class="preview-card" style="background:var(--brand-primary)">
62
+ <span style="font-family:'Geist Pixel',monospace;font-weight:800;font-size:48px;color:#000;position:relative;z-index:2">7K</span>
63
+ <span class="preview-label" style="color:#000">Invert — brand fill</span>
64
+ </div>
65
+ <div class="preview-card noise" style="background:#000">
66
+ <span style="font-family:'Geist Pixel',monospace;font-weight:800;font-size:36px;color:var(--brand-primary);position:relative;z-index:2">7K</span>
67
+ <span class="preview-label">Glow Wordmark</span>
68
+ </div>
69
+ </div>
70
+ </section>
71
+
72
+ <section>
73
+ <h2>Brand Application Rules</h2>
74
+ <ul class="list" style="max-width:600px">
75
+ <li class="list-item">Logo always uppercase "7K" — never lowercase</li>
76
+ <li class="list-item">Color variant on dark canvas, light variant on light backgrounds</li>
77
+ <li class="list-item">Brand accent (#FF0FF) only — no secondary brand color</li>
78
+ <li class="list-item">Parent 7K uses magenta; child projects swap accent hue</li>
79
+ <li class="list-item">Min 24px padding around logo in all contexts</li>
80
+ </ul>
81
+ </section>
82
+ </body>
83
+ </html>
@@ -0,0 +1,101 @@
1
+ <!doctype html>
2
+ <html lang="en" data-theme="dark">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Colors — Brand Primary · 7k-design-system</title>
7
+ <link rel="stylesheet" href="../colors_and_type.css">
8
+ <style>
9
+ body { padding: 32px; background: var(--bg-base); color: var(--text-primary); }
10
+ h1 { margin-bottom: 8px; }
11
+ .mono-label { margin-bottom: 32px; display: block; }
12
+ section { margin-bottom: 48px; }
13
+ h2 { margin-bottom: 16px; }
14
+ .swatch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
15
+ .swatch { display: flex; flex-direction: column; gap: 4px; }
16
+ .swatch-color { height: 60px; border: 2px solid #FFFFFF; }
17
+ .swatch-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); }
18
+ .swatch-value { font-family: var(--font-mono); font-size: 10px; color: var(--text-tertiary); }
19
+ .accent-demo { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
20
+ .accent-box { width: 80px; height: 80px; display: grid; place-items: center; font-family: var(--font-mono); font-size: 11px; border: 2px solid #FFFFFF; }
21
+ .glow-box { box-shadow: 0 0 24px var(--brand-primary-glow); }
22
+ .project-row { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 16px; }
23
+ .project-card { padding: 16px; border: 2px solid #FFFFFF; min-width: 160px; }
24
+ .project-card .name { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 8px; }
25
+ .project-card .bar { height: 4px; margin-bottom: 8px; }
26
+ </style>
27
+ </head>
28
+ <body>
29
+ <h1>Brand Primary — #FF00FF</h1>
30
+ <span class="mono-label">7k-design-system · Magenta ramp + project accent overrides</span>
31
+
32
+ <section>
33
+ <h2>Magenta Ramp (11-step)</h2>
34
+ <div class="swatch-grid">
35
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-50)"></div><span class="swatch-label">--magenta-50</span><span class="swatch-value">#FFE5FF</span></div>
36
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-100)"></div><span class="swatch-label">--magenta-100</span><span class="swatch-value">#FFC2FF</span></div>
37
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-200)"></div><span class="swatch-label">--magenta-200</span><span class="swatch-value">#FF99FF</span></div>
38
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-300)"></div><span class="swatch-label">--magenta-300</span><span class="swatch-value">#FF66FF</span></div>
39
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-400)"></div><span class="swatch-label">--magenta-400</span><span class="swatch-value">#FF33FF</span></div>
40
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-500); box-shadow:0 0 12px #FF00FF66"></div><span class="swatch-label">--magenta-500 ★</span><span class="swatch-value">#FF00FF</span></div>
41
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-600)"></div><span class="swatch-label">--magenta-600</span><span class="swatch-value">#D600D6</span></div>
42
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-700)"></div><span class="swatch-label">--magenta-700</span><span class="swatch-value">#A800A8</span></div>
43
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-800)"></div><span class="swatch-label">--magenta-800</span><span class="swatch-value">#800080</span></div>
44
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-900)"></div><span class="swatch-label">--magenta-900</span><span class="swatch-value">#570057</span></div>
45
+ <div class="swatch"><div class="swatch-color" style="background:var(--magenta-950)"></div><span class="swatch-label">--magenta-950</span><span class="swatch-value">#330033</span></div>
46
+ </div>
47
+ </section>
48
+
49
+ <section>
50
+ <h2>Brand Semantic Tokens</h2>
51
+ <div class="accent-demo">
52
+ <div class="accent-box" style="background:var(--brand-primary)">primary</div>
53
+ <div class="accent-box" style="background:var(--brand-primary-hover)">hover</div>
54
+ <div class="accent-box" style="background:var(--brand-primary-active)">active</div>
55
+ <div class="accent-box" style="background:var(--brand-primary-muted);color:var(--text-secondary)">muted</div>
56
+ <div class="accent-box" style="background:var(--brand-primary-subtle);color:var(--text-secondary)">subtle</div>
57
+ <div class="accent-box glow-box" style="background:var(--brand-primary)">glow</div>
58
+ </div>
59
+ </section>
60
+
61
+ <section>
62
+ <h2>Project Accent Overrides</h2>
63
+ <div class="project-row">
64
+ <div class="project-card"><div class="name">7K (Square)</div><div class="bar" style="background:var(--accent-square)"></div><span class="mono-label">--accent-square</span><br><span class="swatch-value">var(--magenta-500)</span></div>
65
+ <div class="project-card"><div class="name">Triangle</div><div class="bar" style="background:var(--accent-triangle)"></div><span class="mono-label">--accent-triangle</span><br><span class="swatch-value">var(--solar-500)</span></div>
66
+ <div class="project-card"><div class="name">Circle</div><div class="bar" style="background:var(--accent-circle)"></div><span class="mono-label">--accent-circle</span><br><span class="swatch-value">var(--cyan-500)</span></div>
67
+ <div class="project-card"><div class="name">Grid</div><div class="bar" style="background:var(--accent-grid)"></div><span class="mono-label">--accent-grid</span><br><span class="swatch-value">var(--acid-500)</span></div>
68
+ <div class="project-card"><div class="name">Line</div><div class="bar" style="background:var(--accent-line)"></div><span class="mono-label">--accent-line</span><br><span class="swatch-value">var(--ember-500)</span></div>
69
+ </div>
70
+ </section>
71
+
72
+ <section>
73
+ <h2>Neutral Ramp (surface + text tokens)</h2>
74
+ <div class="swatch-grid">
75
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-50);border-color:#000"></div><span class="swatch-label" style="color:#000">--neutral-50</span></div>
76
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-100);border-color:#000"></div><span class="swatch-label" style="color:#000">--neutral-100</span></div>
77
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-200);border-color:#000"></div><span class="swatch-label" style="color:#000">--neutral-200</span></div>
78
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-300);border-color:#000"></div><span class="swatch-label" style="color:#000">--neutral-300</span></div>
79
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-400)"></div><span class="swatch-label">--neutral-400</span></div>
80
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-500)"></div><span class="swatch-label">--neutral-500</span></div>
81
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-600)"></div><span class="swatch-label">--neutral-600</span></div>
82
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-700)"></div><span class="swatch-label">--neutral-700</span></div>
83
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-800)"></div><span class="swatch-label">--neutral-800</span></div>
84
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-900)"></div><span class="swatch-label">--neutral-900</span></div>
85
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-950)"></div><span class="swatch-label">--neutral-950</span></div>
86
+ <div class="swatch"><div class="swatch-color" style="background:var(--neutral-1000)"></div><span class="swatch-label">--neutral-1000</span></div>
87
+ </div>
88
+ </section>
89
+
90
+ <section>
91
+ <h2>Status Colors (semantic only)</h2>
92
+ <div class="accent-demo">
93
+ <span class="badge badge-success">Success</span>
94
+ <span class="badge badge-warning">Warning</span>
95
+ <span class="badge badge-danger">Danger</span>
96
+ <span class="badge badge-accent">Info</span>
97
+ <span class="chip chip-accent">Neutral</span>
98
+ </div>
99
+ </section>
100
+ </body>
101
+ </html>
@@ -0,0 +1,84 @@
1
+ <!doctype html>
2
+ <html lang="en" data-theme="dark">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Buttons · 7k-design-system</title>
7
+ <link rel="stylesheet" href="../colors_and_type.css">
8
+ <style>
9
+ body { padding: 32px; background: var(--bg-base); color: var(--text-primary); }
10
+ h1 { margin-bottom: 8px; }
11
+ .mono-label { margin-bottom: 32px; display: block; }
12
+ section { margin-bottom: 48px; }
13
+ h2 { margin-bottom: 16px; }
14
+ .button-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
15
+ .variant-label { font-family: var(--font-mono); font-size: 10px; color: var(--text-tertiary); min-width: 120px; }
16
+ .btn-modern { margin: 0; }
17
+ </style>
18
+ </head>
19
+ <body>
20
+ <h1>Button Components</h1>
21
+ <span class="mono-label">7k-design-system · Modern neon button system</span>
22
+
23
+ <section>
24
+ <h2>Primary Variants</h2>
25
+ <div class="button-row"><span class="variant-label">Primary</span><button class="btn-modern btn-modern-primary">Primary Action</button><button class="btn-modern btn-modern-primary btn-modern-sm">Small</button><button class="btn-modern btn-modern-primary btn-modern-lg">Large</button></div>
26
+ <div class="button-row"><span class="variant-label">Glow</span><button class="btn-modern btn-modern-glow">Deploy System</button></div>
27
+ <div class="button-row"><span class="variant-label">Glow Cyan</span><button class="btn-modern btn-modern-glow-cyan">Circle Launch</button></div>
28
+ <div class="button-row"><span class="variant-label">Glow Grid</span><button class="btn-modern btn-modern-glow-grid">Grid Init</button></div>
29
+ </section>
30
+
31
+ <section>
32
+ <h2>Secondary & Ghost</h2>
33
+ <div class="button-row"><span class="variant-label">Secondary</span><button class="btn-modern btn-modern-secondary">Cancel</button></div>
34
+ <div class="button-row"><span class="variant-label">Ghost</span><button class="btn-modern btn-modern-ghost">Learn more</button></div>
35
+ <div class="button-row"><span class="variant-label">Danger</span><button class="btn-modern btn-modern-danger">Delete project</button></div>
36
+ </section>
37
+
38
+ <section>
39
+ <h2>Sizes</h2>
40
+ <div class="button-row"><span class="variant-label">Small (sm)</span><button class="btn-modern btn-modern-primary btn-modern-sm">Deploy</button></div>
41
+ <div class="button-row"><span class="variant-label">Default</span><button class="btn-modern btn-modern-primary">Deploy</button></div>
42
+ <div class="button-row"><span class="variant-label">Large (lg)</span><button class="btn-modern btn-modern-primary btn-modern-lg">Deploy System</button></div>
43
+ </section>
44
+
45
+ <section>
46
+ <h2>Icon Buttons</h2>
47
+ <div class="button-row">
48
+ <button class="btn-modern btn-modern-primary btn-modern-icon">✕</button>
49
+ <button class="btn-modern btn-modern-secondary btn-modern-icon">☰</button>
50
+ <button class="btn-modern btn-modern-primary btn-modern-lg-icon">▶</button>
51
+ </div>
52
+ </section>
53
+
54
+ <section>
55
+ <h2>Button Group & Split</h2>
56
+ <div class="button-row" style="flex-direction:column;align-items:flex-start;gap:12px">
57
+ <div class="btn-group">
58
+ <button class="btn-modern btn-modern-primary">Save</button>
59
+ <button class="btn-modern btn-modern-primary">Publish</button>
60
+ <button class="btn-modern btn-modern-primary">Archive</button>
61
+ </div>
62
+ <div class="btn-split">
63
+ <button class="btn-modern btn-modern-primary">Deploy</button>
64
+ <button class="btn-modern btn-modern-primary">▼</button>
65
+ </div>
66
+ </div>
67
+ </section>
68
+
69
+ <section>
70
+ <h2>Loading State</h2>
71
+ <div class="button-row">
72
+ <button class="btn-modern btn-modern-primary btn-modern-loading"><span class="btn-label">Processing</span></button>
73
+ </div>
74
+ </section>
75
+
76
+ <section>
77
+ <h2>Real Product Copy Examples</h2>
78
+ <div class="button-row"><button class="btn-modern btn-modern-glow">Launch Dashboard</button></div>
79
+ <div class="button-row"><button class="btn-modern btn-modern-primary">Create Project</button><button class="btn-modern btn-modern-secondary">View Docs</button></div>
80
+ <div class="button-row"><button class="btn-modern btn-modern-glow-cyan">Start Pipeline</button><button class="btn-modern btn-modern-ghost">Configure</button></div>
81
+ <div class="button-row"><button class="btn-modern btn-modern-danger">Delete Workspace</button></div>
82
+ </section>
83
+ </body>
84
+ </html>
@@ -0,0 +1,79 @@
1
+ <!doctype html>
2
+ <html lang="en" data-theme="dark">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Spacing · 7k-design-system</title>
7
+ <link rel="stylesheet" href="../colors_and_type.css">
8
+ <style>
9
+ body { padding: 32px; background: var(--bg-base); color: var(--text-primary); }
10
+ h1 { margin-bottom: 8px; }
11
+ .mono-label { margin-bottom: 32px; display: block; }
12
+ section { margin-bottom: 48px; }
13
+ h2 { margin-bottom: 16px; }
14
+ .spacing-row { display: flex; align-items: center; gap: 16px; margin-bottom: 8px; }
15
+ .spacing-bar { background: var(--brand-primary); height: 16px; flex-shrink: 0; }
16
+ .spacing-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); min-width: 160px; }
17
+ .spacing-value { font-family: var(--font-mono); font-size: 10px; color: var(--text-tertiary); min-width: 80px; }
18
+ .card { background: var(--bg-elevated); border: 1px solid var(--border-default); padding: var(--space-6); margin-bottom: 16px; }
19
+ .radius-grid { display: flex; gap: 24px; flex-wrap: wrap; align-items: flex-end; }
20
+ .radius-sample { display: flex; flex-direction: column; align-items: center; gap: 4px; }
21
+ .radius-box { width: 80px; height: 80px; background: var(--brand-primary); }
22
+ .radius-label { font-family: var(--font-mono); font-size: 10px; color: var(--text-tertiary); }
23
+ </style>
24
+ </head>
25
+ <body>
26
+ <h1>Spacing Tokens</h1>
27
+ <span class="mono-label">7k-design-system · 4px baseline grid</span>
28
+
29
+ <section>
30
+ <h2>4px Grid Scale (--space-*)</h2>
31
+ <div class="spacing-row"><span class="spacing-label">--space-0</span><span class="spacing-value">0</span><div class="spacing-bar" style="width:0"></div></div>
32
+ <div class="spacing-row"><span class="spacing-label">--space-1 (4px)</span><span class="spacing-value">0.25rem</span><div class="spacing-bar" style="width:4px"></div></div>
33
+ <div class="spacing-row"><span class="spacing-label">--space-2 (8px)</span><span class="spacing-value">0.5rem</span><div class="spacing-bar" style="width:8px"></div></div>
34
+ <div class="spacing-row"><span class="spacing-label">--space-3 (12px)</span><span class="spacing-value">0.75rem</span><div class="spacing-bar" style="width:12px"></div></div>
35
+ <div class="spacing-row"><span class="spacing-label">--space-4 (16px)</span><span class="spacing-value">1rem</span><div class="spacing-bar" style="width:16px"></div></div>
36
+ <div class="spacing-row"><span class="spacing-label">--space-5 (20px)</span><span class="spacing-value">1.25rem</span><div class="spacing-bar" style="width:20px"></div></div>
37
+ <div class="spacing-row"><span class="spacing-label">--space-6 (24px)</span><span class="spacing-value">1.5rem</span><div class="spacing-bar" style="width:24px"></div></div>
38
+ <div class="spacing-row"><span class="spacing-label">--space-8 (32px)</span><span class="spacing-value">2rem</span><div class="spacing-bar" style="width:32px"></div></div>
39
+ <div class="spacing-row"><span class="spacing-label">--space-10 (40px)</span><span class="spacing-value">2.5rem</span><div class="spacing-bar" style="width:40px"></div></div>
40
+ <div class="spacing-row"><span class="spacing-label">--space-12 (48px)</span><span class="spacing-value">3rem</span><div class="spacing-bar" style="width:48px"></div></div>
41
+ <div class="spacing-row"><span class="spacing-label">--space-16 (64px)</span><span class="spacing-value">4rem</span><div class="spacing-bar" style="width:64px"></div></div>
42
+ <div class="spacing-row"><span class="spacing-label">--space-20 (80px)</span><span class="spacing-value">5rem</span><div class="spacing-bar" style="width:80px"></div></div>
43
+ <div class="spacing-row"><span class="spacing-label">--space-24 (96px)</span><span class="spacing-value">6rem</span><div class="spacing-bar" style="width:96px"></div></div>
44
+ <div class="spacing-row"><span class="spacing-label">--space-32 (128px)</span><span class="spacing-value">8rem</span><div class="spacing-bar" style="width:128px"></div></div>
45
+ </section>
46
+
47
+ <section>
48
+ <h2>Applied Spacing — Card Padding</h2>
49
+ <div class="card" style="padding:var(--space-4)"><span class="mono-label">--space-4 (16px) padding</span><div class="body-sm" style="margin-top:8px">Compact card padding for data-dense surfaces.</div></div>
50
+ <div class="card" style="padding:var(--space-6)"><span class="mono-label">--space-6 (24px) padding</span><div class="body-sm" style="margin-top:8px">Default card padding for most surfaces.</div></div>
51
+ <div class="card" style="padding:var(--space-8)"><span class="mono-label">--space-8 (32px) padding</span><div class="body-sm" style="margin-top:8px">Generous card padding for hero sections.</div></div>
52
+ </section>
53
+
54
+ <section>
55
+ <h2>Radius Scale</h2>
56
+ <div class="radius-grid">
57
+ <div class="radius-sample"><div class="radius-box" style="border-radius:var(--radius-none)"></div><span class="radius-label">--radius-none (0)</span></div>
58
+ <div class="radius-sample"><div class="radius-box" style="border-radius:var(--radius-xs)"></div><span class="radius-label">--radius-xs (2px)</span></div>
59
+ <div class="radius-sample"><div class="radius-box" style="border-radius:var(--radius-sm)"></div><span class="radius-label">--radius-sm (4px)</span></div>
60
+ <div class="radius-sample"><div class="radius-box" style="border-radius:var(--radius-md)"></div><span class="radius-label">--radius-md (8px)</span></div>
61
+ <div class="radius-sample"><div class="radius-box" style="border-radius:var(--radius-lg)"></div><span class="radius-label">--radius-lg (12px)</span></div>
62
+ <div class="radius-sample"><div class="radius-box" style="border-radius:var(--radius-xl)"></div><span class="radius-label">--radius-xl (16px)</span></div>
63
+ <div class="radius-sample"><div class="radius-box" style="border-radius:var(--radius-2xl)"></div><span class="radius-label">--radius-2xl (24px)</span></div>
64
+ <div class="radius-sample"><div class="radius-box" style="border-radius:var(--radius-full)"></div><span class="radius-label">--radius-full</span></div>
65
+ </div>
66
+ </section>
67
+
68
+ <section>
69
+ <h2>Shadow Elevation</h2>
70
+ <div style="display:flex;gap:24px;flex-wrap:wrap">
71
+ <div style="width:160px;height:80px;background:var(--bg-raised);box-shadow:var(--shadow-sm);display:grid;place-items:center;font-family:var(--font-mono);font-size:10px">--shadow-sm</div>
72
+ <div style="width:160px;height:80px;background:var(--bg-raised);box-shadow:var(--shadow-md);display:grid;place-items:center;font-family:var(--font-mono);font-size:10px">--shadow-md</div>
73
+ <div style="width:160px;height:80px;background:var(--bg-raised);box-shadow:var(--shadow-lg);display:grid;place-items:center;font-family:var(--font-mono);font-size:10px">--shadow-lg</div>
74
+ <div style="width:160px;height:80px;background:var(--bg-raised);box-shadow:var(--shadow-xl);display:grid;place-items:center;font-family:var(--font-mono);font-size:10px">--shadow-xl</div>
75
+ <div style="width:160px;height:80px;background:var(--brand-primary);box-shadow:var(--shadow-glow);display:grid;place-items:center;font-family:var(--font-mono);font-size:10px;color:#000">--shadow-glow</div>
76
+ </div>
77
+ </section>
78
+ </body>
79
+ </html>
@@ -0,0 +1,102 @@
1
+ <!doctype html>
2
+ <html lang="en" data-theme="dark">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Textures · 7k-design-system</title>
7
+ <link rel="stylesheet" href="../colors_and_type.css">
8
+ <style>
9
+ body { padding: 32px; background: var(--bg-base); color: var(--text-primary); }
10
+ h1 { margin-bottom: 8px; }
11
+ .mono-label { margin-bottom: 32px; display: block; }
12
+ section { margin-bottom: 48px; }
13
+ h2 { margin-bottom: 16px; }
14
+ .texture-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
15
+ .texture-card { height: 140px; border: 2px solid #FFFFFF; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; }
16
+ .texture-label { font-family: var(--font-mono); font-size: 10px; color: var(--text-primary); position: relative; z-index: 2; background: rgba(0,0,0,0.7); padding: 2px 6px; }
17
+ </style>
18
+ </head>
19
+ <body>
20
+ <h1>1-bit Texture Backgrounds</h1>
21
+ <span class="mono-label">10 categories · manga screentone library</span>
22
+
23
+ <section>
24
+ <h2>Scanline</h2>
25
+ <div class="texture-grid">
26
+ <div class="texture-card scanline"><span class="texture-label">.scanline (8s)</span></div>
27
+ <div class="texture-card scanline-fast"><span class="texture-label">.scanline-fast (3s)</span></div>
28
+ </div>
29
+ </section>
30
+
31
+ <section>
32
+ <h2>Halftone Dots</h2>
33
+ <div class="texture-grid">
34
+ <div class="texture-card halftone-sm"><span class="texture-label">.halftone-sm (4px)</span></div>
35
+ <div class="texture-card halftone-md"><span class="texture-label">.halftone-md (6px)</span></div>
36
+ <div class="texture-card halftone-lg"><span class="texture-label">.halftone-lg (10px)</span></div>
37
+ <div class="texture-card halftone-accent"><span class="texture-label">.halftone-accent</span></div>
38
+ </div>
39
+ </section>
40
+
41
+ <section>
42
+ <h2>Dot Matrix</h2>
43
+ <div class="texture-grid">
44
+ <div class="texture-card dot-matrix-dense"><span class="texture-label">.dot-matrix-dense</span></div>
45
+ <div class="texture-card dot-matrix"><span class="texture-label">.dot-matrix</span></div>
46
+ <div class="texture-card dot-matrix-sparse"><span class="texture-label">.dot-matrix-sparse</span></div>
47
+ </div>
48
+ </section>
49
+
50
+ <section>
51
+ <h2>Stripes</h2>
52
+ <div class="texture-grid">
53
+ <div class="texture-card diagonal-stripes"><span class="texture-label">.diagonal-stripes</span></div>
54
+ <div class="texture-card diagonal-stripes-dense"><span class="texture-label">.diagonal-stripes-dense</span></div>
55
+ <div class="texture-card diagonal-stripes-negative"><span class="texture-label">.diagonal-stripes-negative</span></div>
56
+ <div class="texture-card stripes-h"><span class="texture-label">.stripes-h</span></div>
57
+ <div class="texture-card stripes-h-dense"><span class="texture-label">.stripes-h-dense</span></div>
58
+ <div class="texture-card stripes-v"><span class="texture-label">.stripes-v</span></div>
59
+ <div class="texture-card stripes-v-dense"><span class="texture-label">.stripes-v-dense</span></div>
60
+ </div>
61
+ </section>
62
+
63
+ <section>
64
+ <h2>Crosshatch & Checkerboard</h2>
65
+ <div class="texture-grid">
66
+ <div class="texture-card crosshatch"><span class="texture-label">.crosshatch</span></div>
67
+ <div class="texture-card crosshatch-dense"><span class="texture-label">.crosshatch-dense</span></div>
68
+ <div class="texture-card checkerboard"><span class="texture-label">.checkerboard</span></div>
69
+ <div class="texture-card checkerboard-onebit"><span class="texture-label">.checkerboard-onebit</span></div>
70
+ </div>
71
+ </section>
72
+
73
+ <section>
74
+ <h2>Noise & Vignette</h2>
75
+ <div class="texture-grid">
76
+ <div class="texture-card noise"><span class="texture-label">.noise</span></div>
77
+ <div class="texture-card noise-heavy"><span class="texture-label">.noise-heavy</span></div>
78
+ <div class="texture-card vignette-onebit"><span class="texture-label">.vignette-onebit</span></div>
79
+ <div class="texture-card vignette-onebit-sharp"><span class="texture-label">.vignette-onebit-sharp</span></div>
80
+ </div>
81
+ </section>
82
+
83
+ <section>
84
+ <h2>Separators</h2>
85
+ <div class="texture-grid" style="grid-template-columns:1fr;gap:8px">
86
+ <div class="separator-onebit" style="margin:8px 0"></div><span class="mono-label">.separator-onebit</span>
87
+ <div class="separator-onebit-thick" style="margin:8px 0"></div><span class="mono-label">.separator-onebit-thick</span>
88
+ <div class="separator-onebit-dashed" style="margin:8px 0"></div><span class="mono-label">.separator-onebit-dashed</span>
89
+ <div class="separator-onebit-dotted" style="margin:8px 0"></div><span class="mono-label">.separator-onebit-dotted</span>
90
+ </div>
91
+ </section>
92
+
93
+ <section>
94
+ <h2>Section Composition</h2>
95
+ <div class="scanline" style="height:120px;border:2px solid #FFFFFF;display:grid;place-items:center;margin-bottom:16px"><span class="mono-label" style="position:relative;z-index:2">Hero — scanline + noise</span></div>
96
+ <div class="separator-onebit" style="margin:8px 0"></div>
97
+ <div class="halftone-md" style="height:100px;border:2px solid #FFFFFF;display:grid;place-items:center;margin:16px 0"><span class="mono-label">Stats — halftone-md</span></div>
98
+ <div class="separator-onebit" style="margin:8px 0"></div>
99
+ <div class="noise" style="height:100px;border:2px solid #FFFFFF;display:grid;place-items:center;margin:16px 0"><span class="mono-label">CTA — noise overlay</span></div>
100
+ </section>
101
+ </body>
102
+ </html>