@ippon-ui/ui 0.0.2

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 (246) hide show
  1. package/.agents/agents/component-library-create-from-pattern-library.agent.md +37 -0
  2. package/.agents/agents/patten-library-create-component.agent.md +30 -0
  3. package/.agents/skills/component-library/SKILL.md +169 -0
  4. package/.agents/skills/pattern-library/SKILL.md +277 -0
  5. package/.github/workflows/build.yml +34 -0
  6. package/.gitlab-ci.yml +12 -0
  7. package/.prettierignore +6 -0
  8. package/AGENTS.md +50 -0
  9. package/LICENSE +202 -0
  10. package/ci/build.yml +15 -0
  11. package/ci/common.yml +42 -0
  12. package/ci/deploy.yml +20 -0
  13. package/icons/LICENCE +202 -0
  14. package/icons/index.ts +69 -0
  15. package/icons/package.json +25 -0
  16. package/icons/tsconfig.json +11 -0
  17. package/lefthook.yml +10 -0
  18. package/mise.toml +55 -0
  19. package/package.json +26 -0
  20. package/pnpm-workspace.yaml +9 -0
  21. package/prettier.config.mts +8 -0
  22. package/react/LICENCE +202 -0
  23. package/react/README.md +75 -0
  24. package/react/eslint.config.js +22 -0
  25. package/react/package.json +63 -0
  26. package/react/src/CAP.ts +14 -0
  27. package/react/src/Card.ts +2 -0
  28. package/react/src/DataSelectable.ts +7 -0
  29. package/react/src/Grid.ts +33 -0
  30. package/react/src/IpponBadge.tsx +62 -0
  31. package/react/src/IpponButton.tsx +93 -0
  32. package/react/src/IpponButtonCard.tsx +34 -0
  33. package/react/src/IpponCard.tsx +30 -0
  34. package/react/src/IpponContainer.tsx +15 -0
  35. package/react/src/IpponGrid.tsx +56 -0
  36. package/react/src/IpponHSpace.tsx +56 -0
  37. package/react/src/IpponIcon.tsx +15 -0
  38. package/react/src/IpponImportFile.tsx +128 -0
  39. package/react/src/IpponIon.tsx +45 -0
  40. package/react/src/IpponMeter.tsx +43 -0
  41. package/react/src/IpponProgress.tsx +45 -0
  42. package/react/src/IpponText.tsx +56 -0
  43. package/react/src/IpponTitle.tsx +45 -0
  44. package/react/src/IpponVSpace.tsx +43 -0
  45. package/react/src/Optional.ts +177 -0
  46. package/react/src/Tokens.ts +36 -0
  47. package/react/src/index.ts +16 -0
  48. package/react/test/File.fixture.ts +13 -0
  49. package/react/test/IpponBadge.spec.tsx +245 -0
  50. package/react/test/IpponButton.spec.tsx +666 -0
  51. package/react/test/IpponButtonCard.spec.tsx +162 -0
  52. package/react/test/IpponCard.spec.tsx +133 -0
  53. package/react/test/IpponContainer.spec.tsx +56 -0
  54. package/react/test/IpponGrid.spec.tsx +140 -0
  55. package/react/test/IpponHSpace.spec.tsx +107 -0
  56. package/react/test/IpponIcon.spec.tsx +37 -0
  57. package/react/test/IpponImportFile.spec.tsx +431 -0
  58. package/react/test/IpponIon.spec.tsx +52 -0
  59. package/react/test/IpponMeter.spec.tsx +59 -0
  60. package/react/test/IpponProgress.spec.tsx +68 -0
  61. package/react/test/IpponText.spec.tsx +149 -0
  62. package/react/test/IpponTitle.spec.tsx +242 -0
  63. package/react/test/IpponVSpace.spec.tsx +91 -0
  64. package/react/tsconfig.app.json +24 -0
  65. package/react/tsconfig.json +4 -0
  66. package/react/tsconfig.node.json +23 -0
  67. package/react/vite.config.ts +30 -0
  68. package/react/vitest.config.ts +21 -0
  69. package/styles/.editorconfig +12 -0
  70. package/styles/.stylelintrc.json +75 -0
  71. package/styles/LICENCE +202 -0
  72. package/styles/README.md +107 -0
  73. package/styles/logo.svg +26 -0
  74. package/styles/package.json +67 -0
  75. package/styles/src/atom/_atom.scss +9 -0
  76. package/styles/src/atom/atom.pug +34 -0
  77. package/styles/src/atom/badge/_badge.scss +108 -0
  78. package/styles/src/atom/badge/badge.code.pug +29 -0
  79. package/styles/src/atom/badge/badge.md +1 -0
  80. package/styles/src/atom/badge/badge.mixin.pug +24 -0
  81. package/styles/src/atom/badge/badge.render.pug +7 -0
  82. package/styles/src/atom/button/_button.scss +242 -0
  83. package/styles/src/atom/button/button.code.pug +38 -0
  84. package/styles/src/atom/button/button.md +31 -0
  85. package/styles/src/atom/button/button.mixin.pug +30 -0
  86. package/styles/src/atom/button/button.render.pug +13 -0
  87. package/styles/src/atom/icon/_icon.scss +8 -0
  88. package/styles/src/atom/icon/icon.code.pug +5 -0
  89. package/styles/src/atom/icon/icon.md +11 -0
  90. package/styles/src/atom/icon/icon.mixin.pug +8 -0
  91. package/styles/src/atom/icon/icon.render.pug +7 -0
  92. package/styles/src/atom/ion/ion.code.pug +8 -0
  93. package/styles/src/atom/ion/ion.md +11 -0
  94. package/styles/src/atom/ion/ion.mixin.pug +8 -0
  95. package/styles/src/atom/ion/ion.render.pug +7 -0
  96. package/styles/src/atom/meter/_meter.scss +23 -0
  97. package/styles/src/atom/meter/meter.code.pug +8 -0
  98. package/styles/src/atom/meter/meter.md +7 -0
  99. package/styles/src/atom/meter/meter.mixin.pug +12 -0
  100. package/styles/src/atom/meter/meter.render.pug +5 -0
  101. package/styles/src/atom/progress/_progress.scss +23 -0
  102. package/styles/src/atom/progress/progress.code.pug +8 -0
  103. package/styles/src/atom/progress/progress.md +7 -0
  104. package/styles/src/atom/progress/progress.mixin.pug +14 -0
  105. package/styles/src/atom/progress/progress.render.pug +5 -0
  106. package/styles/src/atom/tab/_tab.scss +48 -0
  107. package/styles/src/atom/tab/tab.code.pug +5 -0
  108. package/styles/src/atom/tab/tab.md +1 -0
  109. package/styles/src/atom/tab/tab.mixin.pug +14 -0
  110. package/styles/src/atom/tab/tab.render.pug +4 -0
  111. package/styles/src/atom/text/_text.scss +74 -0
  112. package/styles/src/atom/text/text.code.pug +19 -0
  113. package/styles/src/atom/text/text.md +5 -0
  114. package/styles/src/atom/text/text.mixin.pug +12 -0
  115. package/styles/src/atom/text/text.render.pug +7 -0
  116. package/styles/src/atom/title/_title.scss +68 -0
  117. package/styles/src/atom/title/title.code.pug +25 -0
  118. package/styles/src/atom/title/title.md +9 -0
  119. package/styles/src/atom/title/title.mixin.pug +12 -0
  120. package/styles/src/atom/title/title.render.pug +5 -0
  121. package/styles/src/atom/title-display/_title-display.scss +26 -0
  122. package/styles/src/atom/title-display/title-display.code.pug +9 -0
  123. package/styles/src/atom/title-display/title-display.md +5 -0
  124. package/styles/src/atom/title-display/title-display.mixin.pug +6 -0
  125. package/styles/src/atom/title-display/title-display.render.pug +4 -0
  126. package/styles/src/doc.scss +2 -0
  127. package/styles/src/favicon.ico +0 -0
  128. package/styles/src/function/_conversion.scss +9 -0
  129. package/styles/src/index.pug +59 -0
  130. package/styles/src/layout-documentation.pug +14 -0
  131. package/styles/src/layout.pug +17 -0
  132. package/styles/src/molecule/_molecule.scss +2 -0
  133. package/styles/src/molecule/import-file/_import-file.scss +38 -0
  134. package/styles/src/molecule/import-file/import-file.code.pug +4 -0
  135. package/styles/src/molecule/import-file/import-file.md +1 -0
  136. package/styles/src/molecule/import-file/import-file.mixin.pug +15 -0
  137. package/styles/src/molecule/import-file/import-file.render.pug +5 -0
  138. package/styles/src/molecule/molecule.pug +20 -0
  139. package/styles/src/molecule/tabs/_tabs.scss +4 -0
  140. package/styles/src/molecule/tabs/tabs.code.pug +9 -0
  141. package/styles/src/molecule/tabs/tabs.md +1 -0
  142. package/styles/src/molecule/tabs/tabs.mixin.pug +4 -0
  143. package/styles/src/molecule/tabs/tabs.render.pug +4 -0
  144. package/styles/src/molecule/toggle/_toggle.scss +68 -0
  145. package/styles/src/molecule/toggle/toggle.code.pug +26 -0
  146. package/styles/src/molecule/toggle/toggle.md +1 -0
  147. package/styles/src/molecule/toggle/toggle.mixin.pug +36 -0
  148. package/styles/src/molecule/toggle/toggle.render.pug +5 -0
  149. package/styles/src/organism/_abstract-card.scss +36 -0
  150. package/styles/src/organism/_docorganism.scss +1 -0
  151. package/styles/src/organism/_organism.scss +8 -0
  152. package/styles/src/organism/button-card/_button-card.scss +22 -0
  153. package/styles/src/organism/button-card/button-card.code.pug +31 -0
  154. package/styles/src/organism/button-card/button-card.md +28 -0
  155. package/styles/src/organism/button-card/button-card.mixin.pug +8 -0
  156. package/styles/src/organism/button-card/button-card.render.pug +7 -0
  157. package/styles/src/organism/card/_card.scss +6 -0
  158. package/styles/src/organism/card/card.code.pug +9 -0
  159. package/styles/src/organism/card/card.md +23 -0
  160. package/styles/src/organism/card/card.mixin.pug +7 -0
  161. package/styles/src/organism/card/card.render.pug +7 -0
  162. package/styles/src/organism/container/_container.scss +3 -0
  163. package/styles/src/organism/container/container.code.pug +13 -0
  164. package/styles/src/organism/container/container.md +5 -0
  165. package/styles/src/organism/container/container.mixin.pug +3 -0
  166. package/styles/src/organism/container/container.render.pug +4 -0
  167. package/styles/src/organism/grid/_docgrid.scss +11 -0
  168. package/styles/src/organism/grid/_grid.scss +84 -0
  169. package/styles/src/organism/grid/grid.code.pug +25 -0
  170. package/styles/src/organism/grid/grid.md +1 -0
  171. package/styles/src/organism/grid/grid.mixin.pug +7 -0
  172. package/styles/src/organism/grid/grid.render.pug +5 -0
  173. package/styles/src/organism/h-space/_h-space.scss +49 -0
  174. package/styles/src/organism/h-space/h-space.code.pug +56 -0
  175. package/styles/src/organism/h-space/h-space.md +22 -0
  176. package/styles/src/organism/h-space/h-space.mixin.pug +14 -0
  177. package/styles/src/organism/h-space/h-space.render.pug +5 -0
  178. package/styles/src/organism/header/_header.scss +8 -0
  179. package/styles/src/organism/header/header.code.pug +14 -0
  180. package/styles/src/organism/header/header.md +1 -0
  181. package/styles/src/organism/header/header.mixin.pug +7 -0
  182. package/styles/src/organism/header/header.render.pug +4 -0
  183. package/styles/src/organism/modal/_modal.scss +58 -0
  184. package/styles/src/organism/modal/modal.code.pug +68 -0
  185. package/styles/src/organism/modal/modal.md +1 -0
  186. package/styles/src/organism/modal/modal.mixin.pug +25 -0
  187. package/styles/src/organism/modal/modal.render.pug +4 -0
  188. package/styles/src/organism/organism.pug +30 -0
  189. package/styles/src/organism/v-space/_v-space.scss +45 -0
  190. package/styles/src/organism/v-space/v-space.code.pug +41 -0
  191. package/styles/src/organism/v-space/v-space.md +20 -0
  192. package/styles/src/organism/v-space/v-space.mixin.pug +7 -0
  193. package/styles/src/organism/v-space/v-space.render.pug +5 -0
  194. package/styles/src/quark/_breakpoint.scss +12 -0
  195. package/styles/src/quark/_font.scss +38 -0
  196. package/styles/src/quark/_gap.scss +34 -0
  197. package/styles/src/quark/_placeholder.scss +27 -0
  198. package/styles/src/quark/_shadow.scss +13 -0
  199. package/styles/src/quark/_typography.scss +146 -0
  200. package/styles/src/template/_template.scss +1 -0
  201. package/styles/src/template/layout/_layout.scss +20 -0
  202. package/styles/src/template/layout/layout.code.pug +11 -0
  203. package/styles/src/template/layout/layout.md +1 -0
  204. package/styles/src/template/layout/layout.mixin.pug +11 -0
  205. package/styles/src/template/layout/layout.render.pug +4 -0
  206. package/styles/src/template/template.pug +16 -0
  207. package/styles/src/tikui.scss +5 -0
  208. package/styles/src/token/_doctable.scss +14 -0
  209. package/styles/src/token/_doctoken.scss +1 -0
  210. package/styles/src/token/_size.scss +9 -0
  211. package/styles/src/token/_token.scss +5 -0
  212. package/styles/src/token/color/_color.scss +9 -0
  213. package/styles/src/token/color/color/_base.scss +65 -0
  214. package/styles/src/token/color/color/_brand.scss +13 -0
  215. package/styles/src/token/color/color/_error.scss +13 -0
  216. package/styles/src/token/color/color/_information-2.scss +13 -0
  217. package/styles/src/token/color/color/_information.scss +13 -0
  218. package/styles/src/token/color/color/_neutral.scss +20 -0
  219. package/styles/src/token/color/color/_semantic.scss +69 -0
  220. package/styles/src/token/color/color/_success.scss +13 -0
  221. package/styles/src/token/color/color/_warning.scss +13 -0
  222. package/styles/src/token/color/color.js +31 -0
  223. package/styles/src/token/color/color.mixin.pug +19 -0
  224. package/styles/src/token/color/color.pug +9 -0
  225. package/styles/src/token/color/color.render.pug +13 -0
  226. package/styles/src/token/radius/_radius.scss +8 -0
  227. package/styles/src/token/radius/radius.js +54 -0
  228. package/styles/src/token/radius/radius.mixin.pug +14 -0
  229. package/styles/src/token/radius/radius.pug +9 -0
  230. package/styles/src/token/radius/radius.render.pug +11 -0
  231. package/styles/src/token/shadow/_shadow.scss +22 -0
  232. package/styles/src/token/shadow/shadow.js +45 -0
  233. package/styles/src/token/shadow/shadow.mixin.pug +13 -0
  234. package/styles/src/token/shadow/shadow.pug +9 -0
  235. package/styles/src/token/shadow/shadow.render.pug +9 -0
  236. package/styles/src/token/token.js +38 -0
  237. package/styles/src/token/token.pug +25 -0
  238. package/styles/src/token/typography/_typography.scss +103 -0
  239. package/styles/src/token/typography/typography.js +32 -0
  240. package/styles/src/token/typography/typography.mixin.pug +17 -0
  241. package/styles/src/token/typography/typography.pug +9 -0
  242. package/styles/src/token/typography/typography.render.pug +19 -0
  243. package/styles/test/function/conversion.test.scss +20 -0
  244. package/styles/test/function/sass.spec.ts +6 -0
  245. package/styles/tikuiconfig.json +14 -0
  246. package/styles/tsconfig.json +10 -0
@@ -0,0 +1,14 @@
1
+ .ipp-doc-table {
2
+ width: 100%;
3
+ border-collapse: collapse;
4
+ font-family: var(--ippon-typography-font);
5
+
6
+ &--cell {
7
+ padding: 0.5rem;
8
+ text-align: left;
9
+
10
+ &.-minimal {
11
+ width: 0;
12
+ }
13
+ }
14
+ }
@@ -0,0 +1 @@
1
+ @use 'doctable';
@@ -0,0 +1,9 @@
1
+ @use '../function/conversion';
2
+
3
+ $sizes: 2, 4, 8, 10, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 64, 886, 999;
4
+
5
+ :root {
6
+ @each $size in $sizes {
7
+ --ippon-size-#{$size}: #{conversion.to-rem($size * 1px)};
8
+ }
9
+ }
@@ -0,0 +1,5 @@
1
+ @use 'color/color';
2
+ @use 'radius/radius';
3
+ @use 'shadow/shadow';
4
+ @use 'typography/typography';
5
+ @use 'size';
@@ -0,0 +1,9 @@
1
+ @use 'color/base';
2
+ @use 'color/semantic';
3
+ @use 'color/brand';
4
+ @use 'color/information';
5
+ @use 'color/information-2';
6
+ @use 'color/success';
7
+ @use 'color/error';
8
+ @use 'color/warning';
9
+ @use 'color/neutral';
@@ -0,0 +1,65 @@
1
+ :root {
2
+ --ippon-color-brand-klein-100: #e6eeff;
3
+ --ippon-color-brand-klein-200: #ccd9ff;
4
+ --ippon-color-brand-klein-300: #99afff;
5
+ --ippon-color-brand-klein-400: #6685ff;
6
+ --ippon-color-brand-klein-500: #335cff;
7
+ --ippon-color-brand-klein-600: #003cdc;
8
+ --ippon-color-brand-klein-700: #002eb3;
9
+ --ippon-color-brand-klein-800: #001e8a;
10
+ --ippon-color-brand-klein-900: #001052;
11
+ --ippon-color-blue-100: #f1f9ff;
12
+ --ippon-color-blue-200: #eaf6ff;
13
+ --ippon-color-blue-300: #d4edff;
14
+ --ippon-color-blue-400: #74c4ff;
15
+ --ippon-color-blue-500: #68b0e6;
16
+ --ippon-color-blue-600: #5d9dcc;
17
+ --ippon-color-blue-700: #467699;
18
+ --ippon-color-blue-800: #345873;
19
+ --ippon-color-blue-900: #294559;
20
+ --ippon-color-blue-2-100: #e6f4ff;
21
+ --ippon-color-blue-2-200: #c7e4ff;
22
+ --ippon-color-blue-2-300: #94c9ff;
23
+ --ippon-color-blue-2-400: #60acff;
24
+ --ippon-color-blue-2-500: #2e90fa;
25
+ --ippon-color-blue-2-600: #0072c6;
26
+ --ippon-color-blue-2-700: #005c9e;
27
+ --ippon-color-blue-2-800: #004578;
28
+ --ippon-color-blue-2-900: #002e52;
29
+ --ippon-color-green-100: #ebf8f0;
30
+ --ippon-color-green-200: #e2f5e9;
31
+ --ippon-color-green-300: #c2ead1;
32
+ --ippon-color-green-400: #3bba6a;
33
+ --ippon-color-green-500: #35a75f;
34
+ --ippon-color-green-600: #2f9555;
35
+ --ippon-color-green-700: #267d47;
36
+ --ippon-color-green-800: #1e6338;
37
+ --ippon-color-green-900: #164d2b;
38
+ --ippon-color-yellow-100: #fff8ec;
39
+ --ippon-color-yellow-200: #fff5e3;
40
+ --ippon-color-yellow-300: #ffe9c5;
41
+ --ippon-color-yellow-400: #ffb945;
42
+ --ippon-color-yellow-500: #e6a73e;
43
+ --ippon-color-yellow-600: #cc9437;
44
+ --ippon-color-yellow-700: #bf8b34;
45
+ --ippon-color-yellow-800: #996f29;
46
+ --ippon-color-yellow-900: #73531f;
47
+ --ippon-color-orange-100: #fff0eb;
48
+ --ippon-color-orange-200: #ffe9e1;
49
+ --ippon-color-orange-300: #ffd1c0;
50
+ --ippon-color-orange-400: #ff6b34;
51
+ --ippon-color-orange-500: #e6602f;
52
+ --ippon-color-orange-600: #cc562a;
53
+ --ippon-color-orange-700: #bf5027;
54
+ --ippon-color-orange-800: #99401f;
55
+ --ippon-color-orange-900: #733017;
56
+ --ippon-color-red-100: #fce9e9;
57
+ --ippon-color-red-200: #fbdede;
58
+ --ippon-color-red-300: #ffc9c9;
59
+ --ippon-color-red-400: #e12121;
60
+ --ippon-color-red-500: #cb1e1e;
61
+ --ippon-color-red-600: #b41a1a;
62
+ --ippon-color-red-700: #a91919;
63
+ --ippon-color-red-800: #871414;
64
+ --ippon-color-red-900: #650f0f;
65
+ }
@@ -0,0 +1,13 @@
1
+ :root {
2
+ --ippon-color-brand-surface-primary: var(--ippon-color-default-700);
3
+ --ippon-color-brand-surface-primary-hover: var(--ippon-color-default-800);
4
+ --ippon-color-brand-surface-primary-active: var(--ippon-color-default-900);
5
+ --ippon-color-brand-surface-secondary: var(--ippon-color-default-100);
6
+ --ippon-color-brand-surface-secondary-hover: var(--ippon-color-default-200);
7
+ --ippon-color-brand-surface-secondary-active: var(--ippon-color-default-300);
8
+ --ippon-color-brand-text-icon-primary: var(--ippon-color-default-600);
9
+ --ippon-color-brand-text-icon-secondary: var(--ippon-color-default-800);
10
+ --ippon-color-brand-text-icon-on-primary: var(--ippon-color-neutral-0);
11
+ --ippon-color-brand-text-icon-on-secondary: var(--ippon-color-default-700);
12
+ --ippon-color-brand-border: var(--ippon-color-default-500);
13
+ }
@@ -0,0 +1,13 @@
1
+ :root {
2
+ --ippon-color-error-surface-primary: var(--ippon-color-negative-700);
3
+ --ippon-color-error-surface-primary-hover: var(--ippon-color-negative-800);
4
+ --ippon-color-error-surface-primary-active: var(--ippon-color-negative-900);
5
+ --ippon-color-error-surface-secondary: var(--ippon-color-negative-100);
6
+ --ippon-color-error-surface-secondary-hover: var(--ippon-color-negative-200);
7
+ --ippon-color-error-surface-secondary-active: var(--ippon-color-negative-300);
8
+ --ippon-color-error-text-icon-primary: var(--ippon-color-negative-600);
9
+ --ippon-color-error-text-icon-secondary: var(--ippon-color-negative-800);
10
+ --ippon-color-error-text-icon-on-primary: var(--ippon-color-neutral-0);
11
+ --ippon-color-error-text-icon-on-secondary: var(--ippon-color-negative-700);
12
+ --ippon-color-error-border: var(--ippon-color-negative-500);
13
+ }
@@ -0,0 +1,13 @@
1
+ :root {
2
+ --ippon-color-information-2-surface-primary: var(--ippon-color-information-2-600);
3
+ --ippon-color-information-2-surface-primary-hover: var(--ippon-color-information-2-700);
4
+ --ippon-color-information-2-surface-primary-active: var(--ippon-color-information-2-800);
5
+ --ippon-color-information-2-surface-secondary: var(--ippon-color-information-2-100);
6
+ --ippon-color-information-2-surface-secondary-hover: var(--ippon-color-information-2-200);
7
+ --ippon-color-information-2-surface-secondary-active: var(--ippon-color-information-2-300);
8
+ --ippon-color-information-2-text-icon-primary: var(--ippon-color-information-2-500);
9
+ --ippon-color-information-2-text-icon-secondary: var(--ippon-color-information-2-600);
10
+ --ippon-color-information-2-text-icon-on-primary: var(--ippon-color-neutral-0);
11
+ --ippon-color-information-2-text-icon-on-secondary: var(--ippon-color-information-2-700);
12
+ --ippon-color-information-2-border: var(--ippon-color-information-2-500);
13
+ }
@@ -0,0 +1,13 @@
1
+ :root {
2
+ --ippon-color-information-surface-primary: var(--ippon-color-information-700);
3
+ --ippon-color-information-surface-primary-hover: var(--ippon-color-information-800);
4
+ --ippon-color-information-surface-primary-active: var(--ippon-color-information-900);
5
+ --ippon-color-information-surface-secondary: var(--ippon-color-information-100);
6
+ --ippon-color-information-surface-secondary-hover: var(--ippon-color-information-200);
7
+ --ippon-color-information-surface-secondary-active: var(--ippon-color-information-300);
8
+ --ippon-color-information-text-icon-primary: var(--ippon-color-information-600);
9
+ --ippon-color-information-text-icon-secondary: var(--ippon-color-information-800);
10
+ --ippon-color-information-text-icon-on-primary: var(--ippon-color-neutral-0);
11
+ --ippon-color-information-text-icon-on-secondary: var(--ippon-color-information-700);
12
+ --ippon-color-information-border: var(--ippon-color-information-500);
13
+ }
@@ -0,0 +1,20 @@
1
+ :root {
2
+ --ippon-color-neutral-surface-primary: var(--ippon-color-neutral-0);
3
+ --ippon-color-neutral-surface-primary-hover: var(--ippon-color-neutral-100);
4
+ --ippon-color-neutral-surface-primary-active: var(--ippon-color-neutral-200);
5
+ --ippon-color-neutral-surface-secondary: var(--ippon-color-neutral-100);
6
+ --ippon-color-neutral-surface-secondary-hover: var(--ippon-color-neutral-200);
7
+ --ippon-color-neutral-surface-secondary-active: var(--ippon-color-neutral-300);
8
+ --ippon-color-neutral-surface-secondary2: var(--ippon-color-neutral-150);
9
+ --ippon-color-neutral-surface-tertiary: var(--ippon-color-neutral-300);
10
+ --ippon-color-neutral-surface-tertiary-hover: var(--ippon-color-neutral-400);
11
+ --ippon-color-neutral-surface-tertiary-active: var(--ippon-color-neutral-500);
12
+ --ippon-color-neutral-text-icon-primary: var(--ippon-color-neutral-900);
13
+ --ippon-color-neutral-text-icon-secondary: var(--ippon-color-neutral-800);
14
+ --ippon-color-neutral-text-icon-tertiary: var(--ippon-color-neutral-600);
15
+ --ippon-color-neutral-text-icon-tertiary-inversed: var(--ippon-color-neutral-400);
16
+ --ippon-color-neutral-text-icon-on-primary: var(--ippon-color-neutral-900);
17
+ --ippon-color-neutral-text-icon-on-secondary: var(--ippon-color-neutral-700);
18
+ --ippon-color-neutral-text-icon-on-tertiary: var(--ippon-color-neutral-900);
19
+ --ippon-color-neutral-border: var(--ippon-color-neutral-300);
20
+ }
@@ -0,0 +1,69 @@
1
+ :root {
2
+ --ippon-color-neutral-0: #fff;
3
+ --ippon-color-neutral-50: #fbfcfe;
4
+ --ippon-color-neutral-100: #f9fafb;
5
+ --ippon-color-neutral-150: #eff2f6;
6
+ --ippon-color-neutral-200: #eaecf0;
7
+ --ippon-color-neutral-300: #d0d5dd;
8
+ --ippon-color-neutral-400: #98a2b3;
9
+ --ippon-color-neutral-500: #667085;
10
+ --ippon-color-neutral-600: #475467;
11
+ --ippon-color-neutral-700: #344054;
12
+ --ippon-color-neutral-800: #1d2939;
13
+ --ippon-color-neutral-900: #191919;
14
+ --ippon-color-neutral-999: #000;
15
+ --ippon-color-default-100: var(--ippon-color-brand-klein-100);
16
+ --ippon-color-default-200: var(--ippon-color-brand-klein-200);
17
+ --ippon-color-default-300: var(--ippon-color-brand-klein-300);
18
+ --ippon-color-default-400: var(--ippon-color-brand-klein-400);
19
+ --ippon-color-default-500: var(--ippon-color-brand-klein-500);
20
+ --ippon-color-default-600: var(--ippon-color-brand-klein-600);
21
+ --ippon-color-default-700: var(--ippon-color-brand-klein-700);
22
+ --ippon-color-default-800: var(--ippon-color-brand-klein-800);
23
+ --ippon-color-default-900: var(--ippon-color-brand-klein-900);
24
+ --ippon-color-positive-100: var(--ippon-color-green-100);
25
+ --ippon-color-positive-200: var(--ippon-color-green-200);
26
+ --ippon-color-positive-300: var(--ippon-color-green-300);
27
+ --ippon-color-positive-400: var(--ippon-color-green-400);
28
+ --ippon-color-positive-500: var(--ippon-color-green-500);
29
+ --ippon-color-positive-600: var(--ippon-color-green-600);
30
+ --ippon-color-positive-700: var(--ippon-color-green-700);
31
+ --ippon-color-positive-800: var(--ippon-color-green-800);
32
+ --ippon-color-positive-900: var(--ippon-color-green-900);
33
+ --ippon-color-information-100: var(--ippon-color-blue-100);
34
+ --ippon-color-information-200: var(--ippon-color-blue-200);
35
+ --ippon-color-information-300: var(--ippon-color-blue-300);
36
+ --ippon-color-information-400: var(--ippon-color-blue-400);
37
+ --ippon-color-information-500: var(--ippon-color-blue-500);
38
+ --ippon-color-information-600: var(--ippon-color-blue-600);
39
+ --ippon-color-information-700: var(--ippon-color-blue-700);
40
+ --ippon-color-information-800: var(--ippon-color-blue-800);
41
+ --ippon-color-information-900: var(--ippon-color-blue-900);
42
+ --ippon-color-information-2-100: var(--ippon-color-blue-2-100);
43
+ --ippon-color-information-2-200: var(--ippon-color-blue-2-200);
44
+ --ippon-color-information-2-300: var(--ippon-color-blue-2-300);
45
+ --ippon-color-information-2-400: var(--ippon-color-blue-2-400);
46
+ --ippon-color-information-2-500: var(--ippon-color-blue-2-500);
47
+ --ippon-color-information-2-600: var(--ippon-color-blue-2-600);
48
+ --ippon-color-information-2-700: var(--ippon-color-blue-2-700);
49
+ --ippon-color-information-2-800: var(--ippon-color-blue-2-800);
50
+ --ippon-color-information-2-900: var(--ippon-color-blue-2-900);
51
+ --ippon-color-negative-100: var(--ippon-color-red-100);
52
+ --ippon-color-negative-200: var(--ippon-color-red-200);
53
+ --ippon-color-negative-300: var(--ippon-color-red-300);
54
+ --ippon-color-negative-400: var(--ippon-color-red-400);
55
+ --ippon-color-negative-500: var(--ippon-color-red-500);
56
+ --ippon-color-negative-600: var(--ippon-color-red-600);
57
+ --ippon-color-negative-700: var(--ippon-color-red-700);
58
+ --ippon-color-negative-800: var(--ippon-color-red-800);
59
+ --ippon-color-negative-900: var(--ippon-color-red-900);
60
+ --ippon-color-warning-100: var(--ippon-color-yellow-100);
61
+ --ippon-color-warning-200: var(--ippon-color-yellow-200);
62
+ --ippon-color-warning-300: var(--ippon-color-yellow-300);
63
+ --ippon-color-warning-400: var(--ippon-color-yellow-400);
64
+ --ippon-color-warning-500: var(--ippon-color-yellow-500);
65
+ --ippon-color-warning-600: var(--ippon-color-yellow-600);
66
+ --ippon-color-warning-700: var(--ippon-color-yellow-700);
67
+ --ippon-color-warning-800: var(--ippon-color-yellow-800);
68
+ --ippon-color-warning-900: var(--ippon-color-yellow-900);
69
+ }
@@ -0,0 +1,13 @@
1
+ :root {
2
+ --ippon-color-success-surface-primary: var(--ippon-color-positive-700);
3
+ --ippon-color-success-surface-primary-hover: var(--ippon-color-positive-800);
4
+ --ippon-color-success-surface-primary-active: var(--ippon-color-positive-900);
5
+ --ippon-color-success-surface-secondary: var(--ippon-color-positive-100);
6
+ --ippon-color-success-surface-secondary-hover: var(--ippon-color-positive-200);
7
+ --ippon-color-success-surface-secondary-active: var(--ippon-color-positive-300);
8
+ --ippon-color-success-text-icon-primary: var(--ippon-color-positive-600);
9
+ --ippon-color-success-text-icon-secondary: var(--ippon-color-positive-800);
10
+ --ippon-color-success-text-icon-on-primary: var(--ippon-color-neutral-0);
11
+ --ippon-color-success-text-icon-on-secondary: var(--ippon-color-positive-700);
12
+ --ippon-color-success-border: var(--ippon-color-positive-500);
13
+ }
@@ -0,0 +1,13 @@
1
+ :root {
2
+ --ippon-color-warning-surface-primary: var(--ippon-color-warning-700);
3
+ --ippon-color-warning-surface-primary-hover: var(--ippon-color-warning-800);
4
+ --ippon-color-warning-surface-primary-active: var(--ippon-color-warning-900);
5
+ --ippon-color-warning-surface-secondary: var(--ippon-color-warning-100);
6
+ --ippon-color-warning-surface-secondary-hover: var(--ippon-color-warning-200);
7
+ --ippon-color-warning-surface-secondary-active: var(--ippon-color-warning-300);
8
+ --ippon-color-warning-text-icon-primary: var(--ippon-color-warning-600);
9
+ --ippon-color-warning-text-icon-secondary: var(--ippon-color-warning-800);
10
+ --ippon-color-warning-text-icon-on-primary: var(--ippon-color-neutral-0);
11
+ --ippon-color-warning-text-icon-on-secondary: var(--ippon-color-warning-700);
12
+ --ippon-color-warning-border: var(--ippon-color-warning-500);
13
+ }
@@ -0,0 +1,31 @@
1
+ import { makeTextTd } from '../token.js';
2
+
3
+ export const ipponTokenColor = (colorsList, color) => {
4
+ const colors = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 999].flatMap((quantity) => {
5
+ const prop = `${color}-${quantity}`;
6
+ const value = window.getComputedStyle(document.body).getPropertyValue(prop);
7
+ if (value === undefined || value === '') {
8
+ return [];
9
+ }
10
+ return [{ prop, value }];
11
+ });
12
+
13
+ const addToColorsList = ({ prop, value }) => {
14
+ const tr = document.createElement('tr');
15
+ const tdName = makeTextTd({ text: prop });
16
+ const tdValue = makeTextTd({ text: value.toString(), minimal: true });
17
+ const tdPreview = makeTextTd({ minimal: true });
18
+ const previewBox = document.createElement('div');
19
+ previewBox.style.width = '40px';
20
+ previewBox.style.height = '20px';
21
+ previewBox.style.backgroundColor = value.toString();
22
+ previewBox.style.border = '1px solid #0000001A';
23
+ tdPreview.appendChild(previewBox);
24
+ tr.appendChild(tdName);
25
+ tr.appendChild(tdValue);
26
+ tr.appendChild(tdPreview);
27
+ colorsList.append(tr);
28
+ };
29
+
30
+ colors.forEach((color) => addToColorsList(color));
31
+ };
@@ -0,0 +1,19 @@
1
+ mixin ippon-color(color)
2
+ - const id = `ippon-color-${color}`;
3
+ - const colorVar = `--ippon-color-${color}`;
4
+ section
5
+ h3= color
6
+ table.ipp-doc-table
7
+ thead
8
+ tr
9
+ th.ipp-doc-table--cell Name
10
+ th.ipp-doc-table--cell Value
11
+ th.ipp-doc-table--cell Preview
12
+ tbody(id=id)
13
+ script(type='module').
14
+ import { ipponTokenColor } from '[[TIKUI_BASEPATH]]token/color/color.js';
15
+
16
+ (() => {
17
+ const colorsList = document.getElementById('#{id}');
18
+ ipponTokenColor(colorsList, '#{colorVar}');
19
+ })();
@@ -0,0 +1,9 @@
1
+ .tikui-vertical-spacing.-s24
2
+ .tikui-vertical-spacing--line
3
+ h2#color.tikui-title-section Colors
4
+ .tikui-vertical-spacing--line
5
+ iframe(
6
+ src='[[TIKUI_BASEPATH]]token/color/color.render.html',
7
+ onload='javascript:(function(o){o.style.height=o.contentWindow.document.body.scrollHeight+30+"px";}(this));',
8
+ style='height: 200px; width: 100%; border: none; overflow: hidden'
9
+ )
@@ -0,0 +1,13 @@
1
+ extends /layout
2
+
3
+ include color.mixin.pug
4
+
5
+ block body
6
+ +ippon-color('neutral')
7
+ +ippon-color('brand-klein')
8
+ +ippon-color('information')
9
+ +ippon-color('information-2')
10
+ +ippon-color('positive')
11
+ +ippon-color('negative')
12
+ +ippon-color('warning')
13
+ +ippon-color('orange')
@@ -0,0 +1,8 @@
1
+ :root {
2
+ --ippon-radius-round: 50%;
3
+ --ippon-radius-pill: var(--ippon-size-999);
4
+ --ippon-radius-xxl: var(--ippon-size-16);
5
+ --ippon-radius-xl: var(--ippon-size-12);
6
+ --ippon-radius-l: var(--ippon-size-8);
7
+ --ippon-radius-m: var(--ippon-size-4);
8
+ }
@@ -0,0 +1,54 @@
1
+ import { makeContentTd, makeTextTd, makeTh, makeLine, propToValue } from '../token.js';
2
+
3
+ export const ipponTokenRadius = (radiusList, radius) => {
4
+ const makeKeyContentLine = (key, content) => {
5
+ if (content === undefined || content === null) {
6
+ return;
7
+ }
8
+ const line = makeLine();
9
+ const thKey = makeTh(key);
10
+ const tdValue = makeContentTd({ content });
11
+ line.append(thKey);
12
+ line.append(tdValue);
13
+
14
+ return line;
15
+ };
16
+
17
+ const makeKeyValueLine = (key, value) => {
18
+ if (value === undefined || value === '') {
19
+ return;
20
+ }
21
+ const line = makeLine();
22
+ const thKey = makeTh(key);
23
+ const tdValue = makeTextTd({ text: value });
24
+ line.append(thKey);
25
+ line.append(tdValue);
26
+
27
+ return line;
28
+ };
29
+
30
+ const appendValueToRadiusList = (key, value) => {
31
+ const line = makeKeyValueLine(key, value);
32
+ if (line) {
33
+ radiusList.append(line);
34
+ }
35
+ };
36
+
37
+ const appendContentToRadiusList = (key, content) => {
38
+ const line = makeKeyContentLine(key, content);
39
+ if (line) {
40
+ radiusList.append(line);
41
+ }
42
+ };
43
+
44
+ appendValueToRadiusList('Name', radius);
45
+ appendValueToRadiusList('Size', propToValue(radius));
46
+ const previewBox = document.createElement('div');
47
+ previewBox.style.width = '100px';
48
+ previewBox.style.height = '50px';
49
+ previewBox.style.borderRadius = `var(${radius})`;
50
+ previewBox.style.backgroundColor = '#000';
51
+ previewBox.style.boxShadow = '0 0 3px #fff';
52
+
53
+ appendContentToRadiusList('Preview', previewBox);
54
+ };
@@ -0,0 +1,14 @@
1
+ mixin ippon-radius(radius)
2
+ - const id = `ippon-radius-${radius}`;
3
+ - const radiusVar = `--ippon-radius-${radius}`;
4
+ section
5
+ h3= radius
6
+ table.ipp-doc-table
7
+ tbody(id=id)
8
+ script(type='module').
9
+ import { ipponTokenRadius } from '[[TIKUI_BASEPATH]]token/radius/radius.js';
10
+
11
+ (() => {
12
+ const radiusList = document.getElementById('#{id}');
13
+ ipponTokenRadius(radiusList, '#{radiusVar}');
14
+ })();
@@ -0,0 +1,9 @@
1
+ .tikui-vertical-spacing.-s24
2
+ .tikui-vertical-spacing--line
3
+ h2#radius.tikui-title-section Radius
4
+ .tikui-vertical-spacing--line
5
+ iframe(
6
+ src='[[TIKUI_BASEPATH]]token/radius/radius.render.html',
7
+ onload='javascript:(function(o){o.style.height=o.contentWindow.document.body.scrollHeight+30+"px";}(this));',
8
+ style='height: 200px; width: 100%; border: none; overflow: hidden'
9
+ )
@@ -0,0 +1,11 @@
1
+ extends /layout
2
+
3
+ include radius.mixin.pug
4
+
5
+ block body
6
+ +ippon-radius('round')
7
+ +ippon-radius('pill')
8
+ +ippon-radius('xxl')
9
+ +ippon-radius('xl')
10
+ +ippon-radius('l')
11
+ +ippon-radius('m')
@@ -0,0 +1,22 @@
1
+ $shadow-levels: 1, 2, 3, 4, 5, 6;
2
+
3
+ :root {
4
+ --ippon-shadow-l1:
5
+ 0px 0px 2px color-mix(in srgb, var(--ippon-color-neutral-999) 8%, transparent),
6
+ 0px 2px 4px color-mix(in srgb, var(--ippon-color-neutral-999) 8%, transparent);
7
+ --ippon-shadow-l2:
8
+ 0px 0px 4px color-mix(in srgb, var(--ippon-color-neutral-999) 8%, transparent),
9
+ 0px 4px 8px color-mix(in srgb, var(--ippon-color-neutral-999) 10%, transparent);
10
+ --ippon-shadow-l3:
11
+ 0px 0px 6px color-mix(in srgb, var(--ippon-color-neutral-999) 8%, transparent),
12
+ 0px 8px 16px color-mix(in srgb, var(--ippon-color-neutral-999) 10%, transparent);
13
+ --ippon-shadow-l4:
14
+ 0px 0px 8px color-mix(in srgb, var(--ippon-color-neutral-999) 8%, transparent),
15
+ 0px 10px 20px color-mix(in srgb, var(--ippon-color-neutral-999) 10%, transparent);
16
+ --ippon-shadow-l5:
17
+ 0px 0px 10px color-mix(in srgb, var(--ippon-color-neutral-999) 8%, transparent),
18
+ 0px 12px 24px color-mix(in srgb, var(--ippon-color-neutral-999) 10%, transparent);
19
+ --ippon-shadow-l6:
20
+ 0px 0px 12px color-mix(in srgb, var(--ippon-color-neutral-999) 8%, transparent),
21
+ 0px 16px 32px color-mix(in srgb, var(--ippon-color-neutral-999) 10%, transparent);
22
+ }
@@ -0,0 +1,45 @@
1
+ import { makeContentTd, makeTextTd, makeTh, makeLine, propToValue } from '../token.js';
2
+ export const ipponTokenShadow = (shadowList, shadow) => {
3
+ const makeKeyValueLine = (key, value) => {
4
+ if (value === undefined || value === '') {
5
+ return;
6
+ }
7
+ const line = makeLine();
8
+ const thKey = makeTh(key);
9
+ const tdValue = makeTextTd({ text: value });
10
+ line.append(thKey);
11
+ line.append(tdValue);
12
+ return line;
13
+ };
14
+ const makeKeyContentLine = (key, content) => {
15
+ if (content === undefined || content === null) {
16
+ return;
17
+ }
18
+ const line = makeLine();
19
+ const thKey = makeTh(key);
20
+ const tdValue = makeContentTd({ content });
21
+ line.append(thKey);
22
+ line.append(tdValue);
23
+ return line;
24
+ };
25
+ const appendValueToShadowList = (key, value) => {
26
+ const line = makeKeyValueLine(key, value);
27
+ if (line) {
28
+ shadowList.append(line);
29
+ }
30
+ };
31
+ const appendContentToShadowList = (key, content) => {
32
+ const line = makeKeyContentLine(key, content);
33
+ if (line) {
34
+ shadowList.append(line);
35
+ }
36
+ };
37
+ appendValueToShadowList('Name', shadow);
38
+ appendValueToShadowList('Value', propToValue(shadow));
39
+ const previewBox = document.createElement('div');
40
+ previewBox.style.width = '100px';
41
+ previewBox.style.height = '50px';
42
+ previewBox.style.boxShadow = `var(${shadow})`;
43
+ previewBox.style.backgroundColor = '#fff';
44
+ appendContentToShadowList('Preview', previewBox);
45
+ };
@@ -0,0 +1,13 @@
1
+ mixin ippon-shadow(level)
2
+ - const id = `ippon-shadow-${level}`;
3
+ - const shadowVar = `--ippon-shadow-${level}`;
4
+ section
5
+ h3= level
6
+ table.ipp-doc-table
7
+ tbody(id=id)
8
+ script(type='module').
9
+ import { ipponTokenShadow } from '[[TIKUI_BASEPATH]]token/shadow/shadow.js';
10
+ (() => {
11
+ const shadowList = document.getElementById('#{id}');
12
+ ipponTokenShadow(shadowList, '#{shadowVar}');
13
+ })();
@@ -0,0 +1,9 @@
1
+ .tikui-vertical-spacing.-s24
2
+ .tikui-vertical-spacing--line
3
+ h2#shadow.tikui-title-section Shadow
4
+ .tikui-vertical-spacing--line
5
+ iframe(
6
+ src='[[TIKUI_BASEPATH]]token/shadow/shadow.render.html',
7
+ onload='javascript:(function(o){o.style.height=o.contentWindow.document.body.scrollHeight+80+"px";}(this));',
8
+ style='height: 200px; width: 100%; border: none; overflow: hidden'
9
+ )
@@ -0,0 +1,9 @@
1
+ extends /layout
2
+ include shadow.mixin.pug
3
+ block body
4
+ +ippon-shadow('l1')
5
+ +ippon-shadow('l2')
6
+ +ippon-shadow('l3')
7
+ +ippon-shadow('l4')
8
+ +ippon-shadow('l5')
9
+ +ippon-shadow('l6')
@@ -0,0 +1,38 @@
1
+ export const makeTd = ({ minimal } = {}) => {
2
+ const td = document.createElement('td');
3
+ td.classList.add('ipp-doc-table--cell');
4
+ if (minimal) {
5
+ td.classList.add('-minimal');
6
+ }
7
+ return td;
8
+ };
9
+
10
+ export const makeContentTd = ({ content, minimal } = {}) => {
11
+ const td = makeTd({ minimal });
12
+ if (content) {
13
+ td.append(content);
14
+ }
15
+ return td;
16
+ };
17
+
18
+ export const makeTextTd = ({ text, minimal } = {}) => {
19
+ const td = makeTd({ minimal });
20
+ if (text) {
21
+ td.textContent = text;
22
+ }
23
+ return td;
24
+ };
25
+
26
+ export const makeTh = (content) => {
27
+ const th = document.createElement('th');
28
+ if (content) {
29
+ th.textContent = content;
30
+ }
31
+ th.classList.add('ipp-doc-table--cell');
32
+ th.classList.add('-minimal');
33
+ return th;
34
+ };
35
+
36
+ export const makeLine = () => document.createElement('tr');
37
+
38
+ export const propToValue = (prop) => window.getComputedStyle(document.body).getPropertyValue(prop);
@@ -0,0 +1,25 @@
1
+ extends /layout-documentation
2
+
3
+ block append vars
4
+ - active = 'token';
5
+
6
+ block title
7
+ title Tikui - Tokens
8
+
9
+ block content
10
+ .tikui-vertical-spacing.-s32
11
+ .tikui-vertical-spacing--line
12
+ h1#tokens.tikui-title-main Tokens
13
+ .tikui-vertical-spacing--line
14
+ figure.tikui-quote
15
+ blockquote.tikui-quote--text
16
+ p « Design Tokens are a methodology. IMHO, saying “design tokens are just variables” is like saying “responsive design is just media queries”. It’s a technology-agnostic architecture and process for scaling design across multiple platforms and devices, including native, and more. »
17
+ figcaption.tikui-quote--author Jina Anne
18
+ .tikui-vertical-spacing--line
19
+ include color/color
20
+ .tikui-vertical-spacing--line
21
+ include radius/radius
22
+ .tikui-vertical-spacing--line
23
+ include shadow/shadow
24
+ .tikui-vertical-spacing--line
25
+ include typography/typography