@softure-ai/theme-notion 0.0.0-stage → 0.1.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 (247) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/LICENSE +21 -0
  3. package/README.md +114 -2
  4. package/dist/index.d.ts +47 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +49 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/lib/utils.d.ts +6 -0
  9. package/dist/lib/utils.d.ts.map +1 -0
  10. package/dist/lib/utils.js +8 -0
  11. package/dist/lib/utils.js.map +1 -0
  12. package/dist/messages/en.d.ts +29 -0
  13. package/dist/messages/en.d.ts.map +1 -0
  14. package/dist/messages/en.js +13 -0
  15. package/dist/messages/en.js.map +1 -0
  16. package/dist/messages/index.d.ts +30 -0
  17. package/dist/messages/index.d.ts.map +1 -0
  18. package/dist/messages/index.js +4 -0
  19. package/dist/messages/index.js.map +1 -0
  20. package/dist/notion/PageFrame.d.ts +11 -0
  21. package/dist/notion/PageFrame.d.ts.map +1 -0
  22. package/dist/notion/PageFrame.js +10 -0
  23. package/dist/notion/PageFrame.js.map +1 -0
  24. package/dist/notion/PageHeader.d.ts +16 -0
  25. package/dist/notion/PageHeader.d.ts.map +1 -0
  26. package/dist/notion/PageHeader.js +9 -0
  27. package/dist/notion/PageHeader.js.map +1 -0
  28. package/dist/notion/PropertyList.d.ts +12 -0
  29. package/dist/notion/PropertyList.d.ts.map +1 -0
  30. package/dist/notion/PropertyList.js +8 -0
  31. package/dist/notion/PropertyList.js.map +1 -0
  32. package/dist/notion/Status.d.ts +11 -0
  33. package/dist/notion/Status.d.ts.map +1 -0
  34. package/dist/notion/Status.js +21 -0
  35. package/dist/notion/Status.js.map +1 -0
  36. package/dist/notion/icon-stroke.d.ts +2 -0
  37. package/dist/notion/icon-stroke.d.ts.map +1 -0
  38. package/dist/notion/icon-stroke.js +3 -0
  39. package/dist/notion/icon-stroke.js.map +1 -0
  40. package/dist/notion/palette.d.ts +3 -0
  41. package/dist/notion/palette.d.ts.map +1 -0
  42. package/dist/notion/palette.js +4 -0
  43. package/dist/notion/palette.js.map +1 -0
  44. package/dist/sft-bridge.css +47 -0
  45. package/dist/theme.css +388 -0
  46. package/dist/tokens.d.ts +801 -0
  47. package/dist/tokens.d.ts.map +1 -0
  48. package/dist/tokens.js +139 -0
  49. package/dist/tokens.js.map +1 -0
  50. package/dist/ui/accordion.d.ts +8 -0
  51. package/dist/ui/accordion.d.ts.map +1 -0
  52. package/dist/ui/accordion.js +20 -0
  53. package/dist/ui/accordion.js.map +1 -0
  54. package/dist/ui/alert-dialog.d.ts +19 -0
  55. package/dist/ui/alert-dialog.d.ts.map +1 -0
  56. package/dist/ui/alert-dialog.js +44 -0
  57. package/dist/ui/alert-dialog.js.map +1 -0
  58. package/dist/ui/alert.d.ts +10 -0
  59. package/dist/ui/alert.d.ts.map +1 -0
  60. package/dist/ui/alert.js +35 -0
  61. package/dist/ui/alert.js.map +1 -0
  62. package/dist/ui/avatar.d.ts +12 -0
  63. package/dist/ui/avatar.d.ts.map +1 -0
  64. package/dist/ui/avatar.js +25 -0
  65. package/dist/ui/avatar.js.map +1 -0
  66. package/dist/ui/badge.d.ts +11 -0
  67. package/dist/ui/badge.d.ts.map +1 -0
  68. package/dist/ui/badge.js +41 -0
  69. package/dist/ui/badge.js.map +1 -0
  70. package/dist/ui/breadcrumb.d.ts +14 -0
  71. package/dist/ui/breadcrumb.d.ts.map +1 -0
  72. package/dist/ui/breadcrumb.js +30 -0
  73. package/dist/ui/breadcrumb.js.map +1 -0
  74. package/dist/ui/button-group.d.ts +12 -0
  75. package/dist/ui/button-group.d.ts.map +1 -0
  76. package/dist/ui/button-group.js +28 -0
  77. package/dist/ui/button-group.js.map +1 -0
  78. package/dist/ui/button.d.ts +11 -0
  79. package/dist/ui/button.d.ts.map +1 -0
  80. package/dist/ui/button.js +37 -0
  81. package/dist/ui/button.js.map +1 -0
  82. package/dist/ui/card.d.ts +10 -0
  83. package/dist/ui/card.d.ts.map +1 -0
  84. package/dist/ui/card.js +26 -0
  85. package/dist/ui/card.js.map +1 -0
  86. package/dist/ui/checkbox.d.ts +5 -0
  87. package/dist/ui/checkbox.d.ts.map +1 -0
  88. package/dist/ui/checkbox.js +11 -0
  89. package/dist/ui/checkbox.js.map +1 -0
  90. package/dist/ui/collapsible.d.ts +6 -0
  91. package/dist/ui/collapsible.d.ts.map +1 -0
  92. package/dist/ui/collapsible.js +14 -0
  93. package/dist/ui/collapsible.js.map +1 -0
  94. package/dist/ui/command.d.ts +19 -0
  95. package/dist/ui/command.d.ts.map +1 -0
  96. package/dist/ui/command.js +37 -0
  97. package/dist/ui/command.js.map +1 -0
  98. package/dist/ui/dialog.d.ts +19 -0
  99. package/dist/ui/dialog.d.ts.map +1 -0
  100. package/dist/ui/dialog.js +40 -0
  101. package/dist/ui/dialog.js.map +1 -0
  102. package/dist/ui/dropdown-menu.d.ts +26 -0
  103. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  104. package/dist/ui/dropdown-menu.js +53 -0
  105. package/dist/ui/dropdown-menu.js.map +1 -0
  106. package/dist/ui/empty.d.ts +12 -0
  107. package/dist/ui/empty.d.ts.map +1 -0
  108. package/dist/ui/empty.js +34 -0
  109. package/dist/ui/empty.js.map +1 -0
  110. package/dist/ui/field.d.ts +25 -0
  111. package/dist/ui/field.d.ts.map +1 -0
  112. package/dist/ui/field.js +77 -0
  113. package/dist/ui/field.js.map +1 -0
  114. package/dist/ui/input-group.d.ts +17 -0
  115. package/dist/ui/input-group.d.ts.map +1 -0
  116. package/dist/ui/input-group.js +65 -0
  117. package/dist/ui/input-group.js.map +1 -0
  118. package/dist/ui/input.d.ts +4 -0
  119. package/dist/ui/input.d.ts.map +1 -0
  120. package/dist/ui/input.js +8 -0
  121. package/dist/ui/input.js.map +1 -0
  122. package/dist/ui/item.d.ts +24 -0
  123. package/dist/ui/item.d.ts.map +1 -0
  124. package/dist/ui/item.js +68 -0
  125. package/dist/ui/item.js.map +1 -0
  126. package/dist/ui/kbd.d.ts +4 -0
  127. package/dist/ui/kbd.d.ts.map +1 -0
  128. package/dist/ui/kbd.js +10 -0
  129. package/dist/ui/kbd.js.map +1 -0
  130. package/dist/ui/label.d.ts +5 -0
  131. package/dist/ui/label.d.ts.map +1 -0
  132. package/dist/ui/label.js +10 -0
  133. package/dist/ui/label.js.map +1 -0
  134. package/dist/ui/popover.d.ts +11 -0
  135. package/dist/ui/popover.d.ts.map +1 -0
  136. package/dist/ui/popover.js +28 -0
  137. package/dist/ui/popover.js.map +1 -0
  138. package/dist/ui/progress.d.ts +5 -0
  139. package/dist/ui/progress.d.ts.map +1 -0
  140. package/dist/ui/progress.js +10 -0
  141. package/dist/ui/progress.js.map +1 -0
  142. package/dist/ui/scroll-area.d.ts +6 -0
  143. package/dist/ui/scroll-area.d.ts.map +1 -0
  144. package/dist/ui/scroll-area.js +15 -0
  145. package/dist/ui/scroll-area.js.map +1 -0
  146. package/dist/ui/select.d.ts +16 -0
  147. package/dist/ui/select.d.ts.map +1 -0
  148. package/dist/ui/select.js +40 -0
  149. package/dist/ui/select.js.map +1 -0
  150. package/dist/ui/separator.d.ts +5 -0
  151. package/dist/ui/separator.d.ts.map +1 -0
  152. package/dist/ui/separator.js +10 -0
  153. package/dist/ui/separator.js.map +1 -0
  154. package/dist/ui/sheet.d.ts +16 -0
  155. package/dist/ui/sheet.d.ts.map +1 -0
  156. package/dist/ui/sheet.js +43 -0
  157. package/dist/ui/sheet.js.map +1 -0
  158. package/dist/ui/sidebar.d.ts +76 -0
  159. package/dist/ui/sidebar.d.ts.map +1 -0
  160. package/dist/ui/sidebar.js +216 -0
  161. package/dist/ui/sidebar.js.map +1 -0
  162. package/dist/ui/skeleton.d.ts +3 -0
  163. package/dist/ui/skeleton.d.ts.map +1 -0
  164. package/dist/ui/skeleton.js +7 -0
  165. package/dist/ui/skeleton.js.map +1 -0
  166. package/dist/ui/sonner.d.ts +4 -0
  167. package/dist/ui/sonner.d.ts.map +1 -0
  168. package/dist/ui/sonner.js +22 -0
  169. package/dist/ui/sonner.js.map +1 -0
  170. package/dist/ui/spinner.d.ts +3 -0
  171. package/dist/ui/spinner.d.ts.map +1 -0
  172. package/dist/ui/spinner.js +9 -0
  173. package/dist/ui/spinner.js.map +1 -0
  174. package/dist/ui/switch-thumb.d.ts +7 -0
  175. package/dist/ui/switch-thumb.d.ts.map +1 -0
  176. package/dist/ui/switch-thumb.js +7 -0
  177. package/dist/ui/switch-thumb.js.map +1 -0
  178. package/dist/ui/switch.d.ts +7 -0
  179. package/dist/ui/switch.d.ts.map +1 -0
  180. package/dist/ui/switch.js +11 -0
  181. package/dist/ui/switch.js.map +1 -0
  182. package/dist/ui/table.d.ts +11 -0
  183. package/dist/ui/table.d.ts.map +1 -0
  184. package/dist/ui/table.js +30 -0
  185. package/dist/ui/table.js.map +1 -0
  186. package/dist/ui/tabs.d.ts +12 -0
  187. package/dist/ui/tabs.d.ts.map +1 -0
  188. package/dist/ui/tabs.js +31 -0
  189. package/dist/ui/tabs.js.map +1 -0
  190. package/dist/ui/textarea.d.ts +4 -0
  191. package/dist/ui/textarea.d.ts.map +1 -0
  192. package/dist/ui/textarea.js +8 -0
  193. package/dist/ui/textarea.js.map +1 -0
  194. package/dist/ui/tooltip.d.ts +8 -0
  195. package/dist/ui/tooltip.d.ts.map +1 -0
  196. package/dist/ui/tooltip.js +19 -0
  197. package/dist/ui/tooltip.js.map +1 -0
  198. package/package.json +69 -4
  199. package/src/index.ts +50 -0
  200. package/src/lib/utils.ts +9 -0
  201. package/src/messages/en.ts +12 -0
  202. package/src/messages/index.ts +6 -0
  203. package/src/notion/PageFrame.tsx +18 -0
  204. package/src/notion/PageHeader.tsx +62 -0
  205. package/src/notion/PropertyList.tsx +38 -0
  206. package/src/notion/Status.tsx +44 -0
  207. package/src/notion/icon-stroke.ts +2 -0
  208. package/src/notion/palette.ts +5 -0
  209. package/src/sft-bridge.css +47 -0
  210. package/src/tokens.ts +140 -0
  211. package/src/ui/accordion.tsx +65 -0
  212. package/src/ui/alert-dialog.tsx +196 -0
  213. package/src/ui/alert.tsx +74 -0
  214. package/src/ui/avatar.tsx +108 -0
  215. package/src/ui/badge.tsx +63 -0
  216. package/src/ui/breadcrumb.tsx +113 -0
  217. package/src/ui/button-group.tsx +83 -0
  218. package/src/ui/button.tsx +62 -0
  219. package/src/ui/card.tsx +91 -0
  220. package/src/ui/checkbox.tsx +31 -0
  221. package/src/ui/collapsible.tsx +33 -0
  222. package/src/ui/command.tsx +185 -0
  223. package/src/ui/dialog.tsx +162 -0
  224. package/src/ui/dropdown-menu.tsx +256 -0
  225. package/src/ui/empty.tsx +103 -0
  226. package/src/ui/field.tsx +248 -0
  227. package/src/ui/input-group.tsx +170 -0
  228. package/src/ui/input.tsx +20 -0
  229. package/src/ui/item.tsx +193 -0
  230. package/src/ui/kbd.tsx +28 -0
  231. package/src/ui/label.tsx +23 -0
  232. package/src/ui/popover.tsx +88 -0
  233. package/src/ui/progress.tsx +30 -0
  234. package/src/ui/scroll-area.tsx +57 -0
  235. package/src/ui/select.tsx +189 -0
  236. package/src/ui/separator.tsx +27 -0
  237. package/src/ui/sheet.tsx +146 -0
  238. package/src/ui/sidebar.tsx +744 -0
  239. package/src/ui/skeleton.tsx +13 -0
  240. package/src/ui/sonner.tsx +39 -0
  241. package/src/ui/spinner.tsx +16 -0
  242. package/src/ui/switch-thumb.ts +6 -0
  243. package/src/ui/switch.tsx +36 -0
  244. package/src/ui/table.tsx +115 -0
  245. package/src/ui/tabs.tsx +90 -0
  246. package/src/ui/textarea.tsx +17 -0
  247. package/src/ui/tooltip.tsx +55 -0
@@ -0,0 +1,47 @@
1
+ /*
2
+ * The bridge from the `--sft-*` tokens of @softure-ai/ui to the Notion theme. Pages rendered by the SOFTURE packages
3
+ * (sign-in, password, MCP access, OAuth consent) read `--sft-*`; inside a `PageFrame` (any `[data-page-frame]`
4
+ * element) those tokens point at the Notion values, so the package pages take the theme's colours, type, radii and
5
+ * shadows. Scoped to the frame, not `:root`: screens still on `--sft-*` keep their look until they move. The Notion
6
+ * colours and shadows switch scheme by themselves, so the bridge needs no dark block. Spacing, text sizes and
7
+ * durations stay the package's: the scales already match, and the theme has no motion tokens.
8
+ *
9
+ * Import it after `theme.css`, through the app's Tailwind (it reads the theme with `--theme()`).
10
+ */
11
+ @layer base {
12
+ [data-page-frame] {
13
+ --sft-font-sans: --theme(--font-sans);
14
+ --sft-font-heading: --theme(--font-sans);
15
+ --sft-font-mono: --theme(--font-mono);
16
+
17
+ --sft-radius-control: --theme(--radius-md);
18
+ --sft-radius-card: --theme(--radius-lg);
19
+ --sft-radius-pill: --theme(--radius-full);
20
+
21
+ --sft-color-background: var(--background);
22
+ --sft-color-surface: var(--card);
23
+ --sft-color-surface-raised: var(--popover);
24
+ --sft-color-foreground: var(--foreground);
25
+ --sft-color-muted: var(--muted-foreground);
26
+ --sft-color-border: var(--border);
27
+ --sft-color-border-strong: var(--control-off);
28
+ --sft-color-accent: var(--primary);
29
+ --sft-color-accent-fill: var(--primary);
30
+ --sft-color-accent-fill-hover: var(--primary-hover);
31
+ --sft-color-on-accent: var(--primary-foreground);
32
+ --sft-color-danger: var(--red);
33
+ --sft-color-success: var(--green);
34
+ --sft-color-warning: var(--orange);
35
+ --sft-color-focus: var(--ring);
36
+ --sft-color-overlay: var(--overlay);
37
+
38
+ --sft-shadow-1: var(--shadow-card);
39
+ --sft-shadow-2: var(--shadow-dialog);
40
+ }
41
+
42
+ /* A page in a frame fills the window: no browser margin, the Notion background behind everything. */
43
+ body:has([data-page-frame]) {
44
+ margin: 0;
45
+ background-color: var(--background);
46
+ }
47
+ }
package/dist/theme.css ADDED
@@ -0,0 +1,388 @@
1
+ @import "tw-animate-css";
2
+ @source "./ui";
3
+ @source "./notion";
4
+
5
+ /* Theme "Notion", generated by @softure-ai/theme-kit (buildThemeCss). */
6
+
7
+ @custom-variant dark {
8
+ @media (prefers-color-scheme: dark) {
9
+ &:where(:root:not(.light, [data-theme="light"]), :root:not(.light, [data-theme="light"]) *) {
10
+ @slot;
11
+ }
12
+ }
13
+ &:where(.dark, .dark *, [data-theme="dark"], [data-theme="dark"] *) {
14
+ @slot;
15
+ }
16
+ }
17
+
18
+ :root, .light, [data-theme="light"] {
19
+ --background: #ffffff;
20
+ --foreground: #37352f;
21
+ --card: #ffffff;
22
+ --card-foreground: #37352f;
23
+ --popover: #ffffff;
24
+ --popover-foreground: #37352f;
25
+ --primary: #2383e2;
26
+ --primary-foreground: #ffffff;
27
+ --primary-hover: #0077d4;
28
+ --secondary: #f1f1ef;
29
+ --secondary-foreground: #37352f;
30
+ --muted: #f7f7f5;
31
+ --muted-foreground: #787774;
32
+ --accent: rgba(55, 53, 47, 0.08);
33
+ --accent-foreground: #37352f;
34
+ --accent-strong: rgba(55, 53, 47, 0.16);
35
+ --destructive: #eb5757;
36
+ --destructive-foreground: #ffffff;
37
+ --border: #e9e9e7;
38
+ --input: rgba(15, 15, 15, 0.1);
39
+ --field: rgba(242, 241, 238, 0.6);
40
+ --control-off: rgba(135, 131, 120, 0.3);
41
+ --ring: rgba(35, 131, 226, 0.57);
42
+ --sidebar: #f7f7f5;
43
+ --sidebar-foreground: #5f5e5b;
44
+ --sidebar-primary: #2383e2;
45
+ --sidebar-primary-foreground: #ffffff;
46
+ --sidebar-accent: rgba(55, 53, 47, 0.08);
47
+ --sidebar-accent-foreground: #37352f;
48
+ --sidebar-border: #ededeb;
49
+ --sidebar-ring: rgba(35, 131, 226, 0.57);
50
+ --tooltip: #0f0f0f;
51
+ --tooltip-foreground: rgba(255, 255, 255, 0.9);
52
+ --overlay: rgba(15, 15, 15, 0.6);
53
+ --gray: #787774;
54
+ --gray-bg: #f1f1ef;
55
+ --gray-tag: #e3e2e0;
56
+ --gray-tag-foreground: #32302c;
57
+ --brown: #9f6b53;
58
+ --brown-bg: #f4eeee;
59
+ --brown-tag: #eee0da;
60
+ --brown-tag-foreground: #442a1e;
61
+ --orange: #d9730d;
62
+ --orange-bg: #fbecdd;
63
+ --orange-tag: #fadec9;
64
+ --orange-tag-foreground: #49290e;
65
+ --yellow: #cb912f;
66
+ --yellow-bg: #fbf3db;
67
+ --yellow-tag: #fdecc8;
68
+ --yellow-tag-foreground: #402c1b;
69
+ --green: #448361;
70
+ --green-bg: #edf3ec;
71
+ --green-tag: #dbeddb;
72
+ --green-tag-foreground: #1c3829;
73
+ --blue: #337ea9;
74
+ --blue-bg: #e7f3f8;
75
+ --blue-tag: #d3e5ef;
76
+ --blue-tag-foreground: #183347;
77
+ --purple: #9065b0;
78
+ --purple-bg: #f6f3f9;
79
+ --purple-tag: #e8deee;
80
+ --purple-tag-foreground: #412454;
81
+ --pink: #c14c8a;
82
+ --pink-bg: #faf1f5;
83
+ --pink-tag: #f5e0e9;
84
+ --pink-tag-foreground: #4c2337;
85
+ --red: #d44c47;
86
+ --red-bg: #fdebec;
87
+ --red-tag: #ffe2dd;
88
+ --red-tag-foreground: #5d1715;
89
+ --default-tag: #f1f0ef;
90
+ --default-tag-foreground: #32302c;
91
+ --chart-1: var(--blue);
92
+ --chart-2: var(--orange);
93
+ --chart-3: var(--green);
94
+ --chart-4: var(--purple);
95
+ --chart-5: var(--pink);
96
+ --shadow-menu: 0 0 0 1px rgba(15, 15, 15, 0.05), 0 3px 6px rgba(15, 15, 15, 0.1), 0 9px 24px rgba(15, 15, 15, 0.2);
97
+ --shadow-dialog: 0 0 0 1px rgba(15, 15, 15, 0.05), 0 5px 10px rgba(15, 15, 15, 0.1), 0 15px 40px rgba(15, 15, 15, 0.2);
98
+ --shadow-card: 0 0 0 1px rgba(15, 15, 15, 0.1), 0 2px 4px rgba(15, 15, 15, 0.1);
99
+ }
100
+
101
+ @media (prefers-color-scheme: dark) {
102
+ :root:not(.light, [data-theme="light"]) {
103
+ --background: #191919;
104
+ --foreground: #d4d4d4;
105
+ --card: #202020;
106
+ --card-foreground: #d4d4d4;
107
+ --popover: #252525;
108
+ --popover-foreground: #d4d4d4;
109
+ --primary: #2383e2;
110
+ --primary-foreground: #ffffff;
111
+ --primary-hover: #0077d4;
112
+ --secondary: #2f2f2f;
113
+ --secondary-foreground: #d4d4d4;
114
+ --muted: #202020;
115
+ --muted-foreground: #9b9b9b;
116
+ --accent: rgba(255, 255, 255, 0.055);
117
+ --accent-foreground: #d4d4d4;
118
+ --accent-strong: rgba(255, 255, 255, 0.1);
119
+ --destructive: #eb5757;
120
+ --destructive-foreground: #ffffff;
121
+ --border: #2f2f2f;
122
+ --input: rgba(255, 255, 255, 0.075);
123
+ --field: rgba(255, 255, 255, 0.055);
124
+ --control-off: rgba(202, 196, 183, 0.15);
125
+ --ring: rgba(35, 131, 226, 0.57);
126
+ --sidebar: #202020;
127
+ --sidebar-foreground: #9b9b9b;
128
+ --sidebar-primary: #2383e2;
129
+ --sidebar-primary-foreground: #ffffff;
130
+ --sidebar-accent: rgba(255, 255, 255, 0.055);
131
+ --sidebar-accent-foreground: #d4d4d4;
132
+ --sidebar-border: #2a2a2a;
133
+ --sidebar-ring: rgba(35, 131, 226, 0.57);
134
+ --tooltip: #373737;
135
+ --tooltip-foreground: rgba(255, 255, 255, 0.9);
136
+ --overlay: rgba(0, 0, 0, 0.6);
137
+ --gray: #9b9b9b;
138
+ --gray-bg: #2f2f2f;
139
+ --gray-tag: #5a5a5a;
140
+ --gray-tag-foreground: rgba(255, 255, 255, 0.81);
141
+ --brown: #ba856f;
142
+ --brown-bg: #4a3228;
143
+ --brown-tag: #603b2c;
144
+ --brown-tag-foreground: rgba(255, 255, 255, 0.81);
145
+ --orange: #c77d48;
146
+ --orange-bg: #5c3b23;
147
+ --orange-tag: #854c1d;
148
+ --orange-tag-foreground: rgba(255, 255, 255, 0.81);
149
+ --yellow: #ca984d;
150
+ --yellow-bg: #564328;
151
+ --yellow-tag: #89632a;
152
+ --yellow-tag-foreground: rgba(255, 255, 255, 0.81);
153
+ --green: #529e72;
154
+ --green-bg: #243d30;
155
+ --green-tag: #2b593f;
156
+ --green-tag-foreground: rgba(255, 255, 255, 0.81);
157
+ --blue: #379ad3;
158
+ --blue-bg: #143a4e;
159
+ --blue-tag: #28456c;
160
+ --blue-tag-foreground: rgba(255, 255, 255, 0.81);
161
+ --purple: #9d68d3;
162
+ --purple-bg: #3c2d49;
163
+ --purple-tag: #492f64;
164
+ --purple-tag-foreground: rgba(255, 255, 255, 0.81);
165
+ --pink: #d15796;
166
+ --pink-bg: #4e2c3c;
167
+ --pink-tag: #69314c;
168
+ --pink-tag-foreground: rgba(255, 255, 255, 0.81);
169
+ --red: #df5452;
170
+ --red-bg: #522e2a;
171
+ --red-tag: #6e3630;
172
+ --red-tag-foreground: rgba(255, 255, 255, 0.81);
173
+ --default-tag: #373737;
174
+ --default-tag-foreground: #d4d4d4;
175
+ --shadow-menu: 0 0 0 1px rgba(255, 255, 255, 0.094), 0 3px 6px rgba(0, 0, 0, 0.2), 0 9px 24px rgba(0, 0, 0, 0.4);
176
+ --shadow-dialog: 0 0 0 1px rgba(255, 255, 255, 0.094), 0 5px 10px rgba(0, 0, 0, 0.3), 0 15px 40px rgba(0, 0, 0, 0.5);
177
+ --shadow-card: 0 0 0 1px rgba(255, 255, 255, 0.094), 0 2px 4px rgba(0, 0, 0, 0.3);
178
+ }
179
+ }
180
+
181
+ .dark, [data-theme="dark"] {
182
+ --background: #191919;
183
+ --foreground: #d4d4d4;
184
+ --card: #202020;
185
+ --card-foreground: #d4d4d4;
186
+ --popover: #252525;
187
+ --popover-foreground: #d4d4d4;
188
+ --primary: #2383e2;
189
+ --primary-foreground: #ffffff;
190
+ --primary-hover: #0077d4;
191
+ --secondary: #2f2f2f;
192
+ --secondary-foreground: #d4d4d4;
193
+ --muted: #202020;
194
+ --muted-foreground: #9b9b9b;
195
+ --accent: rgba(255, 255, 255, 0.055);
196
+ --accent-foreground: #d4d4d4;
197
+ --accent-strong: rgba(255, 255, 255, 0.1);
198
+ --destructive: #eb5757;
199
+ --destructive-foreground: #ffffff;
200
+ --border: #2f2f2f;
201
+ --input: rgba(255, 255, 255, 0.075);
202
+ --field: rgba(255, 255, 255, 0.055);
203
+ --control-off: rgba(202, 196, 183, 0.15);
204
+ --ring: rgba(35, 131, 226, 0.57);
205
+ --sidebar: #202020;
206
+ --sidebar-foreground: #9b9b9b;
207
+ --sidebar-primary: #2383e2;
208
+ --sidebar-primary-foreground: #ffffff;
209
+ --sidebar-accent: rgba(255, 255, 255, 0.055);
210
+ --sidebar-accent-foreground: #d4d4d4;
211
+ --sidebar-border: #2a2a2a;
212
+ --sidebar-ring: rgba(35, 131, 226, 0.57);
213
+ --tooltip: #373737;
214
+ --tooltip-foreground: rgba(255, 255, 255, 0.9);
215
+ --overlay: rgba(0, 0, 0, 0.6);
216
+ --gray: #9b9b9b;
217
+ --gray-bg: #2f2f2f;
218
+ --gray-tag: #5a5a5a;
219
+ --gray-tag-foreground: rgba(255, 255, 255, 0.81);
220
+ --brown: #ba856f;
221
+ --brown-bg: #4a3228;
222
+ --brown-tag: #603b2c;
223
+ --brown-tag-foreground: rgba(255, 255, 255, 0.81);
224
+ --orange: #c77d48;
225
+ --orange-bg: #5c3b23;
226
+ --orange-tag: #854c1d;
227
+ --orange-tag-foreground: rgba(255, 255, 255, 0.81);
228
+ --yellow: #ca984d;
229
+ --yellow-bg: #564328;
230
+ --yellow-tag: #89632a;
231
+ --yellow-tag-foreground: rgba(255, 255, 255, 0.81);
232
+ --green: #529e72;
233
+ --green-bg: #243d30;
234
+ --green-tag: #2b593f;
235
+ --green-tag-foreground: rgba(255, 255, 255, 0.81);
236
+ --blue: #379ad3;
237
+ --blue-bg: #143a4e;
238
+ --blue-tag: #28456c;
239
+ --blue-tag-foreground: rgba(255, 255, 255, 0.81);
240
+ --purple: #9d68d3;
241
+ --purple-bg: #3c2d49;
242
+ --purple-tag: #492f64;
243
+ --purple-tag-foreground: rgba(255, 255, 255, 0.81);
244
+ --pink: #d15796;
245
+ --pink-bg: #4e2c3c;
246
+ --pink-tag: #69314c;
247
+ --pink-tag-foreground: rgba(255, 255, 255, 0.81);
248
+ --red: #df5452;
249
+ --red-bg: #522e2a;
250
+ --red-tag: #6e3630;
251
+ --red-tag-foreground: rgba(255, 255, 255, 0.81);
252
+ --default-tag: #373737;
253
+ --default-tag-foreground: #d4d4d4;
254
+ --shadow-menu: 0 0 0 1px rgba(255, 255, 255, 0.094), 0 3px 6px rgba(0, 0, 0, 0.2), 0 9px 24px rgba(0, 0, 0, 0.4);
255
+ --shadow-dialog: 0 0 0 1px rgba(255, 255, 255, 0.094), 0 5px 10px rgba(0, 0, 0, 0.3), 0 15px 40px rgba(0, 0, 0, 0.5);
256
+ --shadow-card: 0 0 0 1px rgba(255, 255, 255, 0.094), 0 2px 4px rgba(0, 0, 0, 0.3);
257
+ }
258
+
259
+ @theme inline {
260
+ --color-*: initial;
261
+ --color-background: var(--background);
262
+ --color-foreground: var(--foreground);
263
+ --color-card: var(--card);
264
+ --color-card-foreground: var(--card-foreground);
265
+ --color-popover: var(--popover);
266
+ --color-popover-foreground: var(--popover-foreground);
267
+ --color-primary: var(--primary);
268
+ --color-primary-foreground: var(--primary-foreground);
269
+ --color-primary-hover: var(--primary-hover);
270
+ --color-secondary: var(--secondary);
271
+ --color-secondary-foreground: var(--secondary-foreground);
272
+ --color-muted: var(--muted);
273
+ --color-muted-foreground: var(--muted-foreground);
274
+ --color-accent: var(--accent);
275
+ --color-accent-foreground: var(--accent-foreground);
276
+ --color-accent-strong: var(--accent-strong);
277
+ --color-destructive: var(--destructive);
278
+ --color-destructive-foreground: var(--destructive-foreground);
279
+ --color-border: var(--border);
280
+ --color-input: var(--input);
281
+ --color-field: var(--field);
282
+ --color-control-off: var(--control-off);
283
+ --color-ring: var(--ring);
284
+ --color-sidebar: var(--sidebar);
285
+ --color-sidebar-foreground: var(--sidebar-foreground);
286
+ --color-sidebar-primary: var(--sidebar-primary);
287
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
288
+ --color-sidebar-accent: var(--sidebar-accent);
289
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
290
+ --color-sidebar-border: var(--sidebar-border);
291
+ --color-sidebar-ring: var(--sidebar-ring);
292
+ --color-tooltip: var(--tooltip);
293
+ --color-tooltip-foreground: var(--tooltip-foreground);
294
+ --color-overlay: var(--overlay);
295
+ --color-gray: var(--gray);
296
+ --color-gray-bg: var(--gray-bg);
297
+ --color-gray-tag: var(--gray-tag);
298
+ --color-gray-tag-foreground: var(--gray-tag-foreground);
299
+ --color-brown: var(--brown);
300
+ --color-brown-bg: var(--brown-bg);
301
+ --color-brown-tag: var(--brown-tag);
302
+ --color-brown-tag-foreground: var(--brown-tag-foreground);
303
+ --color-orange: var(--orange);
304
+ --color-orange-bg: var(--orange-bg);
305
+ --color-orange-tag: var(--orange-tag);
306
+ --color-orange-tag-foreground: var(--orange-tag-foreground);
307
+ --color-yellow: var(--yellow);
308
+ --color-yellow-bg: var(--yellow-bg);
309
+ --color-yellow-tag: var(--yellow-tag);
310
+ --color-yellow-tag-foreground: var(--yellow-tag-foreground);
311
+ --color-green: var(--green);
312
+ --color-green-bg: var(--green-bg);
313
+ --color-green-tag: var(--green-tag);
314
+ --color-green-tag-foreground: var(--green-tag-foreground);
315
+ --color-blue: var(--blue);
316
+ --color-blue-bg: var(--blue-bg);
317
+ --color-blue-tag: var(--blue-tag);
318
+ --color-blue-tag-foreground: var(--blue-tag-foreground);
319
+ --color-purple: var(--purple);
320
+ --color-purple-bg: var(--purple-bg);
321
+ --color-purple-tag: var(--purple-tag);
322
+ --color-purple-tag-foreground: var(--purple-tag-foreground);
323
+ --color-pink: var(--pink);
324
+ --color-pink-bg: var(--pink-bg);
325
+ --color-pink-tag: var(--pink-tag);
326
+ --color-pink-tag-foreground: var(--pink-tag-foreground);
327
+ --color-red: var(--red);
328
+ --color-red-bg: var(--red-bg);
329
+ --color-red-tag: var(--red-tag);
330
+ --color-red-tag-foreground: var(--red-tag-foreground);
331
+ --color-default-tag: var(--default-tag);
332
+ --color-default-tag-foreground: var(--default-tag-foreground);
333
+ --color-chart-1: var(--chart-1);
334
+ --color-chart-2: var(--chart-2);
335
+ --color-chart-3: var(--chart-3);
336
+ --color-chart-4: var(--chart-4);
337
+ --color-chart-5: var(--chart-5);
338
+ --font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", Helvetica, Arial, sans-serif;
339
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
340
+ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", serif;
341
+ --text-page-title: 40px;
342
+ --text-page-title--line-height: 48px;
343
+ --text-page-title--font-weight: 700;
344
+ --text-page-title--letter-spacing: -0.01em;
345
+ --text-heading-1: 30px;
346
+ --text-heading-1--line-height: 39px;
347
+ --text-heading-1--font-weight: 600;
348
+ --text-heading-2: 24px;
349
+ --text-heading-2--line-height: 31px;
350
+ --text-heading-2--font-weight: 600;
351
+ --text-heading-3: 20px;
352
+ --text-heading-3--line-height: 26px;
353
+ --text-heading-3--font-weight: 600;
354
+ --text-body: 16px;
355
+ --text-body--line-height: 24px;
356
+ --text-body--font-weight: 400;
357
+ --text-ui: 14px;
358
+ --text-ui--line-height: 20px;
359
+ --text-ui--font-weight: 400;
360
+ --text-ui-medium: 14px;
361
+ --text-ui-medium--line-height: 20px;
362
+ --text-ui-medium--font-weight: 500;
363
+ --text-small: 12px;
364
+ --text-small--line-height: 16px;
365
+ --text-small--font-weight: 400;
366
+ --text-section-label: 12px;
367
+ --text-section-label--line-height: 16px;
368
+ --text-section-label--font-weight: 500;
369
+ --text-section-label--letter-spacing: 0.01em;
370
+ --text-code: 13px;
371
+ --text-code--line-height: 20px;
372
+ --text-code--font-weight: 400;
373
+ --radius-xs: 3px;
374
+ --radius-sm: 4px;
375
+ --radius-md: 6px;
376
+ --radius-lg: 8px;
377
+ --radius-xl: 10px;
378
+ --radius-full: 9999px;
379
+ --shadow-menu: var(--shadow-menu);
380
+ --shadow-dialog: var(--shadow-dialog);
381
+ --shadow-card: var(--shadow-card);
382
+ --spacing-sidebar-width: 240px;
383
+ --spacing-content-width: 708px;
384
+ --spacing-content-width-wide: 1152px;
385
+ --spacing-control-height: 28px;
386
+ --spacing-row-height: 34px;
387
+ }
388
+