@lt-three/love3 0.0.0 → 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 (377) hide show
  1. package/README.md +85 -1
  2. package/dist/native/analytics/animation.d.ts +4 -0
  3. package/dist/native/analytics/animation.js +6 -0
  4. package/dist/native/analytics/chart.types.d.ts +25 -0
  5. package/dist/native/analytics/chart.types.js +0 -0
  6. package/dist/native/analytics/line-chart.d.ts +4 -0
  7. package/dist/native/analytics/line-chart.ios.d.ts +4 -0
  8. package/dist/native/analytics/line-chart.ios.js +24 -0
  9. package/dist/native/analytics/line-chart.js +33 -0
  10. package/dist/native/analytics/metric-card.d.ts +10 -0
  11. package/dist/native/analytics/metric-card.js +29 -0
  12. package/dist/native/analytics/multi-line-chart.d.ts +17 -0
  13. package/dist/native/analytics/multi-line-chart.js +215 -0
  14. package/dist/native/analytics/pie-chart.d.ts +15 -0
  15. package/dist/native/analytics/pie-chart.ios.d.ts +4 -0
  16. package/dist/native/analytics/pie-chart.ios.js +24 -0
  17. package/dist/native/analytics/pie-chart.js +92 -0
  18. package/dist/native/analytics/single-number.d.ts +19 -0
  19. package/dist/native/analytics/single-number.js +101 -0
  20. package/dist/native/atom/avatar.d.ts +21 -0
  21. package/dist/native/atom/avatar.js +46 -0
  22. package/dist/native/atom/badge.d.ts +28 -0
  23. package/dist/native/atom/badge.js +51 -0
  24. package/dist/native/atom/button.d.ts +46 -0
  25. package/dist/native/atom/button.js +109 -0
  26. package/dist/native/atom/checkbox.d.ts +21 -0
  27. package/dist/native/atom/checkbox.js +47 -0
  28. package/dist/native/atom/colored-value.d.ts +12 -0
  29. package/dist/native/atom/colored-value.js +24 -0
  30. package/dist/native/atom/image.d.ts +21 -0
  31. package/dist/native/atom/image.js +72 -0
  32. package/dist/native/atom/label.d.ts +18 -0
  33. package/dist/native/atom/label.js +33 -0
  34. package/dist/native/atom/link.d.ts +18 -0
  35. package/dist/native/atom/link.js +25 -0
  36. package/dist/native/atom/readout.d.ts +22 -0
  37. package/dist/native/atom/readout.js +39 -0
  38. package/dist/native/atom/search-input.d.ts +12 -0
  39. package/dist/native/atom/search-input.js +36 -0
  40. package/dist/native/atom/select.d.ts +54 -0
  41. package/dist/native/atom/select.js +200 -0
  42. package/dist/native/atom/separator.d.ts +13 -0
  43. package/dist/native/atom/separator.js +17 -0
  44. package/dist/native/atom/skeleton.d.ts +12 -0
  45. package/dist/native/atom/skeleton.js +39 -0
  46. package/dist/native/atom/slider.d.ts +32 -0
  47. package/dist/native/atom/slider.js +75 -0
  48. package/dist/native/atom/spinner.d.ts +15 -0
  49. package/dist/native/atom/spinner.js +25 -0
  50. package/dist/native/atom/switch.d.ts +18 -0
  51. package/dist/native/atom/switch.js +52 -0
  52. package/dist/native/atom/symbol.d.ts +16 -0
  53. package/dist/native/atom/symbol.js +38 -0
  54. package/dist/native/atom/symbol.types.d.ts +25 -0
  55. package/dist/native/atom/symbol.types.js +49 -0
  56. package/dist/native/atom/text-field.d.ts +49 -0
  57. package/dist/native/atom/text-field.js +56 -0
  58. package/dist/native/atom/text.d.ts +2 -0
  59. package/dist/native/atom/text.js +3 -0
  60. package/dist/native/atom/theme-toggle.d.ts +21 -0
  61. package/dist/native/atom/theme-toggle.js +36 -0
  62. package/dist/native/atom/timezone-select.d.ts +16 -0
  63. package/dist/native/atom/timezone-select.js +28 -0
  64. package/dist/native/atom/typography.d.ts +13 -0
  65. package/dist/native/atom/typography.js +28 -0
  66. package/dist/native/base/button.d.ts +61 -0
  67. package/dist/native/base/button.js +92 -0
  68. package/dist/native/base/form.d.ts +72 -0
  69. package/dist/native/base/form.js +113 -0
  70. package/dist/native/base/glass-card.d.ts +15 -0
  71. package/dist/native/base/glass-card.js +38 -0
  72. package/dist/native/base/input.d.ts +29 -0
  73. package/dist/native/base/input.js +27 -0
  74. package/dist/native/base/sheet.d.ts +71 -0
  75. package/dist/native/base/sheet.js +187 -0
  76. package/dist/native/base/text.d.ts +14 -0
  77. package/dist/native/base/text.js +53 -0
  78. package/dist/native/form/checkbox.d.ts +13 -0
  79. package/dist/native/form/checkbox.js +55 -0
  80. package/dist/native/form/date-picker.d.ts +23 -0
  81. package/dist/native/form/date-picker.js +119 -0
  82. package/dist/native/form/form.d.ts +23 -0
  83. package/dist/native/form/form.js +45 -0
  84. package/dist/native/form/radio-group.d.ts +23 -0
  85. package/dist/native/form/radio-group.js +88 -0
  86. package/dist/native/form/select.d.ts +13 -0
  87. package/dist/native/form/select.js +45 -0
  88. package/dist/native/form/slider.d.ts +14 -0
  89. package/dist/native/form/slider.js +42 -0
  90. package/dist/native/form/switch.d.ts +9 -0
  91. package/dist/native/form/switch.js +59 -0
  92. package/dist/native/form/text-area.d.ts +11 -0
  93. package/dist/native/form/text-area.js +50 -0
  94. package/dist/native/form/text-input.d.ts +18 -0
  95. package/dist/native/form/text-input.js +90 -0
  96. package/dist/native/index.d.ts +1 -0
  97. package/dist/native/index.js +0 -0
  98. package/dist/native/layout/accordion.d.ts +25 -0
  99. package/dist/native/layout/accordion.js +54 -0
  100. package/dist/native/layout/card.d.ts +47 -0
  101. package/dist/native/layout/card.js +57 -0
  102. package/dist/native/layout/description.d.ts +16 -0
  103. package/dist/native/layout/description.js +32 -0
  104. package/dist/native/layout/error.d.ts +21 -0
  105. package/dist/native/layout/error.js +44 -0
  106. package/dist/native/layout/information.d.ts +25 -0
  107. package/dist/native/layout/information.js +35 -0
  108. package/dist/native/layout/locked.d.ts +38 -0
  109. package/dist/native/layout/locked.js +94 -0
  110. package/dist/native/layout/modal.d.ts +25 -0
  111. package/dist/native/layout/modal.js +93 -0
  112. package/dist/native/layout/not-found.d.ts +17 -0
  113. package/dist/native/layout/not-found.js +30 -0
  114. package/dist/native/layout/page-frame.d.ts +23 -0
  115. package/dist/native/layout/page-frame.js +46 -0
  116. package/dist/native/layout/panel.d.ts +18 -0
  117. package/dist/native/layout/panel.js +23 -0
  118. package/dist/native/layout/reorderable-list.d.ts +42 -0
  119. package/dist/native/layout/reorderable-list.js +52 -0
  120. package/dist/native/layout/sheet.d.ts +30 -0
  121. package/dist/native/layout/sheet.js +46 -0
  122. package/dist/native/layout/simple-dialog.d.ts +16 -0
  123. package/dist/native/layout/simple-dialog.js +20 -0
  124. package/dist/native/layout/simple-table.d.ts +50 -0
  125. package/dist/native/layout/simple-table.js +75 -0
  126. package/dist/native/layout/tab-bar.d.ts +33 -0
  127. package/dist/native/layout/tab-bar.js +48 -0
  128. package/dist/native/layout/tabs.d.ts +28 -0
  129. package/dist/native/layout/tabs.js +54 -0
  130. package/dist/native/layout/tuning-panel.d.ts +24 -0
  131. package/dist/native/layout/tuning-panel.js +246 -0
  132. package/dist/native/lib/autocomplete.d.ts +7 -0
  133. package/dist/native/lib/autocomplete.js +34 -0
  134. package/dist/native/lib/breakpoints.d.ts +14 -0
  135. package/dist/native/lib/breakpoints.js +17 -0
  136. package/dist/native/lib/chart-palette.d.ts +8 -0
  137. package/dist/native/lib/chart-palette.js +20 -0
  138. package/dist/native/lib/confirm.d.ts +49 -0
  139. package/dist/native/lib/confirm.js +70 -0
  140. package/dist/native/lib/control.d.ts +24 -0
  141. package/dist/native/lib/control.js +0 -0
  142. package/dist/native/lib/external-store.d.ts +17 -0
  143. package/dist/native/lib/external-store.js +30 -0
  144. package/dist/native/lib/keyboard.d.ts +15 -0
  145. package/dist/native/lib/keyboard.js +24 -0
  146. package/dist/native/lib/labels.d.ts +15 -0
  147. package/dist/native/lib/labels.js +17 -0
  148. package/dist/native/lib/loading.d.ts +10 -0
  149. package/dist/native/lib/loading.js +15 -0
  150. package/dist/native/lib/network.d.ts +12 -0
  151. package/dist/native/lib/network.js +21 -0
  152. package/dist/native/lib/scheme.d.ts +18 -0
  153. package/dist/native/lib/scheme.js +22 -0
  154. package/dist/native/lib/snackbar.d.ts +46 -0
  155. package/dist/native/lib/snackbar.js +60 -0
  156. package/dist/native/lib/theme.d.ts +34 -0
  157. package/dist/native/lib/theme.js +53 -0
  158. package/dist/native/lib/timezone.d.ts +26 -0
  159. package/dist/native/lib/timezone.js +95 -0
  160. package/dist/native/lib/token-color.d.ts +5 -0
  161. package/dist/native/lib/token-color.js +13 -0
  162. package/dist/native/lib/token-color.web.d.ts +4 -0
  163. package/dist/native/lib/token-color.web.js +7 -0
  164. package/dist/native/lib/tuning-context.d.ts +9 -0
  165. package/dist/native/lib/tuning-context.js +7 -0
  166. package/dist/native/lib/tuning.d.ts +24 -0
  167. package/dist/native/lib/tuning.js +42 -0
  168. package/dist/native/lib/typography.d.ts +10 -0
  169. package/dist/native/lib/typography.js +11 -0
  170. package/dist/native/lib/utils.d.ts +11 -0
  171. package/dist/native/lib/utils.js +21 -0
  172. package/dist/native/once/confirm.d.ts +7 -0
  173. package/dist/native/once/confirm.js +60 -0
  174. package/dist/native/once/error-boundary.d.ts +28 -0
  175. package/dist/native/once/error-boundary.js +55 -0
  176. package/dist/native/once/loading-lock.d.ts +8 -0
  177. package/dist/native/once/loading-lock.js +28 -0
  178. package/dist/native/once/offline-banner.d.ts +15 -0
  179. package/dist/native/once/offline-banner.js +35 -0
  180. package/dist/native/once/snackbar.d.ts +17 -0
  181. package/dist/native/once/snackbar.js +106 -0
  182. package/dist/native/styles.css +46 -0
  183. package/dist/shared/analytics.d.ts +71 -0
  184. package/dist/shared/analytics.js +0 -0
  185. package/dist/shared/button.d.ts +7 -0
  186. package/dist/shared/button.js +23 -0
  187. package/dist/shared/form.d.ts +45 -0
  188. package/dist/shared/form.js +46 -0
  189. package/dist/shared/index.d.ts +3 -0
  190. package/dist/shared/index.js +3 -0
  191. package/dist/tokens/contrast-pairs.d.ts +30 -0
  192. package/dist/tokens/contrast-pairs.js +404 -0
  193. package/dist/tokens/index.d.ts +6 -0
  194. package/dist/tokens/index.js +10 -0
  195. package/dist/tokens/styles.gen.css +250 -0
  196. package/dist/tokens/tokens.gen.d.ts +141 -0
  197. package/dist/tokens/tokens.gen.js +206 -0
  198. package/dist/tuning/catalog.d.ts +27 -0
  199. package/dist/tuning/catalog.gen.d.ts +4 -0
  200. package/dist/tuning/catalog.gen.js +397 -0
  201. package/dist/tuning/catalog.js +128 -0
  202. package/dist/tuning/color.d.ts +20 -0
  203. package/dist/tuning/color.js +80 -0
  204. package/dist/tuning/css.d.ts +35 -0
  205. package/dist/tuning/css.js +147 -0
  206. package/dist/tuning/index.d.ts +8 -0
  207. package/dist/tuning/index.js +9 -0
  208. package/dist/tuning/model.d.ts +33 -0
  209. package/dist/tuning/model.js +154 -0
  210. package/dist/tuning/native.d.ts +35 -0
  211. package/dist/tuning/native.js +80 -0
  212. package/dist/tuning/schema.d.ts +69 -0
  213. package/dist/tuning/schema.js +247 -0
  214. package/dist/tuning/types.d.ts +75 -0
  215. package/dist/tuning/types.js +39 -0
  216. package/dist/web/analytics/line-chart.d.ts +20 -0
  217. package/dist/web/analytics/line-chart.js +28 -0
  218. package/dist/web/analytics/metric-card.d.ts +18 -0
  219. package/dist/web/analytics/metric-card.js +40 -0
  220. package/dist/web/analytics/multi-line-chart.d.ts +39 -0
  221. package/dist/web/analytics/multi-line-chart.js +345 -0
  222. package/dist/web/atom/avatar.d.ts +11 -0
  223. package/dist/web/atom/avatar.js +24 -0
  224. package/dist/web/atom/badge.d.ts +2 -0
  225. package/dist/web/atom/badge.js +3 -0
  226. package/dist/web/atom/button.d.ts +23 -0
  227. package/dist/web/atom/button.js +35 -0
  228. package/dist/web/atom/checkbox.d.ts +19 -0
  229. package/dist/web/atom/checkbox.js +33 -0
  230. package/dist/web/atom/colored-value.d.ts +13 -0
  231. package/dist/web/atom/colored-value.js +24 -0
  232. package/dist/web/atom/help.d.ts +10 -0
  233. package/dist/web/atom/help.js +18 -0
  234. package/dist/web/atom/label.d.ts +2 -0
  235. package/dist/web/atom/label.js +3 -0
  236. package/dist/web/atom/segmented-control.d.ts +40 -0
  237. package/dist/web/atom/segmented-control.js +43 -0
  238. package/dist/web/atom/select.d.ts +43 -0
  239. package/dist/web/atom/select.js +93 -0
  240. package/dist/web/atom/separator.d.ts +2 -0
  241. package/dist/web/atom/separator.js +3 -0
  242. package/dist/web/atom/skeleton.d.ts +2 -0
  243. package/dist/web/atom/skeleton.js +3 -0
  244. package/dist/web/atom/slider.d.ts +33 -0
  245. package/dist/web/atom/slider.js +70 -0
  246. package/dist/web/atom/spinner.d.ts +8 -0
  247. package/dist/web/atom/spinner.js +14 -0
  248. package/dist/web/atom/switch.d.ts +11 -0
  249. package/dist/web/atom/switch.js +10 -0
  250. package/dist/web/atom/text-area.d.ts +22 -0
  251. package/dist/web/atom/text-area.js +26 -0
  252. package/dist/web/atom/text-field.d.ts +17 -0
  253. package/dist/web/atom/text-field.js +21 -0
  254. package/dist/web/atom/toggle-chip.d.ts +22 -0
  255. package/dist/web/atom/toggle-chip.js +28 -0
  256. package/dist/web/atom/tooltip.d.ts +23 -0
  257. package/dist/web/atom/tooltip.js +26 -0
  258. package/dist/web/atom/typography.d.ts +6 -0
  259. package/dist/web/atom/typography.js +23 -0
  260. package/dist/web/base/accordion.d.ts +9 -0
  261. package/dist/web/base/accordion.js +44 -0
  262. package/dist/web/base/alert.d.ts +11 -0
  263. package/dist/web/base/alert.js +37 -0
  264. package/dist/web/base/avatar.d.ts +8 -0
  265. package/dist/web/base/avatar.js +29 -0
  266. package/dist/web/base/badge.d.ts +12 -0
  267. package/dist/web/base/badge.js +26 -0
  268. package/dist/web/base/breadcrumb.d.ts +16 -0
  269. package/dist/web/base/breadcrumb.js +72 -0
  270. package/dist/web/base/button.d.ts +12 -0
  271. package/dist/web/base/button.js +47 -0
  272. package/dist/web/base/card.d.ts +19 -0
  273. package/dist/web/base/card.js +74 -0
  274. package/dist/web/base/checkbox.d.ts +6 -0
  275. package/dist/web/base/checkbox.js +21 -0
  276. package/dist/web/base/dialog.d.ts +20 -0
  277. package/dist/web/base/dialog.js +92 -0
  278. package/dist/web/base/dropdown-menu.d.ts +29 -0
  279. package/dist/web/base/dropdown-menu.js +125 -0
  280. package/dist/web/base/field.d.ts +27 -0
  281. package/dist/web/base/field.js +118 -0
  282. package/dist/web/base/form.d.ts +38 -0
  283. package/dist/web/base/form.js +110 -0
  284. package/dist/web/base/input.d.ts +9 -0
  285. package/dist/web/base/input.js +23 -0
  286. package/dist/web/base/label.d.ts +6 -0
  287. package/dist/web/base/label.js +15 -0
  288. package/dist/web/base/pagination.d.ts +34 -0
  289. package/dist/web/base/pagination.js +90 -0
  290. package/dist/web/base/popover.d.ts +11 -0
  291. package/dist/web/base/popover.js +37 -0
  292. package/dist/web/base/radio-group.d.ts +7 -0
  293. package/dist/web/base/radio-group.js +27 -0
  294. package/dist/web/base/scroll-area.d.ts +10 -0
  295. package/dist/web/base/scroll-area.js +41 -0
  296. package/dist/web/base/select.d.ts +17 -0
  297. package/dist/web/base/select.js +96 -0
  298. package/dist/web/base/separator.d.ts +6 -0
  299. package/dist/web/base/separator.js +17 -0
  300. package/dist/web/base/sheet.d.ts +19 -0
  301. package/dist/web/base/sheet.js +88 -0
  302. package/dist/web/base/skeleton.d.ts +5 -0
  303. package/dist/web/base/skeleton.js +14 -0
  304. package/dist/web/base/slider.d.ts +9 -0
  305. package/dist/web/base/slider.js +39 -0
  306. package/dist/web/base/sonner.d.ts +9 -0
  307. package/dist/web/base/sonner.js +25 -0
  308. package/dist/web/base/spinner.d.ts +5 -0
  309. package/dist/web/base/spinner.js +17 -0
  310. package/dist/web/base/switch.d.ts +6 -0
  311. package/dist/web/base/switch.js +19 -0
  312. package/dist/web/base/table.d.ts +14 -0
  313. package/dist/web/base/table.js +68 -0
  314. package/dist/web/base/tabs.d.ts +9 -0
  315. package/dist/web/base/tabs.js +36 -0
  316. package/dist/web/base/textarea.d.ts +9 -0
  317. package/dist/web/base/textarea.js +23 -0
  318. package/dist/web/base/tooltip.d.ts +9 -0
  319. package/dist/web/base/tooltip.js +36 -0
  320. package/dist/web/form/checkbox.d.ts +35 -0
  321. package/dist/web/form/checkbox.js +91 -0
  322. package/dist/web/form/radio-group.d.ts +24 -0
  323. package/dist/web/form/radio-group.js +75 -0
  324. package/dist/web/form/select.d.ts +16 -0
  325. package/dist/web/form/select.js +44 -0
  326. package/dist/web/form/slider.d.ts +19 -0
  327. package/dist/web/form/slider.js +51 -0
  328. package/dist/web/form/switch.d.ts +11 -0
  329. package/dist/web/form/switch.js +50 -0
  330. package/dist/web/form/text-area.d.ts +10 -0
  331. package/dist/web/form/text-area.js +31 -0
  332. package/dist/web/form/text-input.d.ts +10 -0
  333. package/dist/web/form/text-input.js +42 -0
  334. package/dist/web/index.d.ts +1 -0
  335. package/dist/web/index.js +0 -0
  336. package/dist/web/layout/accordion.d.ts +26 -0
  337. package/dist/web/layout/accordion.js +29 -0
  338. package/dist/web/layout/alert-modal.d.ts +41 -0
  339. package/dist/web/layout/alert-modal.js +71 -0
  340. package/dist/web/layout/card.d.ts +17 -0
  341. package/dist/web/layout/card.js +35 -0
  342. package/dist/web/layout/description.d.ts +12 -0
  343. package/dist/web/layout/description.js +20 -0
  344. package/dist/web/layout/information.d.ts +36 -0
  345. package/dist/web/layout/information.js +53 -0
  346. package/dist/web/layout/modal.d.ts +16 -0
  347. package/dist/web/layout/modal.js +37 -0
  348. package/dist/web/layout/page-frame.d.ts +37 -0
  349. package/dist/web/layout/page-frame.js +79 -0
  350. package/dist/web/layout/scroll-area.d.ts +10 -0
  351. package/dist/web/layout/scroll-area.js +13 -0
  352. package/dist/web/layout/sheet.d.ts +32 -0
  353. package/dist/web/layout/sheet.js +68 -0
  354. package/dist/web/layout/simple-dialog.d.ts +11 -0
  355. package/dist/web/layout/simple-dialog.js +24 -0
  356. package/dist/web/layout/simple-table.d.ts +49 -0
  357. package/dist/web/layout/simple-table.js +58 -0
  358. package/dist/web/layout/tabs.d.ts +26 -0
  359. package/dist/web/layout/tabs.js +42 -0
  360. package/dist/web/layout/titled-modal.d.ts +33 -0
  361. package/dist/web/layout/titled-modal.js +59 -0
  362. package/dist/web/lib/css-vars.d.ts +14 -0
  363. package/dist/web/lib/css-vars.js +18 -0
  364. package/dist/web/lib/dialog.d.ts +13 -0
  365. package/dist/web/lib/dialog.js +0 -0
  366. package/dist/web/lib/form.d.ts +2 -0
  367. package/dist/web/lib/form.js +3 -0
  368. package/dist/web/lib/labels.d.ts +27 -0
  369. package/dist/web/lib/labels.js +29 -0
  370. package/dist/web/lib/modal-open-focus.d.ts +17 -0
  371. package/dist/web/lib/modal-open-focus.js +44 -0
  372. package/dist/web/lib/restore-focus.d.ts +12 -0
  373. package/dist/web/lib/restore-focus.js +32 -0
  374. package/dist/web/lib/utils.d.ts +4 -0
  375. package/dist/web/lib/utils.js +10 -0
  376. package/dist/web/styles.css +162 -0
  377. package/package.json +203 -4
@@ -0,0 +1,250 @@
1
+ /*
2
+ * このファイルは生成物。直接編集しない。
3
+ * ソース: design/love3/src/tokens/definition.ts
4
+ * 再生成: bun run generate(design/love3 で)
5
+ */
6
+
7
+ @custom-variant dark (&:is(.dark *));
8
+
9
+ :root {
10
+ /*
11
+ * 生トークン: 文字のランプと、背景の階層
12
+ * 文字は 3 段(主 = ink-900 / 副 = ink-700 / 補助 = ink-500)。背景は frame < paper < raised < overlay の順に「手前」になる。
13
+ * ダークは別パレットではなくロールの反転で、純黒でなく青みのある near-black の階層にする。
14
+ */
15
+ --ink-1000: #0f1012; /* 最も強い文字 */
16
+ --ink-900: #1b1c20; /* 見出し・主要テキスト */
17
+ --ink-700: #40434a; /* 本文(副) */
18
+ --ink-500: #676b74; /* 補助・ミュート、プレースホルダ */
19
+ --ink-300: #a3a6ad; /* 無効、薄いラベル */
20
+ --line: #e6e7eb; /* 1px の極薄の枠・区切り線 */
21
+ --line-strong: #d5d7dd; /* テキスト入力の枠・強めの枠(3:1 には届かない既知の例外。操作部品の枠は line-control) */
22
+ --line-control: #80858f; /* 未選択の Checkbox / Radio / Switch の枠。どの面の上でも 3:1 以上(非テキストの AA) */
23
+ --frame: #f4f5f7; /* 外枠・サイドバー・ページのキャンバス */
24
+ --paper: #ffffff; /* 本文パネル(基本背景) */
25
+ --raised: #ffffff; /* カード・入力・secondary ボタンの面 */
26
+ --overlay: #ffffff; /* ポップオーバー・ダイアログ・メニュー */
27
+ --wash: #f1f2f4; /* hover・zebra 用の淡い面 */
28
+ --scrim: rgba(0, 0, 0, 0.32); /* モーダルのスクリム。ブラー無し */
29
+ --shadow-color: rgba(16, 24, 40, 0.1); /* 影の色。shadow-xs〜2xl が参照する */
30
+
31
+ /*
32
+ * 主操作の色(インディゴ)
33
+ * 主操作・フォーカス・選択状態に使う落ち着いたインディゴ。ライト・ダークで同じ値。
34
+ * 塗り(action)の上の文字は action-foreground(白)。暗い面の上に action を「文字・リンク」として置くと AA に届かないので、
35
+ * 文字には action-ink を使う。hover は塗りを少し深くする(白文字の AA を保つ)。
36
+ */
37
+ --action: #5e6ad2; /* 主操作の塗り・ring */
38
+ --action-hover: #5059c2; /* 主操作の hover */
39
+ --action-foreground: #ffffff;
40
+ --action-ink: #4a55c0; /* 文字・リンクとして置くインディゴ */
41
+
42
+ /*
43
+ * ブランド色(<3 / Less Than Three)
44
+ * インディゴの外にあるブランド色で、`<3` variant を持つコンポーネントだけが使う。
45
+ * 文字は黒(白は 2.98:1 で AA に届かず、黒なら余裕で超える)。ダークでも反転させない。
46
+ */
47
+ --lt-three: #ff5c76;
48
+ --lt-three-foreground: #000000;
49
+
50
+ /*
51
+ * セマンティック状態
52
+ * 文字・枠・小アイコンに使い、バッジやアラートでは `bg-state-xxx/10` 程度の淡い塗りも使える。
53
+ * ソリッドの塗りは破壊的操作の主操作(destructive-solid)だけ。ダークは near-black 上で読めるよう明るくする。
54
+ */
55
+ --state-success: #187548;
56
+ --state-error: #c42b3a;
57
+ --state-warning: #8f5f00;
58
+ --destructive-solid: #c42b3a; /* 破壊的操作の塗り(ソリッド)。上の文字は destructive-solid-foreground(白)。state-error は文字用で、暗い面では明るく、塗りには向かない */
59
+ --destructive-solid-foreground: #ffffff;
60
+
61
+ /*
62
+ * 書体
63
+ * 欧文は Geist、数字・ID・コード・データテーブルは Geist Mono、和文は OS 同梱の游ゴシック。
64
+ * --font-geist に generic (sans-serif) を含めない(含めると合成スタックで和文フォールバックより前に generic が現れ、和文が游ゴシックに届かなくなる)。
65
+ * フォント実体の読み込みはプラットフォームごとに行う(web は woff2、native は expo-font で ttf)。
66
+ */
67
+ --font-geist: "Geist Variable", "Geist";
68
+ --font-geist-mono: "Geist Mono Variable", "Geist Mono", ui-monospace, monospace;
69
+ --font-jp: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "游ゴシック", "Yu Gothic", sans-serif;
70
+ --font-mono: var(--font-geist-mono);
71
+
72
+ /*
73
+ * セマンティックトークン(shadcn 互換のエイリアス)
74
+ * 生トークンを var() で参照するので、生トークンを差し替えるだけで体系全体(ダーク含む)が連動する。
75
+ */
76
+ --background: var(--paper); /* 本文パネル */
77
+ --foreground: var(--ink-900);
78
+ --card: var(--raised); /* カードは raised 面 + 薄い枠(影なし) */
79
+ --card-foreground: var(--ink-900);
80
+ --popover: var(--overlay); /* 浮くもの(ポップオーバー・メニュー・ダイアログ) */
81
+ --popover-foreground: var(--ink-900);
82
+ --primary: var(--action); /* 主操作のインディゴ塗り(web・native 共通) */
83
+ --primary-foreground: var(--action-foreground);
84
+ --secondary: var(--wash); /* secondary・accent・muted は wash */
85
+ --secondary-foreground: var(--ink-900);
86
+ --muted: var(--wash);
87
+ --muted-foreground: var(--ink-500);
88
+ --accent: var(--wash);
89
+ --accent-foreground: var(--ink-900);
90
+ --destructive: var(--state-error); /* native が使う(文字・枠の state-error)。web の破壊的操作の塗りは destructive-solid */
91
+ --destructive-foreground: var(--paper);
92
+ --border: var(--line);
93
+ --input: var(--line-strong);
94
+ --ring: var(--action); /* フォーカスはインディゴのリング */
95
+ --chart-1: #5e6ad2; /* チャートは色を使う。ダークでも読める 5 色 */
96
+ --chart-2: #1f9d6a;
97
+ --chart-3: #bd7100;
98
+ --chart-4: #d6495c;
99
+ --chart-5: #7a8194;
100
+ --section: var(--frame); /* ページ・ブロックのキャンバス */
101
+ --radius: 6px; /* shadcn 互換の基準の角丸。control(6px)と同じ値 */
102
+ --sidebar: var(--frame);
103
+ --sidebar-foreground: var(--ink-900);
104
+ --sidebar-primary: var(--action);
105
+ --sidebar-primary-foreground: var(--action-foreground);
106
+ --sidebar-accent: var(--wash);
107
+ --sidebar-accent-foreground: var(--ink-900);
108
+ --sidebar-border: var(--line);
109
+ --sidebar-ring: var(--action);
110
+ }
111
+
112
+ .dark {
113
+ --ink-1000: #f7f8f8; /* 最も強い文字 */
114
+ --ink-900: #eceef0; /* 見出し・主要テキスト */
115
+ --ink-700: #cfd3da; /* 本文(副) */
116
+ --ink-500: #8a8f98; /* 補助・ミュート、プレースホルダ */
117
+ --ink-300: #5b5f67; /* 無効、薄いラベル */
118
+ --line: #25272c; /* 1px の極薄の枠・区切り線 */
119
+ --line-strong: #34363d; /* テキスト入力の枠・強めの枠(3:1 には届かない既知の例外。操作部品の枠は line-control) */
120
+ --line-control: #6b707a; /* 未選択の Checkbox / Radio / Switch の枠。どの面の上でも 3:1 以上(非テキストの AA) */
121
+ --frame: #0a0b0d; /* 外枠・サイドバー・ページのキャンバス */
122
+ --paper: #121316; /* 本文パネル(基本背景) */
123
+ --raised: #17181c; /* カード・入力・secondary ボタンの面 */
124
+ --overlay: #1d1e23; /* ポップオーバー・ダイアログ・メニュー */
125
+ --wash: #1b1c20; /* hover・zebra 用の淡い面 */
126
+ --scrim: rgba(0, 0, 0, 0.72); /* モーダルのスクリム。ブラー無し */
127
+ --shadow-color: rgba(0, 0, 0, 0.7); /* 影の色。shadow-xs〜2xl が参照する */
128
+ --action-ink: #98a2f5; /* 文字・リンクとして置くインディゴ */
129
+ --state-success: #4cc38a;
130
+ --state-error: #f2707f;
131
+ --state-warning: #e0a53a;
132
+ --destructive-solid: #cf3345; /* 破壊的操作の塗り(ソリッド)。上の文字は destructive-solid-foreground(白)。state-error は文字用で、暗い面では明るく、塗りには向かない */
133
+ --chart-1: #7c86e8; /* チャートは色を使う。ダークでも読める 5 色 */
134
+ --chart-2: #4cc38a;
135
+ --chart-3: #e5a23f;
136
+ --chart-4: #f2707f;
137
+ --chart-5: #9aa1b3;
138
+ }
139
+
140
+ .theme-light {
141
+ --ink-1000: #0f1012; /* 最も強い文字 */
142
+ --ink-900: #1b1c20; /* 見出し・主要テキスト */
143
+ --ink-700: #40434a; /* 本文(副) */
144
+ --ink-500: #676b74; /* 補助・ミュート、プレースホルダ */
145
+ --ink-300: #a3a6ad; /* 無効、薄いラベル */
146
+ --line: #e6e7eb; /* 1px の極薄の枠・区切り線 */
147
+ --line-strong: #d5d7dd; /* テキスト入力の枠・強めの枠(3:1 には届かない既知の例外。操作部品の枠は line-control) */
148
+ --line-control: #80858f; /* 未選択の Checkbox / Radio / Switch の枠。どの面の上でも 3:1 以上(非テキストの AA) */
149
+ --frame: #f4f5f7; /* 外枠・サイドバー・ページのキャンバス */
150
+ --paper: #ffffff; /* 本文パネル(基本背景) */
151
+ --raised: #ffffff; /* カード・入力・secondary ボタンの面 */
152
+ --overlay: #ffffff; /* ポップオーバー・ダイアログ・メニュー */
153
+ --wash: #f1f2f4; /* hover・zebra 用の淡い面 */
154
+ --scrim: rgba(0, 0, 0, 0.32); /* モーダルのスクリム。ブラー無し */
155
+ --shadow-color: rgba(16, 24, 40, 0.1); /* 影の色。shadow-xs〜2xl が参照する */
156
+ --action-ink: #4a55c0; /* 文字・リンクとして置くインディゴ */
157
+ --state-success: #187548;
158
+ --state-error: #c42b3a;
159
+ --state-warning: #8f5f00;
160
+ --destructive-solid: #c42b3a; /* 破壊的操作の塗り(ソリッド)。上の文字は destructive-solid-foreground(白)。state-error は文字用で、暗い面では明るく、塗りには向かない */
161
+ --chart-1: #5e6ad2; /* チャートは色を使う。ダークでも読める 5 色 */
162
+ --chart-2: #1f9d6a;
163
+ --chart-3: #bd7100;
164
+ --chart-4: #d6495c;
165
+ --chart-5: #7a8194;
166
+ }
167
+
168
+ @theme inline {
169
+ --color-ink-1000: var(--ink-1000);
170
+ --color-ink-900: var(--ink-900);
171
+ --color-ink-700: var(--ink-700);
172
+ --color-ink-500: var(--ink-500);
173
+ --color-ink-300: var(--ink-300);
174
+ --color-line: var(--line);
175
+ --color-line-strong: var(--line-strong);
176
+ --color-line-control: var(--line-control);
177
+ --color-frame: var(--frame);
178
+ --color-paper: var(--paper);
179
+ --color-raised: var(--raised);
180
+ --color-overlay: var(--overlay);
181
+ --color-wash: var(--wash);
182
+ --color-scrim: var(--scrim);
183
+ --color-action: var(--action);
184
+ --color-action-hover: var(--action-hover);
185
+ --color-action-foreground: var(--action-foreground);
186
+ --color-action-ink: var(--action-ink);
187
+ --color-lt-three: var(--lt-three);
188
+ --color-lt-three-foreground: var(--lt-three-foreground);
189
+ --color-state-success: var(--state-success);
190
+ --color-state-error: var(--state-error);
191
+ --color-state-warning: var(--state-warning);
192
+ --color-destructive-solid: var(--destructive-solid);
193
+ --color-destructive-solid-foreground: var(--destructive-solid-foreground);
194
+ --color-background: var(--background);
195
+ --color-foreground: var(--foreground);
196
+ --color-card: var(--card);
197
+ --color-card-foreground: var(--card-foreground);
198
+ --color-popover: var(--popover);
199
+ --color-popover-foreground: var(--popover-foreground);
200
+ --color-primary: var(--primary);
201
+ --color-primary-foreground: var(--primary-foreground);
202
+ --color-secondary: var(--secondary);
203
+ --color-secondary-foreground: var(--secondary-foreground);
204
+ --color-muted: var(--muted);
205
+ --color-muted-foreground: var(--muted-foreground);
206
+ --color-accent: var(--accent);
207
+ --color-accent-foreground: var(--accent-foreground);
208
+ --color-destructive: var(--destructive);
209
+ --color-destructive-foreground: var(--destructive-foreground);
210
+ --color-border: var(--border);
211
+ --color-input: var(--input);
212
+ --color-ring: var(--ring);
213
+ --color-chart-1: var(--chart-1);
214
+ --color-chart-2: var(--chart-2);
215
+ --color-chart-3: var(--chart-3);
216
+ --color-chart-4: var(--chart-4);
217
+ --color-chart-5: var(--chart-5);
218
+ --color-section: var(--section);
219
+ --color-sidebar: var(--sidebar);
220
+ --color-sidebar-foreground: var(--sidebar-foreground);
221
+ --color-sidebar-primary: var(--sidebar-primary);
222
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
223
+ --color-sidebar-accent: var(--sidebar-accent);
224
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
225
+ --color-sidebar-border: var(--sidebar-border);
226
+ --color-sidebar-ring: var(--sidebar-ring);
227
+
228
+ --font-primary: var(--font-geist), var(--font-jp), sans-serif;
229
+ --font-sans: var(--font-geist), var(--font-jp), sans-serif;
230
+ --font-serif: var(--font-geist), var(--font-jp), sans-serif;
231
+ --font-mono: var(--font-geist-mono);
232
+ --font-geist: var(--font-geist);
233
+ --font-geist-mono: var(--font-geist-mono);
234
+ --font-jp: var(--font-jp);
235
+ }
236
+
237
+ @theme {
238
+ --radius-control: 6px;
239
+ --radius-surface: 10px;
240
+ --shadow-2xs: 0 1px 1px var(--shadow-color);
241
+ --shadow-xs: 0 1px 2px var(--shadow-color);
242
+ --shadow-sm: 0 1px 3px var(--shadow-color);
243
+ --shadow-md: 0 4px 12px var(--shadow-color);
244
+ --shadow-lg: 0 12px 32px var(--shadow-color);
245
+ --shadow-xl: 0 16px 40px var(--shadow-color);
246
+ --shadow-2xl: 0 24px 56px var(--shadow-color);
247
+ --shadow-inner: inset 0 1px 2px var(--shadow-color);
248
+ --text-body: 14px;
249
+ --text-body--line-height: 22px;
250
+ }
@@ -0,0 +1,141 @@
1
+ //#region src/tokens/tokens.gen.d.ts
2
+ /** love3 のトークン名(先頭の `--` を除いた CSS 変数名)。 */
3
+ export declare const tokenNames: readonly ["ink-1000", "ink-900", "ink-700", "ink-500", "ink-300", "line", "line-strong", "line-control", "frame", "paper", "raised", "overlay", "wash", "scrim", "shadow-color", "action", "action-hover", "action-foreground", "action-ink", "lt-three", "lt-three-foreground", "state-success", "state-error", "state-warning", "destructive-solid", "destructive-solid-foreground", "font-geist", "font-geist-mono", "font-jp", "font-mono", "background", "foreground", "card", "card-foreground", "popover", "popover-foreground", "primary", "primary-foreground", "secondary", "secondary-foreground", "muted", "muted-foreground", "accent", "accent-foreground", "destructive", "destructive-foreground", "border", "input", "ring", "chart-1", "chart-2", "chart-3", "chart-4", "chart-5", "section", "radius", "sidebar", "sidebar-foreground", "sidebar-primary", "sidebar-primary-foreground", "sidebar-accent", "sidebar-accent-foreground", "sidebar-border", "sidebar-ring"];
4
+ export type TokenName = (typeof tokenNames)[number];
5
+ export type TokenValues = Readonly<Record<TokenName, string>>;
6
+ /** `var()` を解決した実値。ダークは上書きを重ねた全トークン。 */
7
+ export declare const tokens: {
8
+ readonly light: {
9
+ readonly "ink-1000": "#0f1012";
10
+ readonly "ink-900": "#1b1c20";
11
+ readonly "ink-700": "#40434a";
12
+ readonly "ink-500": "#676b74";
13
+ readonly "ink-300": "#a3a6ad";
14
+ readonly line: "#e6e7eb";
15
+ readonly "line-strong": "#d5d7dd";
16
+ readonly "line-control": "#80858f";
17
+ readonly frame: "#f4f5f7";
18
+ readonly paper: "#ffffff";
19
+ readonly raised: "#ffffff";
20
+ readonly overlay: "#ffffff";
21
+ readonly wash: "#f1f2f4";
22
+ readonly scrim: "rgba(0, 0, 0, 0.32)";
23
+ readonly "shadow-color": "rgba(16, 24, 40, 0.1)";
24
+ readonly action: "#5e6ad2";
25
+ readonly "action-hover": "#5059c2";
26
+ readonly "action-foreground": "#ffffff";
27
+ readonly "action-ink": "#4a55c0";
28
+ readonly "lt-three": "#ff5c76";
29
+ readonly "lt-three-foreground": "#000000";
30
+ readonly "state-success": "#187548";
31
+ readonly "state-error": "#c42b3a";
32
+ readonly "state-warning": "#8f5f00";
33
+ readonly "destructive-solid": "#c42b3a";
34
+ readonly "destructive-solid-foreground": "#ffffff";
35
+ readonly "font-geist": "\"Geist Variable\", \"Geist\"";
36
+ readonly "font-geist-mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, monospace";
37
+ readonly "font-jp": "\"Yu Gothic Medium\", \"游ゴシック Medium\", YuGothic, \"游ゴシック体\", \"游ゴシック\", \"Yu Gothic\", sans-serif";
38
+ readonly "font-mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, monospace";
39
+ readonly background: "#ffffff";
40
+ readonly foreground: "#1b1c20";
41
+ readonly card: "#ffffff";
42
+ readonly "card-foreground": "#1b1c20";
43
+ readonly popover: "#ffffff";
44
+ readonly "popover-foreground": "#1b1c20";
45
+ readonly primary: "#5e6ad2";
46
+ readonly "primary-foreground": "#ffffff";
47
+ readonly secondary: "#f1f2f4";
48
+ readonly "secondary-foreground": "#1b1c20";
49
+ readonly muted: "#f1f2f4";
50
+ readonly "muted-foreground": "#676b74";
51
+ readonly accent: "#f1f2f4";
52
+ readonly "accent-foreground": "#1b1c20";
53
+ readonly destructive: "#c42b3a";
54
+ readonly "destructive-foreground": "#ffffff";
55
+ readonly border: "#e6e7eb";
56
+ readonly input: "#d5d7dd";
57
+ readonly ring: "#5e6ad2";
58
+ readonly "chart-1": "#5e6ad2";
59
+ readonly "chart-2": "#1f9d6a";
60
+ readonly "chart-3": "#bd7100";
61
+ readonly "chart-4": "#d6495c";
62
+ readonly "chart-5": "#7a8194";
63
+ readonly section: "#f4f5f7";
64
+ readonly radius: "6px";
65
+ readonly sidebar: "#f4f5f7";
66
+ readonly "sidebar-foreground": "#1b1c20";
67
+ readonly "sidebar-primary": "#5e6ad2";
68
+ readonly "sidebar-primary-foreground": "#ffffff";
69
+ readonly "sidebar-accent": "#f1f2f4";
70
+ readonly "sidebar-accent-foreground": "#1b1c20";
71
+ readonly "sidebar-border": "#e6e7eb";
72
+ readonly "sidebar-ring": "#5e6ad2";
73
+ };
74
+ readonly dark: {
75
+ readonly "ink-1000": "#f7f8f8";
76
+ readonly "ink-900": "#eceef0";
77
+ readonly "ink-700": "#cfd3da";
78
+ readonly "ink-500": "#8a8f98";
79
+ readonly "ink-300": "#5b5f67";
80
+ readonly line: "#25272c";
81
+ readonly "line-strong": "#34363d";
82
+ readonly "line-control": "#6b707a";
83
+ readonly frame: "#0a0b0d";
84
+ readonly paper: "#121316";
85
+ readonly raised: "#17181c";
86
+ readonly overlay: "#1d1e23";
87
+ readonly wash: "#1b1c20";
88
+ readonly scrim: "rgba(0, 0, 0, 0.72)";
89
+ readonly "shadow-color": "rgba(0, 0, 0, 0.7)";
90
+ readonly action: "#5e6ad2";
91
+ readonly "action-hover": "#5059c2";
92
+ readonly "action-foreground": "#ffffff";
93
+ readonly "action-ink": "#98a2f5";
94
+ readonly "lt-three": "#ff5c76";
95
+ readonly "lt-three-foreground": "#000000";
96
+ readonly "state-success": "#4cc38a";
97
+ readonly "state-error": "#f2707f";
98
+ readonly "state-warning": "#e0a53a";
99
+ readonly "destructive-solid": "#cf3345";
100
+ readonly "destructive-solid-foreground": "#ffffff";
101
+ readonly "font-geist": "\"Geist Variable\", \"Geist\"";
102
+ readonly "font-geist-mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, monospace";
103
+ readonly "font-jp": "\"Yu Gothic Medium\", \"游ゴシック Medium\", YuGothic, \"游ゴシック体\", \"游ゴシック\", \"Yu Gothic\", sans-serif";
104
+ readonly "font-mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, monospace";
105
+ readonly background: "#121316";
106
+ readonly foreground: "#eceef0";
107
+ readonly card: "#17181c";
108
+ readonly "card-foreground": "#eceef0";
109
+ readonly popover: "#1d1e23";
110
+ readonly "popover-foreground": "#eceef0";
111
+ readonly primary: "#5e6ad2";
112
+ readonly "primary-foreground": "#ffffff";
113
+ readonly secondary: "#1b1c20";
114
+ readonly "secondary-foreground": "#eceef0";
115
+ readonly muted: "#1b1c20";
116
+ readonly "muted-foreground": "#8a8f98";
117
+ readonly accent: "#1b1c20";
118
+ readonly "accent-foreground": "#eceef0";
119
+ readonly destructive: "#f2707f";
120
+ readonly "destructive-foreground": "#121316";
121
+ readonly border: "#25272c";
122
+ readonly input: "#34363d";
123
+ readonly ring: "#5e6ad2";
124
+ readonly "chart-1": "#7c86e8";
125
+ readonly "chart-2": "#4cc38a";
126
+ readonly "chart-3": "#e5a23f";
127
+ readonly "chart-4": "#f2707f";
128
+ readonly "chart-5": "#9aa1b3";
129
+ readonly section: "#0a0b0d";
130
+ readonly radius: "6px";
131
+ readonly sidebar: "#0a0b0d";
132
+ readonly "sidebar-foreground": "#eceef0";
133
+ readonly "sidebar-primary": "#5e6ad2";
134
+ readonly "sidebar-primary-foreground": "#ffffff";
135
+ readonly "sidebar-accent": "#1b1c20";
136
+ readonly "sidebar-accent-foreground": "#eceef0";
137
+ readonly "sidebar-border": "#25272c";
138
+ readonly "sidebar-ring": "#5e6ad2";
139
+ };
140
+ };
141
+ //#endregion
@@ -0,0 +1,206 @@
1
+ //#region src/tokens/tokens.gen.ts
2
+ /** love3 のトークン名(先頭の `--` を除いた CSS 変数名)。 */
3
+ const tokenNames = [
4
+ "ink-1000",
5
+ "ink-900",
6
+ "ink-700",
7
+ "ink-500",
8
+ "ink-300",
9
+ "line",
10
+ "line-strong",
11
+ "line-control",
12
+ "frame",
13
+ "paper",
14
+ "raised",
15
+ "overlay",
16
+ "wash",
17
+ "scrim",
18
+ "shadow-color",
19
+ "action",
20
+ "action-hover",
21
+ "action-foreground",
22
+ "action-ink",
23
+ "lt-three",
24
+ "lt-three-foreground",
25
+ "state-success",
26
+ "state-error",
27
+ "state-warning",
28
+ "destructive-solid",
29
+ "destructive-solid-foreground",
30
+ "font-geist",
31
+ "font-geist-mono",
32
+ "font-jp",
33
+ "font-mono",
34
+ "background",
35
+ "foreground",
36
+ "card",
37
+ "card-foreground",
38
+ "popover",
39
+ "popover-foreground",
40
+ "primary",
41
+ "primary-foreground",
42
+ "secondary",
43
+ "secondary-foreground",
44
+ "muted",
45
+ "muted-foreground",
46
+ "accent",
47
+ "accent-foreground",
48
+ "destructive",
49
+ "destructive-foreground",
50
+ "border",
51
+ "input",
52
+ "ring",
53
+ "chart-1",
54
+ "chart-2",
55
+ "chart-3",
56
+ "chart-4",
57
+ "chart-5",
58
+ "section",
59
+ "radius",
60
+ "sidebar",
61
+ "sidebar-foreground",
62
+ "sidebar-primary",
63
+ "sidebar-primary-foreground",
64
+ "sidebar-accent",
65
+ "sidebar-accent-foreground",
66
+ "sidebar-border",
67
+ "sidebar-ring"
68
+ ];
69
+ /** `var()` を解決した実値。ダークは上書きを重ねた全トークン。 */
70
+ const tokens = {
71
+ light: {
72
+ "ink-1000": "#0f1012",
73
+ "ink-900": "#1b1c20",
74
+ "ink-700": "#40434a",
75
+ "ink-500": "#676b74",
76
+ "ink-300": "#a3a6ad",
77
+ "line": "#e6e7eb",
78
+ "line-strong": "#d5d7dd",
79
+ "line-control": "#80858f",
80
+ "frame": "#f4f5f7",
81
+ "paper": "#ffffff",
82
+ "raised": "#ffffff",
83
+ "overlay": "#ffffff",
84
+ "wash": "#f1f2f4",
85
+ "scrim": "rgba(0, 0, 0, 0.32)",
86
+ "shadow-color": "rgba(16, 24, 40, 0.1)",
87
+ "action": "#5e6ad2",
88
+ "action-hover": "#5059c2",
89
+ "action-foreground": "#ffffff",
90
+ "action-ink": "#4a55c0",
91
+ "lt-three": "#ff5c76",
92
+ "lt-three-foreground": "#000000",
93
+ "state-success": "#187548",
94
+ "state-error": "#c42b3a",
95
+ "state-warning": "#8f5f00",
96
+ "destructive-solid": "#c42b3a",
97
+ "destructive-solid-foreground": "#ffffff",
98
+ "font-geist": "\"Geist Variable\", \"Geist\"",
99
+ "font-geist-mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, monospace",
100
+ "font-jp": "\"Yu Gothic Medium\", \"游ゴシック Medium\", YuGothic, \"游ゴシック体\", \"游ゴシック\", \"Yu Gothic\", sans-serif",
101
+ "font-mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, monospace",
102
+ "background": "#ffffff",
103
+ "foreground": "#1b1c20",
104
+ "card": "#ffffff",
105
+ "card-foreground": "#1b1c20",
106
+ "popover": "#ffffff",
107
+ "popover-foreground": "#1b1c20",
108
+ "primary": "#5e6ad2",
109
+ "primary-foreground": "#ffffff",
110
+ "secondary": "#f1f2f4",
111
+ "secondary-foreground": "#1b1c20",
112
+ "muted": "#f1f2f4",
113
+ "muted-foreground": "#676b74",
114
+ "accent": "#f1f2f4",
115
+ "accent-foreground": "#1b1c20",
116
+ "destructive": "#c42b3a",
117
+ "destructive-foreground": "#ffffff",
118
+ "border": "#e6e7eb",
119
+ "input": "#d5d7dd",
120
+ "ring": "#5e6ad2",
121
+ "chart-1": "#5e6ad2",
122
+ "chart-2": "#1f9d6a",
123
+ "chart-3": "#bd7100",
124
+ "chart-4": "#d6495c",
125
+ "chart-5": "#7a8194",
126
+ "section": "#f4f5f7",
127
+ "radius": "6px",
128
+ "sidebar": "#f4f5f7",
129
+ "sidebar-foreground": "#1b1c20",
130
+ "sidebar-primary": "#5e6ad2",
131
+ "sidebar-primary-foreground": "#ffffff",
132
+ "sidebar-accent": "#f1f2f4",
133
+ "sidebar-accent-foreground": "#1b1c20",
134
+ "sidebar-border": "#e6e7eb",
135
+ "sidebar-ring": "#5e6ad2"
136
+ },
137
+ dark: {
138
+ "ink-1000": "#f7f8f8",
139
+ "ink-900": "#eceef0",
140
+ "ink-700": "#cfd3da",
141
+ "ink-500": "#8a8f98",
142
+ "ink-300": "#5b5f67",
143
+ "line": "#25272c",
144
+ "line-strong": "#34363d",
145
+ "line-control": "#6b707a",
146
+ "frame": "#0a0b0d",
147
+ "paper": "#121316",
148
+ "raised": "#17181c",
149
+ "overlay": "#1d1e23",
150
+ "wash": "#1b1c20",
151
+ "scrim": "rgba(0, 0, 0, 0.72)",
152
+ "shadow-color": "rgba(0, 0, 0, 0.7)",
153
+ "action": "#5e6ad2",
154
+ "action-hover": "#5059c2",
155
+ "action-foreground": "#ffffff",
156
+ "action-ink": "#98a2f5",
157
+ "lt-three": "#ff5c76",
158
+ "lt-three-foreground": "#000000",
159
+ "state-success": "#4cc38a",
160
+ "state-error": "#f2707f",
161
+ "state-warning": "#e0a53a",
162
+ "destructive-solid": "#cf3345",
163
+ "destructive-solid-foreground": "#ffffff",
164
+ "font-geist": "\"Geist Variable\", \"Geist\"",
165
+ "font-geist-mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, monospace",
166
+ "font-jp": "\"Yu Gothic Medium\", \"游ゴシック Medium\", YuGothic, \"游ゴシック体\", \"游ゴシック\", \"Yu Gothic\", sans-serif",
167
+ "font-mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, monospace",
168
+ "background": "#121316",
169
+ "foreground": "#eceef0",
170
+ "card": "#17181c",
171
+ "card-foreground": "#eceef0",
172
+ "popover": "#1d1e23",
173
+ "popover-foreground": "#eceef0",
174
+ "primary": "#5e6ad2",
175
+ "primary-foreground": "#ffffff",
176
+ "secondary": "#1b1c20",
177
+ "secondary-foreground": "#eceef0",
178
+ "muted": "#1b1c20",
179
+ "muted-foreground": "#8a8f98",
180
+ "accent": "#1b1c20",
181
+ "accent-foreground": "#eceef0",
182
+ "destructive": "#f2707f",
183
+ "destructive-foreground": "#121316",
184
+ "border": "#25272c",
185
+ "input": "#34363d",
186
+ "ring": "#5e6ad2",
187
+ "chart-1": "#7c86e8",
188
+ "chart-2": "#4cc38a",
189
+ "chart-3": "#e5a23f",
190
+ "chart-4": "#f2707f",
191
+ "chart-5": "#9aa1b3",
192
+ "section": "#0a0b0d",
193
+ "radius": "6px",
194
+ "sidebar": "#0a0b0d",
195
+ "sidebar-foreground": "#eceef0",
196
+ "sidebar-primary": "#5e6ad2",
197
+ "sidebar-primary-foreground": "#ffffff",
198
+ "sidebar-accent": "#1b1c20",
199
+ "sidebar-accent-foreground": "#eceef0",
200
+ "sidebar-border": "#25272c",
201
+ "sidebar-ring": "#5e6ad2"
202
+ }
203
+ };
204
+
205
+ //#endregion
206
+ export { tokenNames, tokens };
@@ -0,0 +1,27 @@
1
+ import { ColorToken, Mode, TuningCatalog } from "./types.js";
2
+ //#region src/tuning/catalog.d.ts
3
+ /**
4
+ * 定義から、調整の対象を作る。
5
+ *
6
+ * - 色のトークン: 値が色のリテラル(`#…`・`rgba(…)`)のもの。名前の接頭辞でランプ・主操作・ブランド・状態・チャートに分ける
7
+ * - セマンティックの既定の参照先: **生成された CSS の `:root`** から読む(`--background: var(--paper)`)。
8
+ * `tokens` は `var()` を解決した実値なので、参照先は残らない。CSS が実際に走る値なので、これを正にする
9
+ * - 本文サイズ: CSS の `@theme` の `--text-body` / `--text-body--line-height`
10
+ *
11
+ * 読めなければ投げる(既定の形が変わって、この読み取りが古くなったことを黙って見逃さない)。
12
+ */
13
+ export declare function buildCatalog({ tokens, tokenNames, css }: {
14
+ tokens: Readonly<Record<Mode, Readonly<Record<string, string>>>>;
15
+ tokenNames: readonly string[];
16
+ css: string;
17
+ }): TuningCatalog;
18
+ export declare function findColor(catalog: TuningCatalog, name: string): ColorToken | undefined;
19
+ /**
20
+ * `buildCatalog` を、失敗しても投げずに返す。生成 CSS の形が変わって読み取りが古くなったとき、**調整だけを無効にして**ほかの画面を動かす
21
+ * (`error` に理由。調整の対象が空のカタログを返すので、調整は何も効かない)。呼ぶ側が `error` を表示・記録する。
22
+ */
23
+ export declare function buildCatalogSafe(input: Parameters<typeof buildCatalog>[0]): {
24
+ catalog: TuningCatalog;
25
+ error: string | null;
26
+ };
27
+ //#endregion
@@ -0,0 +1,4 @@
1
+ import { TuningCatalog } from "./types.js";
2
+ //#region src/tuning/catalog.gen.d.ts
3
+ export declare const catalog: TuningCatalog;
4
+ //#endregion