@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
@@ -0,0 +1,637 @@
1
+ @use "variables" as *;
2
+
3
+ /* Dark Mode ========================================================================== */
4
+
5
+ // ---------------------------------------------------------------------------
6
+ // Dark theme — CSS custom property overrides
7
+ // ---------------------------------------------------------------------------
8
+
9
+ @mixin cool-dark-properties {
10
+ color-scheme: dark;
11
+
12
+ // Grey scale (inverted for dark — blue-tinted slate)
13
+ --cool-color-grey-50: #020618;
14
+ --cool-color-grey-100: #081020;
15
+ --cool-color-grey-150: #0f172a;
16
+ --cool-color-grey-200: #141d33;
17
+ --cool-color-grey-250: #19233a;
18
+ --cool-color-grey-300: #1e293b;
19
+ --cool-color-grey-350: #273347;
20
+ --cool-color-grey-400: #334155;
21
+ --cool-color-grey-450: #3d4d62;
22
+ --cool-color-grey-500: #475569;
23
+ --cool-color-grey-550: #64748b;
24
+ --cool-color-grey-600: #7a8ba0;
25
+ --cool-color-grey-650: #94a3b8;
26
+ --cool-color-grey-700: #b0bdd0;
27
+ --cool-color-grey-750: #c8d2df;
28
+ --cool-color-grey-800: #dce3ec;
29
+ --cool-color-grey-850: #e2e8f0;
30
+ --cool-color-grey-900: #f1f5f9;
31
+ --cool-color-grey-950: #f8fafc;
32
+
33
+ --cool-color-grey-lightest: var(--cool-color-grey-50);
34
+ --cool-color-grey-lighter: var(--cool-color-grey-200);
35
+ --cool-color-grey-light: var(--cool-color-grey-350);
36
+ --cool-color-grey: var(--cool-color-grey-500);
37
+ --cool-color-grey-dark: var(--cool-color-grey-650);
38
+ --cool-color-grey-darker: var(--cool-color-grey-800);
39
+ --cool-color-grey-darkest: var(--cool-color-grey-950);
40
+
41
+ // Body
42
+ --cool-body-bg: #020618;
43
+ --cool-body-color: #f8fafc;
44
+ --cool-body-hover-bg: rgba(255, 255, 255, 0.04);
45
+ --cool-body-emphasize-bg: #081020;
46
+ --cool-body-surface-bg: #0f172a;
47
+
48
+ // Links
49
+ --cool-link-color: #60a5fa;
50
+ --cool-link-hover-color: #93c5fd;
51
+
52
+ // Borders
53
+ --cool-border-color: #1e293b;
54
+ --cool-hr-border-color: #1e293b;
55
+
56
+ // Headings
57
+ --cool-headings-color: #f8fafc;
58
+
59
+ // Icons
60
+ --cool-icon-color: #7a8ba0;
61
+
62
+ // Shadows
63
+ --cool-box-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
64
+ --cool-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
65
+ --cool-box-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.6);
66
+
67
+ // Forms / Inputs
68
+ --cool-input-bg: #081020;
69
+ --cool-input-color: #f8fafc;
70
+ --cool-input-border-color: #1e293b;
71
+ --cool-input-disabled-bg: #0f172a;
72
+ --cool-input-disabled-color: #70839e;
73
+ --cool-input-focus-border-color: #60a5fa;
74
+ --cool-input-placeholder-color: #70839e;
75
+ --cool-input-plaintext-color: #f8fafc;
76
+
77
+ --cool-input-group-addon-color: #94a3b8;
78
+ --cool-input-group-addon-bg: #081020;
79
+ --cool-input-group-border-color: #1e293b;
80
+ --cool-input-group-bg: #081020;
81
+ --cool-input-group-color: #94a3b8;
82
+
83
+ --cool-form-check-input-color: #60a5fa;
84
+ --cool-form-check-input-border-color: #475569;
85
+
86
+ // List group
87
+ --cool-list-group-bg: transparent;
88
+ --cool-list-group-color: #f8fafc;
89
+ --cool-list-group-hover-bg: rgba(255, 255, 255, 0.04);
90
+ --cool-list-group-active-color: #60a5fa;
91
+ --cool-list-group-disabled-color: #273347;
92
+ --cool-list-group-border-color: #1e293b;
93
+ --cool-list-group-distinctive-bg: #081020;
94
+
95
+ // Navbar
96
+ --cool-navbar-bg: #0f172a;
97
+ --cool-navbar-color: #f8fafc;
98
+ --cool-navbar-border-color: #0f172a;
99
+
100
+ // Section
101
+ --cool-section-bg: #0f172a;
102
+ --cool-section-color: #f8fafc;
103
+ --cool-section-border-color: #1e293b;
104
+ --cool-section-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
105
+ --cool-section-secondary-bg: #081020;
106
+ --cool-section-divider-color: #1e293b;
107
+ --cool-section-title-bg: var(--cool-section-bg);
108
+ --cool-section-title-color: var(--cool-section-color);
109
+ --cool-section-title-actions-color: #94a3b8;
110
+ --cool-section-title-icons-color: #7a8ba0;
111
+ --cool-section-subtitle-color: #64748b;
112
+ --cool-section-placeholder-icon-color: #70839e;
113
+ --cool-section-placeholder-description-color: #70839e;
114
+ --cool-section-definition-heading-color: #94a3b8;
115
+ --cool-section-filters-bg: var(--cool-section-bg);
116
+ --cool-section-filters-color: var(--cool-section-color);
117
+ --cool-section-bulk-actions-bg: var(--cool-section-bg);
118
+ --cool-section-bulk-actions-color: var(--cool-section-color);
119
+
120
+ --cool-section-tabs-bg: var(--cool-section-bg);
121
+ --cool-section-tabs-color: #64748b;
122
+ --cool-section-tabs-hover-color: #f8fafc;
123
+ --cool-section-tabs-active-color: #f8fafc;
124
+ --cool-section-tabs-border-color: #1e293b;
125
+ --cool-section-tabs-border-active-color: #f8fafc;
126
+
127
+ // Table
128
+ --cool-table-bg: transparent;
129
+ --cool-table-color: #f8fafc;
130
+ --cool-table-hover-bg: rgba(255, 255, 255, 0.03);
131
+ --cool-table-hover-color: #f8fafc;
132
+ --cool-table-accent-bg: rgba(255, 255, 255, 0.02);
133
+ --cool-table-border-color: #1e293b;
134
+ --cool-table-th-bg: #081020;
135
+ --cool-table-head-bg: #081020;
136
+ --cool-table-head-color: #94a3b8;
137
+ --cool-table-link-color: #60a5fa;
138
+ --cool-table-link-hover-color: #93c5fd;
139
+ --cool-table-icon-color: #7a8ba0;
140
+ --cool-table-sortable-head-hover-bg: #0f172a;
141
+ --cool-table-responsive-first-td-bg: #081020;
142
+ --cool-table-sticky-actions-shadow-color: #020618;
143
+ --cool-table-sticky-actions-col-sticky-bg: #081020;
144
+ --cool-table-bulk-actions-hover-bg: #3f74d4;
145
+ --cool-table-bulk-actions-hover-color: #ffffff;
146
+
147
+ // Tabs
148
+ --cool-tabs-bg: transparent;
149
+ --cool-tabs-color: #64748b;
150
+ --cool-tabs-hover-color: #f8fafc;
151
+ --cool-tabs-active-color: #60a5fa;
152
+ --cool-tabs-hover-bg: transparent;
153
+
154
+ // Dropdown
155
+ --cool-dropdown-bg: #0f172a;
156
+ --cool-dropdown-color: #f8fafc;
157
+ --cool-dropdown-border-color: #273347;
158
+ --cool-dropdown-divider-bg: #273347;
159
+ --cool-dropdown-box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
160
+ --cool-dropdown-title-color: #64748b;
161
+ --cool-dropdown-link-color: #b0bdd0;
162
+ --cool-dropdown-link-hover-color: #f8fafc;
163
+ --cool-dropdown-link-hover-bg: rgba(255, 255, 255, 0.06);
164
+ --cool-dropdown-link-active-color: #60a5fa;
165
+ --cool-dropdown-link-active-bg: rgba(255, 255, 255, 0.06);
166
+
167
+ // Frame sidebar
168
+ --cool-frame-sidebar-bg: #020618;
169
+ --cool-frame-sidebar-bg-mobile: #020618;
170
+ --cool-frame-sidebar-border-color: transparent;
171
+ --cool-frame-sidebar-nav-item-parent-color: #7a8ba0;
172
+ --cool-frame-sidebar-nav-item-child-color: #7a8ba0;
173
+ --cool-frame-sidebar-nav-item-child-hover-bg: rgba(255, 255, 255, 0.04);
174
+ --cool-frame-sidebar-nav-item-child-hover-color: #f8fafc;
175
+ --cool-frame-sidebar-nav-item-child-active-bg: rgba(96, 165, 250, 0.06);
176
+ --cool-frame-sidebar-nav-item-child-active-color: #60a5fa;
177
+ --cool-frame-sidebar-nav-item-parent-hover-color: #f8fafc;
178
+ --cool-frame-sidebar-nav-item-parent-hover-bg: rgba(255, 255, 255, 0.04);
179
+ --cool-frame-sidebar-nav-item-parent-active-color: #f8fafc;
180
+ --cool-frame-sidebar-nav-item-parent-active-bg: rgba(96, 165, 250, 0.06);
181
+ --cool-frame-sidebar-nav-icon-color: #7a8ba0;
182
+ --cool-frame-sidebar-nav-icon-hover-color: #f8fafc;
183
+ --cool-frame-sidebar-nav-icon-active-color: #60a5fa;
184
+ --cool-frame-sidebar-nav-a-icon-color: #475569;
185
+ --cool-frame-sidebar-nav-a-icon-hover-color: #7a8ba0;
186
+ --cool-frame-sidebar-tabs-color: #64748b;
187
+ --cool-frame-sidebar-tabs-border-color: #1e293b;
188
+ --cool-frame-sidebar-tabs-hover-color: #f8fafc;
189
+ --cool-frame-sidebar-tabs-active-color: #f8fafc;
190
+ --cool-frame-sidebar-tabs-active-border-color: #60a5fa;
191
+
192
+ // Floating sidebar
193
+ --cool-frame-sidebar-floating-bg: #0f172a;
194
+ --cool-frame-sidebar-floating-border-color: #1e293b;
195
+ --cool-frame-sidebar-floating-box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
196
+
197
+ // Dialog
198
+ --cool-dialog-bg: #081020;
199
+ --cool-dialog-box-shadow: 0 8px 32px rgba(0, 0, 0, 0.7);
200
+
201
+ // Alert & Notification
202
+ --cool-alert-bg: #081020;
203
+ --cool-alert-color: #f8fafc;
204
+ --cool-notification-bg: rgba(96, 165, 250, 0.06);
205
+ --cool-notification-color: #93c5fd;
206
+ --cool-notification-border-color: rgba(96, 165, 250, 0.15);
207
+
208
+ // Popover
209
+ --cool-popover-bg: #0f172a;
210
+ --cool-popover-border-color: #273347;
211
+ --cool-popover-box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
212
+ --cool-popover-header-bg: #081020;
213
+ --cool-popover-header-color: #f8fafc;
214
+ --cool-popover-body-color: #f8fafc;
215
+
216
+ // Select
217
+ --cool-select-bg: #081020;
218
+ --cool-select-border-color: #1e293b;
219
+ --cool-select-divider-bg: #1e293b;
220
+ --cool-select-box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
221
+ --cool-select-item-color: #b0bdd0;
222
+ --cool-select-item-hover-color: #f8fafc;
223
+ --cool-select-item-hover-bg: rgba(255, 255, 255, 0.06);
224
+ --cool-select-item-disabled-color: #475569;
225
+ --cool-select-header-color: #f8fafc;
226
+ --cool-select-chip-bg: #1e293b;
227
+ --cool-select-placeholder-color: #475569;
228
+ --cool-select-search-icon-color: #475569;
229
+
230
+ // Toast
231
+ --cool-toast-bg: #141d33;
232
+ --cool-toast-header-bg: #141d33;
233
+ --cool-toast-header-color: #f8fafc;
234
+ --cool-toast-body-color: #f8fafc;
235
+
236
+ // Pagination
237
+ --cool-pagination-color: #60a5fa;
238
+ --cool-pagination-hover-color: #93c5fd;
239
+ --cool-pagination-active-color: #60a5fa;
240
+ --cool-pagination-disabled-color: #475569;
241
+
242
+ // Media / Placeholders
243
+ --cool-image-icon-color: #475569;
244
+ --cool-image-bg-thumbnail: #081020;
245
+ --cool-image-loaded-bg: #081020;
246
+ --cool-image-select-trigger-bg: #1e293b;
247
+ --cool-image-select-trigger-color: #f8fafc;
248
+ --cool-placeholder-icon-color: #475569;
249
+ --cool-placeholder-title-color: #f8fafc;
250
+ --cool-placeholder-description-color: #64748b;
251
+
252
+ // Theme colors
253
+ --cool-theme-color-primary: #2c86c8;
254
+ --cool-theme-foreground-color-primary: #ffffff;
255
+ --cool-theme-color-secondary: #1e293b;
256
+ --cool-theme-foreground-color-secondary: #f8fafc;
257
+ --cool-theme-color-brand: #e70d68;
258
+ --cool-theme-foreground-color-brand: #ffffff;
259
+ --cool-theme-color-success: #4ade80;
260
+ --cool-theme-foreground-color-success: #86efac;
261
+ --cool-theme-color-danger: #f87171;
262
+ --cool-theme-foreground-color-danger: #fca5a5;
263
+ --cool-theme-color-warning: #fbbf24;
264
+ --cool-theme-foreground-color-warning: #fde68a;
265
+ --cool-theme-color-info: #38bdf8;
266
+ --cool-theme-foreground-color-info: #7dd3fc;
267
+ --cool-theme-color-light: #1e293b;
268
+ --cool-theme-foreground-color-light: #f8fafc;
269
+ --cool-theme-color-dark: #f8fafc;
270
+ --cool-theme-foreground-color-dark: #f8fafc;
271
+ --cool-theme-color-medium: #475569;
272
+ --cool-theme-foreground-color-medium: #f8fafc;
273
+ --cool-theme-foreground-color-grey-lightest: #f8fafc;
274
+ --cool-theme-foreground-color-grey-lighter: #f8fafc;
275
+ --cool-theme-foreground-color-grey-light: #f8fafc;
276
+ --cool-theme-foreground-color-grey: #f8fafc;
277
+ --cool-theme-foreground-color-grey-dark: #020618;
278
+ --cool-theme-foreground-color-grey-darker: #020618;
279
+ --cool-theme-foreground-color-grey-darkest: #020618;
280
+
281
+ // Theme background colors (solid dark-tinted)
282
+ --cool-theme-bg-color-primary: #111d36;
283
+ --cool-theme-bg-color-secondary: #192643;
284
+ --cool-theme-bg-color-success: #074320;
285
+ --cool-theme-bg-color-info: #12243a;
286
+ --cool-theme-bg-color-warning: #29200c;
287
+ --cool-theme-bg-color-danger: #361119;
288
+ --cool-theme-bg-color-light: #16213d;
289
+ --cool-theme-bg-color-dark: #243354;
290
+ --cool-theme-bg-color-medium: #1d2a4a;
291
+ --cool-theme-bg-color-brand: #2e1126;
292
+
293
+ // Theme text colors (used by badges)
294
+ --cool-theme-text-color-primary: #93c5fd;
295
+ --cool-theme-text-color-secondary: #94a3b8;
296
+ --cool-theme-text-color-success: #86efac;
297
+ --cool-theme-text-color-info: #7dd3fc;
298
+ --cool-theme-text-color-warning: #fde68a;
299
+ --cool-theme-text-color-danger: #fca5a5;
300
+ --cool-theme-text-color-light: #b0bdd0;
301
+ --cool-theme-text-color-medium: #7a8ba0;
302
+ --cool-theme-text-color-dark: #f8fafc;
303
+ --cool-theme-text-color-brand: #f9a8d4;
304
+ }
305
+
306
+ // ---------------------------------------------------------------------------
307
+ // Light theme — re-declare default (light) values
308
+ // Used by .light scope to reset values inside a .dark ancestor
309
+ // ---------------------------------------------------------------------------
310
+
311
+ @mixin cool-light-properties {
312
+ color-scheme: light;
313
+
314
+ // Grey scale (original light values)
315
+ --cool-color-grey-50: #{$grey-50};
316
+ --cool-color-grey-100: #{$grey-100};
317
+ --cool-color-grey-150: #{$grey-150};
318
+ --cool-color-grey-200: #{$grey-200};
319
+ --cool-color-grey-250: #{$grey-250};
320
+ --cool-color-grey-300: #{$grey-300};
321
+ --cool-color-grey-350: #{$grey-350};
322
+ --cool-color-grey-400: #{$grey-400};
323
+ --cool-color-grey-450: #{$grey-450};
324
+ --cool-color-grey-500: #{$grey-500};
325
+ --cool-color-grey-550: #{$grey-550};
326
+ --cool-color-grey-600: #{$grey-600};
327
+ --cool-color-grey-650: #{$grey-650};
328
+ --cool-color-grey-700: #{$grey-700};
329
+ --cool-color-grey-750: #{$grey-750};
330
+ --cool-color-grey-800: #{$grey-800};
331
+ --cool-color-grey-850: #{$grey-850};
332
+ --cool-color-grey-900: #{$grey-900};
333
+ --cool-color-grey-950: #{$grey-950};
334
+
335
+ // Named grey aliases (original light values)
336
+ @each $color, $value in $colors {
337
+ --cool-color-#{$color}: #{$value};
338
+ }
339
+
340
+ // Body
341
+ --cool-body-bg: #{$body-bg};
342
+ --cool-body-color: #{$body-color};
343
+ --cool-body-hover-bg: #{$body-hover-bg};
344
+ --cool-body-emphasize-bg: #{$body-emphasize-bg};
345
+ --cool-body-surface-bg: #{$body-surface-bg};
346
+
347
+ // Links
348
+ --cool-link-color: #{$link-color};
349
+ --cool-link-hover-color: #{$link-hover-color};
350
+
351
+ // Borders
352
+ --cool-border-color: #{$border-color};
353
+ --cool-hr-border-color: #{$hr-border-color};
354
+
355
+ // Headings
356
+ --cool-headings-color: #{$headings-color};
357
+
358
+ // Icons
359
+ --cool-icon-color: #{$icon-color};
360
+
361
+ // Shadows
362
+ --cool-box-shadow-sm: #{$box-shadow-sm};
363
+ --cool-box-shadow: #{$box-shadow};
364
+ --cool-box-shadow-lg: #{$box-shadow-lg};
365
+
366
+ // Forms / Inputs
367
+ --cool-input-bg: #{$input-bg};
368
+ --cool-input-color: #{$input-color};
369
+ --cool-input-border-color: #{$input-border-color};
370
+ --cool-input-disabled-bg: #{$input-disabled-bg};
371
+ --cool-input-disabled-color: #{$input-disabled-color};
372
+ --cool-input-focus-border-color: #{$input-focus-border-color};
373
+ --cool-input-placeholder-color: #{$input-placeholder-color};
374
+ --cool-input-plaintext-color: #{$input-plaintext-color};
375
+
376
+ --cool-input-group-addon-color: #{$input-group-addon-color};
377
+ --cool-input-group-addon-bg: #{$input-group-addon-bg};
378
+ --cool-input-group-border-color: #{$input-group-border-color};
379
+ --cool-input-group-bg: #{$input-group-bg};
380
+ --cool-input-group-color: #{$input-group-color};
381
+
382
+ --cool-form-check-input-color: #{$form-check-input-color};
383
+ --cool-form-check-input-border-color: #{$form-check-input-border-color};
384
+
385
+ // List group
386
+ --cool-list-group-bg: #{$list-group-bg};
387
+ --cool-list-group-color: #{$list-group-color};
388
+ --cool-list-group-hover-bg: #{$list-group-hover-bg};
389
+ --cool-list-group-active-color: #{$list-group-active-color};
390
+ --cool-list-group-disabled-color: #{$list-group-disabled-color};
391
+ --cool-list-group-border-color: #{$list-group-border-color};
392
+ --cool-list-group-distinctive-bg: #{$list-group-distinctive-bg};
393
+
394
+ // Navbar
395
+ --cool-navbar-bg: #{$navbar-bg};
396
+ --cool-navbar-color: #{$navbar-color};
397
+ --cool-navbar-border-color: #{$navbar-bg};
398
+
399
+ // Section
400
+ --cool-section-bg: #{$section-bg};
401
+ --cool-section-color: #{$section-color};
402
+ --cool-section-border-color: #{$section-border-color};
403
+ --cool-section-box-shadow: #{$section-box-shadow};
404
+ --cool-section-secondary-bg: #{$section-secondary-bg};
405
+ --cool-section-divider-color: #{$section-divider-color};
406
+ --cool-section-title-bg: #{$section-title-bg};
407
+ --cool-section-title-color: #{$section-title-color};
408
+ --cool-section-title-actions-color: #{$section-title-actions-color};
409
+ --cool-section-title-icons-color: #{$section-title-icons-color};
410
+ --cool-section-subtitle-color: #{$section-subtitle-color};
411
+ --cool-section-placeholder-icon-color: #{$section-placeholder-icon-color};
412
+ --cool-section-placeholder-description-color: #{$section-placeholder-description-color};
413
+ --cool-section-definition-heading-color: #{$section-definition-heading-color};
414
+ --cool-section-filters-bg: #{$section-filters-bg};
415
+ --cool-section-filters-color: #{$section-filters-color};
416
+ --cool-section-bulk-actions-bg: #{$section-bulk-actions-bg};
417
+ --cool-section-bulk-actions-color: #{$section-bulk-actions-color};
418
+
419
+ --cool-section-tabs-bg: #{$section-tabs-bg};
420
+ --cool-section-tabs-color: #{$section-tabs-color};
421
+ --cool-section-tabs-hover-color: #{$section-tabs-hover-color};
422
+ --cool-section-tabs-active-color: #{$section-tabs-active-color};
423
+ --cool-section-tabs-border-color: #{$section-tabs-border-color};
424
+
425
+ // Table
426
+ --cool-table-bg: #{$table-bg};
427
+ --cool-table-color: #{$table-color};
428
+ --cool-table-hover-bg: #{$table-hover-bg};
429
+ --cool-table-hover-color: #{$table-hover-color};
430
+ --cool-table-accent-bg: #{$table-accent-bg};
431
+ --cool-table-border-color: #{$table-border-color};
432
+ --cool-table-th-bg: #{$table-th-bg};
433
+ --cool-table-head-bg: #{$table-head-bg};
434
+ --cool-table-head-color: #{$table-head-color};
435
+ --cool-table-link-color: #{$table-link-color};
436
+ --cool-table-link-hover-color: #{$table-link-hover-color};
437
+ --cool-table-icon-color: #{$table-icon-color};
438
+ --cool-table-sortable-head-hover-bg: #{$table-sortable-head-hover-bg};
439
+ --cool-table-responsive-first-td-bg: #{$table-responsive-first-td-bg};
440
+ --cool-table-sticky-actions-shadow-color: #{$table-sticky-actions-shadow-color};
441
+ --cool-table-sticky-actions-col-sticky-bg: #{$table-sticky-actions-col-sticky-bg};
442
+ --cool-table-bulk-actions-hover-bg: #{$table-bulk-actions-hover-bg};
443
+ --cool-table-bulk-actions-hover-color: #{$table-bulk-actions-hover-color};
444
+
445
+ // Tabs
446
+ --cool-tabs-bg: #{$tabs-bg};
447
+ --cool-tabs-color: #{$tabs-text-color};
448
+ --cool-tabs-hover-color: #{$tabs-hover-color};
449
+ --cool-tabs-active-color: #{$tabs-active-color};
450
+ --cool-tabs-hover-bg: #{$tabs-hover-bg};
451
+
452
+ // Dropdown
453
+ --cool-dropdown-bg: #{$dropdown-bg};
454
+ --cool-dropdown-color: #{$dropdown-color};
455
+ --cool-dropdown-border-color: #{$dropdown-border-color};
456
+ --cool-dropdown-divider-bg: #{$dropdown-divider-bg};
457
+ --cool-dropdown-box-shadow: #{$dropdown-box-shadow};
458
+ --cool-dropdown-title-color: #{$dropdown-title-color};
459
+ --cool-dropdown-link-color: #{$dropdown-link-color};
460
+ --cool-dropdown-link-hover-color: #{$dropdown-link-hover-color};
461
+ --cool-dropdown-link-hover-bg: #{$dropdown-link-hover-bg};
462
+ --cool-dropdown-link-active-color: #{$dropdown-link-active-color};
463
+ --cool-dropdown-link-active-bg: #{$dropdown-link-active-bg};
464
+
465
+ // Frame sidebar
466
+ --cool-frame-sidebar-bg: #{$frame-sidebar-bg};
467
+ --cool-frame-sidebar-bg-mobile: #{$frame-sidebar-bg-mobile};
468
+ --cool-frame-sidebar-border-color: #{$frame-sidebar-border-color};
469
+ --cool-frame-sidebar-nav-item-parent-color: #{$frame-sidebar-nav-item-parent-color};
470
+ --cool-frame-sidebar-nav-item-child-color: #{$frame-sidebar-nav-item-child-color};
471
+ --cool-frame-sidebar-nav-item-child-hover-bg: #{$frame-sidebar-nav-item-child-hover-bg};
472
+ --cool-frame-sidebar-nav-item-child-hover-color: #{$frame-sidebar-nav-item-child-hover-color};
473
+ --cool-frame-sidebar-nav-item-child-active-bg: #{$frame-sidebar-nav-item-child-active-bg};
474
+ --cool-frame-sidebar-nav-item-child-active-color: #{$frame-sidebar-nav-item-child-active-color};
475
+ --cool-frame-sidebar-nav-item-parent-hover-color: #{$frame-sidebar-nav-item-parent-hover-color};
476
+ --cool-frame-sidebar-nav-item-parent-hover-bg: #{$frame-sidebar-nav-item-parent-hover-bg};
477
+ --cool-frame-sidebar-nav-item-parent-active-color: #{$frame-sidebar-nav-item-parent-active-color};
478
+ --cool-frame-sidebar-nav-item-parent-active-bg: #{$frame-sidebar-nav-item-parent-active-bg};
479
+ --cool-frame-sidebar-nav-icon-color: #{$frame-sidebar-nav-icon-color};
480
+ --cool-frame-sidebar-nav-icon-hover-color: #{$frame-sidebar-nav-icon-hover-color};
481
+ --cool-frame-sidebar-nav-icon-active-color: #{$frame-sidebar-nav-icon-active-color};
482
+ --cool-frame-sidebar-nav-a-icon-color: #{$frame-sidebar-nav-a-icon-color};
483
+ --cool-frame-sidebar-nav-a-icon-hover-color: #{$frame-sidebar-nav-a-icon-hover-color};
484
+ --cool-frame-sidebar-tabs-color: #{$frame-sidebar-tabs-color};
485
+ --cool-frame-sidebar-tabs-border-color: #{$frame-sidebar-tabs-border-color};
486
+ --cool-frame-sidebar-tabs-hover-color: #{$frame-sidebar-tabs-hover-color};
487
+ --cool-frame-sidebar-tabs-active-color: #{$frame-sidebar-tabs-active-color};
488
+ --cool-frame-sidebar-tabs-active-border-color: #{$frame-sidebar-tabs-active-border-color};
489
+
490
+ // Floating sidebar
491
+ --cool-frame-sidebar-floating-bg: #{$frame-sidebar-floating-bg};
492
+ --cool-frame-sidebar-floating-border-color: #{$frame-sidebar-floating-border-color};
493
+ --cool-frame-sidebar-floating-box-shadow: #{$frame-sidebar-floating-box-shadow};
494
+
495
+ // Dialog
496
+ --cool-dialog-bg: #{$dialog-bg};
497
+ --cool-dialog-box-shadow: #{$dialog-box-shadow};
498
+
499
+ // Alert & Notification
500
+ --cool-alert-bg: #{$alert-bg};
501
+ --cool-alert-color: #{$alert-color};
502
+ --cool-notification-bg: #{$notification-bg};
503
+ --cool-notification-color: #{$notification-color};
504
+ --cool-notification-border-color: #{$notification-border-color};
505
+
506
+ // Popover
507
+ --cool-popover-bg: #{$popover-bg};
508
+ --cool-popover-border-color: #{$popover-border-color};
509
+ --cool-popover-box-shadow: #{$popover-box-shadow};
510
+ --cool-popover-header-bg: #{$popover-header-bg};
511
+ --cool-popover-header-color: #{$popover-header-color};
512
+ --cool-popover-body-color: #{$popover-body-color};
513
+
514
+ // Select
515
+ --cool-select-bg: #{$select-bg};
516
+ --cool-select-border-color: #{$select-border-color};
517
+ --cool-select-divider-bg: #{$select-divider-bg};
518
+ --cool-select-box-shadow: #{$select-box-shadow};
519
+ --cool-select-item-color: #{$select-item-color};
520
+ --cool-select-item-hover-color: #{$select-item-hover-color};
521
+ --cool-select-item-hover-bg: #{$select-item-hover-bg};
522
+ --cool-select-item-disabled-color: #{$select-item-disabled-color};
523
+ --cool-select-header-color: #{$select-header-color};
524
+ --cool-select-chip-bg: #{$select-chip-bg};
525
+ --cool-select-placeholder-color: #{$select-placeholder-color};
526
+ --cool-select-search-icon-color: #{$select-search-icon-color};
527
+
528
+ // Toast
529
+ --cool-toast-bg: #{$toast-bg};
530
+ --cool-toast-header-bg: #{$toast-header-bg};
531
+ --cool-toast-header-color: #{$toast-header-color};
532
+ --cool-toast-body-color: #{$toast-body-color};
533
+
534
+ // Pagination
535
+ --cool-pagination-color: #{$pagination-color};
536
+ --cool-pagination-hover-color: #{$pagination-hover-color};
537
+ --cool-pagination-active-color: #{$pagination-active-color};
538
+ --cool-pagination-disabled-color: #{$pagination-disabled-color};
539
+
540
+ // Media / Placeholders
541
+ --cool-image-icon-color: #{$image-icon-color};
542
+ --cool-image-bg-thumbnail: #{$image-bg-thumbnail};
543
+ --cool-image-loaded-bg: #{$image-loaded-bg};
544
+ --cool-image-select-trigger-bg: #{$image-select-trigger-bg};
545
+ --cool-image-select-trigger-color: #{$image-select-trigger-color};
546
+ --cool-placeholder-icon-color: #{$placeholder-icon-color};
547
+ --cool-placeholder-title-color: #{$placeholder-title-color};
548
+ --cool-placeholder-description-color: #{$placeholder-description-color};
549
+
550
+ // Theme colors
551
+ @each $color, $value in $theme-colors {
552
+ --cool-theme-color-#{$color}: #{$value};
553
+ }
554
+
555
+ @each $color, $value in $theme-foreground-colors {
556
+ --cool-theme-foreground-color-#{$color}: #{$value};
557
+ }
558
+
559
+ @each $color, $value in $theme-bg-colors {
560
+ --cool-theme-bg-color-#{$color}: #{$value};
561
+ }
562
+
563
+ @each $color, $value in $theme-text-colors {
564
+ --cool-theme-text-color-#{$color}: #{$value};
565
+ }
566
+ }
567
+
568
+ // ---------------------------------------------------------------------------
569
+ // Component-level dark overrides
570
+ // Buttons with solid theme-color backgrounds need dark foreground text,
571
+ // while foreground-color values are now light for bg-color contexts.
572
+ // ---------------------------------------------------------------------------
573
+
574
+ @mixin cool-dark-component-overrides {
575
+ .btn-action {
576
+ --cool-btn-color: #020618;
577
+ }
578
+
579
+ .btn-remove {
580
+ --cool-btn-hover-color: #020618;
581
+ }
582
+ }
583
+
584
+ // ---------------------------------------------------------------------------
585
+ // Orchestrator mixin — emits all dark mode rules
586
+ // ---------------------------------------------------------------------------
587
+
588
+ @mixin cool-dark-mode {
589
+ // A) Class-based fallback (works in all browsers)
590
+ .dark {
591
+ @include cool-dark-properties;
592
+ @include cool-dark-component-overrides;
593
+ }
594
+
595
+ .light {
596
+ @include cool-light-properties;
597
+ }
598
+
599
+ // B) @scope progressive enhancement (modern browsers only)
600
+ @supports (selector(:scope)) {
601
+ @scope (.dark) {
602
+ :scope {
603
+ @include cool-dark-properties;
604
+ }
605
+
606
+ @include cool-dark-component-overrides;
607
+ }
608
+
609
+ @scope (.light) {
610
+ :scope {
611
+ @include cool-light-properties;
612
+ }
613
+ }
614
+ }
615
+
616
+ // C) Auto-detection via prefers-color-scheme (conditional)
617
+ @if $cool-enable-dark-mode {
618
+ @media (prefers-color-scheme: dark) {
619
+ :root:not(.light) {
620
+ @include cool-dark-properties;
621
+ @include cool-dark-component-overrides;
622
+ }
623
+ }
624
+ }
625
+ }
626
+
627
+ // ---------------------------------------------------------------------------
628
+ // Output — conditional layer wrapping
629
+ // ---------------------------------------------------------------------------
630
+
631
+ @if $cool-use-base-layer {
632
+ @layer base {
633
+ @include cool-dark-mode;
634
+ }
635
+ } @else {
636
+ @include cool-dark-mode;
637
+ }