@x-plat/design-system 0.5.66 โ†’ 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/components/Accordion/index.css +6 -6
  2. package/dist/components/AutoResizeTextArea/index.css +5 -5
  3. package/dist/components/Avatar/index.css +2 -2
  4. package/dist/components/Badge/index.css +1 -1
  5. package/dist/components/Box/index.css +5 -5
  6. package/dist/components/Breadcrumb/index.css +4 -4
  7. package/dist/components/Button/index.cjs +1 -2
  8. package/dist/components/Button/index.css +6 -6
  9. package/dist/components/Button/index.d.cts +1 -1
  10. package/dist/components/Button/index.d.ts +1 -1
  11. package/dist/components/Button/index.js +1 -2
  12. package/dist/components/Calendar/index.cjs +1 -1
  13. package/dist/components/Calendar/index.css +18 -18
  14. package/dist/components/Calendar/index.js +1 -1
  15. package/dist/components/CardTab/index.css +8 -8
  16. package/dist/components/Chart/index.css +11 -11
  17. package/dist/components/ChatInput/index.cjs +1 -2
  18. package/dist/components/ChatInput/index.css +16 -16
  19. package/dist/components/ChatInput/index.js +1 -2
  20. package/dist/components/CheckBox/index.css +2 -2
  21. package/dist/components/CheckBox/index.js +1 -1
  22. package/dist/components/Chip/index.css +5 -5
  23. package/dist/components/DatePicker/index.cjs +1 -2
  24. package/dist/components/DatePicker/index.css +36 -36
  25. package/dist/components/DatePicker/index.js +1 -2
  26. package/dist/components/Divider/index.css +2 -2
  27. package/dist/components/Drawer/index.css +5 -5
  28. package/dist/components/Dropdown/index.css +4 -4
  29. package/dist/components/Editor/index.css +36 -36
  30. package/dist/components/EmptyState/index.css +2 -2
  31. package/dist/components/FileUpload/index.css +4 -4
  32. package/dist/components/HtmlTypeWriter/index.css +1 -1
  33. package/dist/components/IconButton/index.cjs +1 -2
  34. package/dist/components/IconButton/index.css +5 -5
  35. package/dist/components/IconButton/index.d.cts +1 -1
  36. package/dist/components/IconButton/index.d.ts +1 -1
  37. package/dist/components/IconButton/index.js +1 -2
  38. package/dist/components/ImageSelector/index.css +7 -7
  39. package/dist/components/Input/index.css +7 -7
  40. package/dist/components/Modal/index.css +1 -1
  41. package/dist/components/Pagination/index.css +3 -3
  42. package/dist/components/PopOver/index.css +1 -1
  43. package/dist/components/Progress/index.css +1 -1
  44. package/dist/components/Radio/index.css +5 -5
  45. package/dist/components/Select/index.css +9 -9
  46. package/dist/components/Skeleton/index.cjs +6 -6
  47. package/dist/components/Skeleton/index.js +6 -6
  48. package/dist/components/Spinner/index.css +1 -1
  49. package/dist/components/Steps/index.css +3 -3
  50. package/dist/components/Swiper/index.css +3 -3
  51. package/dist/components/Switch/index.css +3 -3
  52. package/dist/components/Tab/index.css +4 -4
  53. package/dist/components/Table/index.css +10 -10
  54. package/dist/components/Tag/index.css +3 -3
  55. package/dist/components/TextArea/index.css +5 -5
  56. package/dist/components/Tooltip/index.css +4 -4
  57. package/dist/components/Video/index.css +2 -2
  58. package/dist/components/index.cjs +249 -251
  59. package/dist/components/index.css +667 -1059
  60. package/dist/components/index.d.cts +2 -2
  61. package/dist/components/index.d.ts +2 -2
  62. package/dist/components/index.js +224 -226
  63. package/dist/index.cjs +249 -253
  64. package/dist/index.css +670 -1062
  65. package/dist/index.d.cts +3 -3
  66. package/dist/index.d.ts +3 -3
  67. package/dist/index.js +224 -227
  68. package/dist/layout/Header/index.css +2 -2
  69. package/dist/layout/Layout/index.css +1 -1
  70. package/dist/layout/index.css +404 -796
  71. package/dist/tokens/index.cjs +0 -2
  72. package/dist/tokens/index.d.cts +9 -10
  73. package/dist/tokens/index.d.ts +9 -10
  74. package/dist/tokens/index.js +1 -2
  75. package/guidelines/AGENT_PROMPT.md +8 -9
  76. package/guidelines/Guidelines.md +1 -1
  77. package/guidelines/components/chart.md +1 -1
  78. package/guidelines/foundations/color.md +22 -23
  79. package/guidelines/foundations/typography.md +86 -36
  80. package/package.json +1 -1
@@ -319,7 +319,6 @@ __export(tokens_exports, {
319
319
  breakpoints: () => breakpoints,
320
320
  cssVar: () => import_tokens_core2.cssVar,
321
321
  gridColumns: () => gridColumns,
322
- primitive: () => import_tokens_core.primitive,
323
322
  semantic: () => import_tokens_core.semantic
324
323
  });
325
324
  module.exports = __toCommonJS(tokens_exports);
@@ -6111,6 +6110,5 @@ var import_tokens_core2 = require("@x-plat/tokens-core");
6111
6110
  breakpoints,
6112
6111
  cssVar,
6113
6112
  gridColumns,
6114
- primitive,
6115
6113
  semantic
6116
6114
  });
@@ -1,18 +1,17 @@
1
1
  export { B as BREAKPOINT_KEYS_ORDERED, a as BreakpointKey, b as GridColumnConfig, G as GridSpanFor, c as breakpoints, g as gridColumns } from '../breakpoints-DsXkJgdl.cjs';
2
- export { TokenVar, cssVar, primitive, semantic } from '@x-plat/tokens-core';
2
+ export { TokenVar, cssVar, semantic } from '@x-plat/tokens-core';
3
3
  import React from 'react';
4
4
 
5
- type SemanticTextToken = "semantic-text-strong" | "semantic-text-subtle" | "semantic-text-muted" | "semantic-text-brand" | "semantic-text-disabled" | "semantic-text-inverse" | "semantic-text-success" | "semantic-text-error" | "semantic-text-warning" | "semantic-text-info" | "semantic-text-link";
5
+ type SemanticTextToken = "semantic-text-primary" | "semantic-text-secondary" | "semantic-text-tertiary" | "semantic-text-brand-primary" | "semantic-text-brand-secondary" | "semantic-text-disabled" | "semantic-text-inverse" | "semantic-text-success" | "semantic-text-error" | "semantic-text-warning" | "semantic-text-info" | "semantic-text-link" | "semantic-text-accent-red" | "semantic-text-accent-blue";
6
6
  type SurfaceVariant = "subtle" | "default" | "strong";
7
- type SurfaceGroup = "brand" | "success" | "error" | "warning" | "info";
8
- type SemanticSurfaceToken = "semantic-surface-neutral-default" | "semantic-surface-neutral-subtle" | "semantic-surface-neutral-strong" | "semantic-surface-neutral-overlay" | "semantic-surface-neutral-disabled" | `semantic-surface-${SurfaceGroup}-${SurfaceVariant}`;
9
- type SemanticBorderToken = "semantic-border-default" | "semantic-border-subtle" | "semantic-border-strong" | "semantic-border-disabled" | "semantic-border-success" | "semantic-border-error" | "semantic-border-warning" | "semantic-border-info";
10
- type SemanticIconToken = "semantic-icon-strong" | "semantic-icon-subtle" | "semantic-icon-inverse" | "semantic-icon-brand" | "semantic-icon-success" | "semantic-icon-error" | "semantic-icon-warning" | "semantic-icon-info" | "semantic-icon-disabled";
11
- type SemanticEmphasisToken = "semantic-emphasis-brand" | "semantic-emphasis-success" | "semantic-emphasis-error" | "semantic-emphasis-warning" | "semantic-emphasis-info";
12
- type SemanticInteractionToken = "semantic-interaction-overlay-10" | "semantic-interaction-overlay-25" | "semantic-interaction-focus-ring";
13
- type SemanticColorToken = SemanticTextToken | SemanticSurfaceToken | SemanticBorderToken | SemanticIconToken | SemanticEmphasisToken | SemanticInteractionToken;
7
+ type SurfaceGroup = "brand" | "brand-secondary" | "success" | "error" | "warning" | "info";
8
+ type SemanticSurfaceToken = "semantic-surface-neutral-primary" | "semantic-surface-neutral-secondary" | "semantic-surface-neutral-tertiary" | "semantic-surface-neutral-inverse" | "semantic-surface-neutral-disabled" | `semantic-surface-${SurfaceGroup}-${SurfaceVariant}`;
9
+ type SemanticBorderToken = "semantic-border-primary" | "semantic-border-secondary" | "semantic-border-tertiary" | "semantic-border-disabled" | "semantic-border-brand-primary" | "semantic-border-brand-secondary" | "semantic-border-success" | "semantic-border-error" | "semantic-border-warning" | "semantic-border-info";
10
+ type SemanticIconToken = "semantic-icon-primary" | "semantic-icon-secondary" | "semantic-icon-inverse" | "semantic-icon-brand" | "semantic-icon-brand-secondary" | "semantic-icon-success" | "semantic-icon-error" | "semantic-icon-warning" | "semantic-icon-info" | "semantic-icon-disabled";
11
+ type SemanticInteractionToken = `semantic-interaction-overlay-${5 | 10 | 25 | 50 | 75}` | "semantic-interaction-focus-ring";
12
+ type SemanticColorToken = SemanticTextToken | SemanticSurfaceToken | SemanticBorderToken | SemanticIconToken | SemanticInteractionToken;
14
13
  type Shade = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
15
- type BrandToken = `brand-primary-${Shade}` | `brand-secondary-${Shade}` | `brand-neutral-${Shade}` | "brand-base-white" | "brand-base-black-alpha-10" | "brand-base-black-alpha-25";
14
+ type BrandToken = `brand-primary-${Shade}` | `brand-secondary-${Shade}` | `brand-neutral-${Shade}` | "brand-base-white" | `brand-base-overlay-${5 | 10 | 25 | 50 | 75 | 85}`;
16
15
  type SystemToken = `system-success-${Shade}` | `system-error-${Shade}` | `system-warning-${Shade}` | `system-info-${Shade}` | `system-link-${400 | 500 | 600 | 700}`;
17
16
  type ColorToken = SemanticColorToken | BrandToken | SystemToken | XplatColorTokenRegistry[keyof XplatColorTokenRegistry];
18
17
  interface ColorProps {
@@ -1,18 +1,17 @@
1
1
  export { B as BREAKPOINT_KEYS_ORDERED, a as BreakpointKey, b as GridColumnConfig, G as GridSpanFor, c as breakpoints, g as gridColumns } from '../breakpoints-DsXkJgdl.js';
2
- export { TokenVar, cssVar, primitive, semantic } from '@x-plat/tokens-core';
2
+ export { TokenVar, cssVar, semantic } from '@x-plat/tokens-core';
3
3
  import React from 'react';
4
4
 
5
- type SemanticTextToken = "semantic-text-strong" | "semantic-text-subtle" | "semantic-text-muted" | "semantic-text-brand" | "semantic-text-disabled" | "semantic-text-inverse" | "semantic-text-success" | "semantic-text-error" | "semantic-text-warning" | "semantic-text-info" | "semantic-text-link";
5
+ type SemanticTextToken = "semantic-text-primary" | "semantic-text-secondary" | "semantic-text-tertiary" | "semantic-text-brand-primary" | "semantic-text-brand-secondary" | "semantic-text-disabled" | "semantic-text-inverse" | "semantic-text-success" | "semantic-text-error" | "semantic-text-warning" | "semantic-text-info" | "semantic-text-link" | "semantic-text-accent-red" | "semantic-text-accent-blue";
6
6
  type SurfaceVariant = "subtle" | "default" | "strong";
7
- type SurfaceGroup = "brand" | "success" | "error" | "warning" | "info";
8
- type SemanticSurfaceToken = "semantic-surface-neutral-default" | "semantic-surface-neutral-subtle" | "semantic-surface-neutral-strong" | "semantic-surface-neutral-overlay" | "semantic-surface-neutral-disabled" | `semantic-surface-${SurfaceGroup}-${SurfaceVariant}`;
9
- type SemanticBorderToken = "semantic-border-default" | "semantic-border-subtle" | "semantic-border-strong" | "semantic-border-disabled" | "semantic-border-success" | "semantic-border-error" | "semantic-border-warning" | "semantic-border-info";
10
- type SemanticIconToken = "semantic-icon-strong" | "semantic-icon-subtle" | "semantic-icon-inverse" | "semantic-icon-brand" | "semantic-icon-success" | "semantic-icon-error" | "semantic-icon-warning" | "semantic-icon-info" | "semantic-icon-disabled";
11
- type SemanticEmphasisToken = "semantic-emphasis-brand" | "semantic-emphasis-success" | "semantic-emphasis-error" | "semantic-emphasis-warning" | "semantic-emphasis-info";
12
- type SemanticInteractionToken = "semantic-interaction-overlay-10" | "semantic-interaction-overlay-25" | "semantic-interaction-focus-ring";
13
- type SemanticColorToken = SemanticTextToken | SemanticSurfaceToken | SemanticBorderToken | SemanticIconToken | SemanticEmphasisToken | SemanticInteractionToken;
7
+ type SurfaceGroup = "brand" | "brand-secondary" | "success" | "error" | "warning" | "info";
8
+ type SemanticSurfaceToken = "semantic-surface-neutral-primary" | "semantic-surface-neutral-secondary" | "semantic-surface-neutral-tertiary" | "semantic-surface-neutral-inverse" | "semantic-surface-neutral-disabled" | `semantic-surface-${SurfaceGroup}-${SurfaceVariant}`;
9
+ type SemanticBorderToken = "semantic-border-primary" | "semantic-border-secondary" | "semantic-border-tertiary" | "semantic-border-disabled" | "semantic-border-brand-primary" | "semantic-border-brand-secondary" | "semantic-border-success" | "semantic-border-error" | "semantic-border-warning" | "semantic-border-info";
10
+ type SemanticIconToken = "semantic-icon-primary" | "semantic-icon-secondary" | "semantic-icon-inverse" | "semantic-icon-brand" | "semantic-icon-brand-secondary" | "semantic-icon-success" | "semantic-icon-error" | "semantic-icon-warning" | "semantic-icon-info" | "semantic-icon-disabled";
11
+ type SemanticInteractionToken = `semantic-interaction-overlay-${5 | 10 | 25 | 50 | 75}` | "semantic-interaction-focus-ring";
12
+ type SemanticColorToken = SemanticTextToken | SemanticSurfaceToken | SemanticBorderToken | SemanticIconToken | SemanticInteractionToken;
14
13
  type Shade = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
15
- type BrandToken = `brand-primary-${Shade}` | `brand-secondary-${Shade}` | `brand-neutral-${Shade}` | "brand-base-white" | "brand-base-black-alpha-10" | "brand-base-black-alpha-25";
14
+ type BrandToken = `brand-primary-${Shade}` | `brand-secondary-${Shade}` | `brand-neutral-${Shade}` | "brand-base-white" | `brand-base-overlay-${5 | 10 | 25 | 50 | 75 | 85}`;
16
15
  type SystemToken = `system-success-${Shade}` | `system-error-${Shade}` | `system-warning-${Shade}` | `system-info-${Shade}` | `system-link-${400 | 500 | 600 | 700}`;
17
16
  type ColorToken = SemanticColorToken | BrandToken | SystemToken | XplatColorTokenRegistry[keyof XplatColorTokenRegistry];
18
17
  interface ColorProps {
@@ -12,7 +12,7 @@ var gridColumns = {
12
12
  };
13
13
 
14
14
  // src/tokens/colors.ts
15
- import { primitive, semantic } from "@x-plat/tokens-core";
15
+ import { semantic } from "@x-plat/tokens-core";
16
16
 
17
17
  // src/tokens/svg/action/CopyIcon.tsx
18
18
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -5784,6 +5784,5 @@ export {
5784
5784
  breakpoints,
5785
5785
  cssVar,
5786
5786
  gridColumns,
5787
- primitive,
5788
5787
  semantic
5789
5788
  };
@@ -20,7 +20,7 @@
20
20
  1. ์ปดํฌ๋„ŒํŠธ์— `color` / `className` / `style` prop **์—†์Œ**. ์ƒ‰์ƒยท์Šคํƒ€์ผ์€ ๋‚ด๋ถ€ semantic ํ† ํฐ์œผ๋กœ ๊ณ ์ •๋จ.
21
21
  2. ์ปดํฌ๋„ŒํŠธ๋Š” `width: 100%` ๋กœ ๋ถ€๋ชจ๋ฅผ ์ฑ„์šฐ๋ฏ€๋กœ **๋ฐ˜๋“œ์‹œ GridItem ๋˜๋Š” wrapper ๋กœ ๊ฐ์‹ธ์„œ ๋„ˆ๋น„๋ฅผ ์ œ์–ด**.
22
22
  3. **CSS ๋กœ DS ์ปดํฌ๋„ŒํŠธ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜์ง€ ์•Š๋Š”๋‹ค**.
23
- 4. ์ƒ‰์ƒยท๊ฐ„๊ฒฉยทํƒ€์ดํฌ๋Š” **semantic ํ† ํฐ๋งŒ** ์‚ฌ์šฉ. primitive / brand ์ง์ ‘ ์ฐธ์กฐ ๊ธˆ์ง€.
23
+ 4. ์ƒ‰์ƒยท๊ฐ„๊ฒฉยทํƒ€์ดํฌ๋Š” **semantic ํ† ํฐ๋งŒ** ์‚ฌ์šฉ. brand / system / typo primitive ์ง์ ‘ ์ฐธ์กฐ ๊ธˆ์ง€.
24
24
  5. **๋ชจ๋“  visible ๊ทธ๋ฃน์€ ๋ช…์‹œ์  spacing ํ•„์ˆ˜**. wrapper ์˜ `padding` / `gap` / ๊ฐ„๊ฒฉ์„ spacing ํ† ํฐ์œผ๋กœ ์ง€์ •. ๋งค์ง ๋„˜๋ฒ„(`16px`, `1rem` ๋“ฑ) ๊ธˆ์ง€.
25
25
 
26
26
  ---
@@ -430,7 +430,7 @@ import { ChatInput } from "@x-plat/design-system/components";
430
430
  <Button>B</Button>
431
431
  </div>
432
432
 
433
- // primitive ์ง์ ‘ ์ฐธ์กฐ (semantic ๋งŒ ํ—ˆ์šฉ)
433
+ // ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ ˆ์ด์–ด ์ฐธ์กฐ (semantic ๋งŒ ํ—ˆ์šฉ)
434
434
  <div style={{ padding: "var(--spacing-size-4)" }}>...</div>
435
435
  ```
436
436
 
@@ -563,15 +563,14 @@ CSS ๋ณ€์ˆ˜ `--semantic-{category}-{role}` ์‚ฌ์šฉ.
563
563
 
564
564
  | ์นดํ…Œ๊ณ ๋ฆฌ | ํ‚ค |
565
565
  |---|---|
566
- | `text` | strong / subtle / muted / brand / disabled / inverse / success / error / warning / info / link / sunday / saturday |
567
- | `surface` | neutral.{default/subtle/strong/overlay/disabled} / brand.{subtle/default/strong} / success/error/warning/info.{subtle/default/strong} |
568
- | `border` | default / subtle / strong / disabled / brand / success / error / warning / info |
569
- | `icon` | strong / subtle / inverse / brand / success / error / warning / info / disabled |
570
- | `emphasis` | brand / success / error / warning / info |
571
- | `interaction` | overlay-10 / overlay-25 / focus-ring |
566
+ | `text` | primary / secondary / tertiary / brand-primary / brand-secondary / disabled / inverse / success / error / warning / info / link / accent-red / accent-blue |
567
+ | `surface` | neutral.{primary/secondary/tertiary/inverse/disabled} / brand.{subtle/default/strong} / brand-secondary.{subtle/default/strong} / success/error/warning/info.{subtle/default/strong} |
568
+ | `border` | primary / secondary / tertiary / disabled / brand-primary / brand-secondary / success / error / warning / info |
569
+ | `icon` | primary / secondary / inverse / brand / brand-secondary / success / error / warning / info / disabled |
570
+ | `interaction` | overlay-5 / overlay-10 / overlay-25 / overlay-50 / overlay-75 / focus-ring |
572
571
  | `categorical` | 1-8 ร— {bg / area / fill / text} |
573
572
 
574
- ์˜ˆ: `color: var(--semantic-text-strong)`, `background: var(--semantic-surface-brand-default)`
573
+ ์˜ˆ: `color: var(--semantic-text-primary)`, `background: var(--semantic-surface-brand-default)`
575
574
 
576
575
  ### ์ŠคํŽ˜์ด์‹ฑ
577
576
 
@@ -43,7 +43,7 @@ React ๊ธฐ๋ฐ˜ ๋””์ž์ธ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. Figma Make Kit๊ณผ 1:1
43
43
 
44
44
  1. **[์„ค์น˜ ๋ฐ ์„ค์ •](./setup.md)** - CSS/์ปดํฌ๋„ŒํŠธ import, ToastProvider ์„ค์ •
45
45
  2. **ํŒŒ์šด๋ฐ์ด์…˜**
46
- - [์ปฌ๋Ÿฌ](./foundations/color.md) - 4๋ ˆ์ด์–ด semantic ํ† ํฐ
46
+ - [์ปฌ๋Ÿฌ](./foundations/color.md) - 3๋ ˆ์ด์–ด semantic ํ† ํฐ
47
47
  - [์ŠคํŽ˜์ด์‹ฑ](./foundations/spacing.md) - space, radius, stroke
48
48
  - [ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ](./foundations/typography.md) - font, size, weight
49
49
  - [์•„์ด์ฝ˜](./foundations/icons.md) - import, ํฌ๊ธฐ/์ƒ‰์ƒ, ์นดํ…Œ๊ณ ๋ฆฌ
@@ -17,7 +17,7 @@ import { Chart } from "@xplat/design-system";
17
17
 
18
18
  ## ์ƒ‰์ƒ
19
19
 
20
- primitive ํŒ”๋ ˆํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ๋ฆฌ์ฆˆ๋ณ„ ์ƒ‰์ƒ์„ ์ž๋™ ๋ฐฐ์ •ํ•œ๋‹ค. line/bar๋Š” `LINE_BAR_PALETTES`, pie/doughnut๋Š” `PIE_PALETTES`๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
20
+ semantic categorical ํ† ํฐ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ๋ฆฌ์ฆˆ๋ณ„ ์ƒ‰์ƒ์„ ์ž๋™ ๋ฐฐ์ •ํ•œ๋‹ค. line/bar๋Š” `LINE_BAR_PALETTES`, pie/doughnut๋Š” `PIE_PALETTES`๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
21
21
 
22
22
  ---
23
23
 
@@ -1,15 +1,15 @@
1
1
  # ์ปฌ๋Ÿฌ ํ† ํฐ ์‹œ์Šคํ…œ
2
2
 
3
- ## 4๋ ˆ์ด์–ด ๊ตฌ์กฐ
3
+ ## 3๋ ˆ์ด์–ด ๊ตฌ์กฐ
4
4
 
5
5
  | ๋ ˆ์ด์–ด | ์ ‘๋‘์‚ฌ | ์—ญํ•  |
6
6
  |--------|--------|------|
7
- | Primitive | `--primitive-*` | ๊ธฐ์ดˆ ํŒ”๋ ˆํŠธ (hex) |
8
- | Brand | `--brand-*` | ๋ธŒ๋žœ๋“œ ์ƒ‰์ƒ |
9
- | System | `--system-*` | ์ƒํƒœ ์ƒ‰์ƒ (success/error/warning/info) |
7
+ | Brand | `--brand-*` | ๋ธŒ๋žœ๋“œ ์ƒ‰์ƒ (hex ์‹ค๊ฐ’, ํ…Œ๋งˆ๋ณ„ ์˜ค๋ฒ„๋ผ์ด๋“œ) |
8
+ | System | `--system-*` | ์ƒํƒœ ์ƒ‰์ƒ (success/error/warning/info/link, hex ์‹ค๊ฐ’) |
10
9
  | Semantic | `--semantic-*` | ์šฉ๋„ ๊ธฐ๋ฐ˜ ์ตœ์ข… ํ† ํฐ (brand+system ์ฐธ์กฐ) |
11
10
 
12
- ์ปดํฌ๋„ŒํŠธ๋Š” **semantic ํ† ํฐ๋งŒ** ์†Œ๋น„ํ•œ๋‹ค. primitive/brand/system์„ ์ง์ ‘ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค.
11
+ Figma `brand` / `system` / `semantic` ์ปฌ๋ ‰์…˜๊ณผ 1:1 ๋Œ€์‘ํ•œ๋‹ค.
12
+ ์ปดํฌ๋„ŒํŠธ๋Š” **semantic ํ† ํฐ๋งŒ** ์†Œ๋น„ํ•œ๋‹ค. brand/system์„ ์ง์ ‘ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค.
13
13
 
14
14
  ---
15
15
 
@@ -19,16 +19,16 @@
19
19
 
20
20
  ```tsx
21
21
  // ํ…์ŠคํŠธ
22
- <p className="text-semantic-text-strong">๊ฐ•์กฐ ํ…์ŠคํŠธ</p>
23
- <p className="text-semantic-text-subtle">๋ณด์กฐ ํ…์ŠคํŠธ</p>
22
+ <p className="text-semantic-text-primary">๊ฐ•์กฐ ํ…์ŠคํŠธ</p>
23
+ <p className="text-semantic-text-secondary">๋ณด์กฐ ํ…์ŠคํŠธ</p>
24
24
  <p className="text-semantic-text-error">์—๋Ÿฌ ๋ฉ”์‹œ์ง€</p>
25
25
 
26
26
  // ๋ฐฐ๊ฒฝ
27
- <div className="bg-semantic-surface-neutral-default">๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ</div>
27
+ <div className="bg-semantic-surface-neutral-primary">๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ</div>
28
28
  <div className="bg-semantic-surface-brand-subtle">๋ธŒ๋žœ๋“œ ๋ฐฐ๊ฒฝ</div>
29
29
 
30
30
  // ํ…Œ๋‘๋ฆฌ
31
- <div className="border border-semantic-border-default">๊ธฐ๋ณธ ํ…Œ๋‘๋ฆฌ</div>
31
+ <div className="border border-semantic-border-primary">๊ธฐ๋ณธ ํ…Œ๋‘๋ฆฌ</div>
32
32
  ```
33
33
 
34
34
  ---
@@ -37,12 +37,13 @@
37
37
 
38
38
  ### Text
39
39
 
40
- `--semantic-text-{strong, subtle, muted, brand, disabled, inverse, success, error, warning, info, link, sunday, saturday}`
40
+ `--semantic-text-{primary, secondary, tertiary, brand-primary, brand-secondary, disabled, inverse, success, error, warning, info, link, accent-red, accent-blue}`
41
41
 
42
42
  ### Surface
43
43
 
44
- - Neutral: `--semantic-surface-neutral-{subtle, default, strong}`
44
+ - Neutral: `--semantic-surface-neutral-{primary, secondary, tertiary, inverse, disabled}`
45
45
  - Brand: `--semantic-surface-brand-{subtle, default, strong}`
46
+ - Brand Secondary: `--semantic-surface-brand-secondary-{subtle, default, strong}`
46
47
  - Success: `--semantic-surface-success-{subtle, default, strong}`
47
48
  - Error: `--semantic-surface-error-{subtle, default, strong}`
48
49
  - Warning: `--semantic-surface-warning-{subtle, default, strong}`
@@ -50,32 +51,30 @@
50
51
 
51
52
  ### Border
52
53
 
53
- `--semantic-border-{default, strong, subtle, disabled, focus, error, success}`
54
+ `--semantic-border-{primary, secondary, tertiary, disabled, brand-primary, brand-secondary, success, error, warning, info}`
54
55
 
55
56
  ### Icon
56
57
 
57
- `--semantic-icon-{default, subtle, disabled, inverse, brand, success, warning, error, info}`
58
-
59
- ### Emphasis
60
-
61
- `--semantic-emphasis-{brand, success, error, warning, info}`
58
+ `--semantic-icon-{primary, secondary, inverse, brand, brand-secondary, success, error, warning, info, disabled}`
62
59
 
63
60
  ### Interaction
64
61
 
65
- `--semantic-interaction-{primary, primary-hover, primary-active, primary-disabled, secondary, secondary-hover, secondary-active, danger, danger-hover, danger-active}`
62
+ `--semantic-interaction-{overlay-5, overlay-10, overlay-25, overlay-50, overlay-75, focus-ring}`
63
+
64
+ ### Categorical (XPLAT ํ™•์žฅ)
66
65
 
67
- ### Categorical
66
+ Figma ์ปฌ๋ ‰์…˜์—๋Š” ์—†๊ณ  ์ฐจํŠธ/ํƒœ๊ทธ/์•„๋ฐ”ํƒ€ ์‹œ๋ฆฌ์ฆˆ ์ƒ‰์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
68
67
 
69
- `--semantic-categorical-{1, 2, 3, 4, 5, 6, 7, 8}`
68
+ `--semantic-categorical-{1..8}-{bg, area, fill, text}`
70
69
 
71
70
  ---
72
71
 
73
72
  ## ์ž˜๋ชป๋œ ์‚ฌ์šฉ
74
73
 
75
74
  ```css
76
- /* ๊ธˆ์ง€: primitive ํ† ํฐ ์ง์ ‘ ์‚ฌ์šฉ */
77
- color: var(--primitive-blue-500);
75
+ /* ๊ธˆ์ง€: brand/system ํ† ํฐ ์ง์ ‘ ์‚ฌ์šฉ */
76
+ color: var(--brand-primary-500);
78
77
 
79
78
  /* ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•: semantic ํ† ํฐ ์‚ฌ์šฉ */
80
- color: var(--semantic-text-brand);
79
+ color: var(--semantic-text-brand-primary);
81
80
  ```
@@ -1,63 +1,113 @@
1
1
  # ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ํ† ํฐ ์‹œ์Šคํ…œ
2
2
 
3
- ## 3๋ ˆ์ด์–ด ๊ตฌ์กฐ
3
+ ## 2๋ ˆ์ด์–ด ๊ตฌ์กฐ
4
4
 
5
- | ๋ ˆ์ด์–ด | ์—ญํ•  |
6
- |--------|------|
7
- | Primitive | ๊ธฐ์ดˆ ํฐํŠธ ์ˆ˜์น˜ |
8
- | Brand | ๋ธŒ๋žœ๋“œ๋ณ„ ์ปค์Šคํ…€ |
9
- | Semantic | ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์†Œ๋น„ํ•˜๋Š” ์ตœ์ข… ํ† ํฐ |
5
+ | ๋ ˆ์ด์–ด | ์ ‘๋‘์‚ฌ | ์—ญํ•  |
6
+ |--------|--------|------|
7
+ | Primitive | `--typo-*` | ๊ธฐ์ดˆ ํฐํŠธ ์ˆ˜์น˜ (pc/tablet/mobile ๋ฐ˜์‘ํ˜•) |
8
+ | Semantic | `--semantic-typo-*` | ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์†Œ๋น„ํ•˜๋Š” ํ•ฉ์„ฑ ์Šคํƒ€์ผ 23์ข… |
9
+
10
+ Figma `typography` ์ปฌ๋ ‰์…˜์€ primitive ๋งŒ ๊ฐ–๊ณ , pc / tablet / mobile ์„ **๋ชจ๋“œ**๋กœ ๋‘”๋‹ค.
11
+ density(compact/airy) ์ถ•๊ณผ ๋ธŒ๋žœ๋“œ ์˜ค๋ฒ„๋ผ์ด๋“œ ๋ ˆ์ด์–ด๋Š” ์—†๋‹ค.
12
+
13
+ ์ปดํฌ๋„ŒํŠธ๋Š” **semantic ๋งŒ** ์†Œ๋น„ํ•œ๋‹ค. `--typo-*` ๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค.
10
14
 
11
15
  ---
12
16
 
13
- ## Font Family
17
+ ## ๋ฐ˜์‘ํ˜• ๋™์ž‘
14
18
 
15
- | ํ† ํฐ | ์šฉ๋„ |
19
+ primitive ์˜ size / line-height / letter-spacing ์€ ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋ณ„๋กœ ๊ฐ’์ด ๋‹ค๋ฅด๋‹ค.
20
+ CSS ๋Š” PC ๊ธฐ์ค€๊ฐ’์„ `:root` ์— ๋‘๊ณ  tablet/mobile ์„ `@media` ๋กœ ๋ฎ๋Š”๋‹ค.
21
+
22
+ | ๋ชจ๋“œ | ๋ฒ”์œ„ |
16
23
  |------|------|
17
- | `--font-family-sans` | ๊ธฐ๋ณธ ์‚ฐ์„ธ๋ฆฌํ”„ |
18
- | `--font-family-serif` | ์„ธ๋ฆฌํ”„ |
19
- | `--font-family-suit` | SUIT ํฐํŠธ |
24
+ | pc | โ‰ฅ 1024px |
25
+ | tablet | 768 ~ 1023px |
26
+ | mobile | < 768px |
20
27
 
21
- ## Font Size
28
+ semantic ์Šคํƒ€์ผ์€ primitive ๋ฅผ `var()` ๋กœ ์ฐธ์กฐํ•˜๋ฏ€๋กœ ์ž๋™์œผ๋กœ ๋ฐ˜์‘ํ˜•์ด ๋œ๋‹ค.
22
29
 
23
- `--font-size-{xs, sm, md, lg, xl, 2xl, 3xl, 4xl}`
30
+ ---
24
31
 
25
- ## Line Height (Density)
32
+ ## Primitive
26
33
 
27
- 3๋‹จ๊ณ„ ๋ฐ€๋„๋ฅผ ์ง€์›ํ•œ๋‹ค.
34
+ ### Font Family
28
35
 
29
- | ๋ฐ€๋„ | ์šฉ๋„ |
36
+ | ํ† ํฐ | ์šฉ๋„ |
30
37
  |------|------|
31
- | compact | ์ •๋ณด ๋ฐ€์ง‘ UI |
32
- | default | ๊ธฐ๋ณธ |
33
- | airy | ์—ฌ์œ  ์žˆ๋Š” UI |
38
+ | `--typo-font-family-default` | ๋ณธ๋ฌธยท๋ผ๋ฒจยท์บก์…˜ |
39
+ | `--typo-font-family-brand` | displayยทtitle (๋ธŒ๋žœ๋“œ ํ‘œํ˜„) |
34
40
 
35
- ## Font Weight
41
+ ### Size / Line Height
42
+
43
+ `--typo-size-{key}` ยท `--typo-lh-{key}`
44
+
45
+ key: `display-1` `display-2` `title-1` `title-2` `heading-1` `heading-2` `body-1` `body-2` `label-1` `label-2` `caption-1` `caption-2`
46
+
47
+ ### Font Weight
36
48
 
37
49
  | ํ† ํฐ | ๊ฐ’ |
38
50
  |------|-----|
39
- | `--font-weight-regular` | 400 |
40
- | `--font-weight-medium` | 500 |
41
- | `--font-weight-semibold` | 600 |
42
- | `--font-weight-bold` | 700 |
51
+ | `--typo-weight-regular` | 400 |
52
+ | `--typo-weight-medium` | 500 |
53
+ | `--typo-weight-semibold` | 600 |
54
+ | `--typo-weight-bold` | 700 |
43
55
 
44
- ## Letter Spacing
56
+ ### Letter Spacing
45
57
 
46
58
  | ํ† ํฐ | ์šฉ๋„ |
47
59
  |------|------|
48
- | `--letter-spacing-tight` | ์ข์€ ์ž๊ฐ„ |
49
- | `--letter-spacing-normal` | ๊ธฐ๋ณธ ์ž๊ฐ„ |
50
- | `--letter-spacing-wide` | ๋„“์€ ์ž๊ฐ„ |
60
+ | `--typo-ls-tight` | displayยทtitleยทheading |
61
+ | `--typo-ls-normal` | bodyยทlabel-1 |
62
+ | `--typo-ls-wide` | label-2ยทcaption |
51
63
 
52
64
  ---
53
65
 
54
66
  ## Semantic Text Styles
55
67
 
56
- | ์Šคํƒ€์ผ | ์šฉ๋„ |
57
- |--------|------|
58
- | display | ๋Œ€ํ˜• ํƒ€์ดํ‹€, ํžˆ์–ด๋กœ |
59
- | title | ํŽ˜์ด์ง€ ํƒ€์ดํ‹€ |
60
- | heading | ์„น์…˜ ํƒ€์ดํ‹€ |
61
- | body | ๋ณธ๋ฌธ ํ…์ŠคํŠธ |
62
- | label | ํผ ๋ผ๋ฒจ, ๋ฒ„ํŠผ ํ…์ŠคํŠธ |
63
- | caption | ๋ถ€๊ฐ€ ์„ค๋ช…, ํžŒํŠธ |
68
+ ์Šคํƒ€์ผ ํ•˜๋‚˜๊ฐ€ 5๊ฐœ ์†์„ฑ(`font` `size` `lh` `ls` `weight`)์„ ๊ฐ–๋Š”๋‹ค.
69
+ ์ ‘๋ฏธ์‚ฌ๋Š” weight โ€” `b`=bold, `sb`=semibold, `m`=medium, `r`=regular.
70
+
71
+ | ๊ณ„์—ด | ์Šคํƒ€์ผ | ์šฉ๋„ |
72
+ |------|--------|------|
73
+ | display | `display-1-b` `display-1-sb` `display-2-b` `display-2-sb` | ๋Œ€ํ˜• ํƒ€์ดํ‹€, ํžˆ์–ด๋กœ |
74
+ | title | `title-1-sb` `title-1-m` `title-2-sb` `title-2-m` | ํŽ˜์ด์ง€ ํƒ€์ดํ‹€ |
75
+ | heading | `heading-1-sb` `heading-1-m` `heading-2-m` | ์„น์…˜ ํƒ€์ดํ‹€ |
76
+ | body | `body-1-sb` `body-1-m` `body-1-r` `body-2-m` `body-2-r` | ๋ณธ๋ฌธ ํ…์ŠคํŠธ |
77
+ | label | `label-1-sb` `label-1-m` `label-2-sb` `label-2-m` | ํผ ๋ผ๋ฒจ, ๋ฒ„ํŠผ ํ…์ŠคํŠธ |
78
+ | caption | `caption-1-sb` `caption-1-r` `caption-2-r` | ๋ถ€๊ฐ€ ์„ค๋ช…, ํžŒํŠธ |
79
+
80
+ ### ์‚ฌ์šฉ๋ฒ•
81
+
82
+ ์†์„ฑ๋ณ„ ๋ณ€์ˆ˜๋กœ ์ฐธ์กฐํ•œ๋‹ค.
83
+
84
+ ```scss
85
+ .my-label {
86
+ font-family: var(--semantic-typo-label-2-m-font);
87
+ font-size: var(--semantic-typo-label-2-m-size);
88
+ line-height: var(--semantic-typo-label-2-m-lh);
89
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
90
+ font-weight: var(--semantic-typo-label-2-m-weight);
91
+ }
92
+ ```
93
+
94
+ ๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋กœ ํ•œ ๋ฒˆ์— ์ ์šฉํ•œ๋‹ค.
95
+
96
+ ```tsx
97
+ <span className="typo-label-2-m">๋ผ๋ฒจ</span>
98
+ ```
99
+
100
+ ---
101
+
102
+ ## ์ž˜๋ชป๋œ ์‚ฌ์šฉ
103
+
104
+ ```scss
105
+ /* ๊ธˆ์ง€: px ํ•˜๋“œ์ฝ”๋”ฉ */
106
+ font-size: 14px;
107
+
108
+ /* ๊ธˆ์ง€: primitive ์ง์ ‘ ์ฐธ์กฐ */
109
+ font-size: var(--typo-size-label-2);
110
+
111
+ /* ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•: semantic ์‚ฌ์šฉ */
112
+ font-size: var(--semantic-typo-label-2-m-size);
113
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x-plat/design-system",
3
- "version": "0.5.66",
3
+ "version": "0.6.1",
4
4
  "description": "XPLAT UI Design System",
5
5
  "author": "XPLAT WOONG",
6
6
  "main": "dist/index.cjs",