@simplysm/angular 14.2.1 → 14.2.3

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 (115) hide show
  1. package/dist/controls/button/sd-anchor.d.ts +1 -1
  2. package/dist/controls/button/sd-anchor.d.ts.map +1 -1
  3. package/dist/controls/button/sd-anchor.js +2 -2
  4. package/dist/controls/button/sd-button.d.ts +1 -1
  5. package/dist/controls/button/sd-button.d.ts.map +1 -1
  6. package/dist/controls/button/sd-button.js +2 -2
  7. package/dist/controls/checkbox/sd-checkbox.d.ts +1 -1
  8. package/dist/controls/checkbox/sd-checkbox.d.ts.map +1 -1
  9. package/dist/controls/checkbox/sd-checkbox.js +2 -2
  10. package/dist/controls/checkbox/sd-switch.d.ts +1 -1
  11. package/dist/controls/checkbox/sd-switch.d.ts.map +1 -1
  12. package/dist/controls/checkbox/sd-switch.js +2 -2
  13. package/dist/controls/dropdown/sd-dropdown.d.ts +3 -0
  14. package/dist/controls/dropdown/sd-dropdown.d.ts.map +1 -1
  15. package/dist/controls/dropdown/sd-dropdown.js +29 -9
  16. package/dist/controls/input/sd-textarea.d.ts +1 -1
  17. package/dist/controls/input/sd-textarea.d.ts.map +1 -1
  18. package/dist/controls/input/sd-textarea.js +2 -2
  19. package/dist/controls/input/sd-textfield-type-handlers.js +1 -1
  20. package/dist/controls/input/sd-textfield.d.ts +1 -1
  21. package/dist/controls/input/sd-textfield.d.ts.map +1 -1
  22. package/dist/controls/input/sd-textfield.js +9 -10
  23. package/dist/controls/list/sd-list.d.ts.map +1 -1
  24. package/dist/controls/list/sd-list.js +4 -6
  25. package/dist/controls/select/sd-select-button.d.ts.map +1 -1
  26. package/dist/controls/select/sd-select-button.js +3 -5
  27. package/dist/controls/select/sd-select.js +2 -2
  28. package/dist/core/error-handler/sd-global-error-handler.plugin.js +1 -1
  29. package/dist/core/modal/sd-modal.provider.js +1 -1
  30. package/dist/core/provideSdAngular.d.ts.map +1 -1
  31. package/dist/core/provideSdAngular.js +1 -13
  32. package/dist/core/setupBgTheme.d.ts +1 -1
  33. package/dist/core/setupBgTheme.d.ts.map +1 -1
  34. package/dist/core/toast/sd-toast.js +2 -2
  35. package/dist/core/toast/sd-toast.provider.d.ts +1 -1
  36. package/dist/core/toast/sd-toast.provider.d.ts.map +1 -1
  37. package/dist/core/toast/sd-toast.provider.js +1 -1
  38. package/dist/data/crud/sd-base-container.d.ts +1 -1
  39. package/dist/data/crud/sd-base-container.d.ts.map +1 -1
  40. package/dist/data/crud/sd-base-container.js +2 -2
  41. package/dist/data/crud/sd-crud-detail.d.ts +1 -1
  42. package/dist/data/crud/sd-crud-detail.d.ts.map +1 -1
  43. package/dist/data/crud/sd-crud-list.d.ts +3 -3
  44. package/dist/data/crud/sd-crud-list.d.ts.map +1 -1
  45. package/dist/data/shared-data/sd-shared-data-select.d.ts +2 -2
  46. package/dist/data/shared-data/sd-shared-data-select.d.ts.map +1 -1
  47. package/dist/data/sheet/injectSheetDomAccessor.d.ts +1 -0
  48. package/dist/data/sheet/injectSheetDomAccessor.d.ts.map +1 -1
  49. package/dist/data/sheet/injectSheetDomAccessor.js +7 -0
  50. package/dist/data/sheet/injectSheetDragSelection.d.ts +18 -0
  51. package/dist/data/sheet/injectSheetDragSelection.d.ts.map +1 -0
  52. package/dist/data/sheet/injectSheetDragSelection.js +193 -0
  53. package/dist/data/sheet/sd-sheet.d.ts +3 -0
  54. package/dist/data/sheet/sd-sheet.d.ts.map +1 -1
  55. package/dist/data/sheet/sd-sheet.js +17 -6
  56. package/dist/data/state-preset/sd-state-preset.d.ts +2 -2
  57. package/dist/data/state-preset/sd-state-preset.d.ts.map +1 -1
  58. package/dist/features/editor/sd-tiptap-editor.js +2 -2
  59. package/dist/features/theme/sd-theme-provider.d.ts +0 -2
  60. package/dist/features/theme/sd-theme-provider.d.ts.map +1 -1
  61. package/dist/features/theme/sd-theme-provider.js +0 -5
  62. package/dist/features/theme/sd-theme-selector.d.ts +1 -1
  63. package/dist/features/theme/sd-theme-selector.d.ts.map +1 -1
  64. package/dist/features/theme/sd-theme-selector.js +5 -22
  65. package/dist/features/visual/sd-label.d.ts +1 -1
  66. package/dist/features/visual/sd-label.d.ts.map +1 -1
  67. package/dist/features/visual/sd-label.js +2 -2
  68. package/dist/features/visual/sd-note.d.ts +1 -1
  69. package/dist/features/visual/sd-note.d.ts.map +1 -1
  70. package/dist/features/visual/sd-note.js +2 -2
  71. package/dist/features/visual/sd-progress.d.ts +1 -1
  72. package/dist/features/visual/sd-progress.d.ts.map +1 -1
  73. package/dist/features/visual/sd-progress.js +2 -2
  74. package/dist/layout/sidebar/sd-sidebar.d.ts.map +1 -1
  75. package/dist/layout/sidebar/sd-sidebar.js +3 -5
  76. package/dist/layout/topbar/sd-topbar.d.ts.map +1 -1
  77. package/dist/layout/topbar/sd-topbar.js +3 -3
  78. package/package.json +26 -26
  79. package/scss/commons/_mixins.scss +1 -1
  80. package/scss/commons/_theme-variables.scss +0 -8
  81. package/scss/commons/_variables.scss +114 -121
  82. package/scss/themes/_variables-blueprint.scss +65 -63
  83. package/scss/themes/_variables-ide-dark.scss +166 -144
  84. package/src/controls/button/sd-anchor.ts +3 -3
  85. package/src/controls/button/sd-button.ts +1 -3
  86. package/src/controls/checkbox/sd-checkbox.ts +2 -10
  87. package/src/controls/checkbox/sd-switch.ts +2 -4
  88. package/src/controls/dropdown/sd-dropdown.ts +33 -9
  89. package/src/controls/input/sd-textarea.ts +2 -4
  90. package/src/controls/input/sd-textfield-type-handlers.ts +1 -1
  91. package/src/controls/input/sd-textfield.ts +9 -12
  92. package/src/controls/list/sd-list.ts +3 -5
  93. package/src/controls/select/sd-select-button.ts +2 -4
  94. package/src/controls/select/sd-select.ts +1 -1
  95. package/src/core/error-handler/sd-global-error-handler.plugin.ts +1 -1
  96. package/src/core/modal/sd-modal.provider.ts +1 -1
  97. package/src/core/provideSdAngular.ts +1 -15
  98. package/src/core/setupBgTheme.ts +1 -2
  99. package/src/core/toast/sd-toast.provider.ts +5 -3
  100. package/src/data/crud/sd-base-container.ts +1 -1
  101. package/src/data/sheet/injectSheetDomAccessor.ts +7 -0
  102. package/src/data/sheet/injectSheetDragSelection.ts +226 -0
  103. package/src/data/sheet/sd-sheet.ts +16 -3
  104. package/src/features/editor/sd-tiptap-editor.ts +1 -1
  105. package/src/features/theme/sd-theme-provider.ts +0 -9
  106. package/src/features/theme/sd-theme-selector.ts +1 -10
  107. package/src/features/visual/sd-label.ts +1 -3
  108. package/src/features/visual/sd-note.ts +1 -3
  109. package/src/features/visual/sd-progress.ts +2 -2
  110. package/src/layout/sidebar/sd-sidebar.ts +2 -3
  111. package/src/layout/topbar/sd-topbar.ts +1 -0
  112. package/styles.css +278 -567
  113. package/scss/commons/_colors.scss +0 -301
  114. package/scss/commons/_density.scss +0 -23
  115. package/scss/sd-tokens.md +0 -132
@@ -1,301 +0,0 @@
1
- // Tailwind CSS v4 팔레트 — oklch 원본을 sRGB 정수 rgb 로 변환해 고정 저장.
2
- // oklch 미지원 브라우저(구버전 Chrome 등) 대응으로 rgb 값을 직접 사용한다.
3
- // 값 재생성: scratchpad 의 gen.scss 로 color.channel round+clamp 추출(현 팔레트 기준).
4
- //
5
- // 발행: --sd-color-* (카탈로그 팔레트). 구 --color-* 발행은 14.2 에서 종료됨(브레이킹).
6
- $palette: (
7
- "red": (
8
- 50: rgb(254, 242, 242),
9
- 100: rgb(255, 226, 226),
10
- 200: rgb(255, 201, 201),
11
- 300: rgb(255, 162, 162),
12
- 400: rgb(255, 100, 103),
13
- 500: rgb(251, 44, 54),
14
- 600: rgb(231, 0, 11),
15
- 700: rgb(193, 0, 7),
16
- 800: rgb(159, 7, 18),
17
- 900: rgb(130, 24, 26),
18
- 950: rgb(70, 8, 9),
19
- ),
20
- "orange": (
21
- 50: rgb(255, 247, 237),
22
- 100: rgb(255, 237, 212),
23
- 200: rgb(255, 214, 167),
24
- 300: rgb(255, 184, 106),
25
- 400: rgb(255, 137, 4),
26
- 500: rgb(255, 105, 0),
27
- 600: rgb(245, 73, 0),
28
- 700: rgb(202, 53, 0),
29
- 800: rgb(159, 45, 0),
30
- 900: rgb(126, 42, 12),
31
- 950: rgb(68, 19, 6),
32
- ),
33
- "amber": (
34
- 50: rgb(255, 251, 235),
35
- 100: rgb(254, 243, 198),
36
- 200: rgb(254, 230, 133),
37
- 300: rgb(255, 210, 48),
38
- 400: rgb(255, 185, 0),
39
- 500: rgb(254, 154, 0),
40
- 600: rgb(225, 113, 0),
41
- 700: rgb(187, 77, 0),
42
- 800: rgb(151, 60, 0),
43
- 900: rgb(123, 51, 6),
44
- 950: rgb(70, 25, 1),
45
- ),
46
- "yellow": (
47
- 50: rgb(254, 252, 232),
48
- 100: rgb(254, 249, 194),
49
- 200: rgb(255, 240, 133),
50
- 300: rgb(255, 223, 32),
51
- 400: rgb(253, 199, 0),
52
- 500: rgb(240, 177, 0),
53
- 600: rgb(208, 135, 0),
54
- 700: rgb(166, 95, 0),
55
- 800: rgb(137, 75, 0),
56
- 900: rgb(115, 62, 10),
57
- 950: rgb(67, 32, 4),
58
- ),
59
- "lime": (
60
- 50: rgb(247, 254, 231),
61
- 100: rgb(236, 252, 202),
62
- 200: rgb(216, 249, 153),
63
- 300: rgb(187, 244, 81),
64
- 400: rgb(154, 230, 0),
65
- 500: rgb(124, 207, 0),
66
- 600: rgb(94, 165, 0),
67
- 700: rgb(73, 125, 0),
68
- 800: rgb(60, 99, 0),
69
- 900: rgb(53, 83, 14),
70
- 950: rgb(25, 46, 3),
71
- ),
72
- "green": (
73
- 50: rgb(240, 253, 244),
74
- 100: rgb(220, 252, 231),
75
- 200: rgb(185, 248, 207),
76
- 300: rgb(123, 241, 168),
77
- 400: rgb(5, 223, 114),
78
- 500: rgb(0, 201, 80),
79
- 600: rgb(0, 166, 62),
80
- 700: rgb(0, 130, 54),
81
- 800: rgb(1, 102, 48),
82
- 900: rgb(13, 84, 43),
83
- 950: rgb(3, 46, 21),
84
- ),
85
- "emerald": (
86
- 50: rgb(236, 253, 245),
87
- 100: rgb(208, 250, 229),
88
- 200: rgb(164, 244, 207),
89
- 300: rgb(94, 233, 181),
90
- 400: rgb(0, 212, 146),
91
- 500: rgb(0, 188, 125),
92
- 600: rgb(0, 153, 102),
93
- 700: rgb(0, 122, 85),
94
- 800: rgb(0, 96, 69),
95
- 900: rgb(0, 79, 59),
96
- 950: rgb(0, 44, 34),
97
- ),
98
- "teal": (
99
- 50: rgb(240, 253, 250),
100
- 100: rgb(203, 251, 241),
101
- 200: rgb(150, 247, 228),
102
- 300: rgb(70, 236, 213),
103
- 400: rgb(0, 213, 190),
104
- 500: rgb(0, 187, 167),
105
- 600: rgb(0, 150, 137),
106
- 700: rgb(0, 120, 111),
107
- 800: rgb(0, 95, 90),
108
- 900: rgb(11, 79, 74),
109
- 950: rgb(2, 47, 46),
110
- ),
111
- "cyan": (
112
- 50: rgb(236, 254, 255),
113
- 100: rgb(206, 250, 254),
114
- 200: rgb(162, 244, 253),
115
- 300: rgb(83, 234, 253),
116
- 400: rgb(0, 211, 242),
117
- 500: rgb(0, 184, 219),
118
- 600: rgb(0, 146, 184),
119
- 700: rgb(0, 117, 149),
120
- 800: rgb(0, 95, 120),
121
- 900: rgb(16, 78, 100),
122
- 950: rgb(5, 51, 69),
123
- ),
124
- "sky": (
125
- 50: rgb(240, 249, 255),
126
- 100: rgb(223, 242, 254),
127
- 200: rgb(184, 230, 254),
128
- 300: rgb(116, 212, 255),
129
- 400: rgb(0, 188, 255),
130
- 500: rgb(0, 166, 244),
131
- 600: rgb(0, 132, 209),
132
- 700: rgb(0, 105, 168),
133
- 800: rgb(0, 89, 138),
134
- 900: rgb(2, 74, 112),
135
- 950: rgb(5, 47, 74),
136
- ),
137
- "blue": (
138
- 50: rgb(239, 246, 255),
139
- 100: rgb(219, 234, 254),
140
- 200: rgb(190, 219, 255),
141
- 300: rgb(142, 197, 255),
142
- 400: rgb(81, 162, 255),
143
- 500: rgb(43, 127, 255),
144
- 600: rgb(21, 93, 252),
145
- 700: rgb(20, 71, 230),
146
- 800: rgb(25, 60, 184),
147
- 900: rgb(28, 57, 142),
148
- 950: rgb(22, 36, 86),
149
- ),
150
- "indigo": (
151
- 50: rgb(238, 242, 255),
152
- 100: rgb(224, 231, 255),
153
- 200: rgb(198, 210, 255),
154
- 300: rgb(163, 179, 255),
155
- 400: rgb(124, 134, 255),
156
- 500: rgb(97, 95, 255),
157
- 600: rgb(79, 57, 246),
158
- 700: rgb(67, 45, 215),
159
- 800: rgb(55, 42, 172),
160
- 900: rgb(49, 44, 133),
161
- 950: rgb(30, 26, 77),
162
- ),
163
- "violet": (
164
- 50: rgb(245, 243, 255),
165
- 100: rgb(237, 233, 254),
166
- 200: rgb(221, 214, 255),
167
- 300: rgb(196, 180, 255),
168
- 400: rgb(166, 132, 255),
169
- 500: rgb(142, 81, 255),
170
- 600: rgb(127, 34, 254),
171
- 700: rgb(112, 8, 231),
172
- 800: rgb(93, 14, 192),
173
- 900: rgb(77, 23, 154),
174
- 950: rgb(47, 13, 104),
175
- ),
176
- "purple": (
177
- 50: rgb(250, 245, 255),
178
- 100: rgb(243, 232, 255),
179
- 200: rgb(233, 212, 255),
180
- 300: rgb(218, 178, 255),
181
- 400: rgb(194, 122, 255),
182
- 500: rgb(173, 70, 255),
183
- 600: rgb(152, 16, 250),
184
- 700: rgb(130, 0, 219),
185
- 800: rgb(110, 17, 176),
186
- 900: rgb(89, 22, 139),
187
- 950: rgb(60, 3, 102),
188
- ),
189
- "fuchsia": (
190
- 50: rgb(253, 244, 255),
191
- 100: rgb(250, 232, 255),
192
- 200: rgb(246, 207, 255),
193
- 300: rgb(244, 168, 255),
194
- 400: rgb(237, 106, 255),
195
- 500: rgb(225, 42, 251),
196
- 600: rgb(200, 0, 222),
197
- 700: rgb(168, 0, 183),
198
- 800: rgb(138, 1, 148),
199
- 900: rgb(114, 19, 120),
200
- 950: rgb(75, 0, 79),
201
- ),
202
- "pink": (
203
- 50: rgb(253, 242, 248),
204
- 100: rgb(252, 231, 243),
205
- 200: rgb(252, 206, 232),
206
- 300: rgb(253, 165, 213),
207
- 400: rgb(251, 100, 182),
208
- 500: rgb(246, 51, 154),
209
- 600: rgb(230, 0, 118),
210
- 700: rgb(198, 0, 92),
211
- 800: rgb(163, 0, 76),
212
- 900: rgb(134, 16, 67),
213
- 950: rgb(81, 4, 36),
214
- ),
215
- "rose": (
216
- 50: rgb(255, 241, 242),
217
- 100: rgb(255, 228, 230),
218
- 200: rgb(255, 204, 211),
219
- 300: rgb(255, 161, 173),
220
- 400: rgb(255, 99, 126),
221
- 500: rgb(255, 32, 86),
222
- 600: rgb(236, 0, 63),
223
- 700: rgb(199, 0, 54),
224
- 800: rgb(165, 0, 54),
225
- 900: rgb(139, 8, 54),
226
- 950: rgb(77, 2, 24),
227
- ),
228
- "slate": (
229
- 50: rgb(248, 250, 252),
230
- 100: rgb(241, 245, 249),
231
- 200: rgb(226, 232, 240),
232
- 300: rgb(202, 213, 226),
233
- 400: rgb(144, 161, 185),
234
- 500: rgb(98, 116, 142),
235
- 600: rgb(69, 85, 108),
236
- 700: rgb(49, 65, 88),
237
- 800: rgb(29, 41, 61),
238
- 900: rgb(15, 23, 43),
239
- 950: rgb(2, 6, 24),
240
- ),
241
- "gray": (
242
- 50: rgb(249, 250, 251),
243
- 100: rgb(243, 244, 246),
244
- 200: rgb(229, 231, 235),
245
- 300: rgb(209, 213, 220),
246
- 400: rgb(153, 161, 175),
247
- 500: rgb(106, 114, 130),
248
- 600: rgb(74, 85, 101),
249
- 700: rgb(54, 65, 83),
250
- 800: rgb(30, 41, 57),
251
- 900: rgb(16, 24, 40),
252
- 950: rgb(3, 7, 18),
253
- ),
254
- "zinc": (
255
- 50: rgb(250, 250, 250),
256
- 100: rgb(244, 244, 245),
257
- 200: rgb(228, 228, 231),
258
- 300: rgb(212, 212, 216),
259
- 400: rgb(159, 159, 169),
260
- 500: rgb(113, 113, 123),
261
- 600: rgb(82, 82, 92),
262
- 700: rgb(63, 63, 70),
263
- 800: rgb(39, 39, 42),
264
- 900: rgb(24, 24, 27),
265
- 950: rgb(9, 9, 11),
266
- ),
267
- "neutral": (
268
- 50: rgb(250, 250, 250),
269
- 100: rgb(245, 245, 245),
270
- 200: rgb(229, 229, 229),
271
- 300: rgb(212, 212, 212),
272
- 400: rgb(161, 161, 161),
273
- 500: rgb(115, 115, 115),
274
- 600: rgb(82, 82, 82),
275
- 700: rgb(64, 64, 64),
276
- 800: rgb(38, 38, 38),
277
- 900: rgb(23, 23, 23),
278
- 950: rgb(10, 10, 10),
279
- ),
280
- "stone": (
281
- 50: rgb(250, 250, 249),
282
- 100: rgb(245, 245, 244),
283
- 200: rgb(231, 229, 228),
284
- 300: rgb(214, 211, 209),
285
- 400: rgb(166, 160, 155),
286
- 500: rgb(121, 113, 107),
287
- 600: rgb(87, 83, 77),
288
- 700: rgb(68, 64, 59),
289
- 800: rgb(41, 37, 36),
290
- 900: rgb(28, 25, 23),
291
- 950: rgb(12, 10, 9),
292
- ),
293
- );
294
-
295
- @mixin vars {
296
- @each $hue, $steps in $palette {
297
- @each $step, $val in $steps {
298
- --sd-color-#{$hue}-#{$step}: #{$val};
299
- }
300
- }
301
- }
@@ -1,23 +0,0 @@
1
- // 밀도(density) 축 — 테마와 독립(DEC-007). compact 는 밀도 그룹(치수 토큰)만 덮는다.
2
- // 값은 구 ide-dark 테마의 오밀조밀 치수(기본 대비 약 2/3)를 이관한 것.
3
- // 체이닝 금지(CONSTRAINT-006) — sheet pv/ph 는 compact gap 등가 리터럴로 고정.
4
- $compact: (
5
- gap: (
6
- xxs: 0.0833rem,
7
- xs: 0.0833rem,
8
- sm: 0.1667rem,
9
- default: 0.3333rem,
10
- lg: 0.4167rem,
11
- xl: 0.6667rem,
12
- xxl: 1rem,
13
- ),
14
- line-height: 1.35em,
15
- line-height-strip-unit: 1.35,
16
- sheet: (
17
- pv: 0.0833rem,
18
- ph: 0.1667rem,
19
- ),
20
- topbar: (
21
- height: 2rem,
22
- ),
23
- );
package/scss/sd-tokens.md DELETED
@@ -1,132 +0,0 @@
1
- # `--sd-*` 역할 토큰 카탈로그
2
-
3
- 테마는 이 카탈로그의 **값 맵만으로** 완성함 — 컴포넌트 셀렉터 오버라이드 금지.
4
- 정의·발행: `commons/_variables.scss` 의 `$sd` 맵 → `writeVars($sd, "sd")` 로 `:root`(base 레이어) 발행. 테마는 theme-variant 레이어에서 같은 이름을 재정의함.
5
-
6
- ## 규칙
7
-
8
- - **어휘(DEC-013)**: 색 어휘는 `--sd-{bg|tx|bd}-…` 속성 우선. 유틸 클래스명 = 토큰명에서 `--sd-` 만 뗀 것(`--sd-bg-primary-solid` ↔ `.bg-primary-solid`). hover 변형은 `-hover` 접미. 비색상·컴포넌트 전용 그룹(팔레트·focus-ring·scrollbar·shadow·타이포·치수·z)은 그룹 구조 유지.
9
- - **체이닝 금지**: `:root` 발행 토큰의 `var()` 참조는 팔레트(`--sd-color-*`, 테마 불변)만 허용함. 테마·밀도가 덮는 토큰끼리 체인을 두면 재정의 스코프에서 하위가 안 따라옴(확정값 상속). 파생 calc 는 소비 지점에서 계산함.
10
- - **색 원천**: 팔레트 + 흰/검 알파(rgba white/black)만. 커스텀 rgb 리터럴 금지.
11
- - **그룹 소유권**: 테마 맵 = 색·폰트·형태(radius·그림자·표면 패턴) / 밀도 그룹 = 간격·행높이·시트 패딩·topbar 높이(`sd-density-compact` 가 밀도 그룹만 덮음).
12
- - **소비 규약**: 컴포넌트는 `background` 단축 금지(`background-color:` 사용 — `--sd-bg-canvas-image` 패턴 보존). 컴포넌트 config 의 인라인 var 지정 금지.
13
- - 구 스케일 어휘(`--theme-*-{lightest..darkest}`·`--trans-*`·`--text-trans-*`·rev 계열)는 카탈로그에 없고 발행도 종료됨(14.2 브레이킹). 구 어휘를 소비하던 앱은 이 카탈로그 어휘로 전환해야 함.
14
-
15
- ## 토큰 표 (라이트 기본값 = 구 어휘 시각 등가)
16
-
17
- ### 팔레트
18
-
19
- | 토큰 | 기본값 |
20
- | ---------------------------- | ----------------------------------------- |
21
- | `--sd-color-{hue}-{50..950}` | Tailwind v4 rgb 고정값 (22 hue × 11 step) |
22
-
23
- ### 배경(bg)
24
-
25
- | 토큰 | 역할 | 기본값 |
26
- | --------------------------------------- | ------------------------------------ | ---------------------- |
27
- | `--sd-bg-canvas` | 앱 배경 | zinc-50 |
28
- | `--sd-bg-canvas-image` | 배경 패턴(블루프린트 모눈 등) | none |
29
- | `--sd-bg-control` | 컨트롤 면(인풋·카드 내부 등 백색 면) | white |
30
- | `--sd-bg-elevated` | 카드·모달 승격 면 | white |
31
- | `--sd-bg-overlay` | 드롭다운·팝업 면 | white |
32
- | `--sd-bg-sheet` | 시트 컨테이너 면 | zinc-50 |
33
- | `--sd-bg-sheet-image` | 시트 컨테이너 배경 패턴 | none |
34
- | `--sd-bg-inverse` | 반전 면 | black |
35
- | `--sd-bg-field` | 인풋류 필드 면 | blue-50 |
36
- | `--sd-bg-track` | 트랙 면(스위치 off 트랙 등) | zinc-100 |
37
- | `--sd-bg-state-{hover,active,selected}` | 상태 오버레이(알파) — 전 컨트롤 공통 | rgba(0,0,0,.05/.1/.07) |
38
- | `--sd-bg-disabled` | 비활성 면(색 치환 규약) | zinc-100 |
39
- | `--sd-bg-busy-overlay` | busy 오버레이 면 | rgba(255,255,255,.6) |
40
- | `--sd-bg-busy-indicator` | busy 인디케이터 그래픽 면(큐브 등) | rgba(0,0,0,.1) |
41
- | `--sd-bg-backdrop` | 모달 뒤 스크림(배경 어둡히기) | rgba(0,0,0,.2) |
42
-
43
- ### 텍스트(tx)
44
-
45
- | 토큰 | 역할 | 기본값 |
46
- | -------------------------------------- | ----------------------------- | ---------------------------------- |
47
- | `--sd-tx-{strong,default,muted,faint}` | 무채 텍스트(표면색과 독립 축) | black / rgba(0,0,0,.87) / .6 / .38 |
48
- | `--sd-tx-on-inverse` | 반전 면 위 텍스트 | white |
49
- | `--sd-tx-on-inverse-muted` | 반전 면 위 보조 텍스트(hover) | rgba(255,255,255,.7) |
50
- | `--sd-tx-on-inverse-disabled` | 반전 면 위 비활성 텍스트 | rgba(255,255,255,.5) |
51
- | `--sd-tx-disabled` | 비활성 텍스트(색 치환 규약) | rgba(0,0,0,.38) |
52
-
53
- ### 보더(bd)
54
-
55
- | 토큰 | 역할 | 기본값 |
56
- | ------------------------------------------------- | ------------------------- | ------------------------ |
57
- | `--sd-bd-{hairline,soft,default,strong,emphasis}` | 무채 보더 강도 스케일 | zinc-100/200/300/400/500 |
58
- | `--sd-bd-field` | 인풋류 필드 보더 | zinc-300 |
59
- | `--sd-bd-disabled` | 비활성 보더(색 치환 규약) | zinc-200 |
60
-
61
- ### 시맨틱 슬롯 (키: gray·blue-gray·primary·secondary·info·success·warning·danger)
62
-
63
- | 토큰 | 역할 | 기본값(일반 키 / gray·blue-gray) |
64
- | ---------------------------------- | ----------------------- | -------------------------------- |
65
- | `--sd-bg-{key}-solid` (+`-hover`) | solid 면 | 500→600 / 400→500 |
66
- | `--sd-bg-{key}-subtle` (+`-hover`) | 옅은 면 | 50→100 |
67
- | `--sd-tx-{key}` (+`-hover`) | 텍스트·아이콘·링크 단독 | 500→600 / 400→500 |
68
- | `--sd-tx-{key}-solid` | solid 면 위 텍스트 | white |
69
- | `--sd-tx-{key}-subtle` | subtle 면 위 텍스트 | 700 / 600 |
70
- | `--sd-bd-{key}-solid` (+`-hover`) | solid 보더 | bg 동일 |
71
- | `--sd-bd-{key}-subtle` | 옅은 보더 | 200 / 300 |
72
-
73
- ### 포커스·스크롤바
74
-
75
- | 토큰 | 기본값 |
76
- | -------------------------------------------------------------- | -------------------------------- |
77
- | `--sd-focus-ring-{color,width,offset}` (`:focus-visible` 규약) | blue-500 / 0.1667rem / 0.0833rem |
78
- | `--sd-scrollbar-{thumb,thumb-hover,track}` | rgba(0,0,0,.05/.1/.03) |
79
-
80
- ### 컴포넌트 장식 (방침 1, 2026-07-16 확정 — FIND-003 ③ 해소)
81
-
82
- 테마 오버라이드가 값 맵으로 못 잡던 컴포넌트 장식의 소비 지점. 기본값은 현행 시각 등가.
83
-
84
- | 토큰 | 역할 | 기본값 |
85
- | ---------------------------------- | ---------------------------------------- | ---------------------------- |
86
- | `--sd-card-bd` | 카드 보더 색 | transparent |
87
- | `--sd-card-bd-active` | 카드 focus-within 상단 보더 색 | transparent |
88
- | `--sd-card-shadow` (+`-hover`) | 카드 box-shadow(전체 값) | elevation(2)/(4) 등가 리터럴 |
89
- | `--sd-modal-bd` | 모달 다이얼로그 보더 색 | transparent |
90
- | `--sd-modal-header-bg` | 모달 헤더 배경 | zinc-50 |
91
- | `--sd-modal-header-tx` (+`-muted`) | 모달 헤더 글자·닫기(muted=기본/tx=hover) | rgba(0,0,0,.87) / zinc-400 |
92
- | `--sd-dropdown-bd` | 드롭다운 보더 색 | zinc-300 |
93
- | `--sd-sheet-shadow` | 시트 테이블 box-shadow | none |
94
- | `--sd-permission-group-{bg,tx}` | 권한표 그룹 첫 행 배경·글자 | cyan-500 / white |
95
-
96
- - `--sd-card-bd` 를 덮는 테마는 `--sd-card-bd-active` 도 함께 정의함(미정의 시 focus 에서 상단 보더만 transparent 로 뚫림).
97
-
98
- ### 그림자·기타
99
-
100
- | 토큰 | 기본값 |
101
- | -------------------------------------------- | ------------------------------- |
102
- | `--sd-shadow-{color,size,blur-mult}` | rgba(0,0,0,.05) / 0.0833rem / 1 |
103
- | `--sd-z-{toast,busy,dropdown,modal,sidebar}` | 9999/9998/5000/4000/3000 |
104
- | `--sd-animation-duration` | 0.2s |
105
-
106
- ### 타이포·형태(테마 소유)
107
-
108
- | 토큰 | 기본값 |
109
- | ----------------------------------------------------------- | ---------------------------------------------------------------- |
110
- | `--sd-font-size-{sm,default,lg,h1..h6}` | 0.9167 / 1 / 1.1667 / 2 / 1.5 / 1.3333 / 1.1667 / 1 / 0.9167 rem |
111
- | `--sd-font-family{,-field,-monospace}` / `--sd-font-weight` | sans-serif / ui-sans-serif… / ui-monospace… / 400 |
112
- | `--sd-radius-{xs,sm,default,lg,xl,xxl}` | 0.0833 / 0.1667 / 0.3333 / 0.5 / 0.6667 / 1 rem |
113
-
114
- ### 밀도 그룹(치수 — compact 가 덮음)
115
-
116
- | 토큰 | 기본값 |
117
- | -------------------------------------------------- | ---------------------------------------------------------------- |
118
- | `--sd-gap-{xxs,xs,sm,default,lg,xl,xxl,0,auto}` | 0.0833 / 0.1667 / 0.3333 / 0.5 / 0.6667 / 1 / 1.5 rem / 0 / auto |
119
- | `--sd-line-height` / `--sd-line-height-strip-unit` | 1.5em / 1.5 |
120
- | `--sd-sheet-{pv,ph}` | 0.1667 / 0.3333 rem |
121
- | `--sd-topbar-height` / `--sd-sidebar-width` | 2.5rem / 14rem |
122
-
123
- ## 테마·밀도 값 맵
124
-
125
- - 테마 = `--sd-*` 값 맵만(`scss/themes/_variables-*.scss` → theme-variant 레이어 발행). 셀렉터 오버라이드 금지 — surfaces 파일 없음.
126
- - 밀도 = `sd-density-compact` 클래스가 밀도 그룹(치수)만 덮음(`scss/commons/_density.scss`).
127
- - 값 맵은 라이트 기본값과의 차이만 기술함(같은 항목 생략).
128
-
129
- ## 검증
130
-
131
- - 발행 전수·체이닝 금지 spec: `packages/angular/tests/features/theme/sd-tokens.spec.ts` — 카탈로그 키 추가 시 이 spec 의 목록도 함께 갱신함.
132
- - 테마 핵심 쌍 WCAG 대비 게이트(DEC-012): `theme-contrast.spec.ts` — 본문 4.5:1·보조/UI 3:1, 의도적 저대비는 예외 목록 명시. 검사 유틸 `getWcagContrastRatio` 는 패키지 export(커스텀 테마 검증용).