@orioncactuscorp/ui 1.9.2 โ†’ 1.11.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 (99) hide show
  1. package/README.md +119 -54
  2. package/dist/components/Accordion/Accordion.css +1 -1
  3. package/dist/components/Accordion/Accordion.js +169 -177
  4. package/dist/components/ActionArea/ActionAreaLayout.js +20 -24
  5. package/dist/components/Cell/Cell.css +1 -1
  6. package/dist/components/Cell/Cell.js +57 -58
  7. package/dist/components/CheckMark/CheckMark.css +1 -1
  8. package/dist/components/Checkbox/Checkbox.css +1 -1
  9. package/dist/components/Checkbox/Checkbox.js +50 -51
  10. package/dist/components/Menu/Menu.css +1 -1
  11. package/dist/components/Menu/Menu.module.scss.js +20 -22
  12. package/dist/components/Modal/Modal.css +1 -1
  13. package/dist/components/Modal/Modal.js +585 -575
  14. package/dist/components/Modal/bottomSheetGeometry.js +46 -33
  15. package/dist/components/Modal/modalScrollArbitration.js +71 -49
  16. package/dist/components/Modal/snapPoints.js +42 -38
  17. package/dist/components/Modal/useModalContentBlockTransition.js +49 -44
  18. package/dist/components/Modal/useModalDrag.js +937 -854
  19. package/dist/components/Radio/Radio.css +1 -1
  20. package/dist/components/ScrollArea/ScrollArea.js +197 -200
  21. package/dist/components/Select/Select.js +31 -34
  22. package/dist/components/Switch/Switch.css +1 -1
  23. package/dist/components/Tabs/Tabs.css +1 -0
  24. package/dist/components/Tabs/Tabs.js +208 -0
  25. package/dist/components/Tabs/Tabs.module.scss.js +27 -0
  26. package/dist/components/Tabs.d.ts +6 -0
  27. package/dist/components/Tabs.js +8 -0
  28. package/dist/components/TextArea/TextArea.js +57 -58
  29. package/dist/components/TextInput/TextInput.js +30 -33
  30. package/dist/components/Tooltip/Tooltip.css +1 -1
  31. package/dist/foundations/color.theme.dark.css +1 -1
  32. package/dist/foundations/color.theme.light.css +1 -1
  33. package/dist/foundations/focus.css +1 -0
  34. package/dist/foundations/reset.css +1 -1
  35. package/dist/foundations.css +4 -3
  36. package/dist/index.js +69 -64
  37. package/dist/react/motion.js +31 -35
  38. package/dist/reset.css +1 -1
  39. package/dist/styles.css +14 -12
  40. package/dist/ui/src/components/Accordion/Accordion.d.ts.map +1 -1
  41. package/dist/ui/src/components/ActionArea/ActionAreaLayout.d.ts.map +1 -1
  42. package/dist/ui/src/components/Cell/Cell.d.ts.map +1 -1
  43. package/dist/ui/src/components/CheckMark/types.d.ts +10 -0
  44. package/dist/ui/src/components/CheckMark/types.d.ts.map +1 -1
  45. package/dist/ui/src/components/Checkbox/Checkbox.d.ts.map +1 -1
  46. package/dist/ui/src/components/Checkbox/types.d.ts +16 -0
  47. package/dist/ui/src/components/Checkbox/types.d.ts.map +1 -1
  48. package/dist/ui/src/components/Modal/Modal.d.ts +1 -1
  49. package/dist/ui/src/components/Modal/Modal.d.ts.map +1 -1
  50. package/dist/ui/src/components/Modal/bottomSheetGeometry.d.ts +13 -0
  51. package/dist/ui/src/components/Modal/bottomSheetGeometry.d.ts.map +1 -1
  52. package/dist/ui/src/components/Modal/modalScrollArbitration.d.ts.map +1 -1
  53. package/dist/ui/src/components/Modal/snapPoints.d.ts +3 -1
  54. package/dist/ui/src/components/Modal/snapPoints.d.ts.map +1 -1
  55. package/dist/ui/src/components/Modal/types.d.ts +8 -0
  56. package/dist/ui/src/components/Modal/types.d.ts.map +1 -1
  57. package/dist/ui/src/components/Modal/useModalContentBlockTransition.d.ts.map +1 -1
  58. package/dist/ui/src/components/Modal/useModalDrag.d.ts +27 -10
  59. package/dist/ui/src/components/Modal/useModalDrag.d.ts.map +1 -1
  60. package/dist/ui/src/components/Radio/types.d.ts +16 -0
  61. package/dist/ui/src/components/Radio/types.d.ts.map +1 -1
  62. package/dist/ui/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  63. package/dist/ui/src/components/Select/Select.d.ts.map +1 -1
  64. package/dist/ui/src/components/Switch/types.d.ts +10 -0
  65. package/dist/ui/src/components/Switch/types.d.ts.map +1 -1
  66. package/dist/ui/src/components/Tabs/Tabs.d.ts +7 -0
  67. package/dist/ui/src/components/Tabs/Tabs.d.ts.map +1 -0
  68. package/dist/ui/src/components/Tabs/index.d.ts +3 -0
  69. package/dist/ui/src/components/Tabs/index.d.ts.map +1 -0
  70. package/dist/ui/src/components/Tabs/types.d.ts +26 -0
  71. package/dist/ui/src/components/Tabs/types.d.ts.map +1 -0
  72. package/dist/ui/src/components/TextArea/TextArea.d.ts.map +1 -1
  73. package/dist/ui/src/components/TextInput/TextInput.d.ts.map +1 -1
  74. package/dist/ui/src/index.d.ts +2 -0
  75. package/dist/ui/src/index.d.ts.map +1 -1
  76. package/dist/ui/src/react/motion/index.d.ts.map +1 -1
  77. package/dist/ui/src/utils/mergeRefs.d.ts +13 -0
  78. package/dist/ui/src/utils/mergeRefs.d.ts.map +1 -0
  79. package/dist/utils/mergeRefs.js +24 -0
  80. package/dist/vscode/oc-ui-vars.css +13 -0
  81. package/docs/editor-setup.md +42 -0
  82. package/docs/motion.md +665 -0
  83. package/docs/responsive-foundation-profile.md +230 -0
  84. package/docs/scss-helpers.md +189 -0
  85. package/docs/selector-contract.md +260 -0
  86. package/docs/spring.md +382 -0
  87. package/docs/stability.md +62 -0
  88. package/docs/tokens.md +559 -0
  89. package/package.json +9 -4
  90. package/src/scss/foundations/color-theme.test.ts +14 -0
  91. package/src/scss/foundations/color.theme.dark.scss +1 -0
  92. package/src/scss/foundations/color.theme.light.scss +1 -0
  93. package/src/scss/foundations/focus.scss +4 -0
  94. package/src/scss/foundations/focus.test.ts +48 -0
  95. package/src/scss/foundations/reset.scss +9 -4
  96. package/src/scss/foundations/reset.test.ts +32 -0
  97. package/src/scss/index.scss +2 -0
  98. package/src/scss/mixins/_focus.scss +11 -0
  99. package/src/scss/mixins/_focus.test.ts +58 -0
@@ -0,0 +1,62 @@
1
+ # Stability Policy
2
+
3
+ `@orioncactuscorp/ui`๊ฐ€ ๋ฌด์—‡์„ ๊ณต๊ฐœ ๊ณ„์•ฝ์œผ๋กœ ๋ณด๊ณ , ๋ฌด์—‡์„ breaking change๋กœ ์ทจ๊ธ‰ํ•˜๋Š”์ง€ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค๋Š” [Semantic Versioning](https://semver.org/lang/ko/)๊ณผ [Changesets](https://github.com/changesets/changesets)๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, consumer ์˜ํ–ฅ์ด ์žˆ๋Š” ๋ณ€๊ฒฝ์€ CHANGELOG์˜ Migration Notes์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
4
+
5
+ ## ๊ณต๊ฐœ ๊ณ„์•ฝ์˜ ๋ฒ”์œ„
6
+
7
+ **๋ฌธ์„œํ™”๋œ ํ‘œ๋ฉด์ด ๊ณ„์•ฝ์ž…๋‹ˆ๋‹ค.** README์™€ `docs/`(์ด ํŒจํ‚ค์ง€์— ๋™๋ด‰)์—์„œ ๋ฌธ์„œํ™”ํ•œ ๊ฒƒ๋งŒ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
8
+
9
+ | ํ‘œ๋ฉด | ๊ณ„์•ฝ ๊ธฐ์ค€ |
10
+ | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11
+ | ์ปดํฌ๋„ŒํŠธ props | ํŒจํ‚ค์ง€ ํƒ€์ž… ์ •์˜ (`types.ts` ๊ธฐ๋ฐ˜ ๊ณต๊ฐœ ํƒ€์ž…) |
12
+ | exports map | `package.json` `exports`์˜ subpath ์ค‘ README Exports์— ๋ฌธ์„œํ™”๋œ ๊ฒƒ |
13
+ | selector ๊ณ„์•ฝ | [Selector Contract](./selector-contract.md)์˜ `data-oc-component` / `data-oc-part` / visualยทstate selector ํ‘œ |
14
+ | CSS ๋ณ€์ˆ˜ | foundation `--oc-*` ํ† ํฐ ์ด๋ฆ„([Token Reference](./tokens.md))๊ณผ ๋ฌธ์„œํ™”๋œ component contract ๋ณ€์ˆ˜(`--oc-{component}-*`) |
15
+ | SCSS API | [SCSS Helpers](./scss-helpers.md), [Semantic Motion](./motion.md), [Spring Motion](./spring.md), [Responsive Foundation Profile](./responsive-foundation-profile.md)์— ๋ฌธ์„œํ™”๋œ mixin/function/์„ค์ • ๋ณ€์ˆ˜ |
16
+
17
+ ๋‹ค์Œ์€ ๊ณ„์•ฝ์ด **์•„๋‹ˆ๋ฉฐ** ์˜ˆ๊ณ  ์—†์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
18
+
19
+ - CSS Module ํด๋ž˜์Šค ์ด๋ฆ„ (ํ•ด์‹œ ํฌํ•จ)
20
+ - selector ๊ณ„์•ฝ ํ‘œ์— ์—†๋Š” ๋‚ด๋ถ€ DOM ๊ตฌ์กฐยทwrapper ์š”์†Œ
21
+ - ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ SCSS export, ๋‚ด๋ถ€ ํ•จ์ˆ˜(`_` prefix), ๋‚ด๋ถ€ CSS ๋ณ€์ˆ˜
22
+ - `dist/` ๋‚ด๋ถ€ ํŒŒ์ผ ๊ตฌ์กฐ (๋ฌธ์„œํ™”๋œ exports subpath ๊ฒฝ์œ ๊ฐ€ ์•„๋‹Œ ์ง์ ‘ ๊ฒฝ๋กœ import)
23
+
24
+ ## Breaking change ๊ธฐ์ค€
25
+
26
+ major ๋ฒ„์ „์—์„œ๋งŒ ์ง„ํ–‰ํ•˜๋Š” ๋ณ€๊ฒฝ:
27
+
28
+ - ๋ฌธ์„œํ™”๋œ prop, export, mixin/function์˜ ์ œ๊ฑฐ ๋˜๋Š” ์˜๋ฏธ ๋ณ€๊ฒฝ
29
+ - `data-oc-*` selector ๊ณ„์•ฝ์˜ ์ œ๊ฑฐยท์ด๋ฆ„ ๋ณ€๊ฒฝ, selector ํ‘œ์— ์žˆ๋Š” slot ๊ตฌ์กฐ ๋ณ€๊ฒฝ
30
+ - ๋ฌธ์„œํ™”๋œ `--oc-*` ํ† ํฐยทcomponent contract ๋ณ€์ˆ˜์˜ ์ œ๊ฑฐยท์ด๋ฆ„ ๋ณ€๊ฒฝ
31
+ - [Legacy ํ˜ธํ™˜ attribute](./selector-contract.md#legacy-ํ˜ธํ™˜-์ถœ๋ ฅ)์˜ ์ œ๊ฑฐ
32
+ - ์ง€์› ๋ธŒ๋ผ์šฐ์ €ยทReactยทNode ์ตœ์†Œ ๋ฒ„์ „ ์ƒํ–ฅ
33
+
34
+ minor์—์„œ ์ง„ํ–‰ํ•˜๋Š” ๋ณ€๊ฒฝ:
35
+
36
+ - ์ƒˆ ์ปดํฌ๋„ŒํŠธ, ์ƒˆ prop, ์ƒˆ ํ† ํฐ, ์ƒˆ selector ๊ณ„์•ฝ์˜ ์ถ”๊ฐ€
37
+ - deprecation ์„ ์–ธ (๋™์ž‘ ์œ ์ง€ + Migration Notes ์•ˆ๋‚ด)
38
+
39
+ patch์—์„œ ์ง„ํ–‰ํ•˜๋Š” ๋ณ€๊ฒฝ:
40
+
41
+ - ๊ณ„์•ฝ์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •, ์‹œ๊ฐ ๊ฒฐํ•จ ์ˆ˜์ •, ๋ฌธ์„œ ์ˆ˜์ •
42
+
43
+ ์‹œ๊ฐ ์Šคํƒ€์ผ์˜ ์„ธ๋ถ€ ๊ฐ’(์ƒ‰ยท๊ฐ„๊ฒฉยท๋ชจ์…˜ ์ˆ˜์น˜)์€ ๋””์ž์ธ ์‹œ์Šคํ…œ ์ •์ฑ…์— ๋”ฐ๋ผ minor์—์„œ ์กฐ์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ํ”ฝ์…€ ๊ฐ’ ์ž์ฒด๋Š” ๊ณ„์•ฝ์ด ์•„๋‹ˆ๋ฉฐ, ํ† ํฐยทselector๋ฅผ ํ†ตํ•œ override ๊ฒฝ๋กœ๊ฐ€ ๊ณ„์•ฝ์ž…๋‹ˆ๋‹ค.
44
+
45
+ ## Deprecation ์ ˆ์ฐจ
46
+
47
+ 1. ๋Œ€์ฒด ๊ฒฝ๋กœ๊ฐ€ ์ค€๋น„๋œ minor ๋ฆด๋ฆฌ์Šค์—์„œ deprecated๋กœ ์„ ์–ธํ•˜๊ณ  CHANGELOG Migration Notes์— ๋Œ€์ฒด ๋ฐฉ๋ฒ•์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
48
+ 2. deprecated ํ‘œ๋ฉด์€ ์ตœ์†Œ ํ•œ ๋ฒˆ์˜ minor ์ฃผ๊ธฐ ๋™์•ˆ ๋™์ž‘์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
49
+ 3. ์ œ๊ฑฐ๋Š” ๋‹ค์Œ major ๋ฆด๋ฆฌ์Šค์—์„œ Migration Notes์™€ ํ•จ๊ป˜ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
50
+
51
+ ## ์˜์กด์„ฑ ๊ณ ์ง€
52
+
53
+ - `@base-ui-components/react`: ํ˜„์žฌ `1.0.0-rc` ๊ณ„์—ด(release candidate)์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. Base UI๊ฐ€ ์•ˆ์ •ํŒ์„ ๋ฆด๋ฆฌ์Šคํ•˜๋ฉด minor ๋ฒ„์ „์—์„œ ์ „ํ™˜ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. RC ๊ธฐ๊ฐ„ ๋™์•ˆ Base UI ์ชฝ ๋ฐ์ดํ„ฐ attribute(`data-starting-style` ๋“ฑ)๋‚˜ ๋‚ด๋ถ€ ๋™์ž‘ ๋ณ€๊ฒฝ์ด ์ „์ด๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ™•์ธ๋œ ์˜ํ–ฅ์€ Migration Notes์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
54
+ - `@orioncactuscorp/icons`: ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€ indicator์šฉ dependency์ž…๋‹ˆ๋‹ค. ์•ฑ ์ฝ”๋“œ์—์„œ ์•„์ด์ฝ˜์„ ์ง์ ‘ importํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ง์ ‘ ์˜์กด์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์„ธ์š”.
55
+
56
+ ## ์ง€์› ํ™˜๊ฒฝ
57
+
58
+ - React 19+, React DOM 19+
59
+ - Node 22+
60
+ - ๋ธŒ๋ผ์šฐ์ €: **`color-mix()`๋ฅผ ์ง€์›ํ•˜๋Š” evergreen ๋ธŒ๋ผ์šฐ์ €** โ€” Chrome/Edge 111+, Safari 16.2+, Firefox 113+ (2023๋…„ ์ƒ๋ฐ˜๊ธฐ ์ดํ›„)
61
+ - `color-mix()`๋ณด๋‹ค ์ง€์› ๋ฒ”์œ„๊ฐ€ ์ข์€ CSS ๊ธฐ๋Šฅ์€ fallback ๋˜๋Š” `@supports` ๊ฐ€๋“œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ค€์„  ๋ฏธ๋งŒ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹œ๊ฐ ํ’ˆ์งˆ ์ €ํ•˜๋Š” ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‚˜, layoutยท์ ‘๊ทผ์„ฑยท์ƒํ˜ธ์ž‘์šฉ์ด ๊นจ์ง€๋Š” ๊ฒฐํ•จ์€ ๋ฒ„๊ทธ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
62
+ - CSS Modules์™€ CSS `@layer`๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” bundler
package/docs/tokens.md ADDED
@@ -0,0 +1,559 @@
1
+ # Token Reference
2
+
3
+ <!-- Generated by packages/ui/scripts/generate-token-reference.mjs. Do not edit manually. -->
4
+
5
+ `@orioncactuscorp/ui/foundations.css`๊ฐ€ ์„ ์–ธํ•˜๋Š” `--oc-*` foundation ํ† ํฐ ์ „์ฒด ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. `bun run build:css` ์‹œ ์ž๋™ ์žฌ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
6
+
7
+ ํ† ํฐ ๊ฐ’์€ theme(`data-theme`)๊ณผ viewport(responsive mode)์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด ๋ฌธ์„œ๋Š” ์ด๋ฆ„๊ณผ ์šฉ๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ๊ฐ’์€ ๋ธŒ๋ผ์šฐ์ € devtools์˜ computed value ๋˜๋Š” [VS Code ์ž๋™์™„์„ฑ index](./editor-setup.md)๋กœ ํ™•์ธํ•˜์„ธ์š”.
8
+
9
+ ๊ฐ’ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๋ฐฉ๋ฒ•์€ README์˜ Foundation ์„น์…˜๊ณผ [Responsive Foundation Profile](./responsive-foundation-profile.md)์„ ์ฐธ์กฐํ•˜์„ธ์š”.
10
+
11
+ ## Color โ€” theme semantic
12
+
13
+ `:root`, `[data-theme="light"]`, `[data-theme="dark"]`์—์„œ theme๋ณ„ ๊ฐ’์œผ๋กœ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค. consumer override๋Š” theme selector ์Šค์ฝ”ํ”„์—์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
14
+
15
+ - `--oc-color-theme-accent-background-blue`
16
+ - `--oc-color-theme-accent-background-cyan`
17
+ - `--oc-color-theme-accent-background-green`
18
+ - `--oc-color-theme-accent-background-lightBlue`
19
+ - `--oc-color-theme-accent-background-lime`
20
+ - `--oc-color-theme-accent-background-orange`
21
+ - `--oc-color-theme-accent-background-pink`
22
+ - `--oc-color-theme-accent-background-purple`
23
+ - `--oc-color-theme-accent-background-red`
24
+ - `--oc-color-theme-accent-background-redOrange`
25
+ - `--oc-color-theme-accent-background-violet`
26
+ - `--oc-color-theme-accent-foreground-blue`
27
+ - `--oc-color-theme-accent-foreground-cyan`
28
+ - `--oc-color-theme-accent-foreground-green`
29
+ - `--oc-color-theme-accent-foreground-lightBlue`
30
+ - `--oc-color-theme-accent-foreground-lime`
31
+ - `--oc-color-theme-accent-foreground-orange`
32
+ - `--oc-color-theme-accent-foreground-pink`
33
+ - `--oc-color-theme-accent-foreground-purple`
34
+ - `--oc-color-theme-accent-foreground-red`
35
+ - `--oc-color-theme-accent-foreground-redOrange`
36
+ - `--oc-color-theme-accent-foreground-violet`
37
+ - `--oc-color-theme-background-elevated-alternative`
38
+ - `--oc-color-theme-background-elevated-normal`
39
+ - `--oc-color-theme-background-normal-alternative`
40
+ - `--oc-color-theme-background-normal-normal`
41
+ - `--oc-color-theme-fill-alternative`
42
+ - `--oc-color-theme-fill-normal`
43
+ - `--oc-color-theme-fill-strong`
44
+ - `--oc-color-theme-focus-ring`
45
+ - `--oc-color-theme-interaction-disable`
46
+ - `--oc-color-theme-interaction-inactive`
47
+ - `--oc-color-theme-inverse-background`
48
+ - `--oc-color-theme-inverse-label`
49
+ - `--oc-color-theme-inverse-primary`
50
+ - `--oc-color-theme-label-alternative`
51
+ - `--oc-color-theme-label-assistive`
52
+ - `--oc-color-theme-label-disable`
53
+ - `--oc-color-theme-label-neutral`
54
+ - `--oc-color-theme-label-normal`
55
+ - `--oc-color-theme-label-strong`
56
+ - `--oc-color-theme-line-normal-alternative`
57
+ - `--oc-color-theme-line-normal-neutral`
58
+ - `--oc-color-theme-line-normal-normal`
59
+ - `--oc-color-theme-line-normal-strong`
60
+ - `--oc-color-theme-line-solid-alternative`
61
+ - `--oc-color-theme-line-solid-neutral`
62
+ - `--oc-color-theme-line-solid-normal`
63
+ - `--oc-color-theme-line-solid-strong`
64
+ - `--oc-color-theme-material-dimmer`
65
+ - `--oc-color-theme-primary-normal`
66
+ - `--oc-color-theme-static-black`
67
+ - `--oc-color-theme-static-transparent`
68
+ - `--oc-color-theme-static-white`
69
+ - `--oc-color-theme-status-cautionary`
70
+ - `--oc-color-theme-status-negative`
71
+ - `--oc-color-theme-status-positive`
72
+
73
+ ## Color โ€” global primitive
74
+
75
+ theme์™€ ๋ฌด๊ด€ํ•œ primitive ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” theme semantic ํ† ํฐ์„ ์šฐ์„  ์‚ฌ์šฉํ•˜์„ธ์š”.
76
+
77
+ - `--oc-color-global-blue-0`
78
+ - `--oc-color-global-blue-10`
79
+ - `--oc-color-global-blue-100`
80
+ - `--oc-color-global-blue-20`
81
+ - `--oc-color-global-blue-30`
82
+ - `--oc-color-global-blue-40`
83
+ - `--oc-color-global-blue-45`
84
+ - `--oc-color-global-blue-50`
85
+ - `--oc-color-global-blue-55`
86
+ - `--oc-color-global-blue-60`
87
+ - `--oc-color-global-blue-65`
88
+ - `--oc-color-global-blue-70`
89
+ - `--oc-color-global-blue-80`
90
+ - `--oc-color-global-blue-90`
91
+ - `--oc-color-global-blue-95`
92
+ - `--oc-color-global-blue-99`
93
+ - `--oc-color-global-common-0`
94
+ - `--oc-color-global-common-100`
95
+ - `--oc-color-global-common-transparent`
96
+ - `--oc-color-global-coolNeutral-0`
97
+ - `--oc-color-global-coolNeutral-10`
98
+ - `--oc-color-global-coolNeutral-100`
99
+ - `--oc-color-global-coolNeutral-15`
100
+ - `--oc-color-global-coolNeutral-17`
101
+ - `--oc-color-global-coolNeutral-20`
102
+ - `--oc-color-global-coolNeutral-22`
103
+ - `--oc-color-global-coolNeutral-23`
104
+ - `--oc-color-global-coolNeutral-25`
105
+ - `--oc-color-global-coolNeutral-30`
106
+ - `--oc-color-global-coolNeutral-40`
107
+ - `--oc-color-global-coolNeutral-5`
108
+ - `--oc-color-global-coolNeutral-50`
109
+ - `--oc-color-global-coolNeutral-60`
110
+ - `--oc-color-global-coolNeutral-7`
111
+ - `--oc-color-global-coolNeutral-70`
112
+ - `--oc-color-global-coolNeutral-80`
113
+ - `--oc-color-global-coolNeutral-90`
114
+ - `--oc-color-global-coolNeutral-95`
115
+ - `--oc-color-global-coolNeutral-96`
116
+ - `--oc-color-global-coolNeutral-97`
117
+ - `--oc-color-global-coolNeutral-98`
118
+ - `--oc-color-global-coolNeutral-99`
119
+ - `--oc-color-global-cyan-0`
120
+ - `--oc-color-global-cyan-10`
121
+ - `--oc-color-global-cyan-100`
122
+ - `--oc-color-global-cyan-20`
123
+ - `--oc-color-global-cyan-30`
124
+ - `--oc-color-global-cyan-40`
125
+ - `--oc-color-global-cyan-50`
126
+ - `--oc-color-global-cyan-60`
127
+ - `--oc-color-global-cyan-70`
128
+ - `--oc-color-global-cyan-80`
129
+ - `--oc-color-global-cyan-90`
130
+ - `--oc-color-global-cyan-95`
131
+ - `--oc-color-global-cyan-99`
132
+ - `--oc-color-global-green-0`
133
+ - `--oc-color-global-green-10`
134
+ - `--oc-color-global-green-100`
135
+ - `--oc-color-global-green-20`
136
+ - `--oc-color-global-green-30`
137
+ - `--oc-color-global-green-40`
138
+ - `--oc-color-global-green-50`
139
+ - `--oc-color-global-green-60`
140
+ - `--oc-color-global-green-70`
141
+ - `--oc-color-global-green-80`
142
+ - `--oc-color-global-green-90`
143
+ - `--oc-color-global-green-95`
144
+ - `--oc-color-global-green-99`
145
+ - `--oc-color-global-lightBlue-0`
146
+ - `--oc-color-global-lightBlue-10`
147
+ - `--oc-color-global-lightBlue-100`
148
+ - `--oc-color-global-lightBlue-20`
149
+ - `--oc-color-global-lightBlue-30`
150
+ - `--oc-color-global-lightBlue-40`
151
+ - `--oc-color-global-lightBlue-50`
152
+ - `--oc-color-global-lightBlue-60`
153
+ - `--oc-color-global-lightBlue-70`
154
+ - `--oc-color-global-lightBlue-80`
155
+ - `--oc-color-global-lightBlue-90`
156
+ - `--oc-color-global-lightBlue-95`
157
+ - `--oc-color-global-lightBlue-99`
158
+ - `--oc-color-global-lime-0`
159
+ - `--oc-color-global-lime-10`
160
+ - `--oc-color-global-lime-100`
161
+ - `--oc-color-global-lime-20`
162
+ - `--oc-color-global-lime-30`
163
+ - `--oc-color-global-lime-37`
164
+ - `--oc-color-global-lime-40`
165
+ - `--oc-color-global-lime-50`
166
+ - `--oc-color-global-lime-60`
167
+ - `--oc-color-global-lime-70`
168
+ - `--oc-color-global-lime-80`
169
+ - `--oc-color-global-lime-90`
170
+ - `--oc-color-global-lime-95`
171
+ - `--oc-color-global-lime-99`
172
+ - `--oc-color-global-neutral-0`
173
+ - `--oc-color-global-neutral-10`
174
+ - `--oc-color-global-neutral-100`
175
+ - `--oc-color-global-neutral-15`
176
+ - `--oc-color-global-neutral-20`
177
+ - `--oc-color-global-neutral-22`
178
+ - `--oc-color-global-neutral-30`
179
+ - `--oc-color-global-neutral-40`
180
+ - `--oc-color-global-neutral-5`
181
+ - `--oc-color-global-neutral-50`
182
+ - `--oc-color-global-neutral-60`
183
+ - `--oc-color-global-neutral-70`
184
+ - `--oc-color-global-neutral-80`
185
+ - `--oc-color-global-neutral-90`
186
+ - `--oc-color-global-neutral-95`
187
+ - `--oc-color-global-neutral-99`
188
+ - `--oc-color-global-opacity-0`
189
+ - `--oc-color-global-opacity-100`
190
+ - `--oc-color-global-opacity-12`
191
+ - `--oc-color-global-opacity-16`
192
+ - `--oc-color-global-opacity-22`
193
+ - `--oc-color-global-opacity-28`
194
+ - `--oc-color-global-opacity-35`
195
+ - `--oc-color-global-opacity-43`
196
+ - `--oc-color-global-opacity-5`
197
+ - `--oc-color-global-opacity-52`
198
+ - `--oc-color-global-opacity-61`
199
+ - `--oc-color-global-opacity-74`
200
+ - `--oc-color-global-opacity-8`
201
+ - `--oc-color-global-opacity-88`
202
+ - `--oc-color-global-opacity-97`
203
+ - `--oc-color-global-orange-0`
204
+ - `--oc-color-global-orange-10`
205
+ - `--oc-color-global-orange-100`
206
+ - `--oc-color-global-orange-20`
207
+ - `--oc-color-global-orange-30`
208
+ - `--oc-color-global-orange-39`
209
+ - `--oc-color-global-orange-40`
210
+ - `--oc-color-global-orange-50`
211
+ - `--oc-color-global-orange-60`
212
+ - `--oc-color-global-orange-70`
213
+ - `--oc-color-global-orange-80`
214
+ - `--oc-color-global-orange-90`
215
+ - `--oc-color-global-orange-95`
216
+ - `--oc-color-global-orange-99`
217
+ - `--oc-color-global-pink-0`
218
+ - `--oc-color-global-pink-10`
219
+ - `--oc-color-global-pink-100`
220
+ - `--oc-color-global-pink-20`
221
+ - `--oc-color-global-pink-30`
222
+ - `--oc-color-global-pink-40`
223
+ - `--oc-color-global-pink-46`
224
+ - `--oc-color-global-pink-50`
225
+ - `--oc-color-global-pink-60`
226
+ - `--oc-color-global-pink-70`
227
+ - `--oc-color-global-pink-80`
228
+ - `--oc-color-global-pink-90`
229
+ - `--oc-color-global-pink-95`
230
+ - `--oc-color-global-pink-99`
231
+ - `--oc-color-global-purple-0`
232
+ - `--oc-color-global-purple-10`
233
+ - `--oc-color-global-purple-100`
234
+ - `--oc-color-global-purple-20`
235
+ - `--oc-color-global-purple-30`
236
+ - `--oc-color-global-purple-40`
237
+ - `--oc-color-global-purple-50`
238
+ - `--oc-color-global-purple-60`
239
+ - `--oc-color-global-purple-70`
240
+ - `--oc-color-global-purple-80`
241
+ - `--oc-color-global-purple-90`
242
+ - `--oc-color-global-purple-95`
243
+ - `--oc-color-global-purple-99`
244
+ - `--oc-color-global-red-0`
245
+ - `--oc-color-global-red-10`
246
+ - `--oc-color-global-red-100`
247
+ - `--oc-color-global-red-20`
248
+ - `--oc-color-global-red-30`
249
+ - `--oc-color-global-red-40`
250
+ - `--oc-color-global-red-50`
251
+ - `--oc-color-global-red-60`
252
+ - `--oc-color-global-red-70`
253
+ - `--oc-color-global-red-80`
254
+ - `--oc-color-global-red-90`
255
+ - `--oc-color-global-red-95`
256
+ - `--oc-color-global-red-99`
257
+ - `--oc-color-global-redOrange-0`
258
+ - `--oc-color-global-redOrange-10`
259
+ - `--oc-color-global-redOrange-100`
260
+ - `--oc-color-global-redOrange-20`
261
+ - `--oc-color-global-redOrange-30`
262
+ - `--oc-color-global-redOrange-40`
263
+ - `--oc-color-global-redOrange-48`
264
+ - `--oc-color-global-redOrange-50`
265
+ - `--oc-color-global-redOrange-60`
266
+ - `--oc-color-global-redOrange-70`
267
+ - `--oc-color-global-redOrange-80`
268
+ - `--oc-color-global-redOrange-90`
269
+ - `--oc-color-global-redOrange-95`
270
+ - `--oc-color-global-redOrange-99`
271
+ - `--oc-color-global-violet-0`
272
+ - `--oc-color-global-violet-10`
273
+ - `--oc-color-global-violet-100`
274
+ - `--oc-color-global-violet-20`
275
+ - `--oc-color-global-violet-30`
276
+ - `--oc-color-global-violet-40`
277
+ - `--oc-color-global-violet-45`
278
+ - `--oc-color-global-violet-50`
279
+ - `--oc-color-global-violet-60`
280
+ - `--oc-color-global-violet-70`
281
+ - `--oc-color-global-violet-80`
282
+ - `--oc-color-global-violet-90`
283
+ - `--oc-color-global-violet-95`
284
+ - `--oc-color-global-violet-99`
285
+
286
+ ## Typography
287
+
288
+ size/height/spacing/weight๋Š” `@include typo($variant, $weight)` ๊ฒฝ์œ ๊ฐ€ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. raw size ํ† ํฐ ์ง์ ‘ ์ฐธ์กฐ๋Š” ํ”ผํ•˜์„ธ์š”.
289
+
290
+ - `--oc-typo-font-family`
291
+ - `--oc-typo-height-body1`
292
+ - `--oc-typo-height-body1reading`
293
+ - `--oc-typo-height-body2`
294
+ - `--oc-typo-height-body2reading`
295
+ - `--oc-typo-height-caption1`
296
+ - `--oc-typo-height-caption2`
297
+ - `--oc-typo-height-display1`
298
+ - `--oc-typo-height-display2`
299
+ - `--oc-typo-height-display3`
300
+ - `--oc-typo-height-heading1`
301
+ - `--oc-typo-height-heading2`
302
+ - `--oc-typo-height-headline1`
303
+ - `--oc-typo-height-headline2`
304
+ - `--oc-typo-height-label1`
305
+ - `--oc-typo-height-label1reading`
306
+ - `--oc-typo-height-label2`
307
+ - `--oc-typo-height-title1`
308
+ - `--oc-typo-height-title2`
309
+ - `--oc-typo-height-title3`
310
+ - `--oc-typo-size-body1`
311
+ - `--oc-typo-size-body1reading`
312
+ - `--oc-typo-size-body2`
313
+ - `--oc-typo-size-body2reading`
314
+ - `--oc-typo-size-caption1`
315
+ - `--oc-typo-size-caption2`
316
+ - `--oc-typo-size-display1`
317
+ - `--oc-typo-size-display2`
318
+ - `--oc-typo-size-display3`
319
+ - `--oc-typo-size-factor`
320
+ - `--oc-typo-size-heading1`
321
+ - `--oc-typo-size-heading2`
322
+ - `--oc-typo-size-headline1`
323
+ - `--oc-typo-size-headline2`
324
+ - `--oc-typo-size-label1`
325
+ - `--oc-typo-size-label1reading`
326
+ - `--oc-typo-size-label2`
327
+ - `--oc-typo-size-title1`
328
+ - `--oc-typo-size-title2`
329
+ - `--oc-typo-size-title3`
330
+ - `--oc-typo-spacing-body1`
331
+ - `--oc-typo-spacing-body1reading`
332
+ - `--oc-typo-spacing-body2`
333
+ - `--oc-typo-spacing-body2reading`
334
+ - `--oc-typo-spacing-caption1`
335
+ - `--oc-typo-spacing-caption2`
336
+ - `--oc-typo-spacing-display1`
337
+ - `--oc-typo-spacing-display2`
338
+ - `--oc-typo-spacing-display3`
339
+ - `--oc-typo-spacing-heading1`
340
+ - `--oc-typo-spacing-heading2`
341
+ - `--oc-typo-spacing-headline1`
342
+ - `--oc-typo-spacing-headline2`
343
+ - `--oc-typo-spacing-label1`
344
+ - `--oc-typo-spacing-label1reading`
345
+ - `--oc-typo-spacing-label2`
346
+ - `--oc-typo-spacing-title1`
347
+ - `--oc-typo-spacing-title2`
348
+ - `--oc-typo-spacing-title3`
349
+ - `--oc-typo-weight-body1-bold`
350
+ - `--oc-typo-weight-body1-medium`
351
+ - `--oc-typo-weight-body1-normal`
352
+ - `--oc-typo-weight-body1reading-bold`
353
+ - `--oc-typo-weight-body1reading-medium`
354
+ - `--oc-typo-weight-body1reading-normal`
355
+ - `--oc-typo-weight-body2-bold`
356
+ - `--oc-typo-weight-body2-medium`
357
+ - `--oc-typo-weight-body2-normal`
358
+ - `--oc-typo-weight-body2reading-bold`
359
+ - `--oc-typo-weight-body2reading-medium`
360
+ - `--oc-typo-weight-body2reading-normal`
361
+ - `--oc-typo-weight-caption1-bold`
362
+ - `--oc-typo-weight-caption1-medium`
363
+ - `--oc-typo-weight-caption1-normal`
364
+ - `--oc-typo-weight-caption2-bold`
365
+ - `--oc-typo-weight-caption2-medium`
366
+ - `--oc-typo-weight-caption2-normal`
367
+ - `--oc-typo-weight-display1-bold`
368
+ - `--oc-typo-weight-display1-medium`
369
+ - `--oc-typo-weight-display1-normal`
370
+ - `--oc-typo-weight-display2-bold`
371
+ - `--oc-typo-weight-display2-medium`
372
+ - `--oc-typo-weight-display2-normal`
373
+ - `--oc-typo-weight-display3-bold`
374
+ - `--oc-typo-weight-display3-medium`
375
+ - `--oc-typo-weight-display3-normal`
376
+ - `--oc-typo-weight-heading1-bold`
377
+ - `--oc-typo-weight-heading1-medium`
378
+ - `--oc-typo-weight-heading1-normal`
379
+ - `--oc-typo-weight-heading2-bold`
380
+ - `--oc-typo-weight-heading2-medium`
381
+ - `--oc-typo-weight-heading2-normal`
382
+ - `--oc-typo-weight-headline1-bold`
383
+ - `--oc-typo-weight-headline1-medium`
384
+ - `--oc-typo-weight-headline1-normal`
385
+ - `--oc-typo-weight-headline2-bold`
386
+ - `--oc-typo-weight-headline2-medium`
387
+ - `--oc-typo-weight-headline2-normal`
388
+ - `--oc-typo-weight-label1-bold`
389
+ - `--oc-typo-weight-label1-medium`
390
+ - `--oc-typo-weight-label1-normal`
391
+ - `--oc-typo-weight-label1reading-bold`
392
+ - `--oc-typo-weight-label1reading-medium`
393
+ - `--oc-typo-weight-label1reading-normal`
394
+ - `--oc-typo-weight-label2-bold`
395
+ - `--oc-typo-weight-label2-medium`
396
+ - `--oc-typo-weight-label2-normal`
397
+ - `--oc-typo-weight-title1-bold`
398
+ - `--oc-typo-weight-title1-medium`
399
+ - `--oc-typo-weight-title1-normal`
400
+ - `--oc-typo-weight-title2-bold`
401
+ - `--oc-typo-weight-title2-medium`
402
+ - `--oc-typo-weight-title2-normal`
403
+ - `--oc-typo-weight-title3-bold`
404
+ - `--oc-typo-weight-title3-medium`
405
+ - `--oc-typo-weight-title3-normal`
406
+
407
+ ## Space
408
+
409
+ responsive mode(fluid/stepped/static)์— ๋”ฐ๋ผ viewport๋ณ„ ์ถœ๋ ฅ์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
410
+
411
+ - `--oc-space-item-gap-atom`
412
+ - `--oc-space-item-gap-huge`
413
+ - `--oc-space-item-gap-large`
414
+ - `--oc-space-item-gap-medium`
415
+ - `--oc-space-item-gap-micro`
416
+ - `--oc-space-item-gap-mini`
417
+ - `--oc-space-item-gap-nano`
418
+ - `--oc-space-item-gap-small`
419
+ - `--oc-space-item-gap-tiny`
420
+ - `--oc-space-item-gap-xlarge`
421
+ - `--oc-space-item-gap-xsmall`
422
+ - `--oc-space-item-padding-atom`
423
+ - `--oc-space-item-padding-large`
424
+ - `--oc-space-item-padding-medium`
425
+ - `--oc-space-item-padding-micro`
426
+ - `--oc-space-item-padding-mini`
427
+ - `--oc-space-item-padding-nano`
428
+ - `--oc-space-item-padding-small`
429
+ - `--oc-space-item-padding-tiny`
430
+ - `--oc-space-item-padding-xsmall`
431
+ - `--oc-space-section-gap-large`
432
+ - `--oc-space-section-gap-medium`
433
+ - `--oc-space-section-gap-section`
434
+ - `--oc-space-section-gap-xlarge`
435
+ - `--oc-space-section-padding-viewport`
436
+ - `--oc-space-section-padding-viewport-block-safe-end`
437
+ - `--oc-space-section-padding-viewport-block-safe-start`
438
+ - `--oc-space-section-padding-viewport-inline-safe-end`
439
+ - `--oc-space-section-padding-viewport-inline-safe-start`
440
+ - `--oc-space-section-padding-viewport-x`
441
+ - `--oc-space-section-padding-viewport-y`
442
+
443
+ ## Atomic (radius/width/blur/shadow ๋“ฑ)
444
+
445
+ `--oc-atomic-radius-factor`๋Š” radius ์ „์—ญ ๋ฐฐ์œจ runtime multiplier์ž…๋‹ˆ๋‹ค.
446
+
447
+ - `--oc-atomic-blur-compact`
448
+ - `--oc-atomic-blur-normal`
449
+ - `--oc-atomic-radius-factor`
450
+ - `--oc-atomic-radius-huge`
451
+ - `--oc-atomic-radius-large`
452
+ - `--oc-atomic-radius-max`
453
+ - `--oc-atomic-radius-medium`
454
+ - `--oc-atomic-radius-micro`
455
+ - `--oc-atomic-radius-mini`
456
+ - `--oc-atomic-radius-small`
457
+ - `--oc-atomic-radius-tiny`
458
+ - `--oc-atomic-radius-xlarge`
459
+ - `--oc-atomic-radius-xsmall`
460
+ - `--oc-atomic-shadow-normal-large`
461
+ - `--oc-atomic-shadow-normal-medium`
462
+ - `--oc-atomic-shadow-normal-small`
463
+ - `--oc-atomic-shadow-normal-xlarge`
464
+ - `--oc-atomic-shadow-normal-xsmall`
465
+ - `--oc-atomic-shadow-spread-small`
466
+ - `--oc-atomic-shadow-spread-xlarge`
467
+ - `--oc-atomic-width-content`
468
+ - `--oc-atomic-width-section-large`
469
+ - `--oc-atomic-width-section-medium`
470
+ - `--oc-atomic-width-section-small`
471
+ - `--oc-atomic-width-section-xsmall`
472
+
473
+ ## Focus ring
474
+
475
+ ํ‚ค๋ณด๋“œ ํฌ์ปค์Šค ๋ง(`:focus-visible`)์˜ ๋‘๊ป˜/offset์ž…๋‹ˆ๋‹ค. ์ƒ‰์ƒ์€ theme semantic ํ† ํฐ `--oc-color-theme-focus-ring`์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ปดํฌ๋„ŒํŠธ ์ ์šฉ์€ `@include oc-focus-ring` ๊ฒฝ์œ ๊ฐ€ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค.
476
+
477
+ - `--oc-focus-ring-offset`
478
+ - `--oc-focus-ring-width`
479
+
480
+ ## Motion
481
+
482
+ duration/scale/distance factor๋Š” unitless multiplier์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ •์ฑ…์€ [Semantic Motion](./motion.md)์„ ์ฐธ์กฐํ•˜์„ธ์š”.
483
+
484
+ - `--oc-motion-distance-factor`
485
+ - `--oc-motion-distance-factor-reject`
486
+ - `--oc-motion-distance-factor-spatial`
487
+ - `--oc-motion-duration-ambient`
488
+ - `--oc-motion-duration-continuous`
489
+ - `--oc-motion-duration-disclosure`
490
+ - `--oc-motion-duration-disclosure-exit`
491
+ - `--oc-motion-duration-expand`
492
+ - `--oc-motion-duration-expand-exit`
493
+ - `--oc-motion-duration-factor`
494
+ - `--oc-motion-duration-factor-preserve`
495
+ - `--oc-motion-duration-factor-reduced`
496
+ - `--oc-motion-duration-fade`
497
+ - `--oc-motion-duration-feedback`
498
+ - `--oc-motion-duration-gesture`
499
+ - `--oc-motion-duration-gesture-release`
500
+ - `--oc-motion-duration-move`
501
+ - `--oc-motion-duration-reject`
502
+ - `--oc-motion-duration-sheet`
503
+ - `--oc-motion-duration-sheet-exit`
504
+ - `--oc-motion-duration-sheet-release`
505
+ - `--oc-motion-duration-surface`
506
+ - `--oc-motion-duration-surface-exit`
507
+ - `--oc-motion-pace-normal`
508
+ - `--oc-motion-pace-quick`
509
+ - `--oc-motion-pace-slow`
510
+ - `--oc-motion-scale-factor`
511
+ - `--oc-motion-scale-factor-feedback`
512
+ - `--oc-motion-scale-factor-spatial`
513
+ - `--oc-motion-timing-ambient`
514
+ - `--oc-motion-timing-continuous`
515
+ - `--oc-motion-timing-disclosure`
516
+ - `--oc-motion-timing-disclosure-exit`
517
+ - `--oc-motion-timing-expand`
518
+ - `--oc-motion-timing-expand-exit`
519
+ - `--oc-motion-timing-fade`
520
+ - `--oc-motion-timing-feedback`
521
+ - `--oc-motion-timing-gesture`
522
+ - `--oc-motion-timing-gesture-release`
523
+ - `--oc-motion-timing-move`
524
+ - `--oc-motion-timing-reject`
525
+ - `--oc-motion-timing-sheet`
526
+ - `--oc-motion-timing-sheet-exit`
527
+ - `--oc-motion-timing-sheet-release`
528
+ - `--oc-motion-timing-surface`
529
+ - `--oc-motion-timing-surface-exit`
530
+
531
+ ## Spring
532
+
533
+ spring preset์˜ timing/duration scale์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌ์šฉ๋ฒ•์€ [Spring Motion](./spring.md)์„ ์ฐธ์กฐํ•˜์„ธ์š”.
534
+
535
+ - `--oc-spring-bouncy-duration-scale`
536
+ - `--oc-spring-bouncy-timing`
537
+ - `--oc-spring-smooth-duration-scale`
538
+ - `--oc-spring-smooth-timing`
539
+ - `--oc-spring-snappy-duration-scale`
540
+ - `--oc-spring-snappy-timing`
541
+
542
+ ## Z-index
543
+
544
+ - `--oc-zindex-0`
545
+ - `--oc-zindex-1`
546
+ - `--oc-zindex-2`
547
+ - `--oc-zindex-3`
548
+ - `--oc-zindex-4`
549
+ - `--oc-zindex-5`
550
+
551
+ ## Breakpoint
552
+
553
+ SCSS์—์„œ๋Š” `respond-to(...)` mixin ๊ฒฝ์œ ๊ฐ€ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. raw media query์— ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.
554
+
555
+ - `--oc-breakpoint-hg`
556
+ - `--oc-breakpoint-lg`
557
+ - `--oc-breakpoint-md`
558
+ - `--oc-breakpoint-sm`
559
+ - `--oc-breakpoint-xl`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orioncactuscorp/ui",
3
- "version": "1.9.2",
3
+ "version": "1.11.0",
4
4
  "description": "orioncactus UI foundations and core primitives",
5
5
  "private": false,
6
6
  "type": "module",
@@ -31,6 +31,7 @@
31
31
  "files": [
32
32
  "dist",
33
33
  "src/scss",
34
+ "docs",
34
35
  "README.md",
35
36
  "LICENSE"
36
37
  ],
@@ -78,14 +79,18 @@
78
79
  },
79
80
  "packageManager": "bun@1.3.6",
80
81
  "scripts": {
81
- "build": "bun run build:lib && bun run build:css && bun run check:exports && bun run check:dist-imports && bun run check:rsc-boundaries",
82
+ "build": "bun run build:lib && bun run build:css && bun run check:exports && bun run check:dist-imports && bun run check:css-injection && bun run check:rsc-boundaries",
82
83
  "build:lib": "vite build && node scripts/preserve-client-directives.mjs",
83
- "build:css": "sass src/scss/foundations:dist/foundations --no-source-map --style=compressed && node scripts/fix-css-module-artifacts.mjs && node scripts/bundle-foundations.mjs && node scripts/generate-vscode-css-vars.mjs",
84
+ "build:css": "sass src/scss/foundations:dist/foundations --no-source-map --style=compressed && node scripts/fix-css-module-artifacts.mjs && node scripts/bundle-foundations.mjs && node scripts/generate-vscode-css-vars.mjs && node scripts/generate-token-reference.mjs",
85
+ "docs:tokens": "node scripts/generate-token-reference.mjs",
86
+ "docs:tokens:check": "node scripts/generate-token-reference.mjs --check",
84
87
  "check:exports": "node scripts/check-package-exports.mjs",
85
88
  "check:dist-imports": "node scripts/check-dist-imports.mjs",
89
+ "check:css-injection": "node scripts/check-css-injection.mjs",
86
90
  "check:rsc-boundaries": "node scripts/check-rsc-client-boundaries.mjs",
87
91
  "test": "vitest",
88
- "test:run": "vitest run",
92
+ "test:run": "vitest run && node --test scripts/*.test.mjs",
93
+ "test:scripts": "node --test scripts/*.test.mjs",
89
94
  "test:coverage": "vitest run --coverage",
90
95
  "test:e2e": "bun run --cwd ../.. build && bun run --cwd ../.. example:build && playwright test",
91
96
  "test:e2e:ci": "bun run --cwd ../.. example:build && playwright test",
@@ -37,6 +37,20 @@ describe('color theme foundations', () => {
37
37
  expect(css).toContain('[data-theme=dark]');
38
38
  });
39
39
 
40
+ it('aliases the focus ring color to the primary semantic in both themes', () => {
41
+ const css = compileScss(`
42
+ @use 'foundations/color.theme.light' as light;
43
+ @use 'foundations/color.theme.dark' as dark;
44
+ `);
45
+
46
+ expect(css).toMatch(
47
+ /:root\{[^}]*--oc-color-theme-focus-ring:var\(--oc-color-theme-primary-normal\)/,
48
+ );
49
+ expect(css).toMatch(
50
+ /\[data-theme=dark\]\{[^}]*--oc-color-theme-focus-ring:var\(--oc-color-theme-primary-normal\)/,
51
+ );
52
+ });
53
+
40
54
  it('emits only light when $oc-color-themes is (light)', () => {
41
55
  const css = compileScss(`
42
56
  @use 'foundations/color.config' with ($oc-color-themes: (light,));
@@ -7,6 +7,7 @@
7
7
  --oc-color-theme-static-black: var(--oc-color-global-common-0);
8
8
  --oc-color-theme-static-transparent: var(--oc-color-global-common-transparent);
9
9
  --oc-color-theme-primary-normal: var(--oc-color-global-redOrange-60);
10
+ --oc-color-theme-focus-ring: var(--oc-color-theme-primary-normal);
10
11
  --oc-color-theme-label-strong: var(--oc-color-global-common-100);
11
12
  --oc-color-theme-label-normal: var(--oc-color-global-coolNeutral-99);
12
13
  --oc-color-theme-label-neutral: #{oc-alpha(coolNeutral-90, 88)};