@iyulab/components 1.10.0 → 1.12.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 (62) hide show
  1. package/CHANGELOG.md +84 -9
  2. package/README.md +3 -1
  3. package/dist/_virtual/_glob-assets_raw/dark.css.e8ac080d.js +1 -1
  4. package/dist/_virtual/_glob-assets_raw/light.css.637cb2f8.js +1 -1
  5. package/dist/components/UElement.styles.js +2 -2
  6. package/dist/components/alert/UAlert.d.ts +3 -0
  7. package/dist/components/alert/UAlert.styles.js +29 -19
  8. package/dist/components/avatar/UAvatar.styles.js +2 -2
  9. package/dist/components/badge/UBadge.d.ts +2 -0
  10. package/dist/components/badge/UBadge.js +5 -3
  11. package/dist/components/badge/UBadge.styles.js +16 -5
  12. package/dist/components/breadcrumb-item/UBreadcrumbItem.styles.js +1 -1
  13. package/dist/components/button/UButton.d.ts +3 -2
  14. package/dist/components/button/UButton.styles.js +6 -6
  15. package/dist/components/card/UCard.d.ts +2 -0
  16. package/dist/components/card/UCard.js +2 -0
  17. package/dist/components/card/UCard.styles.js +17 -3
  18. package/dist/components/carousel/UCarousel.styles.js +1 -1
  19. package/dist/components/checkbox/UCheckbox.d.ts +1 -1
  20. package/dist/components/checkbox/UCheckbox.styles.js +39 -99
  21. package/dist/components/copy-button/UCopyButton.styles.js +2 -2
  22. package/dist/components/dialog/UDialog.styles.js +2 -2
  23. package/dist/components/drawer/UDrawer.styles.js +1 -1
  24. package/dist/components/field/UField.styles.js +2 -2
  25. package/dist/components/icon-button/UIconButton.styles.js +1 -1
  26. package/dist/components/input/UInput.styles.js +3 -3
  27. package/dist/components/menu/UMenu.d.ts +3 -0
  28. package/dist/components/menu/UMenu.js +3 -1
  29. package/dist/components/menu/UMenu.styles.js +19 -6
  30. package/dist/components/menu-item/UMenuItem.d.ts +1 -1
  31. package/dist/components/menu-item/UMenuItem.styles.js +2 -2
  32. package/dist/components/option/UOption.d.ts +3 -1
  33. package/dist/components/option/UOption.js +7 -5
  34. package/dist/components/option/UOption.styles.js +17 -6
  35. package/dist/components/progress-bar/UProgressBar.styles.js +10 -10
  36. package/dist/components/progress-ring/UProgressRing.styles.js +9 -9
  37. package/dist/components/radio/URadio.d.ts +1 -1
  38. package/dist/components/radio/URadio.styles.js +2 -2
  39. package/dist/components/rating/URating.styles.js +2 -2
  40. package/dist/components/select/USelect.styles.js +3 -3
  41. package/dist/components/skeleton/USkeleton.styles.js +3 -3
  42. package/dist/components/slider/USlider.styles.js +4 -4
  43. package/dist/components/spinner/USpinner.styles.js +1 -1
  44. package/dist/components/split-panel/USplitPanel.styles.js +2 -2
  45. package/dist/components/switch/USwitch.styles.js +4 -4
  46. package/dist/components/tab/UTab.d.ts +2 -0
  47. package/dist/components/tab/UTab.js +7 -5
  48. package/dist/components/tab/UTab.styles.js +15 -3
  49. package/dist/components/tab-panel/UTabPanel.d.ts +1 -1
  50. package/dist/components/tab-panel/UTabPanel.styles.js +3 -3
  51. package/dist/components/tag/UTag.d.ts +4 -1
  52. package/dist/components/tag/UTag.js +7 -5
  53. package/dist/components/tag/UTag.styles.js +101 -170
  54. package/dist/components/textarea/UTextarea.styles.js +2 -2
  55. package/dist/components/tooltip/UTooltip.d.ts +2 -0
  56. package/dist/components/tooltip/UTooltip.js +3 -1
  57. package/dist/components/tooltip/UTooltip.styles.js +12 -3
  58. package/dist/components/tree-item/UTreeItem.d.ts +1 -1
  59. package/dist/components/tree-item/UTreeItem.styles.js +3 -3
  60. package/dist/styles/dark.css +63 -7
  61. package/dist/styles/light.css +63 -7
  62. package/package.json +3 -2
@@ -94,7 +94,7 @@ var styles = css`
94
94
  height: 10px;
95
95
  padding: 0;
96
96
  border: none;
97
- border-radius: 50%;
97
+ border-radius: var(--u-radius-circle);
98
98
  background-color: var(--u-neutral-400);
99
99
  cursor: pointer;
100
100
  transition: all 0.2s ease;
@@ -20,7 +20,7 @@ export type CheckboxColor = "blue" | "green" | "red" | "orange" | "teal" | "cyan
20
20
  *
21
21
  * @event change - 체크 상태 변경 시 발생
22
22
  *
23
- * @cssprop --checkbox-fill-color - 체크된 상태의 채움색 (기본: --u-primary-color, 미지정 시 blue-600)
23
+ * @cssprop --checkbox-fill-color - 체크된 상태의 채움색 (기본: --u-primary-color)
24
24
  */
25
25
  export declare class UCheckbox extends UFormControlElement<string> {
26
26
  static styles: import('lit').CSSResultGroup[];
@@ -2,7 +2,7 @@ import { css } from "lit";
2
2
  //#region src/components/checkbox/UCheckbox.styles.ts
3
3
  var styles = css`
4
4
  :host {
5
- --checkbox-fill-color: var(--u-primary-color, var(--u-blue-600));
5
+ --checkbox-fill-color: var(--u-primary-color);
6
6
  --checkbox-color: inherit;
7
7
  --checkbox-border-color: var(--u-input-border-color);
8
8
  --checkbox-background-color: var(--u-input-bg-color);
@@ -27,10 +27,10 @@ var styles = css`
27
27
  cursor: default;
28
28
  }
29
29
  :host([invalid]) {
30
- --checkbox-border-color: var(--u-red-600);
30
+ --checkbox-border-color: var(--u-danger-color);
31
31
  }
32
32
  :host([invalid]) .footer {
33
- color: var(--u-red-600);
33
+ color: var(--u-danger-color);
34
34
  }
35
35
  :host([checked]) .checkbox u-icon,
36
36
  :host([indeterminate]) .checkbox u-icon {
@@ -44,110 +44,50 @@ var styles = css`
44
44
  :host([variant="filled"][checked]),
45
45
  :host([variant="filled"][indeterminate]) {
46
46
  --checkbox-color: var(--u-neutral-100);
47
- --checkbox-border-color: var(--checkbox-fill-color);
48
- --checkbox-background-color: var(--checkbox-fill-color);
47
+ --checkbox-border-color: var(--checkbox-hue, var(--checkbox-fill-color));
48
+ --checkbox-background-color: var(--checkbox-hue, var(--checkbox-fill-color));
49
49
  }
50
50
 
51
51
  /* === Variant: outline - 테두리만 === */
52
52
  :host([variant="outline"][checked]),
53
53
  :host([variant="outline"][indeterminate]) {
54
- --checkbox-border-color: var(--checkbox-fill-color);
54
+ --checkbox-color: var(--checkbox-hue, var(--checkbox-fill-color));
55
+ --checkbox-border-color: var(--checkbox-hue, var(--checkbox-fill-color));
55
56
  --checkbox-background-color: transparent;
56
57
  }
57
58
 
58
- /* === Color variants (filled) === */
59
- :host([variant="filled"][color="blue"][checked]),
60
- :host([variant="filled"][color="blue"][indeterminate]) {
61
- --checkbox-border-color: var(--checkbox-fill-color);
62
- --checkbox-background-color: var(--checkbox-fill-color);
63
- }
64
- :host([variant="filled"][color="green"][checked]),
65
- :host([variant="filled"][color="green"][indeterminate]) {
66
- --checkbox-border-color: var(--u-green-600);
67
- --checkbox-background-color: var(--u-green-600);
68
- }
69
- :host([variant="filled"][color="red"][checked]),
70
- :host([variant="filled"][color="red"][indeterminate]) {
71
- --checkbox-border-color: var(--u-red-600);
72
- --checkbox-background-color: var(--u-red-600);
73
- }
74
- :host([variant="filled"][color="orange"][checked]),
75
- :host([variant="filled"][color="orange"][indeterminate]) {
76
- --checkbox-border-color: var(--u-orange-600);
77
- --checkbox-background-color: var(--u-orange-600);
78
- }
79
- :host([variant="filled"][color="teal"][checked]),
80
- :host([variant="filled"][color="teal"][indeterminate]) {
81
- --checkbox-border-color: var(--u-teal-600);
82
- --checkbox-background-color: var(--u-teal-600);
83
- }
84
- :host([variant="filled"][color="cyan"][checked]),
85
- :host([variant="filled"][color="cyan"][indeterminate]) {
86
- --checkbox-border-color: var(--u-cyan-600);
87
- --checkbox-background-color: var(--u-cyan-600);
88
- }
89
- :host([variant="filled"][color="purple"][checked]),
90
- :host([variant="filled"][color="purple"][indeterminate]) {
91
- --checkbox-border-color: var(--u-purple-600);
92
- --checkbox-background-color: var(--u-purple-600);
93
- }
94
- :host([variant="filled"][color="pink"][checked]),
95
- :host([variant="filled"][color="pink"][indeterminate]) {
96
- --checkbox-border-color: var(--u-pink-600);
97
- --checkbox-background-color: var(--u-pink-600);
98
- }
99
- :host([variant="filled"][color="neutral"][checked]),
100
- :host([variant="filled"][color="neutral"][indeterminate]) {
101
- --checkbox-border-color: var(--u-neutral-600);
102
- --checkbox-background-color: var(--u-neutral-600);
59
+ /* ==========================================================================
60
+ 장식 축 — color= 는 hue 슬롯만 채운다. variant 규칙이 폴백과 함께 읽는다.
61
+ 기본값 blue 는 규칙이 없다 = 슬롯이 비어 브랜드 훅(--checkbox-fill-color) 탄다.
62
+ u-tag 와 같은 방식이다 — 슬롯이 채워지면 color= 가 최종 권한을 갖는다.
63
+ blue 는 장식 축의 한 값이 아니라 "색을 지정하지 않음" 의 표기다.
64
+ ========================================================================== */
65
+ :host([color="green"]) {
66
+ --checkbox-hue: var(--u-green-600);
103
67
  }
104
-
105
- /* === Color variants (outline) === */
106
- :host([variant="outline"][color="blue"][checked]),
107
- :host([variant="outline"][color="blue"][indeterminate]) {
108
- --checkbox-color: var(--checkbox-fill-color);
109
- --checkbox-border-color: var(--checkbox-fill-color);
110
- }
111
- :host([variant="outline"][color="green"][checked]),
112
- :host([variant="outline"][color="green"][indeterminate]) {
113
- --checkbox-color: var(--u-green-600);
114
- --checkbox-border-color: var(--u-green-600);
115
- }
116
- :host([variant="outline"][color="red"][checked]),
117
- :host([variant="outline"][color="red"][indeterminate]) {
118
- --checkbox-color: var(--u-red-600);
119
- --checkbox-border-color: var(--u-red-600);
120
- }
121
- :host([variant="outline"][color="orange"][checked]),
122
- :host([variant="outline"][color="orange"][indeterminate]) {
123
- --checkbox-color: var(--u-orange-600);
124
- --checkbox-border-color: var(--u-orange-600);
125
- }
126
- :host([variant="outline"][color="teal"][checked]),
127
- :host([variant="outline"][color="teal"][indeterminate]) {
128
- --checkbox-color: var(--u-teal-600);
129
- --checkbox-border-color: var(--u-teal-600);
130
- }
131
- :host([variant="outline"][color="cyan"][checked]),
132
- :host([variant="outline"][color="cyan"][indeterminate]) {
133
- --checkbox-color: var(--u-cyan-600);
134
- --checkbox-border-color: var(--u-cyan-600);
135
- }
136
- :host([variant="outline"][color="purple"][checked]),
137
- :host([variant="outline"][color="purple"][indeterminate]) {
138
- --checkbox-color: var(--u-purple-600);
139
- --checkbox-border-color: var(--u-purple-600);
140
- }
141
- :host([variant="outline"][color="pink"][checked]),
142
- :host([variant="outline"][color="pink"][indeterminate]) {
143
- --checkbox-color: var(--u-pink-600);
144
- --checkbox-border-color: var(--u-pink-600);
145
- }
146
- :host([variant="outline"][color="neutral"][checked]),
147
- :host([variant="outline"][color="neutral"][indeterminate]) {
148
- --checkbox-color: var(--u-neutral-600);
149
- --checkbox-border-color: var(--u-neutral-600);
68
+ :host([color="red"]) {
69
+ --checkbox-hue: var(--u-red-600);
70
+ }
71
+ :host([color="orange"]) {
72
+ --checkbox-hue: var(--u-orange-600);
73
+ }
74
+ :host([color="teal"]) {
75
+ --checkbox-hue: var(--u-teal-600);
76
+ }
77
+ :host([color="cyan"]) {
78
+ --checkbox-hue: var(--u-cyan-600);
79
+ }
80
+ :host([color="purple"]) {
81
+ --checkbox-hue: var(--u-purple-600);
150
82
  }
83
+ :host([color="pink"]) {
84
+ --checkbox-hue: var(--u-pink-600);
85
+ }
86
+ :host([color="neutral"]) {
87
+ --checkbox-hue: var(--u-neutral-600);
88
+ }
89
+
90
+
151
91
 
152
92
  .wrapper {
153
93
  display: inline-flex;
@@ -197,7 +137,7 @@ var styles = css`
197
137
  }
198
138
 
199
139
  .required {
200
- color: var(--u-red-600);
140
+ color: var(--u-danger-color);
201
141
  font-weight: 500;
202
142
  }
203
143
 
@@ -209,7 +149,7 @@ var styles = css`
209
149
  }
210
150
 
211
151
  :host([invalid]) .description {
212
- color: var(--u-red-600);
152
+ color: var(--u-danger-color);
213
153
  }
214
154
  `;
215
155
  //#endregion
@@ -14,12 +14,12 @@ var styles = css`
14
14
  }
15
15
 
16
16
  :host([copied]) u-icon-button {
17
- color: var(--u-green-500);
17
+ color: var(--u-success-color-weak);
18
18
  }
19
19
 
20
20
  /* 라벨 형태(아이콘+텍스트): 복사 완료 시 아이콘/텍스트를 성공색으로 강조 */
21
21
  :host([copied]) u-button {
22
- color: var(--u-green-500);
22
+ color: var(--u-success-color-weak);
23
23
  }
24
24
  `;
25
25
  //#endregion
@@ -68,7 +68,7 @@ var styles = css`
68
68
  * 테두리는 CanvasText 원색이 과해 옅게 혼합.
69
69
  */
70
70
  border: 1px solid var(--u-border-color, color-mix(in srgb, CanvasText 20%, Canvas));
71
- border-radius: 6px;
71
+ border-radius: var(--u-radius-lg);
72
72
  background: var(--u-panel-bg-color, Canvas);
73
73
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
74
74
  pointer-events: auto;
@@ -98,7 +98,7 @@ var styles = css`
98
98
  flex-shrink: 0;
99
99
  padding: 4px;
100
100
  font-size: inherit;
101
- border-radius: 4px;
101
+ border-radius: var(--u-radius-md);
102
102
  }
103
103
 
104
104
  .body {
@@ -86,7 +86,7 @@ var styles = css`
86
86
  flex-shrink: 0;
87
87
  padding: 4px;
88
88
  font-size: inherit;
89
- border-radius: 4px;
89
+ border-radius: var(--u-radius-md);
90
90
  }
91
91
 
92
92
  .body {
@@ -12,7 +12,7 @@ var styles = css`
12
12
  cursor: not-allowed;
13
13
  }
14
14
  :host([invalid]) .footer {
15
- color: var(--u-red-600);
15
+ color: var(--u-danger-color);
16
16
  }
17
17
 
18
18
  .header {
@@ -32,7 +32,7 @@ var styles = css`
32
32
  }
33
33
 
34
34
  .required {
35
- color: var(--u-red-600);
35
+ color: var(--u-danger-color);
36
36
  margin-right: 0.2em;
37
37
  }
38
38
 
@@ -11,7 +11,7 @@ var styles = css`
11
11
  color: #fff;
12
12
  }
13
13
  :host([variant="link"]) {
14
- color: var(--u-blue-500);
14
+ color: var(--u-primary-color-weak);
15
15
  }
16
16
 
17
17
  u-button {
@@ -75,7 +75,7 @@ var styles = css`
75
75
  padding-left: 0;
76
76
  padding-right: 0;
77
77
  border: none;
78
- border-radius: 0;
78
+ border-radius: var(--u-radius-none);
79
79
  border-bottom: 1px solid var(--u-input-border-color);
80
80
  background-color: transparent;
81
81
  }
@@ -101,7 +101,7 @@ var styles = css`
101
101
  /* ===== Variant: borderless ===== */
102
102
  :host([variant="borderless"]) .container {
103
103
  border: none;
104
- border-radius: 0;
104
+ border-radius: var(--u-radius-none);
105
105
  background-color: transparent;
106
106
  padding: 0;
107
107
  box-shadow: none;
@@ -173,7 +173,7 @@ var styles = css`
173
173
  max-height: var(--input-popover-max-height);
174
174
  padding: 4px;
175
175
  border: 1px solid var(--u-border-color);
176
- border-radius: 6px;
176
+ border-radius: var(--u-radius-lg);
177
177
  background-color: var(--u-panel-bg-color);
178
178
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
179
179
  overflow-x: auto;
@@ -8,6 +8,9 @@ export type MenuSelection = 'none' | 'single' | 'multiple';
8
8
  * @slot - 메뉴 아이템 (u-menu-item, u-divider)
9
9
  *
10
10
  * @cssprop --menu-indent-size - 하위 메뉴 아이템의 들여쓰기 크기 (기본값: 20px)
11
+ * @cssprop --menu-padding - 내부 여백 (`borderless` 는 0)
12
+ * @cssprop --menu-border-width - 테두리 두께 (`borderless` 는 0)
13
+ * @cssprop --menu-border-color - 테두리 색
11
14
  *
12
15
  * @event change - 선택된 아이템이 변경될 때 발생
13
16
  */
@@ -120,7 +120,9 @@ var UMenu = class UMenu extends UElement {
120
120
  ].some((k) => changedProperties.has(k))) this.propagate();
121
121
  }
122
122
  render() {
123
- return html`<slot @slotchange=${this.handleSlotChange}></slot>`;
123
+ return html`<div class="base" part="base">
124
+ <slot @slotchange=${this.handleSlotChange}></slot>
125
+ </div>`;
124
126
  }
125
127
  getItems(fn) {
126
128
  const result = [];
@@ -8,16 +8,29 @@ var styles = css`
8
8
  :host {
9
9
  display: flex;
10
10
  flex-direction: column;
11
- padding: 4px;
12
11
  min-width: 160px;
13
- border: 1px solid var(--u-border-color);
14
- border-radius: 6px;
12
+ border-radius: var(--u-radius-lg);
15
13
  background-color: var(--u-panel-bg-color);
14
+
15
+ --menu-padding: 4px;
16
+ --menu-border-width: 1px;
17
+ --menu-border-color: var(--u-border-color);
18
+ }
19
+
20
+ /* 여백/테두리는 내부 요소가 진다 — :host 에 두면 소비 앱 CSS 리셋에 지워진다. */
21
+ .base {
22
+ box-sizing: border-box;
23
+ width: 100%;
24
+ display: flex;
25
+ flex-direction: column;
26
+ padding: var(--menu-padding);
27
+ border: var(--menu-border-width) solid var(--menu-border-color);
28
+ border-radius: inherit;
16
29
  }
17
30
  :host([borderless]) {
18
- padding: 0;
19
- border: none;
20
- border-radius: 0;
31
+ --menu-padding: 0;
32
+ --menu-border-width: 0;
33
+ border-radius: var(--u-radius-none);
21
34
  background-color: transparent;
22
35
  }
23
36
  `;
@@ -17,7 +17,7 @@ export type MenuItemAlign = 'left' | 'center' | 'right';
17
17
  *
18
18
  * @event pick - 아이템 선택 시 발생 (하위 메뉴가 없는 경우)
19
19
  *
20
- * @cssprop --menu-item-color - 선택/활성 상태의 기준색 (기본: --u-primary-color, 미지정 시 blue-600)
20
+ * @cssprop --menu-item-color - 선택/활성 상태의 기준색 (기본: --u-primary-color)
21
21
  */
22
22
  export declare class UMenuItem extends UElement {
23
23
  static styles: import('lit').CSSResultGroup[];
@@ -3,7 +3,7 @@ import { css } from "lit";
3
3
  var styles = css`
4
4
  :host {
5
5
  --menu-item-depth: 0;
6
- --menu-item-color: var(--u-primary-color, var(--u-blue-600));
6
+ --menu-item-color: var(--u-primary-color);
7
7
  }
8
8
 
9
9
  :host {
@@ -137,7 +137,7 @@ var styles = css`
137
137
  flex-direction: column;
138
138
  padding: 4px;
139
139
  border: 1px solid var(--u-border-color);
140
- border-radius: 4px;
140
+ border-radius: var(--u-radius-md);
141
141
  background-color: var(--u-panel-bg-color);
142
142
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
143
143
  transform: scale(0.8);
@@ -21,7 +21,9 @@ export type OptionMarker = 'radio' | 'check';
21
21
  * @cssprop --option-border-color-active-interactive - 선택된 상태에서 호버/포커스 시 테두리 색상
22
22
  * @cssprop --option-background-color-active-interactive - 선택된 상태에서 호버/포커스 시 배경 색상
23
23
  * @cssprop --option-color - 선택 상태의 기준색. 위 active 계열이 이 값에서 파생된다
24
- * (기본: --u-primary-color, 미지정 시 blue-600)
24
+ * (기본: --u-primary-color)
25
+ * @cssprop --option-padding-block - 세로 여백
26
+ * @cssprop --option-padding-inline - 가로 여백
25
27
  */
26
28
  export declare class UOption extends UElement {
27
29
  static styles: import('lit').CSSResultGroup[];
@@ -32,12 +32,14 @@ var UOption = class UOption extends UElement {
32
32
  }
33
33
  render() {
34
34
  return html`
35
- ${this.renderMarker()}
36
- <slot name="prefix"></slot>
37
- <div class="content" part="content">
38
- <slot></slot>
35
+ <div class="base" part="base">
36
+ ${this.renderMarker()}
37
+ <slot name="prefix"></slot>
38
+ <div class="content" part="content">
39
+ <slot></slot>
40
+ </div>
41
+ <slot name="suffix"></slot>
39
42
  </div>
40
- <slot name="suffix"></slot>
41
43
  `;
42
44
  }
43
45
  renderMarker() {
@@ -2,7 +2,7 @@ import { css } from "lit";
2
2
  //#region src/components/option/UOption.styles.ts
3
3
  var styles = css`
4
4
  :host {
5
- --option-color: var(--u-primary-color, var(--u-blue-600));
5
+ --option-color: var(--u-primary-color);
6
6
  --option-color-interactive: inherit;
7
7
  --option-border-color-interactive: var(--u-border-color-hover);
8
8
  --option-background-color-interactive: var(--u-bg-color-hover);
@@ -18,12 +18,23 @@ var styles = css`
18
18
 
19
19
  :host {
20
20
  display: flex;
21
- flex-direction: row;
22
- align-items: center;
23
- padding: 0.25em 0.5em;
24
21
  transition: background-color 0.15s ease, color 0.15s ease;
25
22
  user-select: none;
26
23
  cursor: pointer;
24
+
25
+ --option-padding-block: 0.25em;
26
+ --option-padding-inline: 0.5em;
27
+ }
28
+
29
+ /* 여백은 내부 요소가 진다 — :host 에 두면 소비 앱 CSS 리셋에 지워진다. */
30
+ .base {
31
+ box-sizing: border-box;
32
+ width: 100%;
33
+ display: flex;
34
+ flex-direction: row;
35
+ align-items: center;
36
+ padding: var(--option-padding-block) var(--option-padding-inline);
37
+ border-radius: inherit;
27
38
  }
28
39
  :host(:focus-visible) {
29
40
  outline: none;
@@ -89,7 +100,7 @@ var styles = css`
89
100
  width: 1.25em;
90
101
  height: 1.25em;
91
102
  border: 2px solid var(--u-neutral-400);
92
- border-radius: 50%;
103
+ border-radius: var(--u-radius-circle);
93
104
  background-color: var(--u-bg-color);
94
105
  transition: border-color 0.2s ease, background-color 0.2s ease;
95
106
  }
@@ -113,7 +124,7 @@ var styles = css`
113
124
  display: block;
114
125
  width: 0.45em;
115
126
  height: 0.45em;
116
- border-radius: 50%;
127
+ border-radius: var(--u-radius-circle);
117
128
  background-color: var(--option-color-active);
118
129
  transform: scale(0);
119
130
  transition: transform 0.15s ease;
@@ -3,27 +3,27 @@ import { css } from "lit";
3
3
  var styles = css`
4
4
  :host {
5
5
  --progress-bar-height: 0.5em;
6
- --progress-bar-color: var(--u-primary-color, var(--u-blue-600));
6
+ --progress-bar-color: var(--u-primary-color);
7
7
  --progress-bar-buffer-color: color-mix(in srgb, var(--progress-bar-color) 35%, var(--u-bg-color));
8
8
  --progress-bar-track-color: var(--u-neutral-200);
9
9
  }
10
10
 
11
11
  /* === Status Colors === */
12
12
  :host([status="success"]) {
13
- --progress-bar-color: var(--u-green-600);
14
- --progress-bar-buffer-color: var(--u-green-200);
13
+ --progress-bar-color: var(--u-success-color);
14
+ --progress-bar-buffer-color: var(--u-success-color-weakest);
15
15
  }
16
16
  :host([status="warning"]) {
17
- --progress-bar-color: var(--u-yellow-500);
18
- --progress-bar-buffer-color: var(--u-yellow-200);
17
+ --progress-bar-color: var(--u-warning-color-weak);
18
+ --progress-bar-buffer-color: var(--u-warning-color-weakest);
19
19
  }
20
20
  :host([status="error"]) {
21
- --progress-bar-color: var(--u-red-600);
22
- --progress-bar-buffer-color: var(--u-red-200);
21
+ --progress-bar-color: var(--u-danger-color);
22
+ --progress-bar-buffer-color: var(--u-danger-color-weakest);
23
23
  }
24
24
  :host([status="info"]) {
25
- --progress-bar-color: var(--u-blue-500);
26
- --progress-bar-buffer-color: var(--u-blue-200);
25
+ --progress-bar-color: var(--u-info-color-weak);
26
+ --progress-bar-buffer-color: var(--u-info-color-weakest);
27
27
  }
28
28
 
29
29
  :host {
@@ -37,7 +37,7 @@ var styles = css`
37
37
 
38
38
  /* === Rounded === */
39
39
  :host([rounded]) {
40
- border-radius: 9999px;
40
+ border-radius: var(--u-radius-pill);
41
41
  }
42
42
 
43
43
  /* === Indeterminate === */
@@ -3,7 +3,7 @@ import { css } from "lit";
3
3
  var styles = css`
4
4
  :host {
5
5
  --progress-ring-size: 6em;
6
- --progress-ring-color: var(--u-primary-color, var(--u-blue-600));
6
+ --progress-ring-color: var(--u-primary-color);
7
7
  --progress-ring-track-width: 6;
8
8
  --progress-ring-track-color: var(--u-neutral-200);
9
9
  --progress-ring-buffer-color: color-mix(in srgb, var(--progress-ring-color) 35%, var(--u-bg-color));
@@ -11,20 +11,20 @@ var styles = css`
11
11
 
12
12
  /* === Status Colors === */
13
13
  :host([status="success"]) {
14
- --progress-ring-color: var(--u-green-600);
15
- --progress-ring-buffer-color: var(--u-green-200);
14
+ --progress-ring-color: var(--u-success-color);
15
+ --progress-ring-buffer-color: var(--u-success-color-weakest);
16
16
  }
17
17
  :host([status="warning"]) {
18
- --progress-ring-color: var(--u-yellow-500);
19
- --progress-ring-buffer-color: var(--u-yellow-200);
18
+ --progress-ring-color: var(--u-warning-color-weak);
19
+ --progress-ring-buffer-color: var(--u-warning-color-weakest);
20
20
  }
21
21
  :host([status="error"]) {
22
- --progress-ring-color: var(--u-red-600);
23
- --progress-ring-buffer-color: var(--u-red-200);
22
+ --progress-ring-color: var(--u-danger-color);
23
+ --progress-ring-buffer-color: var(--u-danger-color-weakest);
24
24
  }
25
25
  :host([status="info"]) {
26
- --progress-ring-color: var(--u-blue-500);
27
- --progress-ring-buffer-color: var(--u-blue-200);
26
+ --progress-ring-color: var(--u-info-color-weak);
27
+ --progress-ring-buffer-color: var(--u-info-color-weakest);
28
28
  }
29
29
 
30
30
  /* === Host === */
@@ -11,7 +11,7 @@ export type RadioOrientation = "vertical" | "horizontal";
11
11
  * @csspart field - u-field 요소
12
12
  * @csspart container - 옵션들을 감싸는 컨테이너
13
13
  *
14
- * @cssprop --radio-color - 선택 상태의 기준색 (기본: --u-primary-color, 미지정 시 blue-600)
14
+ * @cssprop --radio-color - 선택 상태의 기준색 (기본: --u-primary-color)
15
15
  * @cssprop --radio-color-active - 선택 상태 active 톤 (기본: --radio-color 85% + black)
16
16
  *
17
17
  * @event change - 사용자 상호작용(옵션 클릭·키보드)으로 선택 값이 변경될 때 발생.
@@ -2,7 +2,7 @@ import { css } from "lit";
2
2
  //#region src/components/radio/URadio.styles.ts
3
3
  var styles = css`
4
4
  :host {
5
- --radio-color: var(--u-primary-color, var(--u-blue-600));
5
+ --radio-color: var(--u-primary-color);
6
6
  --radio-color-active: color-mix(in srgb, var(--radio-color) 85%, black);
7
7
  }
8
8
 
@@ -38,7 +38,7 @@ var styles = css`
38
38
  border-radius: 0.35em;
39
39
  }
40
40
  :host([invalid]) .container {
41
- border-color: var(--u-red-600);
41
+ border-color: var(--u-danger-color);
42
42
  }
43
43
 
44
44
  /* Type: default */
@@ -2,7 +2,7 @@ import { css } from "lit";
2
2
  //#region src/components/rating/URating.styles.ts
3
3
  var styles = css`
4
4
  :host {
5
- --rating-symbol-color: var(--u-yellow-500);
5
+ --rating-symbol-color: var(--u-warning-color-weak);
6
6
  --rating-symbol-off-color: var(--u-neutral-300);
7
7
  }
8
8
 
@@ -32,7 +32,7 @@ var styles = css`
32
32
  transition: color 0.15s ease, transform 0.15s ease;
33
33
  }
34
34
  .symbol:focus-visible {
35
- outline: 2px solid var(--u-blue-500);
35
+ outline: 2px solid var(--u-primary-color-weak);
36
36
  outline-offset: 2px;
37
37
  }
38
38
  :host(:not([disabled]):not([readonly])) .symbol:hover {
@@ -79,7 +79,7 @@ var styles = css`
79
79
  /* ===== Variant: underlined ===== */
80
80
  :host([variant="underlined"]) .container {
81
81
  border: none;
82
- border-radius: 0;
82
+ border-radius: var(--u-radius-none);
83
83
  background-color: transparent;
84
84
  padding-left: 0;
85
85
  padding-right: 0;
@@ -107,7 +107,7 @@ var styles = css`
107
107
  /* ===== Variant: borderless ===== */
108
108
  :host([variant="borderless"]) .container {
109
109
  border: none;
110
- border-radius: 0;
110
+ border-radius: var(--u-radius-none);
111
111
  background-color: transparent;
112
112
  padding: 0;
113
113
  box-shadow: none;
@@ -171,7 +171,7 @@ var styles = css`
171
171
  max-height: var(--select-popover-max-height);
172
172
  padding: 4px;
173
173
  border: 1px solid var(--u-border-color);
174
- border-radius: 6px;
174
+ border-radius: var(--u-radius-lg);
175
175
  background-color: var(--u-panel-bg-color);
176
176
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
177
177
  overflow-x: hidden;
@@ -18,13 +18,13 @@ var styles = css`
18
18
 
19
19
  /* 모양 설정 */
20
20
  :host([shape="rectangle"]) {
21
- border-radius: 4px;
21
+ border-radius: var(--u-radius-md);
22
22
  }
23
23
  :host([shape="circle"]) {
24
- border-radius: 50%;
24
+ border-radius: var(--u-radius-circle);
25
25
  }
26
26
  :host([shape="rounded"]) {
27
- border-radius: 9999px;
27
+ border-radius: var(--u-radius-pill);
28
28
  }
29
29
 
30
30
  /* 애니메이션 효과 설정 */