@hewnui/themes 0.0.0-stage → 0.1.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.
Files changed (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -2
  3. package/dist/authoring/css-vars.d.ts +10 -0
  4. package/dist/authoring/css-vars.js +83 -0
  5. package/dist/authoring/derive.d.ts +9 -0
  6. package/dist/authoring/derive.js +79 -0
  7. package/dist/authoring/export-css.d.ts +8 -0
  8. package/dist/authoring/export-css.js +60 -0
  9. package/dist/authoring/export-design-md.d.ts +5 -0
  10. package/dist/authoring/export-design-md.js +113 -0
  11. package/dist/authoring/export-dtcg.d.ts +6 -0
  12. package/dist/authoring/export-dtcg.js +85 -0
  13. package/dist/authoring/export-figma.d.ts +27 -0
  14. package/dist/authoring/export-figma.js +76 -0
  15. package/dist/authoring/export-formats.d.ts +27 -0
  16. package/dist/authoring/export-formats.js +62 -0
  17. package/dist/authoring/export-skill.d.ts +5 -0
  18. package/dist/authoring/export-skill.js +75 -0
  19. package/dist/authoring/export-sticker.d.ts +6 -0
  20. package/dist/authoring/export-sticker.js +54 -0
  21. package/dist/authoring/export-style-dictionary.d.ts +3 -0
  22. package/dist/authoring/export-style-dictionary.js +52 -0
  23. package/dist/authoring/figma-kit.d.ts +16 -0
  24. package/dist/authoring/figma-kit.js +41 -0
  25. package/dist/authoring/index.d.ts +21 -0
  26. package/dist/authoring/index.js +18 -0
  27. package/dist/authoring/oklch.d.ts +11 -0
  28. package/dist/authoring/oklch.js +116 -0
  29. package/dist/authoring/override-map.d.ts +9 -0
  30. package/dist/authoring/override-map.js +150 -0
  31. package/dist/authoring/pack-def.d.ts +7 -0
  32. package/dist/authoring/pack-def.js +3 -0
  33. package/dist/authoring/pack-meta.d.ts +10 -0
  34. package/dist/authoring/pack-meta.js +58 -0
  35. package/dist/authoring/packs-dual.d.ts +129 -0
  36. package/dist/authoring/packs-dual.js +130 -0
  37. package/dist/authoring/packs-single.d.ts +87 -0
  38. package/dist/authoring/packs-single.js +88 -0
  39. package/dist/authoring/packs.d.ts +8 -0
  40. package/dist/authoring/packs.js +26 -0
  41. package/dist/authoring/pro-apply.d.ts +8 -0
  42. package/dist/authoring/pro-apply.js +107 -0
  43. package/dist/authoring/propose.d.ts +21 -0
  44. package/dist/authoring/propose.js +162 -0
  45. package/dist/authoring/ramps.d.ts +13 -0
  46. package/dist/authoring/ramps.js +40 -0
  47. package/dist/authoring/status-ramps.d.ts +13 -0
  48. package/dist/authoring/status-ramps.js +76 -0
  49. package/dist/authoring/token-entries.d.ts +10 -0
  50. package/dist/authoring/token-entries.js +52 -0
  51. package/dist/authoring/types.d.ts +110 -0
  52. package/dist/authoring/types.js +11 -0
  53. package/exports/clay/DESIGN.md +138 -0
  54. package/exports/clay/SKILL.md +94 -0
  55. package/exports/clay/theme.css +37 -0
  56. package/exports/clay/tokens.dtcg.json +200 -0
  57. package/exports/dune/DESIGN.md +138 -0
  58. package/exports/dune/SKILL.md +94 -0
  59. package/exports/dune/theme.css +37 -0
  60. package/exports/dune/tokens.dtcg.json +200 -0
  61. package/exports/ember/DESIGN.md +138 -0
  62. package/exports/ember/SKILL.md +94 -0
  63. package/exports/ember/theme.css +37 -0
  64. package/exports/ember/tokens.dtcg.json +200 -0
  65. package/exports/forest/DESIGN.md +138 -0
  66. package/exports/forest/SKILL.md +94 -0
  67. package/exports/forest/theme.css +67 -0
  68. package/exports/forest/tokens.dtcg.json +348 -0
  69. package/exports/graphite/DESIGN.md +138 -0
  70. package/exports/graphite/SKILL.md +94 -0
  71. package/exports/graphite/theme.css +67 -0
  72. package/exports/graphite/tokens.dtcg.json +348 -0
  73. package/exports/index.json +45 -0
  74. package/exports/tide/DESIGN.md +138 -0
  75. package/exports/tide/SKILL.md +94 -0
  76. package/exports/tide/theme.css +67 -0
  77. package/exports/tide/tokens.dtcg.json +348 -0
  78. package/figma/README.md +16 -0
  79. package/figma/hewn.tokens.json +1308 -0
  80. package/figma/sticker-sheet.svg +93 -0
  81. package/package.json +98 -4
  82. package/src/authoring/css-vars.ts +92 -0
  83. package/src/authoring/derive.ts +106 -0
  84. package/src/authoring/export-css.ts +86 -0
  85. package/src/authoring/export-design-md.ts +134 -0
  86. package/src/authoring/export-dtcg.ts +116 -0
  87. package/src/authoring/export-figma.ts +109 -0
  88. package/src/authoring/export-formats.ts +101 -0
  89. package/src/authoring/export-skill.ts +93 -0
  90. package/src/authoring/export-sticker.ts +60 -0
  91. package/src/authoring/export-style-dictionary.ts +67 -0
  92. package/src/authoring/figma-kit.ts +60 -0
  93. package/src/authoring/index.ts +61 -0
  94. package/src/authoring/oklch.ts +137 -0
  95. package/src/authoring/override-map.ts +191 -0
  96. package/src/authoring/pack-def.ts +11 -0
  97. package/src/authoring/pack-meta.ts +66 -0
  98. package/src/authoring/packs-dual.ts +131 -0
  99. package/src/authoring/packs-single.ts +89 -0
  100. package/src/authoring/packs.ts +43 -0
  101. package/src/authoring/pro-apply.ts +156 -0
  102. package/src/authoring/propose.ts +181 -0
  103. package/src/authoring/ramps.ts +62 -0
  104. package/src/authoring/status-ramps.ts +98 -0
  105. package/src/authoring/token-entries.ts +59 -0
  106. package/src/authoring/types.ts +133 -0
  107. package/src/glass-buttons.css +46 -0
  108. package/src/glass.css +266 -0
  109. package/src/motion.css +60 -0
  110. package/src/packs/clay.css +45 -0
  111. package/src/packs/dune.css +45 -0
  112. package/src/packs/ember.css +45 -0
  113. package/src/packs/forest.css +80 -0
  114. package/src/packs/graphite.css +79 -0
  115. package/src/packs/tide.css +79 -0
  116. package/src/radius.css +25 -0
  117. package/src/tokens.css +104 -0
@@ -0,0 +1,79 @@
1
+ [data-theme="tide"][data-mode="light"] {
2
+ color-scheme: light;
3
+ --kp-background: oklch(0.97 0.01 220);
4
+ --kp-foreground: oklch(0.24 0.03 230);
5
+ --kp-surface: oklch(0.995 0.004 220);
6
+ --kp-surface-raised: oklch(1 0 0);
7
+ --kp-muted: oklch(0.93 0.015 220);
8
+ --kp-muted-foreground: oklch(0.48 0.03 230);
9
+ --kp-accent: oklch(0.52 0.07 210);
10
+ --kp-accent-foreground: oklch(0.98 0.01 210);
11
+ --kp-border: oklch(0.35 0.03 230 / 14%);
12
+ --kp-ring: oklch(0.58 0.08 210);
13
+ --kp-danger: oklch(0.56 0.17 27);
14
+ --kp-danger-foreground: oklch(0.985 0.01 27);
15
+ --kp-danger-subtle: oklch(0.94 0.035 27);
16
+ --kp-danger-border: oklch(0.56 0.12 27 / 40%);
17
+ --kp-success: oklch(0.55 0.15 165);
18
+ --kp-success-foreground: oklch(0.985 0.01 165);
19
+ --kp-success-subtle: oklch(0.94 0.035 165);
20
+ --kp-success-border: oklch(0.55 0.12 165 / 40%);
21
+ --kp-warning: oklch(0.75 0.14 75);
22
+ --kp-warning-foreground: oklch(0.25 0.05 75);
23
+ --kp-warning-subtle: oklch(0.94 0.04 75);
24
+ --kp-warning-border: oklch(0.72 0.12 75 / 40%);
25
+ --kp-info: oklch(0.52 0.11 230);
26
+ --kp-info-foreground: oklch(0.985 0.01 230);
27
+ --kp-info-subtle: oklch(0.94 0.03 230);
28
+ --kp-info-border: oklch(0.52 0.09 230 / 40%);
29
+ --kp-glass-tint: oklch(0.72 0.08 210 / 28%);
30
+ --kp-radius-sm: 0.45rem;
31
+ --kp-radius-md: 0.7rem;
32
+ --kp-radius-lg: 0.95rem;
33
+ --kp-radius-panel: 0.95rem;
34
+ --kp-density: 1;
35
+ --kp-motion-duration: 240ms;
36
+ --kp-motion-stiffness: 380;
37
+ --kp-motion-damping: 30;
38
+ --kp-shadow-surface:
39
+ 0 1px 2px oklch(0.22 0.03 230 / 5%),
40
+ 0 18px 42px -28px oklch(0.28 0.04 220 / 28%);
41
+ --kp-font-sans: var(--font-plex-sans, "IBM Plex Sans"), ui-sans-serif, system-ui,
42
+ sans-serif;
43
+ --kp-font-mono: var(--font-plex-mono, "IBM Plex Mono"), ui-monospace, monospace;
44
+ --kp-font-display: var(--font-space-grotesk, "Space Grotesk"), var(--kp-font-sans);
45
+ }
46
+
47
+ [data-theme="tide"][data-mode="dark"] {
48
+ color-scheme: dark;
49
+ --kp-background: oklch(0.18 0.02 230);
50
+ --kp-foreground: oklch(0.92 0.015 220);
51
+ --kp-surface: oklch(0.22 0.025 230);
52
+ --kp-surface-raised: oklch(0.26 0.028 230);
53
+ --kp-muted: oklch(0.28 0.025 230);
54
+ --kp-muted-foreground: oklch(0.72 0.025 220);
55
+ --kp-accent: oklch(0.72 0.08 205);
56
+ --kp-accent-foreground: oklch(0.985 0.01 220);
57
+ --kp-border: oklch(0.86 0.02 220 / 13%);
58
+ --kp-ring: oklch(0.72 0.08 205);
59
+ --kp-danger: oklch(0.68 0.16 27);
60
+ --kp-danger-foreground: oklch(0.985 0.01 27);
61
+ --kp-danger-subtle: oklch(0.32 0.05 27);
62
+ --kp-danger-border: oklch(0.72 0.1 27 / 40%);
63
+ --kp-success: oklch(0.71 0.14 165);
64
+ --kp-success-foreground: oklch(0.985 0.01 165);
65
+ --kp-success-subtle: oklch(0.32 0.045 165);
66
+ --kp-success-border: oklch(0.72 0.1 165 / 40%);
67
+ --kp-warning: oklch(0.78 0.12 75);
68
+ --kp-warning-foreground: oklch(0.22 0.04 75);
69
+ --kp-warning-subtle: oklch(0.34 0.04 75);
70
+ --kp-warning-border: oklch(0.78 0.1 75 / 40%);
71
+ --kp-info: oklch(0.72 0.1 230);
72
+ --kp-info-foreground: oklch(0.985 0.01 230);
73
+ --kp-info-subtle: oklch(0.32 0.035 230);
74
+ --kp-info-border: oklch(0.72 0.08 230 / 40%);
75
+ --kp-glass-tint: oklch(0.6 0.09 205 / 24%);
76
+ --kp-shadow-surface:
77
+ 0 1px 2px oklch(0.08 0.02 230 / 35%),
78
+ 0 24px 48px -30px oklch(0.08 0.03 230 / 84%);
79
+ }
package/src/radius.css ADDED
@@ -0,0 +1,25 @@
1
+ /* Must beat theme-pack selectors: [data-theme][data-mode]
2
+ Controls use sm/md (may be fully pill). Panels use --kp-radius-panel (never 9999). */
3
+
4
+ html[data-theme][data-mode][data-radius="sharp"] {
5
+ --kp-radius-sm: 0.125rem;
6
+ --kp-radius-md: 0.2rem;
7
+ --kp-radius-lg: 0.3rem;
8
+ --kp-radius-panel: 0.25rem;
9
+ }
10
+
11
+ /* soft = theme pack values (no override) */
12
+
13
+ html[data-theme][data-mode][data-radius="rounded"] {
14
+ --kp-radius-sm: 0.85rem;
15
+ --kp-radius-md: 1.15rem;
16
+ --kp-radius-lg: 1.5rem;
17
+ --kp-radius-panel: 1.25rem;
18
+ }
19
+
20
+ html[data-theme][data-mode][data-radius="pill"] {
21
+ --kp-radius-sm: 9999px;
22
+ --kp-radius-md: 9999px;
23
+ --kp-radius-lg: 1.5rem;
24
+ --kp-radius-panel: 1.15rem;
25
+ }
package/src/tokens.css ADDED
@@ -0,0 +1,104 @@
1
+ @import "./motion.css";
2
+ @import "./packs/forest.css";
3
+ @import "./packs/tide.css";
4
+ @import "./packs/graphite.css";
5
+ @import "./packs/dune.css";
6
+ @import "./packs/clay.css";
7
+ @import "./packs/ember.css";
8
+
9
+ @theme inline {
10
+ --color-background: var(--kp-background);
11
+ --color-foreground: var(--kp-foreground);
12
+ --color-surface: var(--kp-surface);
13
+ --color-surface-raised: var(--kp-surface-raised);
14
+ --color-muted: var(--kp-muted);
15
+ --color-muted-foreground: var(--kp-muted-foreground);
16
+ --color-accent: var(--kp-accent);
17
+ --color-accent-foreground: var(--kp-accent-foreground);
18
+ --color-border: var(--kp-border);
19
+ --color-ring: var(--kp-ring);
20
+ --color-danger: var(--kp-danger);
21
+ --color-danger-foreground: var(--kp-danger-foreground);
22
+ --color-danger-subtle: var(--kp-danger-subtle);
23
+ --color-danger-border: var(--kp-danger-border);
24
+ --color-success: var(--kp-success);
25
+ --color-success-foreground: var(--kp-success-foreground);
26
+ --color-success-subtle: var(--kp-success-subtle);
27
+ --color-success-border: var(--kp-success-border);
28
+ --color-warning: var(--kp-warning);
29
+ --color-warning-foreground: var(--kp-warning-foreground);
30
+ --color-warning-subtle: var(--kp-warning-subtle);
31
+ --color-warning-border: var(--kp-warning-border);
32
+ --color-info: var(--kp-info);
33
+ --color-info-foreground: var(--kp-info-foreground);
34
+ --color-info-subtle: var(--kp-info-subtle);
35
+ --color-info-border: var(--kp-info-border);
36
+ --font-sans: var(--kp-font-sans);
37
+ --font-mono: var(--kp-font-mono);
38
+ --font-display: var(--kp-font-display);
39
+ }
40
+
41
+ html {
42
+ background: var(--kp-background);
43
+ color: var(--kp-foreground);
44
+ font-family: var(--kp-font-sans);
45
+ -webkit-font-smoothing: antialiased;
46
+ -moz-osx-font-smoothing: grayscale;
47
+ }
48
+
49
+ @keyframes kp-spin {
50
+ to {
51
+ transform: rotate(360deg);
52
+ }
53
+ }
54
+
55
+ @keyframes kp-progress {
56
+ 0% {
57
+ transform: translateX(-120%);
58
+ }
59
+ 100% {
60
+ transform: translateX(320%);
61
+ }
62
+ }
63
+
64
+ .kp-spinner {
65
+ display: inline-block;
66
+ width: 1rem;
67
+ height: 1rem;
68
+ flex-shrink: 0;
69
+ box-sizing: border-box;
70
+ border-radius: 9999px;
71
+ border-style: solid;
72
+ border-width: 2px;
73
+ border-color: transparent;
74
+ border-top-color: currentColor;
75
+ border-right-color: color-mix(in oklch, currentColor 35%, transparent);
76
+ animation: kp-spin 0.7s linear infinite;
77
+ will-change: transform;
78
+ }
79
+
80
+ .kp-progress-indeterminate {
81
+ animation: kp-progress 1.2s ease-in-out infinite;
82
+ will-change: transform;
83
+ }
84
+
85
+ @media (prefers-reduced-motion: reduce) {
86
+ .kp-spinner {
87
+ animation: none;
88
+ opacity: 0.72;
89
+ border-color: color-mix(in oklch, currentColor 35%, transparent);
90
+ border-top-color: currentColor;
91
+ }
92
+
93
+ .kp-progress-indeterminate {
94
+ animation: none;
95
+ opacity: 0.7;
96
+ left: 33%;
97
+ }
98
+
99
+ [data-kp-control="skeleton"] {
100
+ animation: none;
101
+ opacity: 0.85;
102
+ }
103
+ }
104
+