@simplysm/angular 14.1.20 → 14.2.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 (185) hide show
  1. package/dist/controls/button/sd-additional-button.js +2 -2
  2. package/dist/controls/button/sd-anchor.d.ts.map +1 -1
  3. package/dist/controls/button/sd-anchor.js +3 -3
  4. package/dist/controls/button/sd-button.d.ts.map +1 -1
  5. package/dist/controls/button/sd-button.js +3 -3
  6. package/dist/controls/button/sd-modal-select-button.d.ts.map +1 -1
  7. package/dist/controls/button/sd-modal-select-button.js +2 -2
  8. package/dist/controls/checkbox/sd-checkbox.d.ts.map +1 -1
  9. package/dist/controls/checkbox/sd-checkbox.js +3 -3
  10. package/dist/controls/checkbox/sd-switch.d.ts.map +1 -1
  11. package/dist/controls/checkbox/sd-switch.js +3 -3
  12. package/dist/controls/collapse/sd-collapse-icon.d.ts +1 -1
  13. package/dist/controls/collapse/sd-collapse-icon.d.ts.map +1 -1
  14. package/dist/controls/collapse/sd-collapse-icon.js +2 -2
  15. package/dist/controls/collapse/sd-collapse.d.ts +1 -1
  16. package/dist/controls/collapse/sd-collapse.d.ts.map +1 -1
  17. package/dist/controls/collapse/sd-collapse.js +2 -2
  18. package/dist/controls/dropdown/sd-dropdown-popup.d.ts.map +1 -1
  19. package/dist/controls/dropdown/sd-dropdown-popup.js +2 -2
  20. package/dist/controls/dropdown/sd-dropdown.js +1 -1
  21. package/dist/controls/gap/sd-gap.d.ts.map +1 -1
  22. package/dist/controls/gap/sd-gap.js +5 -7
  23. package/dist/controls/input/sd-date-range-picker.js +2 -2
  24. package/dist/controls/input/sd-numpad.d.ts.map +1 -1
  25. package/dist/controls/input/sd-numpad.js +7 -15
  26. package/dist/controls/input/sd-range.js +2 -2
  27. package/dist/controls/input/sd-textarea.js +4 -4
  28. package/dist/controls/input/sd-textfield.d.ts.map +1 -1
  29. package/dist/controls/input/sd-textfield.js +10 -10
  30. package/dist/controls/list/sd-list-item.js +43 -43
  31. package/dist/controls/list/sd-list.js +2 -2
  32. package/dist/controls/pagination/sd-pagination.d.ts.map +1 -1
  33. package/dist/controls/pagination/sd-pagination.js +7 -5
  34. package/dist/controls/select/sd-select-button.d.ts.map +1 -1
  35. package/dist/controls/select/sd-select-button.js +4 -4
  36. package/dist/controls/select/sd-select-item.d.ts.map +1 -1
  37. package/dist/controls/select/sd-select-item.js +3 -3
  38. package/dist/controls/select/sd-select.d.ts.map +1 -1
  39. package/dist/controls/select/sd-select.js +10 -19
  40. package/dist/controls/tab/sd-tab-item.js +2 -2
  41. package/dist/controls/tab/sd-tab.js +2 -2
  42. package/dist/core/busy/sd-busy-container.d.ts.map +1 -1
  43. package/dist/core/busy/sd-busy-container.js +3 -3
  44. package/dist/core/modal/sd-modal.d.ts.map +1 -1
  45. package/dist/core/modal/sd-modal.js +3 -3
  46. package/dist/core/provideSdAngular.d.ts.map +1 -1
  47. package/dist/core/provideSdAngular.js +31 -10
  48. package/dist/core/ripple/setupRipple.js +2 -2
  49. package/dist/core/setupBgTheme.d.ts +0 -1
  50. package/dist/core/setupBgTheme.d.ts.map +1 -1
  51. package/dist/core/setupBgTheme.js +3 -4
  52. package/dist/core/show-effect/setupRevealOnShow.js +1 -1
  53. package/dist/core/toast/sd-toast-container.js +2 -2
  54. package/dist/core/toast/sd-toast.d.ts.map +1 -1
  55. package/dist/core/toast/sd-toast.js +3 -3
  56. package/dist/core/validation/setupInvalid.js +5 -5
  57. package/dist/data/crud/sd-base-container.d.ts.map +1 -1
  58. package/dist/data/crud/sd-base-container.js +50 -52
  59. package/dist/data/kanban/sd-kanban-board.js +2 -2
  60. package/dist/data/kanban/sd-kanban-lane.d.ts.map +1 -1
  61. package/dist/data/kanban/sd-kanban-lane.js +4 -4
  62. package/dist/data/kanban/sd-kanban.d.ts.map +1 -1
  63. package/dist/data/kanban/sd-kanban.js +4 -4
  64. package/dist/data/permission-table/sd-permission-table.d.ts.map +1 -1
  65. package/dist/data/permission-table/sd-permission-table.js +5 -17
  66. package/dist/data/shared-data/sd-shared-data-select-list.d.ts.map +1 -1
  67. package/dist/data/shared-data/sd-shared-data-select-list.js +5 -19
  68. package/dist/data/shared-data/sd-shared-data-select.d.ts.map +1 -1
  69. package/dist/data/shared-data/sd-shared-data-select.js +8 -15
  70. package/dist/data/sheet/sd-sheet-config.modal.d.ts.map +1 -1
  71. package/dist/data/sheet/sd-sheet-config.modal.js +7 -9
  72. package/dist/data/sheet/sd-sheet.d.ts.map +1 -1
  73. package/dist/data/sheet/sd-sheet.js +10 -12
  74. package/dist/data/sheet/useSheetCellStyling.d.ts.map +1 -1
  75. package/dist/data/sheet/useSheetCellStyling.js +1 -1
  76. package/dist/data/state-preset/sd-state-preset.js +5 -5
  77. package/dist/features/editor/sd-markdown-editor.d.ts.map +1 -1
  78. package/dist/features/editor/sd-markdown-editor.js +85 -34
  79. package/dist/features/editor/sd-tiptap-editor.d.ts.map +1 -1
  80. package/dist/features/editor/sd-tiptap-editor.js +192 -61
  81. package/dist/features/theme/sd-theme-provider.d.ts +18 -1
  82. package/dist/features/theme/sd-theme-provider.d.ts.map +1 -1
  83. package/dist/features/theme/sd-theme-provider.js +21 -4
  84. package/dist/features/theme/sd-theme-selector.d.ts.map +1 -1
  85. package/dist/features/theme/sd-theme-selector.js +50 -9
  86. package/dist/features/theme/wcag-contrast.d.ts +9 -0
  87. package/dist/features/theme/wcag-contrast.d.ts.map +1 -0
  88. package/dist/features/theme/wcag-contrast.js +83 -0
  89. package/dist/features/visual/sd-calendar.js +2 -2
  90. package/dist/features/visual/sd-label.d.ts.map +1 -1
  91. package/dist/features/visual/sd-label.js +5 -5
  92. package/dist/features/visual/sd-note.d.ts.map +1 -1
  93. package/dist/features/visual/sd-note.js +3 -3
  94. package/dist/features/visual/sd-progress.d.ts.map +1 -1
  95. package/dist/features/visual/sd-progress.js +3 -3
  96. package/dist/index.d.ts +12 -11
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +10 -9
  99. package/dist/layout/sidebar/sd-sidebar-container.d.ts.map +1 -1
  100. package/dist/layout/sidebar/sd-sidebar-container.js +11 -5
  101. package/dist/layout/sidebar/sd-sidebar-menu.d.ts.map +1 -1
  102. package/dist/layout/sidebar/sd-sidebar-menu.js +5 -17
  103. package/dist/layout/sidebar/sd-sidebar-user.js +32 -32
  104. package/dist/layout/sidebar/sd-sidebar.d.ts.map +1 -1
  105. package/dist/layout/sidebar/sd-sidebar.js +3 -3
  106. package/dist/layout/topbar/sd-topbar-menu.js +5 -5
  107. package/dist/layout/topbar/sd-topbar.d.ts.map +1 -1
  108. package/dist/layout/topbar/sd-topbar.js +5 -5
  109. package/package.json +5 -5
  110. package/scss/commons/_colors.scss +296 -242
  111. package/scss/commons/_density.scss +23 -0
  112. package/scss/commons/_mixins.scss +142 -129
  113. package/scss/commons/_styles.scss +78 -103
  114. package/scss/commons/_theme-variables.scss +16 -2
  115. package/scss/commons/_variables.scss +277 -149
  116. package/scss/controls/_card.scss +12 -8
  117. package/scss/controls/_form-box.scss +7 -7
  118. package/scss/controls/_form-table.scss +7 -7
  119. package/scss/controls/_table.scss +5 -5
  120. package/scss/sd-tokens.md +132 -0
  121. package/scss/styles.scss +3 -4
  122. package/scss/themes/_variables-blueprint.scss +127 -81
  123. package/scss/themes/_variables-ide-dark.scss +215 -0
  124. package/src/controls/button/sd-additional-button.ts +12 -12
  125. package/src/controls/button/sd-anchor.ts +7 -8
  126. package/src/controls/button/sd-button.ts +42 -44
  127. package/src/controls/button/sd-modal-select-button.ts +15 -19
  128. package/src/controls/checkbox/sd-checkbox.ts +55 -43
  129. package/src/controls/checkbox/sd-switch.ts +18 -19
  130. package/src/controls/collapse/sd-collapse-icon.ts +2 -2
  131. package/src/controls/collapse/sd-collapse.ts +2 -2
  132. package/src/controls/dropdown/sd-dropdown-popup.ts +10 -12
  133. package/src/controls/dropdown/sd-dropdown.ts +1 -1
  134. package/src/controls/gap/sd-gap.ts +11 -9
  135. package/src/controls/input/sd-date-range-picker.ts +1 -1
  136. package/src/controls/input/sd-numpad.ts +3 -11
  137. package/src/controls/input/sd-range.ts +1 -1
  138. package/src/controls/input/sd-textarea.ts +18 -18
  139. package/src/controls/input/sd-textfield.ts +39 -37
  140. package/src/controls/list/sd-list-item.ts +195 -195
  141. package/src/controls/list/sd-list.ts +8 -8
  142. package/src/controls/pagination/sd-pagination.ts +4 -2
  143. package/src/controls/select/sd-select-button.ts +6 -10
  144. package/src/controls/select/sd-select-item.ts +14 -15
  145. package/src/controls/select/sd-select.ts +34 -35
  146. package/src/controls/tab/sd-tab-item.ts +4 -4
  147. package/src/controls/tab/sd-tab.ts +2 -2
  148. package/src/core/busy/sd-busy-container.ts +17 -16
  149. package/src/core/modal/sd-modal.ts +38 -32
  150. package/src/core/provideSdAngular.ts +34 -10
  151. package/src/core/ripple/setupRipple.ts +2 -2
  152. package/src/core/setupBgTheme.ts +5 -14
  153. package/src/core/show-effect/setupRevealOnShow.ts +1 -1
  154. package/src/core/toast/sd-toast-container.ts +5 -5
  155. package/src/core/toast/sd-toast.ts +16 -17
  156. package/src/core/validation/setupInvalid.ts +5 -5
  157. package/src/data/crud/sd-base-container.ts +120 -122
  158. package/src/data/kanban/sd-kanban-board.ts +1 -1
  159. package/src/data/kanban/sd-kanban-lane.ts +9 -14
  160. package/src/data/kanban/sd-kanban.ts +9 -19
  161. package/src/data/permission-table/sd-permission-table.ts +12 -20
  162. package/src/data/shared-data/sd-shared-data-select-list.ts +5 -19
  163. package/src/data/shared-data/sd-shared-data-select.ts +11 -28
  164. package/src/data/sheet/sd-sheet-config.modal.ts +5 -7
  165. package/src/data/sheet/sd-sheet.ts +29 -28
  166. package/src/data/sheet/useSheetCellStyling.ts +12 -3
  167. package/src/data/state-preset/sd-state-preset.ts +16 -16
  168. package/src/features/editor/sd-markdown-editor.ts +110 -56
  169. package/src/features/editor/sd-tiptap-editor.ts +214 -81
  170. package/src/features/theme/sd-theme-provider.ts +28 -3
  171. package/src/features/theme/sd-theme-selector.ts +21 -2
  172. package/src/features/theme/wcag-contrast.ts +103 -0
  173. package/src/features/visual/sd-calendar.ts +8 -8
  174. package/src/features/visual/sd-label.ts +11 -12
  175. package/src/features/visual/sd-note.ts +10 -11
  176. package/src/features/visual/sd-progress.ts +9 -11
  177. package/src/index.ts +15 -40
  178. package/src/layout/sidebar/sd-sidebar-container.ts +21 -8
  179. package/src/layout/sidebar/sd-sidebar-menu.ts +15 -17
  180. package/src/layout/sidebar/sd-sidebar-user.ts +100 -100
  181. package/src/layout/sidebar/sd-sidebar.ts +7 -9
  182. package/src/layout/topbar/sd-topbar-menu.ts +3 -3
  183. package/src/layout/topbar/sd-topbar.ts +12 -14
  184. package/styles.css +1641 -2462
  185. package/scss/themes/_blueprint-surfaces.scss +0 -87
@@ -0,0 +1,132 @@
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(커스텀 테마 검증용).
package/scss/styles.scss CHANGED
@@ -1,9 +1,6 @@
1
1
  @use "commons/theme-variables";
2
2
  @use "commons/styles";
3
3
 
4
- // 블루프린트 모눈 그리드 면 (언레이어드 — 파일 내 주석 참조)
5
- @use "themes/blueprint-surfaces";
6
-
7
4
  @use "controls/flex";
8
5
  @use "controls/grid";
9
6
  @use "controls/card";
@@ -12,7 +9,9 @@
12
9
  @use "controls/table";
13
10
 
14
11
  ng-icon {
15
- --ng-icon__size: 1.33em;
12
+ // 아이콘 박스 + 아래 시프트(0.2em)가 라인박스를 절대 못 넘게 line-height 에서 유도.
13
+ // 고정 배율(1.33em)이던 시절 1.33+0.2 > line-height 로 행 높이가 부풀었음.
14
+ --ng-icon__size: calc(var(--sd-line-height) - 0.2em);
16
15
  vertical-align: -0.2em !important;
17
16
 
18
17
  svg {
@@ -1,99 +1,145 @@
1
+ // 블루프린트 테마 — 트레이싱지(라이트 면)를 --sd-* 역할 토큰 값 맵으로만 구성(셀렉터 오버라이드 0).
2
+ // 라이트 기본값과 같은 항목은 생략(값 맵은 차이만 덮음).
3
+ // 색 규칙(CONSTRAINT-007): --sd-color-* 팔레트 + 흰/검 알파만.
4
+ // 모눈·그림자 청색 틴트는 rgb(28, 57, 142) ≈ --sd-color-blue-900 근사 리터럴(2026-07-16 확정 —
5
+ // var() 를 알파와 조합할 수 없어 팔레트 성분을 리터럴로 풂).
6
+
7
+ // 모눈: 24px 헤어라인 + 120px 메이저 — background-size 없이 성립하는 repeating-linear-gradient 형
8
+ $grid-strong: rgba(28, 57, 142, 0.055);
9
+ $grid-weak: rgba(28, 57, 142, 0.022);
10
+ $grid-image: (
11
+ repeating-linear-gradient(to bottom, #{$grid-strong} 0 1px, transparent 1px 120px),
12
+ repeating-linear-gradient(to right, #{$grid-strong} 0 1px, transparent 1px 120px),
13
+ repeating-linear-gradient(to bottom, #{$grid-weak} 0 1px, transparent 1px 24px),
14
+ repeating-linear-gradient(to right, #{$grid-weak} 0 1px, transparent 1px 24px)
15
+ );
16
+
1
17
  $paper: (
2
- theme: (
18
+ bg: (
19
+ // 모눈은 body(캔버스)와 시트 컨테이너에만 — 콘텐츠 내부는 무지(가독 우선)
20
+ canvas-image: $grid-image,
21
+ sheet-image: $grid-image,
3
22
  "gray": (
4
- lightest: var(--color-zinc-50),
5
- lighter: var(--color-zinc-100),
6
- light: var(--color-zinc-300),
7
- default: var(--color-zinc-500),
8
- dark: var(--color-zinc-600),
9
- darker: var(--color-zinc-700),
10
- darkest: var(--color-zinc-800),
23
+ solid: var(--sd-color-zinc-500),
24
+ solid-hover: var(--sd-color-zinc-600),
11
25
  ),
12
26
  blue-gray: (
13
- lightest: var(--color-slate-50),
14
- lighter: var(--color-slate-100),
15
- light: var(--color-slate-300),
16
- default: var(--color-slate-500),
17
- dark: var(--color-slate-600),
18
- darker: var(--color-slate-700),
19
- darkest: var(--color-slate-800),
27
+ solid: var(--sd-color-slate-500),
28
+ solid-hover: var(--sd-color-slate-600),
20
29
  ),
30
+ // 블루프린트 잉크 — primary 는 깊은 남색(900)
21
31
  primary: (
22
- lightest: var(--color-blue-100),
23
- lighter: var(--color-blue-300),
24
- light: var(--color-blue-500),
25
- default: var(--color-blue-900),
26
- dark: var(--color-blue-950),
27
- darker: var(--color-blue-950),
28
- darkest: var(--color-blue-950),
29
- ),
30
- secondary: (
31
- lightest: var(--color-blue-50),
32
- lighter: var(--color-blue-100),
33
- light: var(--color-blue-300),
34
- default: var(--color-blue-500),
35
- dark: var(--color-blue-600),
36
- darker: var(--color-blue-700),
37
- darkest: var(--color-blue-800),
38
- ),
39
- info: (
40
- lightest: var(--color-cyan-50),
41
- lighter: var(--color-cyan-100),
42
- light: var(--color-cyan-300),
43
- default: var(--color-cyan-500),
44
- dark: var(--color-cyan-600),
45
- darker: var(--color-cyan-700),
46
- darkest: var(--color-cyan-800),
32
+ solid: var(--sd-color-blue-900),
33
+ solid-hover: var(--sd-color-blue-950),
34
+ subtle: var(--sd-color-blue-100),
35
+ subtle-hover: var(--sd-color-blue-300),
36
+ ),
37
+ success: (
38
+ solid: var(--sd-color-green-500),
39
+ solid-hover: var(--sd-color-green-600),
40
+ subtle: var(--sd-color-green-50),
41
+ subtle-hover: var(--sd-color-green-100),
42
+ ),
43
+ warning: (
44
+ solid: var(--sd-color-orange-400),
45
+ solid-hover: var(--sd-color-orange-600),
46
+ subtle: var(--sd-color-orange-100),
47
+ subtle-hover: var(--sd-color-orange-200),
48
+ ),
49
+ danger: (
50
+ solid: var(--sd-color-red-400),
51
+ solid-hover: var(--sd-color-red-600),
52
+ ),
53
+ ),
54
+ tx: (
55
+ "gray": var(--sd-color-zinc-500),
56
+ gray-hover: var(--sd-color-zinc-600),
57
+ gray-subtle: var(--sd-color-zinc-700),
58
+ blue-gray: var(--sd-color-slate-500),
59
+ blue-gray-hover: var(--sd-color-slate-600),
60
+ blue-gray-subtle: var(--sd-color-slate-700),
61
+ primary: var(--sd-color-blue-900),
62
+ primary-hover: var(--sd-color-blue-950),
63
+ primary-subtle: var(--sd-color-blue-950),
64
+ success: var(--sd-color-green-500),
65
+ success-hover: var(--sd-color-green-600),
66
+ success-subtle: var(--sd-color-green-700),
67
+ warning: var(--sd-color-orange-400),
68
+ warning-hover: var(--sd-color-orange-600),
69
+ danger: var(--sd-color-red-400),
70
+ danger-hover: var(--sd-color-red-600),
71
+ ),
72
+ bd: (
73
+ strong: var(--sd-color-zinc-500),
74
+ emphasis: var(--sd-color-zinc-600),
75
+ "gray": (
76
+ solid: var(--sd-color-zinc-500),
77
+ solid-hover: var(--sd-color-zinc-600),
78
+ ),
79
+ blue-gray: (
80
+ solid: var(--sd-color-slate-500),
81
+ solid-hover: var(--sd-color-slate-600),
82
+ ),
83
+ primary: (
84
+ solid: var(--sd-color-blue-900),
85
+ solid-hover: var(--sd-color-blue-950),
86
+ subtle: var(--sd-color-blue-300),
47
87
  ),
48
88
  success: (
49
- lightest: var(--color-green-50),
50
- lighter: var(--color-green-100),
51
- light: var(--color-green-300),
52
- default: var(--color-green-500),
53
- dark: var(--color-green-600),
54
- darker: var(--color-green-700),
55
- darkest: var(--color-green-800),
89
+ solid: var(--sd-color-green-500),
90
+ solid-hover: var(--sd-color-green-600),
91
+ subtle: var(--sd-color-green-300),
56
92
  ),
57
93
  warning: (
58
- lightest: var(--color-orange-100),
59
- lighter: var(--color-orange-200),
60
- light: var(--color-orange-300),
61
- default: var(--color-orange-400),
62
- dark: var(--color-orange-600),
63
- darker: var(--color-orange-700),
64
- darkest: var(--color-orange-800),
94
+ solid: var(--sd-color-orange-400),
95
+ solid-hover: var(--sd-color-orange-600),
96
+ subtle: var(--sd-color-orange-300),
65
97
  ),
66
98
  danger: (
67
- lightest: var(--color-red-50),
68
- lighter: var(--color-red-100),
69
- light: var(--color-red-200),
70
- default: var(--color-red-400),
71
- dark: var(--color-red-600),
72
- darker: var(--color-red-700),
73
- darkest: var(--color-red-800),
99
+ solid: var(--sd-color-red-400),
100
+ solid-hover: var(--sd-color-red-600),
74
101
  ),
75
102
  ),
76
- background-color: var(--theme-gray-lightest),
77
- control-color: white,
78
- border-radius: (
79
- xs: 0,
80
- sm: 0,
81
- default: 0,
82
- lg: 0,
83
- xl: 0,
84
- xxl: 0,
103
+ focus-ring: (
104
+ color: var(--sd-color-blue-900),
85
105
  ),
86
- elevation-blur-mult: 0,
87
- sheet: (
88
- bg: var(--theme-gray-lightest),
106
+ // 하드 섀도(blur 0) — 도면 인쇄 느낌
107
+ shadow: (
108
+ blur-mult: 0,
109
+ ),
110
+ card: (
111
+ bd: var(--sd-color-zinc-500),
112
+ bd-active: var(--sd-color-zinc-500),
113
+ shadow: (
114
+ 3px 3px 0 rgba(28, 57, 142, 0.1),
115
+ ),
116
+ shadow-hover: (
117
+ 5px 5px 0 rgba(28, 57, 142, 0.14),
118
+ ),
89
119
  ),
90
- border-color: (
91
- lightest: var(--color-zinc-100),
92
- lighter: var(--color-zinc-200),
93
- light: var(--color-zinc-300),
94
- default: var(--color-zinc-500),
95
- dark: var(--color-zinc-600),
96
- darker: var(--color-zinc-700),
97
- darkest: var(--color-zinc-800),
120
+ // 모달 헤더 잉크 액센트
121
+ modal: (
122
+ header-bg: var(--sd-color-blue-900),
123
+ header-tx: white,
124
+ header-tx-muted: rgba(255, 255, 255, 0.7),
125
+ ),
126
+ sheet: (
127
+ shadow: (
128
+ 1px 1px 0 rgba(28, 57, 142, 0.1),
129
+ ),
98
130
  ),
131
+ // 권한표 그룹 행 — 원색 solid 를 무채 옅은 행으로
132
+ permission-group: (
133
+ bg: var(--sd-color-zinc-100),
134
+ tx: rgba(0, 0, 0, 0.87),
135
+ ),
136
+ // 도면 직각 — 라운드 0
137
+ radius: (
138
+ xs: 0,
139
+ sm: 0,
140
+ default: 0,
141
+ lg: 0,
142
+ xl: 0,
143
+ xxl: 0,
144
+ ),
99
145
  );
@@ -0,0 +1,215 @@
1
+ // IDE 다크 테마 — VSCode "Dark 2026" 을 --sd-* 역할 토큰 값 맵으로만 구성(셀렉터 오버라이드 0).
2
+ // 레퍼런스: microsoft/vscode extensions/theme-defaults/themes/2026-dark.json (v1.113 기본 테마)
3
+ // 색 규칙(CONSTRAINT-007): --sd-color-* 팔레트 + 흰/검 알파(rgba white/black)만.
4
+ // 값 이전 기준(FIND-015): 구 스케일 맵·ide-dark-surfaces 확정 상태를 라이트 기본값 등가 슬롯으로 역매핑.
5
+ // 치수(gap·line-height·sheet pv/ph·topbar height)는 밀도 그룹 소유(DEC-007) — 이 맵엔 없음.
6
+ $dark: (
7
+ bg: (
8
+ // 계층: canvas zinc-950 → control zinc-900 → elevated/overlay zinc-800
9
+ canvas: var(--sd-color-zinc-950),
10
+ control: var(--sd-color-zinc-900),
11
+ elevated: var(--sd-color-zinc-800),
12
+ overlay: var(--sd-color-zinc-800),
13
+ sheet: var(--sd-color-zinc-950),
14
+ inverse: white,
15
+ // 필드 배경 — input.background 근사
16
+ field: var(--sd-color-zinc-900),
17
+ track: var(--sd-color-zinc-700),
18
+ // 시맨틱 solid = 깊은 스텝(600) + hover 한 단계 밝게(500) — VSCode 방식(다크에서 500 배경은 과함)
19
+ "gray": (
20
+ solid: var(--sd-color-zinc-400),
21
+ solid-hover: var(--sd-color-zinc-300),
22
+ subtle: var(--sd-color-zinc-800),
23
+ subtle-hover: var(--sd-color-zinc-700),
24
+ ),
25
+ blue-gray: (
26
+ solid: var(--sd-color-slate-400),
27
+ solid-hover: var(--sd-color-slate-300),
28
+ subtle: var(--sd-color-slate-800),
29
+ subtle-hover: var(--sd-color-slate-700),
30
+ ),
31
+ primary: (
32
+ solid: var(--sd-color-sky-600),
33
+ solid-hover: var(--sd-color-sky-500),
34
+ subtle: var(--sd-color-sky-950),
35
+ subtle-hover: var(--sd-color-sky-900),
36
+ ),
37
+ secondary: (
38
+ solid: var(--sd-color-sky-600),
39
+ solid-hover: var(--sd-color-sky-500),
40
+ subtle: var(--sd-color-zinc-900),
41
+ subtle-hover: var(--sd-color-sky-900),
42
+ ),
43
+ info: (
44
+ solid: var(--sd-color-cyan-600),
45
+ solid-hover: var(--sd-color-cyan-500),
46
+ subtle: var(--sd-color-cyan-950),
47
+ subtle-hover: var(--sd-color-cyan-900),
48
+ ),
49
+ success: (
50
+ solid: var(--sd-color-green-600),
51
+ solid-hover: var(--sd-color-green-500),
52
+ subtle: var(--sd-color-green-950),
53
+ subtle-hover: var(--sd-color-green-900),
54
+ ),
55
+ warning: (
56
+ solid: var(--sd-color-amber-600),
57
+ solid-hover: var(--sd-color-amber-500),
58
+ subtle: var(--sd-color-amber-950),
59
+ subtle-hover: var(--sd-color-amber-900),
60
+ ),
61
+ // errorForeground #f48771 근사 = red-400 (solid 는 400 기준·hover 500)
62
+ danger: (
63
+ solid: var(--sd-color-red-400),
64
+ solid-hover: var(--sd-color-red-500),
65
+ subtle: var(--sd-color-red-950),
66
+ subtle-hover: var(--sd-color-red-900),
67
+ ),
68
+ // 오버레이·hover: list.hoverBackground #FFFFFF14 근사 — 흰 알파
69
+ state: (
70
+ hover: rgba(255, 255, 255, 0.05),
71
+ active: rgba(255, 255, 255, 0.08),
72
+ selected: rgba(255, 255, 255, 0.07),
73
+ ),
74
+ disabled: var(--sd-color-zinc-800),
75
+ busy-overlay: rgba(0, 0, 0, 0.6),
76
+ busy-indicator: rgba(255, 255, 255, 0.13),
77
+ ),
78
+ // 텍스트: 흰색 알파 스케일 (Dark 2026 근사 — #ededed/#bfbfbf/#8c8c8c/#555)
79
+ tx: (
80
+ strong: rgba(255, 255, 255, 0.93),
81
+ default: rgba(255, 255, 255, 0.75),
82
+ muted: rgba(255, 255, 255, 0.55),
83
+ faint: rgba(255, 255, 255, 0.33),
84
+ on-inverse: white,
85
+ on-inverse-muted: rgba(255, 255, 255, 0.75),
86
+ on-inverse-disabled: rgba(255, 255, 255, 0.55),
87
+ disabled: rgba(255, 255, 255, 0.33),
88
+ // 링크·단독 텍스트 = 깊은 톤(600), hover 시 500 (쨍함 억제)
89
+ "gray": var(--sd-color-zinc-400),
90
+ gray-hover: var(--sd-color-zinc-300),
91
+ gray-subtle: var(--sd-color-zinc-200),
92
+ blue-gray: var(--sd-color-slate-400),
93
+ blue-gray-hover: var(--sd-color-slate-300),
94
+ blue-gray-subtle: var(--sd-color-slate-200),
95
+ primary: var(--sd-color-sky-600),
96
+ primary-hover: var(--sd-color-sky-500),
97
+ primary-subtle: var(--sd-color-sky-400),
98
+ secondary: var(--sd-color-sky-600),
99
+ secondary-hover: var(--sd-color-sky-500),
100
+ secondary-subtle: var(--sd-color-sky-400),
101
+ info: var(--sd-color-cyan-600),
102
+ info-hover: var(--sd-color-cyan-500),
103
+ info-subtle: var(--sd-color-cyan-300),
104
+ success: var(--sd-color-green-600),
105
+ success-hover: var(--sd-color-green-500),
106
+ success-subtle: var(--sd-color-green-300),
107
+ warning: var(--sd-color-amber-600),
108
+ warning-hover: var(--sd-color-amber-500),
109
+ warning-subtle: var(--sd-color-amber-300),
110
+ danger: var(--sd-color-red-400),
111
+ danger-hover: var(--sd-color-red-500),
112
+ danger-subtle: var(--sd-color-red-300),
113
+ ),
114
+ // 보더: 흰색 알파 헤어라인 (widget #2A2B2C·input #333536 근사)
115
+ bd: (
116
+ hairline: rgba(255, 255, 255, 0.05),
117
+ soft: rgba(255, 255, 255, 0.08),
118
+ default: rgba(255, 255, 255, 0.1),
119
+ strong: rgba(255, 255, 255, 0.12),
120
+ emphasis: rgba(255, 255, 255, 0.16),
121
+ field: rgba(255, 255, 255, 0.1),
122
+ disabled: rgba(255, 255, 255, 0.08),
123
+ "gray": (
124
+ solid: var(--sd-color-zinc-400),
125
+ solid-hover: var(--sd-color-zinc-300),
126
+ subtle: var(--sd-color-zinc-600),
127
+ ),
128
+ blue-gray: (
129
+ solid: var(--sd-color-slate-400),
130
+ solid-hover: var(--sd-color-slate-300),
131
+ subtle: var(--sd-color-slate-600),
132
+ ),
133
+ primary: (
134
+ solid: var(--sd-color-sky-600),
135
+ solid-hover: var(--sd-color-sky-500),
136
+ subtle: var(--sd-color-sky-500),
137
+ ),
138
+ secondary: (
139
+ solid: var(--sd-color-sky-600),
140
+ solid-hover: var(--sd-color-sky-500),
141
+ subtle: var(--sd-color-sky-500),
142
+ ),
143
+ info: (
144
+ solid: var(--sd-color-cyan-600),
145
+ solid-hover: var(--sd-color-cyan-500),
146
+ subtle: var(--sd-color-cyan-600),
147
+ ),
148
+ success: (
149
+ solid: var(--sd-color-green-600),
150
+ solid-hover: var(--sd-color-green-500),
151
+ subtle: var(--sd-color-green-600),
152
+ ),
153
+ warning: (
154
+ solid: var(--sd-color-amber-600),
155
+ solid-hover: var(--sd-color-amber-500),
156
+ subtle: var(--sd-color-amber-600),
157
+ ),
158
+ danger: (
159
+ solid: var(--sd-color-red-400),
160
+ solid-hover: var(--sd-color-red-500),
161
+ subtle: var(--sd-color-red-400),
162
+ ),
163
+ ),
164
+ focus-ring: (
165
+ color: var(--sd-color-sky-600),
166
+ ),
167
+ // Dark 2026 scrollbarSlider.* 근사 (DEC-011)
168
+ scrollbar: (
169
+ thumb: rgba(255, 255, 255, 0.1),
170
+ thumb-hover: rgba(255, 255, 255, 0.16),
171
+ track: rgba(255, 255, 255, 0.03),
172
+ ),
173
+ // 그림자 전면 제거 — VSCode 는 경계를 보더로 세움
174
+ shadow: (
175
+ size: 0,
176
+ blur-mult: 0,
177
+ ),
178
+ // 다크는 그림자가 약해 카드 경계를 헤어라인으로, 포커스 시 상단 액센트 라인
179
+ // (tab.activeBorderTop #3994BC 근사 = sky-500)
180
+ card: (
181
+ bd: rgba(255, 255, 255, 0.08),
182
+ bd-active: var(--sd-color-sky-500),
183
+ shadow: none,
184
+ shadow-hover: none,
185
+ ),
186
+ // 오버레이 elevated 경계 — editorWidget/menu 배경 + widget.border #2A2B2C 근사
187
+ modal: (
188
+ bd: rgba(255, 255, 255, 0.22),
189
+ header-bg: var(--sd-color-zinc-800),
190
+ header-tx: rgba(255, 255, 255, 0.75),
191
+ header-tx-muted: var(--sd-color-zinc-400),
192
+ ),
193
+ dropdown: (
194
+ bd: rgba(255, 255, 255, 0.22),
195
+ ),
196
+ // 권한표 그룹 행 — theme 원색 solid 를 무채 어두운 행으로
197
+ permission-group: (
198
+ bg: var(--sd-color-zinc-800),
199
+ tx: rgba(255, 255, 255, 0.75),
200
+ ),
201
+ // VSCode 수준 소형 라운드 — 버튼·인풋 2px, 위젯·메뉴 4px 급 (12px 기준)
202
+ radius: (
203
+ xs: 0.0833rem,
204
+ sm: 0.0833rem,
205
+ default: 0.1667rem,
206
+ lg: 0.25rem,
207
+ xl: 0.3333rem,
208
+ xxl: 0.5rem,
209
+ ),
210
+ // 폰트는 이 테마 컨셉이라 여기서만 Sarasa Fixed K 로 덮는다(라이트·블루프린트 불변)
211
+ font-family: '"Sarasa Fixed K", ui-monospace, monospace',
212
+ font-family-field: '"Sarasa Fixed K", ui-monospace, monospace',
213
+ font-family-monospace: '"Sarasa Fixed K", ui-monospace, monospace',
214
+ font-weight: 300,
215
+ );
@@ -25,12 +25,12 @@ import {
25
25
  @use "../../../scss/commons/mixins";
26
26
 
27
27
  sd-additional-button {
28
- border: 1px solid var(--trans-light);
29
- border-radius: var(--border-radius-default);
28
+ border: 1px solid var(--sd-bd-soft);
29
+ border-radius: var(--sd-radius-default);
30
30
  overflow: hidden;
31
31
 
32
32
  > ._content {
33
- padding: var(--gap-sm) var(--gap-default);
33
+ padding: var(--sd-gap-sm) var(--sd-gap-default);
34
34
  }
35
35
 
36
36
  > ._button {
@@ -39,12 +39,12 @@ import {
39
39
  @include mixins.flex-direction(row);
40
40
 
41
41
  > sd-anchor {
42
- padding: var(--gap-sm) !important;
42
+ padding: var(--sd-gap-sm) !important;
43
43
  }
44
44
 
45
45
  > sd-button > button {
46
- border-left: 1px solid var(--trans-lighter) !important;
47
- padding: var(--gap-sm) !important;
46
+ border-left: 1px solid var(--sd-bd-hairline) !important;
47
+ padding: var(--sd-gap-sm) !important;
48
48
  height: 100%;
49
49
  }
50
50
  }
@@ -56,32 +56,32 @@ import {
56
56
 
57
57
  &[data-sd-size="sm"] {
58
58
  > ._content {
59
- padding: var(--gap-xs) var(--gap-default);
59
+ padding: var(--sd-gap-xs) var(--sd-gap-default);
60
60
  }
61
61
 
62
62
  > ._button {
63
63
  > sd-anchor {
64
- padding: var(--gap-xs) var(--gap-sm) !important;
64
+ padding: var(--sd-gap-xs) var(--sd-gap-sm) !important;
65
65
  }
66
66
 
67
67
  > sd-button > button {
68
- padding: var(--gap-xs) var(--gap-sm) !important;
68
+ padding: var(--sd-gap-xs) var(--sd-gap-sm) !important;
69
69
  }
70
70
  }
71
71
  }
72
72
 
73
73
  &[data-sd-size="lg"] {
74
74
  > ._content {
75
- padding: var(--gap-default) var(--gap-xl);
75
+ padding: var(--sd-gap-default) var(--sd-gap-xl);
76
76
  }
77
77
 
78
78
  > ._button {
79
79
  > sd-anchor {
80
- padding: var(--gap-default) !important;
80
+ padding: var(--sd-gap-default) !important;
81
81
  }
82
82
 
83
83
  > sd-button > button {
84
- padding: var(--gap-default) !important;
84
+ padding: var(--sd-gap-default) !important;
85
85
  }
86
86
  }
87
87
  }