@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
@@ -1,129 +1,142 @@
1
- @use "./variables";
2
- @use "sass:meta";
3
- @use "sass:map";
4
-
5
- @mixin writeVars($value, $prevKey) {
6
- @if meta.type-of($value) == map {
7
- @each $key, $val in $value {
8
- @if $prevKey == "" {
9
- @include writeVars($val, $key);
10
- } @else {
11
- @include writeVars($val, $prevKey + "-" + $key);
12
- }
13
- }
14
- } @else {
15
- --#{$prevKey}: #{$value};
16
- }
17
- }
18
-
19
- // blur 항에 --elevation-blur-mult(기본 1, 항등)를 곱해 테마별로 blur 제거 가능.
20
- // 블루프린트 테마는 토큰을 0으로 덮어 하드 오프셋(blur 0) 섀도를 만든다.
21
- @mixin elevation($value) {
22
- @if $value == none or $value == 0 {
23
- box-shadow: none;
24
- } @else if $value < 0 {
25
- box-shadow:
26
- inset 0 0 calc(0.1667rem * var(--elevation-blur-mult)) var(--trans-lighter),
27
- inset
28
- 0
29
- calc(#{$value * -1} * var(--elevation-size))
30
- calc(#{$value * -1} * 4 * var(--elevation-size) * var(--elevation-blur-mult))
31
- var(--trans-lighter);
32
- } @else {
33
- box-shadow:
34
- 0
35
- calc(#{$value} * var(--elevation-size))
36
- calc(#{$value} * 4 * var(--elevation-size) * var(--elevation-blur-mult))
37
- var(--trans-lighter),
38
- 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult))
39
- var(--trans-lighter);
40
- }
41
- }
42
-
43
- @mixin form-control-base() {
44
- display: block;
45
- padding: var(--gap-sm) var(--gap-default);
46
- border: 1px solid transparent;
47
-
48
- font-size: var(--font-size-default);
49
- font-family: var(--font-family);
50
- font-variant-numeric: tabular-nums;
51
- line-height: var(--line-height);
52
-
53
- color: var(--text-trans-default);
54
- }
55
-
56
- @mixin help() {
57
- text-decoration-line: underline;
58
- text-decoration-style: dotted;
59
- cursor: help;
60
- }
61
-
62
- @mixin border-direction-variants($dir, $d) {
63
- .bd#{$d} {
64
- border-#{$dir}: 1px solid !important;
65
- }
66
-
67
- @each $key, $val in map.get(variables.$vars, theme) {
68
- @each $key1, $val1 in $val {
69
- .bd#{$d}-theme-#{$key}-#{$key1} {
70
- border-#{$dir}-color: var(--theme-#{$key}-#{$key1}) !important;
71
- }
72
- }
73
- }
74
-
75
- @each $key, $val in map.get(variables.$vars, trans) {
76
- .bd#{$d}-trans-#{$key} {
77
- border-#{$dir}-color: var(--trans-#{$key}) !important;
78
- }
79
- }
80
-
81
- @each $key, $val in map.get(variables.$vars, border-color) {
82
- .bd#{$d}-color-#{$key} {
83
- border-#{$dir}-color: var(--border-color-#{$key}) !important;
84
- }
85
- }
86
-
87
- .bd#{$d}-none {
88
- border-#{$dir}: none !important;
89
- }
90
-
91
- .bd#{$d}-transparent {
92
- border-#{$dir}-color: transparent !important;
93
- }
94
- }
95
-
96
- @mixin flex-direction($direction, $defaultGap: null) {
97
- flex-direction: $direction;
98
-
99
- @if ($defaultGap) {
100
- gap: $defaultGap;
101
- }
102
-
103
- // Chromium 84이하 / WebKit 61 (Flex Gap 미지원) .gap-*에 대한 폴백
104
- @supports not (appearance: auto) {
105
- @if ($defaultGap) {
106
- gap: 0;
107
- > * + * {
108
- @if ($direction == row) {
109
- margin-left: $defaultGap;
110
- } @else {
111
- margin-top: $defaultGap;
112
- }
113
- }
114
- }
115
-
116
- @each $key, $val in map.get(variables.$vars, gap) {
117
- &.gap-#{$key} {
118
- gap: 0;
119
- > * + * {
120
- @if ($direction == row) {
121
- margin-left: var(--gap-#{$key});
122
- } @else {
123
- margin-top: var(--gap-#{$key});
124
- }
125
- }
126
- }
127
- }
128
- }
129
- }
1
+ @use "./variables";
2
+ @use "sass:meta";
3
+ @use "sass:map";
4
+ @use "sass:string";
5
+
6
+ @mixin writeVars($value, $prevKey) {
7
+ @if meta.type-of($value) == map {
8
+ @each $key, $val in $value {
9
+ @if $prevKey == "" {
10
+ @include writeVars($val, $key);
11
+ } @else {
12
+ @include writeVars($val, $prevKey + "-" + $key);
13
+ }
14
+ }
15
+ } @else {
16
+ --#{$prevKey}: #{$value};
17
+ }
18
+ }
19
+
20
+ // $sd 그룹(bg/tx/bd)의 중첩 맵을 "이름: 값" 평탄 맵으로 펼친다 (유틸 클래스 생성용).
21
+ @function flatKeys($map, $prefix: "") {
22
+ $result: ();
23
+ @each $key, $val in $map {
24
+ $name: "#{$key}";
25
+ @if $prefix != "" {
26
+ $name: "#{$prefix}-#{$key}";
27
+ }
28
+ @if meta.type-of($val) == map {
29
+ $result: map.merge($result, flatKeys($val, $name));
30
+ } @else {
31
+ $result: map.set($result, $name, $val);
32
+ }
33
+ }
34
+ @return $result;
35
+ }
36
+
37
+ // -hover 변형·bg-canvas-image·bg-sheet-image 는 유틸 클래스 미생성 (DEC-013)
38
+ @function isUtilityToken($name) {
39
+ @return string.slice($name, -6) != "-hover" and $name != "canvas-image" and $name != "sheet-image";
40
+ }
41
+
42
+ // blur 항에 --sd-shadow-blur-mult(기본 1, 항등)를 곱해 테마별로 blur 제거 가능.
43
+ // 블루프린트 테마는 이 토큰을 0으로 덮어 하드 오프셋(blur 0) 섀도를 만든다.
44
+ @mixin elevation($value) {
45
+ @if $value == none or $value == 0 {
46
+ box-shadow: none;
47
+ } @else if $value < 0 {
48
+ box-shadow:
49
+ inset 0 0 calc(0.1667rem * var(--sd-shadow-blur-mult)) var(--sd-shadow-color),
50
+ inset
51
+ 0
52
+ calc(#{$value * -1} * var(--sd-shadow-size))
53
+ calc(#{$value * -1} * 4 * var(--sd-shadow-size) * var(--sd-shadow-blur-mult))
54
+ var(--sd-shadow-color);
55
+ } @else {
56
+ box-shadow:
57
+ 0
58
+ calc(#{$value} * var(--sd-shadow-size))
59
+ calc(#{$value} * 4 * var(--sd-shadow-size) * var(--sd-shadow-blur-mult))
60
+ var(--sd-shadow-color),
61
+ 0
62
+ var(--sd-shadow-size)
63
+ calc(var(--sd-shadow-size) * var(--sd-shadow-blur-mult))
64
+ var(--sd-shadow-color);
65
+ }
66
+ }
67
+
68
+ @mixin form-control-base() {
69
+ display: block;
70
+ padding: var(--sd-gap-sm) var(--sd-gap-default);
71
+ border: 1px solid transparent;
72
+
73
+ font-size: var(--sd-font-size-default);
74
+ font-family: var(--sd-font-family);
75
+ font-variant-numeric: tabular-nums;
76
+ line-height: var(--sd-line-height);
77
+
78
+ color: var(--sd-tx-default);
79
+ }
80
+
81
+ @mixin help() {
82
+ text-decoration-line: underline;
83
+ text-decoration-style: dotted;
84
+ cursor: help;
85
+ }
86
+
87
+ @mixin border-direction-variants($dir, $d) {
88
+ .bd#{$d} {
89
+ border-#{$dir}: 1px solid !important;
90
+ }
91
+
92
+ @each $name, $val in flatKeys(map.get(variables.$sd, bd)) {
93
+ @if isUtilityToken($name) {
94
+ .bd#{$d}-#{$name} {
95
+ border-#{$dir}-color: var(--sd-bd-#{$name}) !important;
96
+ }
97
+ }
98
+ }
99
+
100
+ .bd#{$d}-none {
101
+ border-#{$dir}: none !important;
102
+ }
103
+
104
+ .bd#{$d}-transparent {
105
+ border-#{$dir}-color: transparent !important;
106
+ }
107
+ }
108
+
109
+ @mixin flex-direction($direction, $defaultGap: null) {
110
+ flex-direction: $direction;
111
+
112
+ @if ($defaultGap) {
113
+ gap: $defaultGap;
114
+ }
115
+
116
+ // Chromium 84이하 / WebKit 61 (Flex Gap 미지원) .gap-*에 대한 폴백
117
+ @supports not (appearance: auto) {
118
+ @if ($defaultGap) {
119
+ gap: 0;
120
+ > * + * {
121
+ @if ($direction == row) {
122
+ margin-left: $defaultGap;
123
+ } @else {
124
+ margin-top: $defaultGap;
125
+ }
126
+ }
127
+ }
128
+
129
+ @each $key, $val in map.get(variables.$sd, gap) {
130
+ &.gap-#{$key} {
131
+ gap: 0;
132
+ > * + * {
133
+ @if ($direction == row) {
134
+ margin-left: var(--sd-gap-#{$key});
135
+ } @else {
136
+ margin-top: var(--sd-gap-#{$key});
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
@@ -9,7 +9,6 @@
9
9
  *:after,
10
10
  *:before {
11
11
  box-sizing: border-box;
12
- outline-color: var(--theme-primary-default);
13
12
 
14
13
  -webkit-tap-highlight-color: transparent;
15
14
  touch-action: manipulation;
@@ -19,6 +18,12 @@
19
18
  outline: none;
20
19
  }
21
20
 
21
+ // 포커스 링 단일 규약 (DEC-010) — 키보드 포커스(:focus-visible)에만 링 표시
22
+ *:focus-visible {
23
+ outline: var(--sd-focus-ring-width) solid var(--sd-focus-ring-color);
24
+ outline-offset: var(--sd-focus-ring-offset);
25
+ }
26
+
22
27
  html {
23
28
  font-size: 12px;
24
29
  }
@@ -32,12 +37,14 @@
32
37
  }
33
38
 
34
39
  body {
35
- background: var(--background-color);
36
- color: var(--text-trans-default);
37
- font-family: var(--font-family);
40
+ background-color: var(--sd-bg-canvas);
41
+ background-image: var(--sd-bg-canvas-image);
42
+ color: var(--sd-tx-default);
43
+ font-family: var(--sd-font-family);
38
44
  font-variant-numeric: tabular-nums;
39
- font-size: var(--font-size-default);
40
- line-height: var(--line-height);
45
+ font-size: var(--sd-font-size-default);
46
+ font-weight: var(--sd-font-weight);
47
+ line-height: var(--sd-line-height);
41
48
  }
42
49
 
43
50
  *::-webkit-scrollbar {
@@ -47,31 +54,31 @@
47
54
  }
48
55
 
49
56
  *::-webkit-scrollbar-thumb {
50
- background-color: var(--trans-lighter);
57
+ background-color: var(--sd-scrollbar-thumb);
51
58
  border-radius: 0.6667rem;
52
59
  background-clip: padding-box;
53
60
  border: 2px solid transparent;
54
61
  }
55
62
 
56
63
  *:hover::-webkit-scrollbar-thumb {
57
- background-color: var(--trans-light);
64
+ background-color: var(--sd-scrollbar-thumb-hover);
58
65
  }
59
66
 
60
67
  *::-webkit-scrollbar-track:hover {
61
- background-color: var(--trans-lightest);
68
+ background-color: var(--sd-scrollbar-track);
62
69
  border-radius: 0.6667rem;
63
70
  background-clip: padding-box;
64
71
  border: 2px solid transparent;
65
72
  }
66
73
 
67
74
  *::-webkit-scrollbar-corner {
68
- background: transparent;
75
+ background-color: transparent;
69
76
  }
70
77
 
71
78
  hr {
72
79
  border: none;
73
80
  height: 1px;
74
- background-color: var(--border-color-lighter);
81
+ background-color: var(--sd-bd-soft);
75
82
  width: 100%;
76
83
  display: block;
77
84
  }
@@ -82,18 +89,18 @@
82
89
 
83
90
  pre,
84
91
  code {
85
- font-size: var(--font-size-default);
86
- line-height: var(--line-height);
92
+ font-size: var(--sd-font-size-default);
93
+ line-height: var(--sd-line-height);
87
94
  margin: 0;
88
95
  }
89
96
 
90
97
  pre {
91
- font-family: var(--font-family);
98
+ font-family: var(--sd-font-family);
92
99
  font-variant-numeric: tabular-nums;
93
100
  }
94
101
 
95
102
  code {
96
- font-family: var(--font-family-monospace);
103
+ font-family: var(--sd-font-family-monospace);
97
104
  font-variant-numeric: tabular-nums;
98
105
  }
99
106
 
@@ -129,55 +136,35 @@
129
136
 
130
137
  @each $h in (h1, h2, h3, h4, h5, h6) {
131
138
  #{$h} {
132
- font-size: var(--font-size-#{$h});
133
- line-height: var(--line-height);
139
+ font-size: var(--sd-font-size-#{$h});
140
+ line-height: var(--sd-line-height);
134
141
  margin: 0;
135
142
  }
136
143
  }
137
144
 
138
- @each $key, $val in map.get(variables.$vars, font-size) {
145
+ @each $key, $val in map.get(variables.$sd, font-size) {
139
146
  .ft-size-#{$key} {
140
- font-size: var(--font-size-#{$key}) !important;
141
- line-height: var(--line-height) !important;
147
+ font-size: var(--sd-font-size-#{$key}) !important;
148
+ line-height: var(--sd-line-height) !important;
142
149
  }
143
150
  }
144
151
 
145
- //-- BACKGROUND COLOR
152
+ //-- BACKGROUND COLOR (클래스명 = 토큰명 - "--sd-", DEC-013)
146
153
 
147
- @each $key, $val in map.get(variables.$vars, theme) {
148
- @each $key1, $val1 in $val {
149
- .bg-theme-#{$key}-#{$key1} {
150
- background: var(--theme-#{$key}-#{$key1}) !important;
154
+ @each $name, $val in mixins.flatKeys(map.get(variables.$sd, bg)) {
155
+ @if mixins.isUtilityToken($name) {
156
+ .bg-#{$name} {
157
+ background-color: var(--sd-bg-#{$name}) !important;
151
158
  }
152
159
  }
153
160
  }
154
161
 
155
- @each $key, $val in map.get(variables.$vars, trans) {
156
- .bg-trans-#{$key} {
157
- background: var(--trans-#{$key}) !important;
158
- }
159
- }
160
-
161
- .bg-default {
162
- background: var(--background-color) !important;
163
- }
164
-
165
- .bg-control {
166
- background: var(--control-color) !important;
167
- }
168
-
169
162
  //-- TEXT COLOR
170
163
 
171
- @each $key, $val in map.get(variables.$vars, text-trans) {
172
- .tx-trans-#{$key} {
173
- color: var(--text-trans-#{$key}) !important;
174
- }
175
- }
176
-
177
- @each $key, $val in map.get(variables.$vars, theme) {
178
- @each $key1, $val1 in $val {
179
- .tx-theme-#{$key}-#{$key1} {
180
- color: var(--theme-#{$key}-#{$key1}) !important;
164
+ @each $name, $val in mixins.flatKeys(map.get(variables.$sd, tx)) {
165
+ @if mixins.isUtilityToken($name) {
166
+ .tx-#{$name} {
167
+ color: var(--sd-tx-#{$name}) !important;
181
168
  }
182
169
  }
183
170
  }
@@ -197,26 +184,14 @@
197
184
  border: 1px solid !important;
198
185
  }
199
186
 
200
- @each $key, $val in map.get(variables.$vars, theme) {
201
- @each $key1, $val1 in $val {
202
- .bd-theme-#{$key}-#{$key1} {
203
- border-color: var(--theme-#{$key}-#{$key1}) !important;
187
+ @each $name, $val in mixins.flatKeys(map.get(variables.$sd, bd)) {
188
+ @if mixins.isUtilityToken($name) {
189
+ .bd-#{$name} {
190
+ border-color: var(--sd-bd-#{$name}) !important;
204
191
  }
205
192
  }
206
193
  }
207
194
 
208
- @each $key, $val in map.get(variables.$vars, trans) {
209
- .bd-trans-#{$key} {
210
- border-color: var(--trans-#{$key}) !important;
211
- }
212
- }
213
-
214
- @each $key, $val in map.get(variables.$vars, border-color) {
215
- .bd-color-#{$key} {
216
- border-color: var(--border-color-#{$key}) !important;
217
- }
218
- }
219
-
220
195
  .bd-none {
221
196
  border: none !important;
222
197
  }
@@ -231,15 +206,15 @@
231
206
  }
232
207
 
233
208
  //-- BORDER WIDTH
234
- @each $key, $val in map.get(variables.$vars, gap) {
209
+ @each $key, $val in map.get(variables.$sd, gap) {
235
210
  .bd-width-#{$key} {
236
- border-width: var(--gap-#{$key}) !important;
211
+ border-width: var(--sd-gap-#{$key}) !important;
237
212
  }
238
213
 
239
214
  @each $dir in (top, right, bottom, left) {
240
215
  $d: string.slice($dir, 1, 1);
241
216
  .bd#{$d}-width-#{$key} {
242
- border-#{$dir}-width: var(--gap-#{$key}) !important;
217
+ border-#{$dir}-width: var(--sd-gap-#{$key}) !important;
243
218
  }
244
219
  }
245
220
  }
@@ -265,15 +240,15 @@
265
240
  ),
266
241
  );
267
242
 
268
- @each $key, $val in map.get(variables.$vars, border-radius) {
243
+ @each $key, $val in map.get(variables.$sd, radius) {
269
244
  .bd-radius-#{$key} {
270
- border-radius: var(--border-radius-#{$key}) !important;
245
+ border-radius: var(--sd-radius-#{$key}) !important;
271
246
  }
272
247
 
273
248
  @each $d, $corners in $radius-dirs {
274
249
  .bd#{$d}-radius-#{$key} {
275
250
  @each $corner in $corners {
276
- border-#{$corner}-radius: var(--border-radius-#{$key}) !important;
251
+ border-#{$corner}-radius: var(--sd-radius-#{$key}) !important;
277
252
  }
278
253
  }
279
254
  }
@@ -281,68 +256,68 @@
281
256
 
282
257
  //-- PADDING, MARGIN
283
258
 
284
- @each $key, $val in map.get(variables.$vars, gap) {
259
+ @each $key, $val in map.get(variables.$sd, gap) {
285
260
  .p-#{$key} {
286
- padding: var(--gap-#{$key}) !important;
261
+ padding: var(--sd-gap-#{$key}) !important;
287
262
  }
288
263
 
289
264
  .m-#{$key} {
290
- margin: var(--gap-#{$key}) !important;
265
+ margin: var(--sd-gap-#{$key}) !important;
291
266
  }
292
267
 
293
268
  .pv-#{$key} {
294
- padding-top: var(--gap-#{$key}) !important;
295
- padding-bottom: var(--gap-#{$key}) !important;
269
+ padding-top: var(--sd-gap-#{$key}) !important;
270
+ padding-bottom: var(--sd-gap-#{$key}) !important;
296
271
  }
297
272
 
298
273
  .ph-#{$key} {
299
- padding-left: var(--gap-#{$key}) !important;
300
- padding-right: var(--gap-#{$key}) !important;
274
+ padding-left: var(--sd-gap-#{$key}) !important;
275
+ padding-right: var(--sd-gap-#{$key}) !important;
301
276
  }
302
277
 
303
278
  .mv-#{$key} {
304
- margin-top: var(--gap-#{$key}) !important;
305
- margin-bottom: var(--gap-#{$key}) !important;
279
+ margin-top: var(--sd-gap-#{$key}) !important;
280
+ margin-bottom: var(--sd-gap-#{$key}) !important;
306
281
  }
307
282
 
308
283
  .mh-#{$key} {
309
- margin-left: var(--gap-#{$key}) !important;
310
- margin-right: var(--gap-#{$key}) !important;
284
+ margin-left: var(--sd-gap-#{$key}) !important;
285
+ margin-right: var(--sd-gap-#{$key}) !important;
311
286
  }
312
287
 
313
288
  .sw-#{$key} {
314
- width: var(--gap-#{$key}) !important;
289
+ width: var(--sd-gap-#{$key}) !important;
315
290
  }
316
291
 
317
292
  .sh-#{$key} {
318
- height: var(--gap-#{$key}) !important;
293
+ height: var(--sd-gap-#{$key}) !important;
319
294
  }
320
295
 
321
296
  @each $dir in (top, right, bottom, left) {
322
297
  $d: string.slice($dir, 1, 1);
323
298
 
324
299
  .p#{$d}-#{$key} {
325
- padding-#{$dir}: var(--gap-#{$key}) !important;
300
+ padding-#{$dir}: var(--sd-gap-#{$key}) !important;
326
301
  }
327
302
 
328
303
  .m#{$d}-#{$key} {
329
- margin-#{$dir}: var(--gap-#{$key}) !important;
304
+ margin-#{$dir}: var(--sd-gap-#{$key}) !important;
330
305
  }
331
306
 
332
307
  .#{$d}-#{$key} {
333
- #{$dir}: var(--gap-#{$key}) !important;
308
+ #{$dir}: var(--sd-gap-#{$key}) !important;
334
309
  }
335
310
  }
336
311
  }
337
312
 
338
- @each $key, $val in map.get(variables.$vars, gap) {
339
- @each $key1, $val1 in map.get(variables.$vars, gap) {
313
+ @each $key, $val in map.get(variables.$sd, gap) {
314
+ @each $key1, $val1 in map.get(variables.$sd, gap) {
340
315
  .p-#{$key}-#{$key1} {
341
- padding: var(--gap-#{$key}) var(--gap-#{$key1}) !important;
316
+ padding: var(--sd-gap-#{$key}) var(--sd-gap-#{$key1}) !important;
342
317
  }
343
318
 
344
319
  .m-#{$key}-#{$key1} {
345
- margin: var(--gap-#{$key}) var(--gap-#{$key1}) !important;
320
+ margin: var(--sd-gap-#{$key}) var(--sd-gap-#{$key1}) !important;
346
321
  }
347
322
  }
348
323
  }
@@ -358,11 +333,11 @@
358
333
  //-- ETC
359
334
 
360
335
  .sh-topbar {
361
- height: var(--topbar-height) !important;
336
+ height: var(--sd-topbar-height) !important;
362
337
  }
363
338
 
364
339
  .sw-sidebar {
365
- width: var(--sidebar-width) !important;
340
+ width: var(--sd-sidebar-width) !important;
366
341
  }
367
342
 
368
343
  .form-control {
@@ -374,18 +349,18 @@
374
349
  }
375
350
 
376
351
  .control-header {
377
- line-height: var(--line-height);
378
- font-size: var(--font-size-sm);
379
- color: var(--theme-gray-default);
352
+ line-height: var(--sd-line-height);
353
+ font-size: var(--sd-font-size-sm);
354
+ color: var(--sd-tx-gray);
380
355
  }
381
356
 
382
357
  .page-header {
383
- line-height: var(--line-height);
384
- margin-bottom: var(--gap-sm);
385
- color: var(--theme-gray-default);
358
+ line-height: var(--sd-line-height);
359
+ margin-bottom: var(--sd-gap-sm);
360
+ color: var(--sd-tx-gray);
386
361
 
387
- padding-bottom: var(--gap-xxs);
388
- font-size: var(--font-size-sm);
362
+ padding-bottom: var(--sd-gap-xxs);
363
+ font-size: var(--sd-font-size-sm);
389
364
  }
390
365
 
391
366
  .sticky-top {
@@ -412,9 +387,9 @@
412
387
  overflow: auto;
413
388
  }
414
389
 
415
- @each $key, $val in map.get(variables.$vars, gap) {
390
+ @each $key, $val in map.get(variables.$sd, gap) {
416
391
  .gap-#{$key} {
417
- gap: var(--gap-#{$key});
392
+ gap: var(--sd-gap-#{$key});
418
393
  }
419
394
  }
420
395