ksk-design-system 1.35.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 (261) hide show
  1. package/AGENTS.md +190 -0
  2. package/CLAUDE.md +189 -0
  3. package/DESIGN.md +190 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATION.md +107 -0
  6. package/PUBLISHING.md +160 -0
  7. package/README.md +59 -0
  8. package/RELEASE.md +82 -0
  9. package/bin/init.js +112 -0
  10. package/contracts/components.json +1443 -0
  11. package/contracts/rules.json +447 -0
  12. package/dist/class-names.js +4 -0
  13. package/dist/index.js +13157 -0
  14. package/dist/native/ui.js +4928 -0
  15. package/dist/native.js +1559 -0
  16. package/dist/server-variants-Dr_V3bDI.js +55 -0
  17. package/dist/types/class-names.d.ts +27 -0
  18. package/dist/types/components/patterns/admin/bulk-actions.d.ts +17 -0
  19. package/dist/types/components/patterns/admin/chart-controls.d.ts +16 -0
  20. package/dist/types/components/patterns/admin/data-table.d.ts +165 -0
  21. package/dist/types/components/patterns/admin/image-uploader.d.ts +14 -0
  22. package/dist/types/components/patterns/admin/kebab-menu.d.ts +17 -0
  23. package/dist/types/components/patterns/admin/notification-list.d.ts +16 -0
  24. package/dist/types/components/patterns/admin/search-panel.d.ts +9 -0
  25. package/dist/types/components/patterns/admin/status-tabs.d.ts +13 -0
  26. package/dist/types/components/patterns/app-header.d.ts +76 -0
  27. package/dist/types/components/patterns/banner-carousel.d.ts +25 -0
  28. package/dist/types/components/patterns/banner.d.ts +13 -0
  29. package/dist/types/components/patterns/bottom-sheet-form.d.ts +17 -0
  30. package/dist/types/components/patterns/category-nav.d.ts +43 -0
  31. package/dist/types/components/patterns/category-scroll.d.ts +53 -0
  32. package/dist/types/components/patterns/chip-selector.d.ts +20 -0
  33. package/dist/types/components/patterns/chip.d.ts +42 -0
  34. package/dist/types/components/patterns/coach-mark-overlay.d.ts +66 -0
  35. package/dist/types/components/patterns/commerce/bottom-tab-bar.d.ts +27 -0
  36. package/dist/types/components/patterns/commerce/filter-bar.d.ts +39 -0
  37. package/dist/types/components/patterns/commerce/image-carousel.d.ts +14 -0
  38. package/dist/types/components/patterns/commerce/order-summary.d.ts +26 -0
  39. package/dist/types/components/patterns/commerce/price-display.d.ts +20 -0
  40. package/dist/types/components/patterns/commerce/product-card.d.ts +50 -0
  41. package/dist/types/components/patterns/commerce/product-carousel.d.ts +15 -0
  42. package/dist/types/components/patterns/commerce/quantity-selector.d.ts +21 -0
  43. package/dist/types/components/patterns/commerce/rating-display.d.ts +15 -0
  44. package/dist/types/components/patterns/commerce/review-card.d.ts +22 -0
  45. package/dist/types/components/patterns/commerce/review-summary.d.ts +12 -0
  46. package/dist/types/components/patterns/confirm-dialog.d.ts +32 -0
  47. package/dist/types/components/patterns/cookie-consent.d.ts +62 -0
  48. package/dist/types/components/patterns/empty-state.d.ts +15 -0
  49. package/dist/types/components/patterns/error-state.d.ts +10 -0
  50. package/dist/types/components/patterns/file-upload.d.ts +31 -0
  51. package/dist/types/components/patterns/filter-chip.d.ts +26 -0
  52. package/dist/types/components/patterns/footer.d.ts +24 -0
  53. package/dist/types/components/patterns/form-field.d.ts +30 -0
  54. package/dist/types/components/patterns/form.d.ts +13 -0
  55. package/dist/types/components/patterns/list-item.d.ts +23 -0
  56. package/dist/types/components/patterns/list-skeletons.d.ts +43 -0
  57. package/dist/types/components/patterns/menu-drawer.d.ts +27 -0
  58. package/dist/types/components/patterns/notification-badge.d.ts +15 -0
  59. package/dist/types/components/patterns/progress-steps.d.ts +7 -0
  60. package/dist/types/components/patterns/review-overlay.d.ts +25 -0
  61. package/dist/types/components/patterns/search-bar.d.ts +6 -0
  62. package/dist/types/components/patterns/section-header.d.ts +8 -0
  63. package/dist/types/components/patterns/share-buttons.d.ts +13 -0
  64. package/dist/types/components/patterns/shells/admin-shell.d.ts +8 -0
  65. package/dist/types/components/patterns/shells/app-shell.d.ts +7 -0
  66. package/dist/types/components/patterns/shells/marketing-shell.d.ts +7 -0
  67. package/dist/types/components/patterns/simple-pagination.d.ts +69 -0
  68. package/dist/types/components/patterns/stat-card.d.ts +43 -0
  69. package/dist/types/components/patterns/sticky-action-bar.d.ts +27 -0
  70. package/dist/types/components/patterns/swipe-row.d.ts +17 -0
  71. package/dist/types/components/patterns/tag-input.d.ts +20 -0
  72. package/dist/types/components/patterns/tag.d.ts +7 -0
  73. package/dist/types/components/ui/accordion.d.ts +7 -0
  74. package/dist/types/components/ui/alert-dialog.d.ts +47 -0
  75. package/dist/types/components/ui/alert.d.ts +45 -0
  76. package/dist/types/components/ui/auto-grow-textarea.d.ts +40 -0
  77. package/dist/types/components/ui/avatar.d.ts +6 -0
  78. package/dist/types/components/ui/badge.d.ts +18 -0
  79. package/dist/types/components/ui/breadcrumb.d.ts +16 -0
  80. package/dist/types/components/ui/button.d.ts +29 -0
  81. package/dist/types/components/ui/calendar.d.ts +5 -0
  82. package/dist/types/components/ui/card.d.ts +28 -0
  83. package/dist/types/components/ui/checkbox-card.d.ts +29 -0
  84. package/dist/types/components/ui/checkbox-field.d.ts +24 -0
  85. package/dist/types/components/ui/checkbox-group.d.ts +33 -0
  86. package/dist/types/components/ui/checkbox.d.ts +44 -0
  87. package/dist/types/components/ui/coach-mark.d.ts +27 -0
  88. package/dist/types/components/ui/collapsible.d.ts +24 -0
  89. package/dist/types/components/ui/combobox.d.ts +19 -0
  90. package/dist/types/components/ui/countdown-timer.d.ts +39 -0
  91. package/dist/types/components/ui/date-picker.d.ts +53 -0
  92. package/dist/types/components/ui/dialog.d.ts +54 -0
  93. package/dist/types/components/ui/dropdown-filter.d.ts +35 -0
  94. package/dist/types/components/ui/dropdown-menu.d.ts +42 -0
  95. package/dist/types/components/ui/error-boundary.d.ts +66 -0
  96. package/dist/types/components/ui/form.d.ts +61 -0
  97. package/dist/types/components/ui/hover-card.d.ts +24 -0
  98. package/dist/types/components/ui/image-gallery.d.ts +28 -0
  99. package/dist/types/components/ui/input.d.ts +17 -0
  100. package/dist/types/components/ui/label.d.ts +4 -0
  101. package/dist/types/components/ui/multi-select.d.ts +21 -0
  102. package/dist/types/components/ui/navigation-bar.d.ts +58 -0
  103. package/dist/types/components/ui/number-input.d.ts +20 -0
  104. package/dist/types/components/ui/pagination.d.ts +26 -0
  105. package/dist/types/components/ui/pill-toggle.d.ts +16 -0
  106. package/dist/types/components/ui/popover.d.ts +7 -0
  107. package/dist/types/components/ui/progress-ring.d.ts +31 -0
  108. package/dist/types/components/ui/progress.d.ts +34 -0
  109. package/dist/types/components/ui/radio-group.d.ts +22 -0
  110. package/dist/types/components/ui/responsive-dialog.d.ts +31 -0
  111. package/dist/types/components/ui/scroll-area.d.ts +5 -0
  112. package/dist/types/components/ui/select.d.ts +22 -0
  113. package/dist/types/components/ui/separator.d.ts +4 -0
  114. package/dist/types/components/ui/sheet.d.ts +139 -0
  115. package/dist/types/components/ui/skeleton.d.ts +31 -0
  116. package/dist/types/components/ui/slider.d.ts +14 -0
  117. package/dist/types/components/ui/social-icon-data.d.ts +10 -0
  118. package/dist/types/components/ui/social-icon.d.ts +38 -0
  119. package/dist/types/components/ui/social-login-button.d.ts +10 -0
  120. package/dist/types/components/ui/spinner.d.ts +22 -0
  121. package/dist/types/components/ui/star-rating.d.ts +12 -0
  122. package/dist/types/components/ui/sub-nav.d.ts +17 -0
  123. package/dist/types/components/ui/switch.d.ts +4 -0
  124. package/dist/types/components/ui/sync-status-badge.d.ts +17 -0
  125. package/dist/types/components/ui/tabs.d.ts +15 -0
  126. package/dist/types/components/ui/textarea.d.ts +8 -0
  127. package/dist/types/components/ui/time-picker.d.ts +14 -0
  128. package/dist/types/components/ui/toast.d.ts +49 -0
  129. package/dist/types/components/ui/tooltip.d.ts +7 -0
  130. package/dist/types/index.d.ts +174 -0
  131. package/dist/types/lib/server-variants/button-variants.d.ts +20 -0
  132. package/dist/types/lib/utils.d.ts +2 -0
  133. package/dist/types/native/components/Accordion.d.ts +12 -0
  134. package/dist/types/native/components/Alert.d.ts +9 -0
  135. package/dist/types/native/components/AlertDialog.d.ts +11 -0
  136. package/dist/types/native/components/AppHeader.d.ts +10 -0
  137. package/dist/types/native/components/AppShell.d.ts +13 -0
  138. package/dist/types/native/components/AutoGrowTextarea.d.ts +8 -0
  139. package/dist/types/native/components/Avatar.d.ts +8 -0
  140. package/dist/types/native/components/Badge.d.ts +8 -0
  141. package/dist/types/native/components/Banner.d.ts +10 -0
  142. package/dist/types/native/components/BannerCarousel.d.ts +8 -0
  143. package/dist/types/native/components/BottomSheetForm.d.ts +10 -0
  144. package/dist/types/native/components/BottomTabBar.d.ts +8 -0
  145. package/dist/types/native/components/Breadcrumb.d.ts +12 -0
  146. package/dist/types/native/components/Button.d.ts +9 -0
  147. package/dist/types/native/components/Calendar.d.ts +8 -0
  148. package/dist/types/native/components/Card.d.ts +11 -0
  149. package/dist/types/native/components/CategoryNav.d.ts +13 -0
  150. package/dist/types/native/components/CategoryScroll.d.ts +12 -0
  151. package/dist/types/native/components/Checkbox.d.ts +7 -0
  152. package/dist/types/native/components/CheckboxCard.d.ts +8 -0
  153. package/dist/types/native/components/CheckboxField.d.ts +8 -0
  154. package/dist/types/native/components/CheckboxGroup.d.ts +12 -0
  155. package/dist/types/native/components/Chip.d.ts +17 -0
  156. package/dist/types/native/components/ChipSelector.d.ts +13 -0
  157. package/dist/types/native/components/CoachMark.d.ts +12 -0
  158. package/dist/types/native/components/CoachMarkOverlay.d.ts +19 -0
  159. package/dist/types/native/components/Collapsible.d.ts +7 -0
  160. package/dist/types/native/components/Combobox.d.ts +14 -0
  161. package/dist/types/native/components/ConfirmDialog.d.ts +7 -0
  162. package/dist/types/native/components/CountdownTimer.d.ts +7 -0
  163. package/dist/types/native/components/DatePicker.d.ts +10 -0
  164. package/dist/types/native/components/Dialog.d.ts +12 -0
  165. package/dist/types/native/components/DropdownFilter.d.ts +12 -0
  166. package/dist/types/native/components/DropdownMenu.d.ts +19 -0
  167. package/dist/types/native/components/EmptyState.d.ts +8 -0
  168. package/dist/types/native/components/ErrorState.d.ts +8 -0
  169. package/dist/types/native/components/FileUpload.d.ts +12 -0
  170. package/dist/types/native/components/FilterBar.d.ts +13 -0
  171. package/dist/types/native/components/FilterChip.d.ts +7 -0
  172. package/dist/types/native/components/Footer.d.ts +9 -0
  173. package/dist/types/native/components/FormField.d.ts +9 -0
  174. package/dist/types/native/components/GlassView.d.ts +25 -0
  175. package/dist/types/native/components/ImageCarousel.d.ts +8 -0
  176. package/dist/types/native/components/ImageGallery.d.ts +7 -0
  177. package/dist/types/native/components/Input.d.ts +9 -0
  178. package/dist/types/native/components/Label.d.ts +7 -0
  179. package/dist/types/native/components/ListItem.d.ts +11 -0
  180. package/dist/types/native/components/ListSkeletons.d.ts +6 -0
  181. package/dist/types/native/components/MarketingShell.d.ts +9 -0
  182. package/dist/types/native/components/MenuDrawer.d.ts +21 -0
  183. package/dist/types/native/components/MultiSelect.d.ts +13 -0
  184. package/dist/types/native/components/NavigationBar.d.ts +18 -0
  185. package/dist/types/native/components/NotificationBadge.d.ts +9 -0
  186. package/dist/types/native/components/NumberInput.d.ts +9 -0
  187. package/dist/types/native/components/OrderSummary.d.ts +10 -0
  188. package/dist/types/native/components/Pagination.d.ts +7 -0
  189. package/dist/types/native/components/PillToggle.d.ts +12 -0
  190. package/dist/types/native/components/Popover.d.ts +14 -0
  191. package/dist/types/native/components/PriceDisplay.d.ts +8 -0
  192. package/dist/types/native/components/ProductCard.d.ts +14 -0
  193. package/dist/types/native/components/ProductCarousel.d.ts +11 -0
  194. package/dist/types/native/components/Progress.d.ts +7 -0
  195. package/dist/types/native/components/ProgressRing.d.ts +12 -0
  196. package/dist/types/native/components/ProgressSteps.d.ts +9 -0
  197. package/dist/types/native/components/QuantitySelector.d.ts +6 -0
  198. package/dist/types/native/components/RadioGroup.d.ts +13 -0
  199. package/dist/types/native/components/RatingDisplay.d.ts +7 -0
  200. package/dist/types/native/components/ResponsiveDialog.d.ts +7 -0
  201. package/dist/types/native/components/ReviewCard.d.ts +11 -0
  202. package/dist/types/native/components/ReviewOverlay.d.ts +7 -0
  203. package/dist/types/native/components/ReviewSummary.d.ts +7 -0
  204. package/dist/types/native/components/ScrollArea.d.ts +9 -0
  205. package/dist/types/native/components/SearchBar.d.ts +9 -0
  206. package/dist/types/native/components/SectionHeader.d.ts +10 -0
  207. package/dist/types/native/components/Select.d.ts +14 -0
  208. package/dist/types/native/components/Separator.d.ts +5 -0
  209. package/dist/types/native/components/ShareButtons.d.ts +11 -0
  210. package/dist/types/native/components/Sheet.d.ts +20 -0
  211. package/dist/types/native/components/SimplePagination.d.ts +7 -0
  212. package/dist/types/native/components/Skeleton.d.ts +11 -0
  213. package/dist/types/native/components/Slider.d.ts +9 -0
  214. package/dist/types/native/components/SocialIcon.d.ts +12 -0
  215. package/dist/types/native/components/SocialLoginButton.d.ts +8 -0
  216. package/dist/types/native/components/Spinner.d.ts +6 -0
  217. package/dist/types/native/components/Stack.d.ts +13 -0
  218. package/dist/types/native/components/StarRating.d.ts +9 -0
  219. package/dist/types/native/components/StatCard.d.ts +7 -0
  220. package/dist/types/native/components/StickyActionBar.d.ts +6 -0
  221. package/dist/types/native/components/SubNav.d.ts +12 -0
  222. package/dist/types/native/components/SwipeRow.d.ts +14 -0
  223. package/dist/types/native/components/Switch.d.ts +4 -0
  224. package/dist/types/native/components/SyncStatusBadge.d.ts +6 -0
  225. package/dist/types/native/components/Tabs.d.ts +23 -0
  226. package/dist/types/native/components/Tag.d.ts +10 -0
  227. package/dist/types/native/components/TagInput.d.ts +7 -0
  228. package/dist/types/native/components/Text.d.ts +10 -0
  229. package/dist/types/native/components/Textarea.d.ts +7 -0
  230. package/dist/types/native/components/TimePicker.d.ts +12 -0
  231. package/dist/types/native/components/Toast.d.ts +18 -0
  232. package/dist/types/native/components/index.d.ts +99 -0
  233. package/dist/types/native/components/social-icon-data.d.ts +5 -0
  234. package/dist/types/native/index.d.ts +4 -0
  235. package/dist/types/native/theme/ThemeProvider.d.ts +21 -0
  236. package/dist/types/native/typography.d.ts +8 -0
  237. package/dist/types/tokens/native/index.d.ts +13 -0
  238. package/dist/types/tokens/native/primitives.d.ts +116 -0
  239. package/dist/types/tokens/native/scales.d.ts +270 -0
  240. package/dist/types/tokens/native/themes.d.ts +1147 -0
  241. package/eslint/deprecated.js +104 -0
  242. package/eslint/no-colorless-border.js +217 -0
  243. package/package.json +215 -0
  244. package/scripts/codemod/README.md +51 -0
  245. package/scripts/codemod/template.mjs +164 -0
  246. package/src/components/COMPONENT_LOOKUP.md +190 -0
  247. package/src/preset.css +168 -0
  248. package/src/styles/categorical.css +161 -0
  249. package/src/styles/glass.css +365 -0
  250. package/src/styles/primitive.css +161 -0
  251. package/src/styles/semantic.css +247 -0
  252. package/src/styles/typography.css +140 -0
  253. package/src/themes/README.md +44 -0
  254. package/src/themes/blue.css +21 -0
  255. package/src/themes/default.css +12 -0
  256. package/src/themes/green.css +22 -0
  257. package/src/themes/orange.css +21 -0
  258. package/src/themes/violet.css +22 -0
  259. package/templates/AGENTS.md +77 -0
  260. package/templates/CLAUDE.md +77 -0
  261. package/tokens.json +607 -0
package/tokens.json ADDED
@@ -0,0 +1,607 @@
1
+ {
2
+ "meta": {
3
+ "name": "KSK Design System",
4
+ "version": "2.0.0",
5
+ "lastUpdated": "2026-05-31",
6
+ "description": "フリーランス向けマルチテーマ対応デザインシステム"
7
+ },
8
+ "colors": {
9
+ "primitive": {
10
+ "gray": {
11
+ "50": "#F9FAFB",
12
+ "100": "#F3F4F6",
13
+ "200": "#E5E7EB",
14
+ "300": "#D1D5DB",
15
+ "400": "#9CA3AF",
16
+ "500": "#6B7280",
17
+ "600": "#4B5563",
18
+ "700": "#374151",
19
+ "800": "#1F2937",
20
+ "900": "#111827"
21
+ },
22
+ "red": {
23
+ "50": "#FEF2F2",
24
+ "100": "#FEE2E2",
25
+ "200": "#FECACA",
26
+ "300": "#FCA5A5",
27
+ "400": "#F87171",
28
+ "500": "#EF4444",
29
+ "600": "#DC2626",
30
+ "700": "#B91C1C",
31
+ "800": "#991B1B",
32
+ "900": "#7F1D1D"
33
+ },
34
+ "green": {
35
+ "50": "#F0FDF4",
36
+ "100": "#DCFCE7",
37
+ "200": "#BBF7D0",
38
+ "300": "#86EFAC",
39
+ "400": "#4ADE80",
40
+ "500": "#22C55E",
41
+ "600": "#16A34A",
42
+ "700": "#15803D",
43
+ "800": "#166534",
44
+ "900": "#14532D"
45
+ },
46
+ "orange": {
47
+ "50": "#FFF7ED",
48
+ "100": "#FFEDD5",
49
+ "200": "#FED7AA",
50
+ "300": "#FDBA74",
51
+ "400": "#FB923C",
52
+ "500": "#F97316",
53
+ "600": "#EA580C",
54
+ "700": "#C2410C",
55
+ "800": "#9A3412",
56
+ "900": "#7C2D12"
57
+ },
58
+ "amber": {
59
+ "50": "#FFFBEB",
60
+ "100": "#FEF3C7",
61
+ "200": "#FDE68A",
62
+ "300": "#FCD34D",
63
+ "400": "#FBBF24",
64
+ "500": "#F59E0B",
65
+ "600": "#D97706",
66
+ "700": "#B45309",
67
+ "800": "#92400E",
68
+ "900": "#78350F"
69
+ },
70
+ "teal": {
71
+ "50": "#F0FDFA",
72
+ "100": "#CCFBF1",
73
+ "200": "#99F6E4",
74
+ "300": "#5EEAD4",
75
+ "400": "#2DD4BF",
76
+ "500": "#14B8A6",
77
+ "600": "#0D9488",
78
+ "700": "#0F766E",
79
+ "800": "#115E59",
80
+ "900": "#134E4A"
81
+ },
82
+ "blue": {
83
+ "50": "#EFF6FF",
84
+ "100": "#DBEAFE",
85
+ "200": "#BFDBFE",
86
+ "300": "#93C5FD",
87
+ "400": "#60A5FA",
88
+ "500": "#3B82F6",
89
+ "600": "#2563EB",
90
+ "700": "#1D4ED8",
91
+ "800": "#1E40AF",
92
+ "900": "#1E3A8A"
93
+ },
94
+ "violet": {
95
+ "50": "#F5F3FF",
96
+ "100": "#EDE9FE",
97
+ "200": "#DDD6FE",
98
+ "300": "#C4B5FD",
99
+ "400": "#A78BFA",
100
+ "500": "#8B5CF6",
101
+ "600": "#7C3AED",
102
+ "700": "#6D28D9",
103
+ "800": "#5B21B6",
104
+ "900": "#4C1D95"
105
+ },
106
+ "pink": {
107
+ "50": "#FDF2F8",
108
+ "100": "#FCE7F3",
109
+ "200": "#FBCFE8",
110
+ "300": "#F9A8D4",
111
+ "400": "#F472B6",
112
+ "500": "#EC4899",
113
+ "600": "#DB2777",
114
+ "700": "#BE185D",
115
+ "800": "#9D174D",
116
+ "900": "#831843"
117
+ },
118
+ "gray-alpha": {
119
+ "50": "rgba(17, 24, 39, 0.02)",
120
+ "100": "rgba(17, 24, 39, 0.04)",
121
+ "200": "rgba(17, 24, 39, 0.08)",
122
+ "300": "rgba(17, 24, 39, 0.12)",
123
+ "400": "rgba(17, 24, 39, 0.16)",
124
+ "500": "rgba(17, 24, 39, 0.24)",
125
+ "600": "rgba(17, 24, 39, 0.36)",
126
+ "700": "rgba(17, 24, 39, 0.48)",
127
+ "800": "rgba(17, 24, 39, 0.64)",
128
+ "900": "rgba(17, 24, 39, 0.80)",
129
+ "1000": "rgba(17, 24, 39, 0.92)"
130
+ },
131
+ "white-alpha": {
132
+ "50": "rgba(255, 255, 255, 0.02)",
133
+ "100": "rgba(255, 255, 255, 0.04)",
134
+ "200": "rgba(255, 255, 255, 0.08)",
135
+ "300": "rgba(255, 255, 255, 0.16)",
136
+ "400": "rgba(255, 255, 255, 0.24)",
137
+ "500": "rgba(255, 255, 255, 0.36)",
138
+ "600": "rgba(255, 255, 255, 0.48)",
139
+ "700": "rgba(255, 255, 255, 0.64)",
140
+ "800": "rgba(255, 255, 255, 0.80)",
141
+ "900": "rgba(255, 255, 255, 0.92)",
142
+ "1000": "rgba(255, 255, 255, 1.00)"
143
+ },
144
+ "white": "#FFFFFF",
145
+ "black": "#000000"
146
+ },
147
+ "brand": {
148
+ "_doc": "テーマ差し替え対象の alias レイヤー(primitive=不変原色とは別)。default テーマでは Blue ランプを『参照』で指す(Blue を複製した固定 hex は置かない=ドリフトの温床を排除)。CSS では --Primitive-Brand-{shade} がこのスロットで、themes/*.css の @theme が値を差し替えることで全 semantic が連動する。",
149
+ "50": "var(--Primitive-Blue-50)",
150
+ "100": "var(--Primitive-Blue-100)",
151
+ "200": "var(--Primitive-Blue-200)",
152
+ "300": "var(--Primitive-Blue-300)",
153
+ "400": "var(--Primitive-Blue-400)",
154
+ "500": "var(--Primitive-Blue-500)",
155
+ "600": "var(--Primitive-Blue-600)",
156
+ "700": "var(--Primitive-Blue-700)",
157
+ "800": "var(--Primitive-Blue-800)",
158
+ "900": "var(--Primitive-Blue-900)"
159
+ },
160
+ "semantic": {
161
+ "surface": {
162
+ "primary": "var(--Primitive-White)",
163
+ "secondary": "var(--Primitive-Gray-50)",
164
+ "tertiary": "var(--Primitive-Gray-100)",
165
+ "quaternary": "var(--Primitive-Gray-200)",
166
+ "disable": "var(--Primitive-Gray-100)",
167
+ "inverse": "var(--Primitive-Gray-900)",
168
+ "accent-primary": "var(--Primitive-Brand-500)",
169
+ "accent-primary-light": "var(--Primitive-Brand-50)",
170
+ "accent-primary-ultra-light": "var(--Primitive-Brand-50)",
171
+ "caution": "var(--Primitive-Red-50)",
172
+ "success": "var(--Primitive-Green-50)",
173
+ "warning": "var(--Primitive-Amber-50)",
174
+ "info": "var(--Primitive-Blue-50)",
175
+ "caution-subtle": "rgba(239, 68, 68, 0.15)",
176
+ "success-subtle": "rgba(34, 197, 94, 0.15)",
177
+ "warning-subtle": "rgba(249, 115, 22, 0.15)",
178
+ "info-subtle": "rgba(59, 130, 246, 0.15)",
179
+ "accent-primary-subtle": "color-mix(in srgb, var(--Primitive-Brand-500) 15%, transparent)",
180
+ "caution-strong": "var(--Primitive-Red-500)",
181
+ "success-strong": "var(--Primitive-Green-500)",
182
+ "warning-strong": "var(--Primitive-Orange-500)",
183
+ "info-strong": "var(--Primitive-Blue-500)",
184
+ "videoOverlay-light": "rgba(0, 0, 0, 0.40)",
185
+ "videoOverlay-medium": "rgba(0, 0, 0, 0.60)",
186
+ "videoOverlay-strong": "rgba(0, 0, 0, 0.80)"
187
+ },
188
+ "text": {
189
+ "high-emphasis": "var(--Primitive-Gray-900)",
190
+ "medium-emphasis": "var(--Primitive-Gray-700)",
191
+ "low-emphasis": "var(--Primitive-Gray-500)",
192
+ "disable": "var(--Primitive-Gray-400)",
193
+ "on-inverse": "var(--Primitive-White)",
194
+ "on-inverse-secondary": "var(--Primitive-White-Alpha-800)",
195
+ "accent-primary": "var(--Primitive-Brand-600)",
196
+ "success": "var(--Primitive-Green-700)",
197
+ "caution": "var(--Primitive-Red-600)",
198
+ "warning": "var(--Primitive-Orange-600)",
199
+ "info": "var(--Primitive-Blue-600)"
200
+ },
201
+ "object": {
202
+ "high-emphasis": "var(--Primitive-Gray-900)",
203
+ "medium-emphasis": "var(--Primitive-Gray-600)",
204
+ "low-emphasis": "var(--Primitive-Gray-400)",
205
+ "disable": "var(--Primitive-Gray-300)",
206
+ "on-inverse": "var(--Primitive-White)",
207
+ "accent-primary": "var(--Primitive-Brand-500)",
208
+ "caution": "var(--Primitive-Red-500)",
209
+ "success": "var(--Primitive-Green-500)",
210
+ "warning": "var(--Primitive-Orange-500)",
211
+ "info": "var(--Primitive-Blue-500)",
212
+ "favorite": "var(--Primitive-Red-500)",
213
+ "rating": "var(--Primitive-Amber-500)"
214
+ },
215
+ "border": {
216
+ "high-emphasis": "var(--Primitive-Gray-700)",
217
+ "medium-emphasis": "var(--Primitive-Gray-300)",
218
+ "low-emphasis": "var(--Primitive-Gray-200)",
219
+ "disable": "var(--Primitive-Gray-200)",
220
+ "accent-primary": "var(--Primitive-Brand-500)",
221
+ "caution": "var(--Primitive-Red-500)",
222
+ "success": "var(--Primitive-Green-500)",
223
+ "warning": "var(--Primitive-Orange-500)",
224
+ "info": "var(--Primitive-Blue-500)",
225
+ "accent-primary-subtle": "color-mix(in srgb, var(--Primitive-Brand-500) 30%, transparent)",
226
+ "caution-subtle": "rgba(239, 68, 68, 0.30)",
227
+ "success-subtle": "rgba(34, 197, 94, 0.30)",
228
+ "info-subtle": "rgba(59, 130, 246, 0.30)"
229
+ },
230
+ "brand": {
231
+ "primary": "var(--Primitive-Brand-600)",
232
+ "action": "var(--Primitive-Brand-700)",
233
+ "light": "var(--Primitive-Brand-100)",
234
+ "ultra-light": "var(--Primitive-Brand-50)",
235
+ "line": "#06C755",
236
+ "google-border": "#DADCE0",
237
+ "apple": "#000000",
238
+ "amazon": "#232F3E",
239
+ "amazon-accent": "#FF9900"
240
+ },
241
+ "hover": {
242
+ "primary-button": "var(--Primitive-Brand-700)",
243
+ "secondary-button": "var(--Primitive-Brand-50)",
244
+ "tertiary-button": "var(--Primitive-Gray-100)",
245
+ "ghost-button": "var(--Primitive-Gray-100)",
246
+ "destructive-button": "var(--Primitive-Red-700)"
247
+ },
248
+ "active": {
249
+ "primary-button": "var(--Primitive-Brand-800)",
250
+ "secondary-button": "var(--Primitive-Brand-100)",
251
+ "tertiary-button": "var(--Primitive-Gray-200)",
252
+ "destructive-button": "var(--Primitive-Red-800)"
253
+ },
254
+ "overlay": {
255
+ "dark": "var(--Primitive-Gray-Alpha-800)",
256
+ "medium": "var(--Primitive-Gray-Alpha-600)",
257
+ "light": "var(--Primitive-Gray-Alpha-200)"
258
+ },
259
+ "focus": {
260
+ "high-emphasis": "var(--Primitive-Brand-400)"
261
+ },
262
+ "caution": {
263
+ "base": "var(--Primitive-Red-600)",
264
+ "action": "var(--Primitive-Red-700)"
265
+ },
266
+ "success": {
267
+ "base": "var(--Primitive-Green-600)"
268
+ },
269
+ "warning": {
270
+ "base": "var(--Primitive-Orange-600)"
271
+ },
272
+ "info": {
273
+ "base": "var(--Primitive-Blue-600)"
274
+ },
275
+ "brandExternal": {
276
+ "line": "#06C755",
277
+ "googleBorder": "#DADCE0",
278
+ "apple": "#000000",
279
+ "amazon": "#232F3E",
280
+ "amazonAccent": "#FF9900"
281
+ },
282
+ "categorical": {
283
+ "_doc": "テーマ非依存の質的(カテゴリ識別用)パレット。Brand には連動しない固定値。知覚的分離度(CVD配慮)の高い順に並んでおり、N色必要なら 1..N を順に使う。tier: base=ドット/アイコン/mark, subtle=背景ティント, bold=文字/ラベル。文字には bold を使う(白背景 ≥4.9:1 / 自分のsubtle上 ≥4.5:1)。base は明色相だと単独ドットで 3:1 未満になりうる。dark モード値は src/styles/categorical.css 参照。subtle ≈ color-mix(base 15%, white)。",
284
+ "1": { "hue": "red", "base": "#EF4444", "subtle": "#FEE2E2", "bold": "#B91C1C" },
285
+ "2": { "hue": "sky", "base": "#0EA5E9", "subtle": "#E0F2FE", "bold": "#0369A1" },
286
+ "3": { "hue": "teal", "base": "#14B8A6", "subtle": "#CCFBF1", "bold": "#0F766E" },
287
+ "4": { "hue": "slate", "base": "#64748B", "subtle": "#F1F5F9", "bold": "#334155" },
288
+ "5": { "hue": "yellow", "base": "#EAB308", "subtle": "#FEF9C3", "bold": "#A16207" },
289
+ "6": { "hue": "indigo", "base": "#6366F1", "subtle": "#E0E7FF", "bold": "#4338CA" },
290
+ "7": { "hue": "orange", "base": "#F97316", "subtle": "#FFEDD5", "bold": "#C2410C" },
291
+ "8": { "hue": "cyan", "base": "#06B6D4", "subtle": "#CFFAFE", "bold": "#0E7490" },
292
+ "9": { "hue": "pink", "base": "#EC4899", "subtle": "#FCE7F3", "bold": "#BE185D" },
293
+ "10": { "hue": "rose", "base": "#F43F5E", "subtle": "#FFE4E6", "bold": "#BE123C" },
294
+ "11": { "hue": "blue", "base": "#3B82F6", "subtle": "#DBEAFE", "bold": "#1D4ED8" },
295
+ "12": { "hue": "lime", "base": "#84CC16", "subtle": "#ECFCCB", "bold": "#4D7C0F" },
296
+ "13": { "hue": "amber", "base": "#F59E0B", "subtle": "#FEF3C7", "bold": "#B45309" },
297
+ "14": { "hue": "fuchsia", "base": "#D946EF", "subtle": "#FAE8FF", "bold": "#A21CAF" },
298
+ "15": { "hue": "purple", "base": "#A855F7", "subtle": "#F3E8FF", "bold": "#7E22CE" },
299
+ "16": { "hue": "violet", "base": "#8B5CF6", "subtle": "#EDE9FE", "bold": "#6D28D9" }
300
+ }
301
+ },
302
+ "semanticDark": {
303
+ "_doc": "ダークモード(.dark)の semantic トークン。テーマ差し替え(Brand)と mode 切り替え(light/dark)は直交した2軸。値は src/styles/semantic.css の .dark ブロックの機械可読ミラーで、__tests__/semantic-token-contract.test.ts が同期を保証する。実装は `<html class=\"dark\">` 等で .dark を付与すると Semantic 層が自動反転する(コンポーネント側の変更不要)。",
304
+ "surface": {
305
+ "primary": "var(--Primitive-Gray-900)",
306
+ "secondary": "var(--Primitive-Gray-800)",
307
+ "tertiary": "var(--Primitive-Gray-700)",
308
+ "quaternary": "var(--Primitive-Gray-600)",
309
+ "disable": "var(--Primitive-Gray-800)",
310
+ "inverse": "var(--Primitive-White)",
311
+ "accent-primary": "var(--Primitive-Brand-500)",
312
+ "accent-primary-light": "var(--Primitive-Brand-900)",
313
+ "accent-primary-ultra-light": "var(--Primitive-Brand-900)",
314
+ "caution": "#2d1414",
315
+ "success": "var(--Primitive-Green-900)",
316
+ "warning": "var(--Primitive-Amber-900)",
317
+ "info": "var(--Primitive-Blue-900)",
318
+ "caution-subtle": "rgba(248, 113, 113, 0.20)",
319
+ "success-subtle": "rgba(74, 222, 128, 0.20)",
320
+ "warning-subtle": "rgba(251, 146, 60, 0.20)",
321
+ "info-subtle": "rgba(96, 165, 250, 0.20)",
322
+ "accent-primary-subtle": "color-mix(in srgb, var(--Primitive-Brand-400) 20%, transparent)",
323
+ "caution-strong": "var(--Primitive-Red-500)",
324
+ "success-strong": "var(--Primitive-Green-500)",
325
+ "warning-strong": "var(--Primitive-Orange-500)",
326
+ "info-strong": "var(--Primitive-Blue-500)",
327
+ "videoOverlay-light": "rgba(0, 0, 0, 0.40)",
328
+ "videoOverlay-medium": "rgba(0, 0, 0, 0.60)",
329
+ "videoOverlay-strong": "rgba(0, 0, 0, 0.80)"
330
+ },
331
+ "text": {
332
+ "high-emphasis": "var(--Primitive-White-Alpha-1000)",
333
+ "medium-emphasis": "var(--Primitive-White-Alpha-800)",
334
+ "low-emphasis": "var(--Primitive-White-Alpha-600)",
335
+ "disable": "var(--Primitive-White-Alpha-400)",
336
+ "on-inverse": "var(--Primitive-Gray-900)",
337
+ "on-inverse-secondary": "var(--Primitive-Gray-700)",
338
+ "accent-primary": "var(--Primitive-Brand-400)",
339
+ "success": "var(--Primitive-Green-400)",
340
+ "caution": "var(--Primitive-Red-400)",
341
+ "warning": "var(--Primitive-Orange-400)",
342
+ "info": "var(--Primitive-Blue-400)"
343
+ },
344
+ "object": {
345
+ "high-emphasis": "var(--Primitive-White-Alpha-1000)",
346
+ "medium-emphasis": "var(--Primitive-White-Alpha-700)",
347
+ "low-emphasis": "var(--Primitive-White-Alpha-500)",
348
+ "disable": "var(--Primitive-White-Alpha-300)",
349
+ "on-inverse": "var(--Primitive-Gray-900)",
350
+ "accent-primary": "var(--Primitive-Brand-400)",
351
+ "caution": "var(--Primitive-Red-400)",
352
+ "success": "var(--Primitive-Green-400)",
353
+ "warning": "var(--Primitive-Orange-400)",
354
+ "info": "var(--Primitive-Blue-400)",
355
+ "favorite": "var(--Primitive-Red-400)",
356
+ "rating": "var(--Primitive-Amber-400)"
357
+ },
358
+ "border": {
359
+ "high-emphasis": "var(--Primitive-White-Alpha-500)",
360
+ "medium-emphasis": "var(--Primitive-White-Alpha-300)",
361
+ "low-emphasis": "var(--Primitive-White-Alpha-200)",
362
+ "disable": "var(--Primitive-White-Alpha-100)",
363
+ "accent-primary": "var(--Primitive-Brand-400)",
364
+ "caution": "var(--Primitive-Red-400)",
365
+ "success": "var(--Primitive-Green-400)",
366
+ "warning": "var(--Primitive-Orange-400)",
367
+ "info": "var(--Primitive-Blue-400)",
368
+ "accent-primary-subtle": "color-mix(in srgb, var(--Primitive-Brand-400) 40%, transparent)",
369
+ "caution-subtle": "rgba(248, 113, 113, 0.40)",
370
+ "success-subtle": "rgba(74, 222, 128, 0.40)",
371
+ "info-subtle": "rgba(96, 165, 250, 0.40)"
372
+ },
373
+ "brand": {
374
+ "primary": "var(--Primitive-Brand-400)",
375
+ "action": "var(--Primitive-Brand-300)",
376
+ "light": "var(--Primitive-Brand-900)",
377
+ "ultra-light": "var(--Primitive-Brand-900)"
378
+ },
379
+ "hover": {
380
+ "primary-button": "var(--Primitive-Brand-500)",
381
+ "secondary-button": "var(--Primitive-Brand-900)",
382
+ "tertiary-button": "var(--Primitive-White-Alpha-100)",
383
+ "ghost-button": "var(--Primitive-White-Alpha-100)",
384
+ "destructive-button": "var(--Primitive-Red-500)"
385
+ },
386
+ "active": {
387
+ "primary-button": "var(--Primitive-Brand-600)",
388
+ "secondary-button": "var(--Primitive-Brand-800)",
389
+ "tertiary-button": "var(--Primitive-White-Alpha-200)",
390
+ "destructive-button": "var(--Primitive-Red-600)"
391
+ },
392
+ "overlay": {
393
+ "dark": "var(--Primitive-Gray-Alpha-900)",
394
+ "medium": "var(--Primitive-Gray-Alpha-700)",
395
+ "light": "var(--Primitive-Gray-Alpha-400)"
396
+ },
397
+ "focus": {
398
+ "high-emphasis": "var(--Primitive-Brand-400)"
399
+ },
400
+ "caution": {
401
+ "base": "var(--Primitive-Red-400)",
402
+ "action": "var(--Primitive-Red-500)"
403
+ },
404
+ "success": {
405
+ "base": "var(--Primitive-Green-400)"
406
+ },
407
+ "warning": {
408
+ "base": "var(--Primitive-Orange-400)"
409
+ },
410
+ "info": {
411
+ "base": "var(--Primitive-Blue-400)"
412
+ }
413
+ }
414
+ },
415
+ "typography": {
416
+ "heading": {
417
+ "3xl": {
418
+ "size": "28px",
419
+ "weight": 700,
420
+ "lineHeight": 1.5,
421
+ "letterSpacing": "0.04em"
422
+ },
423
+ "2xl": {
424
+ "size": "24px",
425
+ "weight": 700,
426
+ "lineHeight": 1.5,
427
+ "letterSpacing": "0.04em"
428
+ },
429
+ "xl": {
430
+ "size": "21px",
431
+ "weight": 700,
432
+ "lineHeight": 1.5,
433
+ "letterSpacing": "0.04em"
434
+ },
435
+ "lg": {
436
+ "size": "18px",
437
+ "weight": 700,
438
+ "lineHeight": 1.5,
439
+ "letterSpacing": "0.04em"
440
+ },
441
+ "md": {
442
+ "size": "16px",
443
+ "weight": 700,
444
+ "lineHeight": 1.5,
445
+ "letterSpacing": "0.04em"
446
+ },
447
+ "sm": {
448
+ "size": "14px",
449
+ "weight": 700,
450
+ "lineHeight": 1.5,
451
+ "letterSpacing": "0.04em"
452
+ }
453
+ },
454
+ "body": {
455
+ "lg": {
456
+ "size": "16px",
457
+ "weight": 400,
458
+ "lineHeight": 1.75
459
+ },
460
+ "md": {
461
+ "size": "14px",
462
+ "weight": 400,
463
+ "lineHeight": 1.75
464
+ },
465
+ "sm": {
466
+ "size": "12px",
467
+ "weight": 400,
468
+ "lineHeight": 1.5
469
+ },
470
+ "xs": {
471
+ "size": "10px",
472
+ "weight": 400,
473
+ "lineHeight": 1.5,
474
+ "restriction": "本文禁止。補助ラベル/メタ情報専用。本文の下限は body.sm(12px)。"
475
+ }
476
+ },
477
+ "label": {
478
+ "lg": {
479
+ "size": "16px",
480
+ "weight": 700,
481
+ "lineHeight": 1.5,
482
+ "letterSpacing": "0.04em"
483
+ },
484
+ "md": {
485
+ "size": "14px",
486
+ "weight": 700,
487
+ "lineHeight": 1.5,
488
+ "letterSpacing": "0.04em"
489
+ },
490
+ "sm": {
491
+ "size": "12px",
492
+ "weight": 500,
493
+ "lineHeight": 1.5
494
+ },
495
+ "xs": {
496
+ "size": "10px",
497
+ "weight": 500,
498
+ "lineHeight": 1.5
499
+ }
500
+ },
501
+ "display": {
502
+ "xl": {
503
+ "size": "48px",
504
+ "weight": 700,
505
+ "lineHeight": 1.25,
506
+ "letterSpacing": "-0.02em"
507
+ },
508
+ "lg": {
509
+ "size": "36px",
510
+ "weight": 700,
511
+ "lineHeight": 1.3,
512
+ "letterSpacing": "-0.01em"
513
+ }
514
+ },
515
+ "caption": {
516
+ "size": "11px",
517
+ "weight": 400,
518
+ "lineHeight": 1.5,
519
+ "restriction": "非必須の注釈・法的表記のみ。本文には使わない(本文下限は body.sm=12px)。"
520
+ }
521
+ },
522
+ "spacing": {
523
+ "unit": "4px",
524
+ "scale": [
525
+ 0,
526
+ 4,
527
+ 8,
528
+ 12,
529
+ 16,
530
+ 20,
531
+ 24,
532
+ 28,
533
+ 32,
534
+ 36,
535
+ 40,
536
+ 44,
537
+ 48,
538
+ 52,
539
+ 56,
540
+ 60
541
+ ]
542
+ },
543
+ "borderRadius": {
544
+ "_doc": "キーは Tailwind v4 の rounded-* ユーティリティ名と一致し、値はそのクラスが実際に描画する px と同じ(独自の --radius-* @theme 上書きはせず、Tailwind v4 組み込みデフォルトをそのまま正本化)。none→sm(4)→md(6)→lg(8)→xl(12)→2xl(16)→full の連続スケールで『各クラスが何 px か』を漏れなく記載する。ただしコンポーネントで使う角丸語彙は意図的に絞っており、面/モーダル/シートは意味別トークン --Radius-Surface/Modal/Sheet を優先、素の rounded-* は contracts/rules.json P019 の許可セット(none/sm/md/lg/xl/2xl/full)に従う。md(6)/xl(12) は v1.32.0(Issue #35)で許可セットに追加。",
545
+ "none": "0px",
546
+ "sm": "4px",
547
+ "md": "6px",
548
+ "lg": "8px",
549
+ "xl": "12px",
550
+ "2xl": "16px",
551
+ "full": "9999px"
552
+ },
553
+ "shadows": {
554
+ "_doc": "影色はテーマ非依存の neutral(Gray-900 ベース rgba(17,24,39,…))。Brand を差し替えても影が色被りしないよう青固定を廃止。ダークモードでは黒影が機能しないため別途 .dark 向けの調整(glow 方向)が必要。",
555
+ "sm": "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
556
+ "md": "0 0 8px rgba(20, 20, 20, 0.08)",
557
+ "lg": "0px 12px 32px -4px rgba(17, 24, 39, 0.12), 0px 8px 16px -6px rgba(17, 24, 39, 0.12)",
558
+ "dialog": "0px 12px 32px -4px rgba(17, 24, 39, 0.12), 0px 8px 16px -6px rgba(17, 24, 39, 0.12), 0px 1px 4px 1px rgba(0, 0, 0, 0.2)",
559
+ "tooltip": "0px 8px 8px -4px rgba(17, 24, 39, 0.08), 0px 4px 6px -4px rgba(17, 24, 39, 0.12)"
560
+ },
561
+ "touchTargets": {
562
+ "_doc": "WCAG 2.5.5 (Target Size) / Apple HIG は 44×44 を最小推奨。主要操作(buttonCTA/iconButton/navItem/textInput)の min は 44px 以上。44 未満が避けられない chip は hitSlop(不可視の拡張タップ領域)で実効 44px を確保すること。",
563
+ "buttonCTA": {
564
+ "min": "44px",
565
+ "recommended": "48px"
566
+ },
567
+ "iconButton": {
568
+ "min": "44px",
569
+ "recommended": "48px"
570
+ },
571
+ "textInput": {
572
+ "min": "44px",
573
+ "recommended": "48px"
574
+ },
575
+ "chip": {
576
+ "min": "32px",
577
+ "recommended": "36px",
578
+ "hitSlop": "視覚 32〜36px + 透明拡張で実効 44px を確保する"
579
+ },
580
+ "navItem": {
581
+ "min": "44px",
582
+ "recommended": "48px"
583
+ }
584
+ },
585
+ "themes": {
586
+ "default": {
587
+ "brand500": "#3B82F6",
588
+ "label": "Default (Blue)"
589
+ },
590
+ "blue": {
591
+ "brand500": "#3B82F6",
592
+ "label": "Blue (= Default の明示エイリアス)"
593
+ },
594
+ "orange": {
595
+ "brand500": "#F97316",
596
+ "label": "Orange (EC)"
597
+ },
598
+ "green": {
599
+ "brand500": "#16A34A",
600
+ "label": "Green (Healthcare)"
601
+ },
602
+ "violet": {
603
+ "brand500": "#7C3AED",
604
+ "label": "Violet (Premium)"
605
+ }
606
+ }
607
+ }