@finqu/cool 1.2.29 → 2.0.2

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 (221) hide show
  1. package/README.md +694 -1
  2. package/dist/css/cool.css +26902 -14322
  3. package/dist/css/cool.css.map +1 -154
  4. package/dist/css/cool.min.css +2 -7
  5. package/dist/css/cool.min.css.map +1 -1
  6. package/dist/js/cool.bundle.js +16191 -5588
  7. package/dist/js/cool.bundle.js.map +1 -1
  8. package/dist/js/cool.bundle.min.js +13 -8
  9. package/dist/js/cool.bundle.min.js.map +1 -1
  10. package/dist/js/cool.esm.js +4722 -4812
  11. package/dist/js/cool.esm.js.map +1 -1
  12. package/dist/js/cool.esm.min.js +4 -9
  13. package/dist/js/cool.esm.min.js.map +1 -1
  14. package/dist/js/cool.js +5143 -5240
  15. package/dist/js/cool.js.map +1 -1
  16. package/dist/js/cool.min.js +4 -9
  17. package/dist/js/cool.min.js.map +1 -1
  18. package/package.json +125 -60
  19. package/scss/LISENCE +1 -1
  20. package/scss/_badge.scss +134 -102
  21. package/scss/_button-group.scss +80 -129
  22. package/scss/_buttons.scss +257 -201
  23. package/scss/_dark.scss +637 -0
  24. package/scss/_dialog.scss +314 -123
  25. package/scss/_dropdown.scss +165 -233
  26. package/scss/_forms.scss +555 -200
  27. package/scss/_frame.scss +945 -624
  28. package/scss/_grid.scss +215 -35
  29. package/scss/_input-group.scss +326 -285
  30. package/scss/_list-group.scss +127 -82
  31. package/scss/_media.scss +439 -0
  32. package/scss/_navbar.scss +116 -284
  33. package/scss/_notification.scss +111 -9
  34. package/scss/_pagination.scss +82 -88
  35. package/scss/_popover.scss +61 -167
  36. package/scss/_reboot.scss +306 -284
  37. package/scss/_root.scss +848 -15
  38. package/scss/_section.scss +735 -977
  39. package/scss/_select.scss +559 -187
  40. package/scss/_tables.scss +471 -595
  41. package/scss/_tabs.scss +50 -178
  42. package/scss/_toast.scss +242 -147
  43. package/scss/_tooltip.scss +130 -101
  44. package/scss/_typography.scss +166 -0
  45. package/scss/_variables.scss +1154 -748
  46. package/scss/cool.scss +64 -32
  47. package/scss/utilities/_align.scss +51 -41
  48. package/scss/utilities/_animation.scss +165 -0
  49. package/scss/utilities/_background.scss +72 -14
  50. package/scss/utilities/_borders.scss +205 -146
  51. package/scss/utilities/_collapse.scss +20 -25
  52. package/scss/utilities/_cursor.scss +160 -22
  53. package/scss/utilities/_display.scss +116 -16
  54. package/scss/utilities/_embed.scss +89 -78
  55. package/scss/utilities/_fill.scss +79 -0
  56. package/scss/utilities/_filters.scss +233 -0
  57. package/scss/utilities/_flex.scss +216 -52
  58. package/scss/utilities/_grid.scss +136 -0
  59. package/scss/utilities/_opacity.scss +131 -0
  60. package/scss/utilities/_overflow.scss +242 -6
  61. package/scss/utilities/_perfect-scrollbar.scss +147 -141
  62. package/scss/utilities/_pointer-events.scss +125 -0
  63. package/scss/utilities/_position.scss +130 -30
  64. package/scss/utilities/_screen-readers.scss +95 -0
  65. package/scss/utilities/_shadows.scss +195 -0
  66. package/scss/utilities/_sizing.scss +288 -32
  67. package/scss/utilities/_spacing.scss +168 -92
  68. package/scss/utilities/_stroke.scss +124 -0
  69. package/scss/utilities/_text.scss +420 -99
  70. package/scss/utilities/_transform.scss +232 -0
  71. package/scss/utilities/_transitions.scss +147 -0
  72. package/scss/utilities/_user-select.scss +89 -10
  73. package/scss/utilities/_visibility.scss +62 -6
  74. package/scss/utilities/_z-index.scss +169 -0
  75. package/.babelrc.js +0 -20
  76. package/.browserslistrc +0 -13
  77. package/build/.eslintrc.json +0 -10
  78. package/build/banner.js +0 -14
  79. package/build/build-plugins.js +0 -92
  80. package/build/rollup.config.js +0 -46
  81. package/dist/css/cool-grid.css +0 -4390
  82. package/dist/css/cool-grid.css.map +0 -30
  83. package/dist/css/cool-grid.min.css +0 -7
  84. package/dist/css/cool-grid.min.css.map +0 -1
  85. package/dist/css/cool-reboot.css +0 -286
  86. package/dist/css/cool-reboot.css.map +0 -62
  87. package/dist/css/cool-reboot.min.css +0 -7
  88. package/dist/css/cool-reboot.min.css.map +0 -1
  89. package/html/index.html +0 -2703
  90. package/js/dist/collapse.js +0 -5535
  91. package/js/dist/collapse.js.map +0 -1
  92. package/js/dist/common.js +0 -21996
  93. package/js/dist/common.js.map +0 -1
  94. package/js/dist/cooldropdown.js +0 -467
  95. package/js/dist/cooldropdown.js.map +0 -1
  96. package/js/dist/coolpopover.js +0 -391
  97. package/js/dist/coolpopover.js.map +0 -1
  98. package/js/dist/coolsectiontabs.js +0 -256
  99. package/js/dist/coolsectiontabs.js.map +0 -1
  100. package/js/dist/coolselect.js +0 -796
  101. package/js/dist/coolselect.js.map +0 -1
  102. package/js/dist/cooltooltip.js +0 -360
  103. package/js/dist/cooltooltip.js.map +0 -1
  104. package/js/dist/coolui.js +0 -73
  105. package/js/dist/coolui.js.map +0 -1
  106. package/js/dist/dropdown.js +0 -27421
  107. package/js/dist/dropdown.js.map +0 -1
  108. package/js/dist/popover.js +0 -9472
  109. package/js/dist/popover.js.map +0 -1
  110. package/js/dist/sectiontabs.js +0 -4483
  111. package/js/dist/sectiontabs.js.map +0 -1
  112. package/js/dist/select.js +0 -37080
  113. package/js/dist/select.js.map +0 -1
  114. package/js/dist/tooltip.js +0 -8786
  115. package/js/dist/tooltip.js.map +0 -1
  116. package/js/index.esm.js +0 -21
  117. package/js/index.umd.js +0 -21
  118. package/js/src/abstract-ui-component.js +0 -81
  119. package/js/src/collapse.js +0 -286
  120. package/js/src/common.js +0 -296
  121. package/js/src/dialog.js +0 -579
  122. package/js/src/dropdown.js +0 -525
  123. package/js/src/popover.js +0 -632
  124. package/js/src/section-tabs.js +0 -215
  125. package/js/src/select.js +0 -1342
  126. package/js/src/toast.js +0 -581
  127. package/js/src/tooltip.js +0 -591
  128. package/js/src/util/animate-css.js +0 -22
  129. package/js/src/util/index.js +0 -122
  130. package/js/src/util/perfect-scrollbar.js +0 -1316
  131. package/less/alert.less +0 -345
  132. package/less/badge.less +0 -38
  133. package/less/bootstrap-noconflict.less +0 -23
  134. package/less/bootstrap.less +0 -23
  135. package/less/button-group.less +0 -153
  136. package/less/buttons.less +0 -287
  137. package/less/dialog-noconflict.less +0 -174
  138. package/less/dialog.less +0 -203
  139. package/less/dropdown.less +0 -209
  140. package/less/forms.less +0 -770
  141. package/less/images.less +0 -242
  142. package/less/input-group.less +0 -163
  143. package/less/list-group.less +0 -73
  144. package/less/mixins/aspect-ratio.less +0 -23
  145. package/less/mixins/border-radius.less +0 -24
  146. package/less/mixins/box-shadow.less +0 -4
  147. package/less/mixins/buttons.less +0 -17
  148. package/less/mixins/caret.less +0 -51
  149. package/less/mixins/clearfix.less +0 -10
  150. package/less/mixins/gradients.less +0 -34
  151. package/less/mixins/nav-divider.less +0 -7
  152. package/less/mixins/object-fit.less +0 -13
  153. package/less/mixins/reset-text.less +0 -16
  154. package/less/mixins.less +0 -11
  155. package/less/package.json +0 -11
  156. package/less/pagination.less +0 -69
  157. package/less/popover.less +0 -143
  158. package/less/project.sublime-workspace +0 -774
  159. package/less/reboot.less +0 -235
  160. package/less/section.less +0 -793
  161. package/less/select.less +0 -150
  162. package/less/tables.less +0 -737
  163. package/less/tabs.less +0 -162
  164. package/less/tooltip.less +0 -87
  165. package/less/type.less +0 -71
  166. package/less/utilities/align.less +0 -27
  167. package/less/utilities/animate.less +0 -3512
  168. package/less/utilities/background.less +0 -70
  169. package/less/utilities/borders.less +0 -16
  170. package/less/utilities/color.less +0 -70
  171. package/less/utilities/cursor.less +0 -8
  172. package/less/utilities/display.less +0 -38
  173. package/less/utilities/embed.less +0 -61
  174. package/less/utilities/flex.less +0 -76
  175. package/less/utilities/jquery-ui.less +0 -116
  176. package/less/utilities/lazyload.less +0 -29
  177. package/less/utilities/overflow.less +0 -11
  178. package/less/utilities/pace.less +0 -25
  179. package/less/utilities/placeholder.less +0 -60
  180. package/less/utilities/position.less +0 -42
  181. package/less/utilities/scrollbar.less +0 -152
  182. package/less/utilities/spacing.less +0 -197
  183. package/less/utilities/text.less +0 -68
  184. package/less/utilities/transform.less +0 -7
  185. package/less/utilities.less +0 -21
  186. package/less/variables.less +0 -343
  187. package/scss/_alert.scss +0 -102
  188. package/scss/_custom-forms.scss +0 -444
  189. package/scss/_functions.scss +0 -124
  190. package/scss/_images.scss +0 -361
  191. package/scss/_mixins.scss +0 -34
  192. package/scss/_type.scss +0 -129
  193. package/scss/_utilities.scss +0 -23
  194. package/scss/cool-grid.scss +0 -29
  195. package/scss/cool-reboot.scss +0 -11
  196. package/scss/mixins/_alert-variant.scss +0 -20
  197. package/scss/mixins/_aspect-ratio.scss +0 -29
  198. package/scss/mixins/_background-variant.scss +0 -25
  199. package/scss/mixins/_badge-variant.scss +0 -36
  200. package/scss/mixins/_breakpoints.scss +0 -102
  201. package/scss/mixins/_buttons.scss +0 -104
  202. package/scss/mixins/_caret.scss +0 -80
  203. package/scss/mixins/_clearfix.scss +0 -10
  204. package/scss/mixins/_float.scss +0 -14
  205. package/scss/mixins/_forms.scss +0 -67
  206. package/scss/mixins/_gradients.scss +0 -40
  207. package/scss/mixins/_grid-framework.scss +0 -72
  208. package/scss/mixins/_grid.scss +0 -60
  209. package/scss/mixins/_nav-divider.scss +0 -9
  210. package/scss/mixins/_notification-variant.scss +0 -7
  211. package/scss/mixins/_object-fit.scss +0 -16
  212. package/scss/mixins/_reset-text.scss +0 -19
  213. package/scss/mixins/_text-emphasis.scss +0 -21
  214. package/scss/mixins/_text-hide.scss +0 -10
  215. package/scss/mixins/_text-truncate.scss +0 -81
  216. package/scss/mixins/_visibility.scss +0 -7
  217. package/scss/project.sublime-workspace +0 -491
  218. package/scss/utilities/_animate.scss +0 -3512
  219. package/scss/utilities/_clearfix.scss +0 -6
  220. package/scss/utilities/_lazyload.scss +0 -31
  221. package/scss/utilities/_placeholder.scss +0 -77
@@ -1,248 +1,304 @@
1
- // Buttons
2
- // ---------------------------------------------------------------------------------------------------------------
3
-
4
- html.dom-ready .btn {
5
- transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
6
- }
1
+ @use "variables" as *;
2
+ /* Buttons ========================================================================== */
3
+
4
+ @mixin cool-buttons {
5
+ .btn {
6
+ display: var(--cool-btn-display, inline-flex);
7
+ font-family: var(--cool-btn-font-family);
8
+ font-weight: var(--cool-btn-font-weight);
9
+ font-size: var(--cool-btn-font-size);
10
+ line-height: var(--cool-btn-line-height);
11
+ color: var(--cool-btn-color, var(--cool-body-color));
12
+ background-color: var(--cool-btn-bg, transparent);
13
+ border-width: var(--cool-btn-border-width);
14
+ border-style: solid;
15
+ border-color: var(--cool-btn-border-color, transparent);
16
+ border-radius: var(--cool-btn-border-radius);
17
+ cursor: var(--cool-btn-cursor);
18
+ padding: var(--cool-btn-padding-y) var(--cool-btn-padding-x);
19
+ transition: var(--cool-btn-transition);
20
+ width: var(--cool-btn-width, auto);
21
+ height: var(--cool-btn-height, auto);
22
+ text-align: var(--cool-btn-text-align, center);
23
+ justify-content: var(--cool-btn-text-align, center);
24
+ text-transform: var(--cool-btn-text-transform, none);
25
+ text-decoration: var(--cool-btn-text-decoration, none);
26
+ align-items: center;
27
+ touch-action: manipulation;
28
+ user-select: none;
29
+ vertical-align: middle;
30
+ white-space: nowrap;
31
+ box-sizing: border-box;
32
+ position: relative;
33
+ margin: 0;
34
+ outline: 0;
7
35
 
8
- .btn {
9
- display: inline-block;
10
- font-family: $btn-font-family;
11
- font-weight: $btn-font-weight;
12
- line-height: $btn-line-height;
13
- color: $body-color;
14
- position: relative;
15
- border: $btn-border-width solid transparent;
16
- background-color: transparent;
17
- cursor: pointer;
18
- margin: 2px;
19
- text-align: center;
20
- text-decoration: none;
21
- touch-action: manipulation;
22
- user-select: none;
23
- vertical-align: middle;
24
- white-space: nowrap;
25
- box-sizing: border-box;
26
- outline: 0;
36
+ > span + .icon {
37
+ margin-left: var(--cool-icon-spacer);
38
+ }
27
39
 
28
- .icon {
29
- pointer-events: none;
30
- }
40
+ &:has(.icon + *) > .icon {
41
+ margin-right: var(--cool-icon-spacer);
42
+ }
31
43
 
32
- > .icon + * {
33
- margin-left: $icon-spacer;
34
- }
44
+ .icon,
45
+ .image,
46
+ span {
47
+ pointer-events: none;
48
+ }
35
49
 
36
- .image,
37
- span {
38
- pointer-events: none;
39
- }
50
+ &:hover,
51
+ &.hover,
52
+ &:focus,
53
+ &.focus {
54
+ color: var(--cool-btn-hover-color, var(--cool-btn-color, var(--cool-body-color)));
55
+ background-color: var(--cool-btn-hover-bg, var(--cool-btn-bg, transparent));
56
+ border-color: var(--cool-btn-hover-border-color, var(--cool-btn-border-color, transparent));
57
+ text-decoration: var(--cool-btn-hover-text-decoration, none);
58
+ }
40
59
 
41
- @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);
42
- }
60
+ &:active,
61
+ &.active {
62
+ color: var(--cool-btn-active-color, var(--cool-btn-hover-color, var(--cool-btn-color)));
63
+ background-color: var(--cool-btn-active-bg, var(--cool-btn-hover-bg, var(--cool-btn-bg, transparent)));
64
+ border-color: var(
65
+ --cool-btn-active-border-color,
66
+ var(--cool-btn-hover-border-color, var(--cool-btn-border-color, transparent))
67
+ );
68
+ text-decoration: var(--cool-btn-hover-text-decoration, none);
69
+ }
43
70
 
71
+ &:disabled,
72
+ &.disabled {
73
+ color: var(--cool-btn-disabled-color, var(--cool-btn-color, currentColor));
74
+ opacity: 0.65;
75
+ pointer-events: none;
76
+ text-decoration: none;
44
77
 
78
+ &:hover {
79
+ color: var(--cool-btn-disabled-color, var(--cool-btn-color, currentColor));
80
+ }
81
+ }
45
82
 
46
- // Button icon
47
- .btn-icon {
48
- display: inline-flex;
49
- width: $btn-icon-height;
50
- height: $btn-icon-height;
51
- color: $icon-color;
52
- text-align: center;
53
- padding-left: 0;
54
- padding-right: 0;
55
- line-height: 0;
56
- justify-content: center;
57
- align-items: center;
58
- flex-shrink: 0;
59
- border-radius: 50%;
83
+ &.text-left,
84
+ &.text-start {
85
+ --cool-btn-text-align: left;
86
+ }
60
87
 
61
- &.btn-sm {
62
- width: $btn-icon-height-sm;
63
- height: $btn-icon-height-sm;
64
- }
88
+ &.text-center {
89
+ --cool-btn-text-align: center;
90
+ }
65
91
 
66
- &.btn-lg {
67
- width: $btn-icon-height-lg;
68
- height: $btn-icon-height-lg;
92
+ &.text-right,
93
+ &.text-end {
94
+ --cool-btn-text-align: left;
95
+ }
69
96
  }
70
97
 
71
- // @include button-outline-variant($border-color: $input-border-color, $color: theme-color('medium'), $hover-background: theme-color('light'), $active-background: theme-color('light'), $enable-shadow: false);
72
- &:hover {
73
- color: theme-color('dark');
98
+ .btn-primary {
99
+ --cool-btn-bg: var(--cool-theme-color-primary);
100
+ --cool-btn-color: var(--cool-theme-foreground-color-primary);
101
+ --cool-btn-border-color: var(--cool-theme-color-primary);
102
+ --cool-btn-hover-bg: color-mix(in oklab, var(--cool-theme-color-primary) 80%, transparent);
74
103
  }
75
104
 
76
- &.disabled,
77
- &[disabled] {
78
- &:hover {
79
- color: $icon-color;
80
- }
105
+ .btn-secondary {
106
+ --cool-btn-bg: var(--cool-theme-color-secondary);
107
+ --cool-btn-color: var(--cool-theme-foreground-color-secondary);
108
+ --cool-btn-border-color: var(--cool-theme-color-secondary);
109
+ --cool-btn-hover-bg: color-mix(in oklab, var(--cool-theme-color-secondary) 80%, transparent);
81
110
  }
82
111
 
83
- &:hover:not(.disabled):not([disabled]):not(.disable-hover) {
84
- background-color: transparent;
85
-
86
- &:before {
87
- transform: scale3d(1,1,1);
88
- opacity: 1;
89
- }
112
+ .btn-brand {
113
+ --cool-btn-bg: var(--cool-theme-color-brand);
114
+ --cool-btn-color: var(--cool-theme-foreground-color-brand);
115
+ --cool-btn-border-color: var(--cool-theme-color-brand);
116
+ --cool-btn-hover-bg: color-mix(in oklab, var(--cool-theme-color-brand) 80%, transparent);
117
+ --cool-btn-font-weight: var(--cool-font-weight-bold);
90
118
  }
91
119
 
92
- &:not(.disabled):not([disabled]):not(.disable-hover) {
93
- background-color: transparent;
94
- transition: opacity 0.5s ease, scale 0.5s ease;
95
-
96
- &:before {
97
- position: absolute;
98
- left: 0;
99
- top: 0;
100
- width: 100%;
101
- height: 100%;
102
- content: '';
103
- transform: scale3d(0,0,0);
104
- transition: all;
105
- transition-duration: 250ms;
106
- background-color: rgba(0,0,0,.1);
107
- border-radius: 50%;
108
- z-index: 0;
109
- opacity: 0;
110
- }
120
+ .btn-outline-primary {
121
+ --cool-btn-bg: color-mix(in oklab, var(--cool-theme-color-primary) 3%, transparent);
122
+ --cool-btn-color: var(--cool-theme-color-primary);
123
+ --cool-btn-border-color: var(--cool-theme-color-primary);
124
+ --cool-btn-hover-bg: color-mix(in oklab, var(--cool-theme-color-primary) 80%, transparent);
125
+ --cool-btn-hover-color: var(--cool-theme-foreground-color-primary);
111
126
  }
112
127
 
113
- > .icon {
114
- vertical-align: middle;
115
- pointer-events: none;
116
- margin: 0;
128
+ .btn-outline-secondary {
129
+ --cool-btn-bg: color-mix(in oklab, var(--cool-theme-color-secondary) 7%, transparent);
130
+ --cool-btn-color: var(--cool-theme-foreground-color-secondary);
131
+ --cool-btn-border-color: var(--cool-theme-color-secondary);
132
+ --cool-btn-hover-bg: color-mix(in oklab, var(--cool-theme-color-secondary) 80%, transparent);
133
+ --cool-btn-hover-color: var(--cool-theme-foreground-color-secondary);
117
134
  }
118
135
 
119
- .image,
120
- span {
121
- pointer-events: none;
136
+ .btn-remove {
137
+ --cool-btn-bg: var(--cool-theme-color-secondary);
138
+ --cool-btn-color: var(--cool-theme-foreground-color-secondary);
139
+ --cool-btn-border-color: var(--cool-theme-color-secondary);
140
+ --cool-btn-hover-bg: color-mix(in oklab, var(--cool-theme-color-danger) 80%, transparent);
141
+ --cool-btn-hover-color: var(--cool-theme-foreground-color-danger);
142
+ --cool-btn-hover-border-color: color-mix(in oklab, var(--cool-theme-color-danger) 80%, transparent);
122
143
  }
123
- }
124
144
 
125
- .btn-primary {
126
- @include button-variant(theme-color('primary'));
127
- }
145
+ .btn-action {
146
+ --cool-btn-bg: var(--cool-theme-color-success);
147
+ --cool-btn-color: var(--cool-theme-foreground-color-success);
148
+ --cool-btn-border-color: var(--cool-theme-color-success);
149
+ --cool-btn-hover-bg: color-mix(in oklab, var(--cool-theme-color-success) 80%, transparent);
150
+ --cool-btn-hover-border-color: color-mix(in oklab, var(--cool-theme-color-success) 80%, transparent);
151
+ --cool-btn-font-weight: 600;
128
152
 
129
- .btn-secondary {
130
- @include button-variant(white, $border: theme-color('primary'), $hover-background: white, $hover-border: theme-color('primary'), $active-background: $grey-50);
131
- }
153
+ &:hover {
154
+ transform: translateY(-1px);
155
+ }
132
156
 
133
- .btn-remove {
134
- @include button-variant(theme-color('secondary'), $border: theme-color('secondary'), $color: theme-color('danger'), $hover-color: theme-color('danger'));
135
- }
157
+ &:active {
158
+ transform: translateY(0);
159
+ }
160
+ }
136
161
 
137
- .btn-outline-primary {
138
- @include button-outline-variant($border-color: theme-color('primary'));
139
- }
162
+ .btn-link {
163
+ --cool-btn-bg: transparent;
164
+ --cool-btn-color: var(--cool-link-color);
165
+ --cool-btn-font-family: inherit;
166
+ --cool-btn-font-size: inherit;
167
+ --cool-btn-font-weight: var(--cool-link-font-weight);
168
+ --cool-btn-line-height: inherit;
169
+ --cool-btn-padding-y: 0;
170
+ --cool-btn-padding-x: 0;
171
+ --cool-btn-text-align: left;
172
+ --cool-btn-display: inline-flex;
173
+ --cool-btn-hover-bg: transparent;
174
+ --cool-btn-hover-color: var(--cool-link-hover-color);
175
+ --cool-btn-disabled-color: var(--cool-link-disabled-color);
176
+ --cool-btn-border-width: 0;
177
+ --cool-btn-text-decoration: none;
178
+ --cool-btn-hover-text-decoration: var(--cool-link-hover-text-decoration);
179
+ }
140
180
 
141
- .btn-outline-secondary {
142
- @include button-outline-variant($border-color: $grey-100, $color: theme-color('dark'), $hover-background: theme-color('light'), $active-background: color('grey'));
143
- }
181
+ .btn-text {
182
+ --cool-btn-padding-y: 0;
183
+ --cool-btn-padding-x: 0;
184
+ --cool-btn-font-family: inherit;
185
+ --cool-btn-font-size: inherit;
186
+ --cool-btn-line-height: inherit;
187
+ --cool-btn-bg: transparent;
188
+ --cool-btn-color: var(--cool-body-color);
189
+ --cool-btn-text-align: left;
190
+ --cool-btn-display: inline;
191
+ --cool-btn-border-width: 0;
192
+ }
144
193
 
194
+ .btn-block {
195
+ width: 100%;
196
+ margin-top: 0;
145
197
 
146
- // Button link
147
- .btn-link {
148
- display: inline;
149
- font-family: inherit;
150
- font-weight: $link-font-weight;
151
- font-size: inherit;
152
- padding: 0;
153
- margin: 0;
154
- background: transparent;
155
- color: $link-color;
156
- text-align: left;
157
- line-height: inherit;
158
- border: 0;
159
- cursor: pointer;
160
- outline: 0;
161
-
162
- &:hover,
163
- &.hover,
164
- &:focus
165
- &.focus {
166
- color: $link-hover-color;
167
- background: transparent;
198
+ + .btn-block {
199
+ margin-top: var(--cool-spacing-1);
200
+ }
168
201
  }
169
- }
170
202
 
203
+ .btn-icon {
204
+ --cool-btn-width: var(--cool-btn-icon-width);
205
+ --cool-btn-height: var(--cool-btn-icon-height);
206
+ --cool-btn-padding-y: 0;
207
+ --cool-btn-padding-x: 0;
208
+ --cool-btn-line-height: 0;
209
+ --cool-btn-text-align: center;
210
+ flex-shrink: 0;
211
+
212
+ @supports (aspect-ratio: 1) {
213
+ aspect-ratio: 1;
214
+ }
171
215
 
172
- // Button text
173
- .btn-text {
174
- display: inline;
175
- font-family: inherit;
176
- font-weight: inherit;
177
- font-size: inherit;
178
- padding: 0;
179
- margin: 0;
180
- background: transparent;
181
- color: $body-color;
182
- text-align: left;
183
- border: 0;
184
- cursor: pointer;
185
- outline: 0;
186
- }
216
+ &.btn-sm {
217
+ --cool-btn-width: var(--cool-btn-icon-width-sm);
218
+ --cool-btn-height: var(--cool-btn-icon-height-sm);
219
+ }
187
220
 
221
+ &.btn-lg {
222
+ --cool-btn-width: var(--cool-btn-icon-width-lg);
223
+ --cool-btn-height: var(--cool-btn-icon-height-lg);
224
+ }
188
225
 
189
- // Button block
190
- .btn-block {
191
- width: 100%;
192
- margin-top: 0;
226
+ &:not(.btn-primary):not(.btn-secondary):not(.btn-brand):not(.btn-outline-primary):not(
227
+ .btn-outline-secondary
228
+ ):not(.btn-remove):not(.btn-action):not(.btn-link):not(.btn-text) {
229
+ --cool-btn-color: var(--cool-icon-color);
230
+ --cool-btn-hover-color: var(--cool-theme-color-dark);
231
+ --cool-link-disabled-color: var(--cool-icon-color);
232
+ --cool-btn-border-radius: 50%;
233
+
234
+ &:hover:not(.disabled):not([disabled]):not(.disable-hover) {
235
+ background-color: transparent;
236
+
237
+ &:before {
238
+ transform: scale3d(1, 1, 1);
239
+ opacity: 1;
240
+ }
241
+ }
242
+
243
+ &:not(.disabled):not([disabled]):not(.disable-hover) {
244
+ background-color: transparent;
245
+ transition:
246
+ opacity 0.5s ease,
247
+ scale 0.5s ease;
248
+
249
+ &:before {
250
+ position: absolute;
251
+ left: 0;
252
+ top: 0;
253
+ width: 100%;
254
+ height: 100%;
255
+ content: "";
256
+ transform: scale3d(0, 0, 0);
257
+ transition: all;
258
+ transition-duration: 250ms;
259
+ background-color: rgba(0, 0, 0, 0.1);
260
+ border-radius: 50%;
261
+ z-index: 0;
262
+ opacity: 0;
263
+ }
264
+ }
265
+ }
193
266
 
194
- + .btn-block {
195
- margin-top: $btn-block-spacing-y;
267
+ > .icon {
268
+ vertical-align: middle;
269
+ margin: 0;
270
+ }
196
271
  }
197
- }
198
272
 
199
- .btn-spinner {
200
- span {
201
- transition: opacity 0.1s ease 0.2s;
273
+ .btn-xs {
274
+ --cool-btn-padding-y: var(--cool-btn-padding-y-xs);
275
+ --cool-btn-padding-x: var(--cool-btn-padding-x-xs);
276
+ --cool-btn-font-size: var(--cool-btn-font-size-xs);
277
+ --cool-btn-line-height: var(--cool-btn-line-height-xs);
278
+ --cool-btn-border-radius: var(--cool-btn-border-radius-xs);
202
279
  }
203
280
 
204
- .icon {
205
- transition: opacity 0.2s ease;
206
- opacity: 0;
207
- position: absolute;
208
- left: 0;
209
- right: 0;
210
- margin: 0 auto;
211
- font-size: 1.5em;
281
+ .btn-sm {
282
+ --cool-btn-padding-y: var(--cool-btn-padding-y-sm);
283
+ --cool-btn-padding-x: var(--cool-btn-padding-x-sm);
284
+ --cool-btn-font-size: var(--cool-btn-font-size-sm);
285
+ --cool-btn-line-height: var(--cool-btn-line-height-sm);
286
+ --cool-btn-border-radius: var(--cool-btn-border-radius-sm);
212
287
  }
213
288
 
214
- &.btn-spinner-active {
215
- span {
216
- transition: opacity 0.1s ease;
217
- opacity: 0
218
- }
219
-
220
- .icon {
221
- transition: opacity 0.1s ease 0.1s;
222
- opacity: 1;
223
- }
289
+ .btn-lg {
290
+ --cool-btn-padding-y: var(--cool-btn-padding-y-lg);
291
+ --cool-btn-padding-x: var(--cool-btn-padding-x-lg);
292
+ --cool-btn-font-size: var(--cool-btn-font-size-lg);
293
+ --cool-btn-line-height: var(--cool-btn-line-height-lg);
294
+ --cool-btn-border-radius: var(--cool-btn-border-radius-lg);
224
295
  }
225
296
  }
226
297
 
227
- // Button brand
228
- .btn-brand {
229
- font-weight: 500;
230
- span {
231
- position: relative;
232
- z-index: 1;
298
+ @if $cool-use-component-layer {
299
+ @layer components {
300
+ @include cool-buttons;
233
301
  }
302
+ } @else {
303
+ @include cool-buttons;
234
304
  }
235
-
236
-
237
- // Button sizes
238
- .btn-xs {
239
- @include button-size($btn-padding-y-xs, $btn-padding-x-xs, $btn-font-size-xs , $btn-line-height-xs, $btn-border-radius-xs);
240
- }
241
-
242
- .btn-sm {
243
- @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm , $btn-line-height-sm, $btn-border-radius-sm);
244
- }
245
-
246
- .btn-lg {
247
- @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
248
- }