├── .gitignore
├── LICENSE
├── README.md
├── css
├── cores
│ ├── halfmoon.cores.css
│ ├── halfmoon.elegant.css
│ └── halfmoon.modern.css
├── halfmoon.css
├── halfmoon.min.css
├── halfmoon.min.css.map
├── halfmoon.rtl.css
├── halfmoon.rtl.min.css
└── halfmoon.rtl.min.css.map
├── package-lock.json
└── package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | *.DS_Store
2 |
3 | # Dependency directories
4 | node_modules/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023, Tahmid Khan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [Halfmoon v2](https://www.gethalfmoon.com)
2 |
3 | 
4 |
5 | > Highly customizable, drop-in Bootstrap replacement.
6 |
7 | Halfmoon is a highly customizable, drop-in Bootstrap replacement. It comes with three built-in core themes, with dark mode support for all themes and components. Build beautiful and responsive websites and applications.
8 |
9 | To learn more, please read [the documentation](https://www.gethalfmoon.com/docs/introduction/).
10 |
11 | ## JavaScript
12 |
13 | We implement no JavaScript on our own, therefore, there is no `halfmoon.js` (or anything similar). Instead we rely entirely on `bootstrap.bundle.js`, which you can [download from Bootstrap's website](https://getbootstrap.com/docs/5.3/getting-started/download/). This means that you can replace `bootstrap.css` with `halfmoon.css` on your website, and everything should work exactly as expected.
14 |
15 | This also means that you can use any of the Bootstrap component libraries for popular JS frameworks such as React, Vue, Angular, Svelte, etc.
16 |
17 | ## Starter template
18 |
19 | Here's a starter template to help you quickly get started with Halfmoon.
20 |
21 | ```html
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | Starter template - Halfmoon
30 |
31 |
32 |
33 |
34 |
35 | Hello, world!
36 |
37 |
38 |
39 |
40 |
41 | ```
42 |
43 | ## Using npm
44 |
45 | ```
46 | npm install halfmoon
47 | ```
48 |
49 | Once the package has been installed, you can simply import the CSS file:
50 |
51 | ```javascript
52 | // Import Halfmoon CSS
53 | import "halfmoon/css/halfmoon.min.css";
54 | ```
55 |
56 | ## License
57 |
58 | Halfmoon is [licensed under MIT](https://www.gethalfmoon.com/license/).
59 |
60 | ## Copyright
61 |
62 | © Copyright 2023, Tahmid Khan
63 |
--------------------------------------------------------------------------------
/css/cores/halfmoon.cores.css:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * ----------------------------------------------------------------------------
4 | * Halfmoon CSS - Modern theme
5 | * Copyright (c) 2023, Tahmid Khan | MIT License | https://www.gethalfmoon.com
6 | * ----------------------------------------------------------------------------
7 | * The above notice must be included in its entirety when this file is used.
8 | */
9 |
10 | /* Color palette */
11 |
12 | [data-bs-core=modern] {
13 | /* Gray */
14 |
15 | --bs-slate-hue: 216;
16 | --bs-slate-saturation: 20%;
17 |
18 | /* Light gray */
19 |
20 | --bs-lightgray-hue: var(--bs-slate-hue);
21 | --bs-lightgray-saturation: var(--bs-slate-saturation);
22 |
23 | /* Sable (almost black) */
24 |
25 | --bs-sable-hue: var(--bs-darkgray-hue);
26 | --bs-sable-saturation: var(--bs-darkgray-saturation);
27 | --bs-sable-100-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 31%;
28 | --bs-sable-200-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 29%;
29 | --bs-sable-300-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 27%;
30 | --bs-sable-400-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 25%;
31 | --bs-sable-500-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 23%;
32 | --bs-sable-600-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 21%;
33 | --bs-sable-700-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 19%;
34 | --bs-sable-800-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 17%;
35 | --bs-sable-900-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 15%;
36 | --bs-sable-100: hsl(var(--bs-sable-100-hsl));
37 | --bs-sable-200: hsl(var(--bs-sable-200-hsl));
38 | --bs-sable-300: hsl(var(--bs-sable-300-hsl));
39 | --bs-sable-400: hsl(var(--bs-sable-400-hsl));
40 | --bs-sable-500: hsl(var(--bs-sable-500-hsl));
41 | --bs-sable-600: hsl(var(--bs-sable-600-hsl));
42 | --bs-sable-700: hsl(var(--bs-sable-700-hsl));
43 | --bs-sable-800: hsl(var(--bs-sable-800-hsl));
44 | --bs-sable-900: hsl(var(--bs-sable-900-hsl));
45 | --bs-sable-hsl: var(--bs-sable-500-hsl);
46 | --bs-sable: hsl(var(--bs-sable-hsl));
47 | --bs-sable-foreground-hsl: var(--bs-white-hsl);
48 | --bs-sable-foreground: hsl(var(--bs-sable-foreground-hsl));
49 | --bs-sable-text-emphasis-hsl: var(--bs-sable-600-hsl);
50 | --bs-sable-text-emphasis: hsl(var(--bs-sable-text-emphasis-hsl));
51 | --bs-sable-hover-bg: var(--bs-sable-600);
52 | --bs-sable-active-bg: var(--bs-sable-700);
53 | --bs-sable-bg-subtle: hsl(var(--bs-sable-hue), var(--bs-sable-saturation), 70%);
54 | --bs-sable-border-subtle: var(--bs-sable-400);
55 | --bs-sable-checkbox-svg: var(--bs-checkbox-svg-light);
56 | --bs-sable-dash-svg: var(--bs-dash-svg-light);
57 | --bs-sable-radio-svg: var(--bs-radio-svg-light);
58 | --bs-sable-switch-svg: var(--bs-switch-svg-light);
59 |
60 | /* Primary */
61 |
62 | --bs-primary-hue: var(--bs-navy-hue);
63 | --bs-primary-saturation: var(--bs-navy-saturation);
64 | --bs-primary-100-hsl: var(--bs-navy-100-hsl);
65 | --bs-primary-200-hsl: var(--bs-navy-200-hsl);
66 | --bs-primary-300-hsl: var(--bs-navy-300-hsl);
67 | --bs-primary-400-hsl: var(--bs-navy-400-hsl);
68 | --bs-primary-500-hsl: var(--bs-navy-500-hsl);
69 | --bs-primary-600-hsl: var(--bs-navy-600-hsl);
70 | --bs-primary-700-hsl: var(--bs-navy-700-hsl);
71 | --bs-primary-800-hsl: var(--bs-navy-800-hsl);
72 | --bs-primary-900-hsl: var(--bs-navy-900-hsl);
73 | --bs-primary-100: var(--bs-navy-100);
74 | --bs-primary-200: var(--bs-navy-200);
75 | --bs-primary-300: var(--bs-navy-300);
76 | --bs-primary-400: var(--bs-navy-400);
77 | --bs-primary-500: var(--bs-navy-500);
78 | --bs-primary-600: var(--bs-navy-600);
79 | --bs-primary-700: var(--bs-navy-700);
80 | --bs-primary-800: var(--bs-navy-800);
81 | --bs-primary-900: var(--bs-navy-900);
82 | --bs-primary-hsl: var(--bs-navy-hsl);
83 | --bs-primary: var(--bs-navy);
84 | --bs-primary-foreground-hsl: var(--bs-navy-foreground-hsl);
85 | --bs-primary-foreground: var(--bs-navy-foreground);
86 | --bs-primary-text-emphasis-hsl: var(--bs-navy-text-emphasis-hsl);
87 | --bs-primary-text-emphasis: var(--bs-navy-text-emphasis);
88 | --bs-primary-hover-bg: var(--bs-navy-hover-bg);
89 | --bs-primary-active-bg: var(--bs-navy-active-bg);
90 | --bs-primary-bg-subtle: var(--bs-navy-bg-subtle);
91 | --bs-primary-border-subtle: var(--bs-navy-border-subtle);
92 | --bs-primary-checkbox-svg: var(--bs-navy-checkbox-svg);
93 | --bs-primary-dash-svg: var(--bs-navy-dash-svg);
94 | --bs-primary-radio-svg: var(--bs-navy-radio-svg);
95 | --bs-primary-switch-svg: var(--bs-navy-switch-svg);
96 |
97 | /* Info */
98 |
99 | --bs-info-hue: var(--bs-blue-hue);
100 | --bs-info-saturation: var(--bs-blue-saturation);
101 | --bs-info-100-hsl: var(--bs-blue-100-hsl);
102 | --bs-info-200-hsl: var(--bs-blue-200-hsl);
103 | --bs-info-300-hsl: var(--bs-blue-300-hsl);
104 | --bs-info-400-hsl: var(--bs-blue-400-hsl);
105 | --bs-info-500-hsl: var(--bs-blue-500-hsl);
106 | --bs-info-600-hsl: var(--bs-blue-600-hsl);
107 | --bs-info-700-hsl: var(--bs-blue-700-hsl);
108 | --bs-info-800-hsl: var(--bs-blue-800-hsl);
109 | --bs-info-900-hsl: var(--bs-blue-900-hsl);
110 | --bs-info-100: var(--bs-blue-100);
111 | --bs-info-200: var(--bs-blue-200);
112 | --bs-info-300: var(--bs-blue-300);
113 | --bs-info-400: var(--bs-blue-400);
114 | --bs-info-500: var(--bs-blue-500);
115 | --bs-info-600: var(--bs-blue-600);
116 | --bs-info-700: var(--bs-blue-700);
117 | --bs-info-800: var(--bs-blue-800);
118 | --bs-info-900: var(--bs-blue-900);
119 | --bs-info-hsl: var(--bs-blue-hsl);
120 | --bs-info: var(--bs-blue);
121 | --bs-info-foreground-hsl: var(--bs-blue-foreground-hsl);
122 | --bs-info-foreground: var(--bs-blue-foreground);
123 | --bs-info-text-emphasis-hsl: var(--bs-blue-text-emphasis-hsl);
124 | --bs-info-text-emphasis: var(--bs-blue-text-emphasis);
125 | --bs-info-hover-bg: var(--bs-blue-hover-bg);
126 | --bs-info-active-bg: var(--bs-blue-active-bg);
127 | --bs-info-bg-subtle: var(--bs-blue-bg-subtle);
128 | --bs-info-border-subtle: var(--bs-blue-border-subtle);
129 | --bs-info-checkbox-svg: var(--bs-blue-checkbox-svg);
130 | --bs-info-dash-svg: var(--bs-blue-dash-svg);
131 | --bs-info-radio-svg: var(--bs-blue-radio-svg);
132 | --bs-info-switch-svg: var(--bs-blue-switch-svg);
133 | }
134 |
135 | [data-bs-core=modern][data-bs-theme=dark] {
136 | /* Dark gray */
137 |
138 | --bs-darkgray-text-emphasis-hsl: var(--bs-darkgray-200-hsl);
139 | --bs-darkgray-text-emphasis: hsl(var(--bs-darkgray-text-emphasis-hsl));
140 |
141 | /* Sable (black) */
142 |
143 | --bs-sable-text-emphasis-hsl: var(--bs-sable-400-hsl);
144 | --bs-sable-text-emphasis: hsl(var(--bs-sable-text-emphasis-hsl));
145 | --bs-sable-bg-subtle: hsl(var(--bs-sable-hue), var(--bs-sable-saturation), 14%);
146 | --bs-sable-border-subtle: var(--bs-sable-600);
147 |
148 | /* Blue */
149 |
150 | --bs-blue-text-emphasis-hsl: var(--bs-blue-300-hsl);
151 | --bs-blue-text-emphasis: hsl(var(--bs-blue-text-emphasis-hsl));
152 |
153 | /* Primary */
154 |
155 | --bs-primary-hue: var(--bs-sky-hue);
156 | --bs-primary-saturation: var(--bs-sky-saturation);
157 | --bs-primary-100-hsl: var(--bs-sky-100-hsl);
158 | --bs-primary-200-hsl: var(--bs-sky-200-hsl);
159 | --bs-primary-300-hsl: var(--bs-sky-300-hsl);
160 | --bs-primary-400-hsl: var(--bs-sky-400-hsl);
161 | --bs-primary-500-hsl: var(--bs-sky-500-hsl);
162 | --bs-primary-600-hsl: var(--bs-sky-600-hsl);
163 | --bs-primary-700-hsl: var(--bs-sky-700-hsl);
164 | --bs-primary-800-hsl: var(--bs-sky-800-hsl);
165 | --bs-primary-900-hsl: var(--bs-sky-900-hsl);
166 | --bs-primary-100: var(--bs-sky-100);
167 | --bs-primary-200: var(--bs-sky-200);
168 | --bs-primary-300: var(--bs-sky-300);
169 | --bs-primary-400: var(--bs-sky-400);
170 | --bs-primary-500: var(--bs-sky-500);
171 | --bs-primary-600: var(--bs-sky-600);
172 | --bs-primary-700: var(--bs-sky-700);
173 | --bs-primary-800: var(--bs-sky-800);
174 | --bs-primary-900: var(--bs-sky-900);
175 | --bs-primary-hsl: var(--bs-sky-hsl);
176 | --bs-primary: var(--bs-sky);
177 | --bs-primary-foreground-hsl: var(--bs-sky-foreground-hsl);
178 | --bs-primary-foreground: var(--bs-sky-foreground);
179 | --bs-primary-text-emphasis-hsl: var(--bs-sky-text-emphasis-hsl);
180 | --bs-primary-text-emphasis: var(--bs-sky-text-emphasis);
181 | --bs-primary-hover-bg: var(--bs-sky-hover-bg);
182 | --bs-primary-active-bg: var(--bs-sky-active-bg);
183 | --bs-primary-bg-subtle: var(--bs-sky-bg-subtle);
184 | --bs-primary-border-subtle: var(--bs-sky-border-subtle);
185 | --bs-primary-checkbox-svg: var(--bs-sky-checkbox-svg);
186 | --bs-primary-dash-svg: var(--bs-sky-dash-svg);
187 | --bs-primary-radio-svg: var(--bs-sky-radio-svg);
188 | --bs-primary-switch-svg: var(--bs-sky-switch-svg);
189 |
190 | /* Info */
191 |
192 | --bs-info-text-emphasis-hsl: var(--bs-blue-text-emphasis-hsl);
193 | --bs-info-text-emphasis: var(--bs-blue-text-emphasis);
194 | --bs-info-bg-subtle: var(--bs-blue-bg-subtle);
195 | --bs-info-border-subtle: var(--bs-blue-border-subtle);
196 | }
197 |
198 | /* Variables */
199 |
200 | [data-bs-core=modern] {
201 | /* Link */
202 |
203 | --bs-link-color-hsl: var(--bs-info-text-emphasis-hsl);
204 | --bs-link-hover-color-hsl: var(--bs-info-hsl);
205 |
206 | /* Content (used as needed in cards, panels, menus, etc.) */
207 |
208 | --bs-content-bg-hsl: var(--bs-body-bg-hsl);
209 | --bs-content-border-color: var(--bs-border-color);
210 |
211 | /* Form */
212 |
213 | --bs-form-focus-border-color: var(--bs-info-border-subtle);
214 | --bs-form-focus-shadow-hsl: var(--bs-info-hsl);
215 | --bs-form-check-focus-border-color: var(--bs-info-border-subtle);
216 | }
217 |
218 | [data-bs-core=modern]:not([data-bs-theme=dark]) {
219 | /* Background */
220 |
221 | --bs-body-bg-hsl: var(--bs-white-hsl);
222 | --bs-secondary-bg-hsl: var(--bs-lightgray-hue), var(--bs-lightgray-saturation), 98.75%;
223 | --bs-tertiary-bg-hsl: var(--bs-lightgray-hue), var(--bs-lightgray-saturation), 97.5%;
224 |
225 | /* Border */
226 |
227 | --bs-border-color: var(--bs-lightgray-700);
228 | --bs-border-color-light: var(--bs-lightgray-500);
229 | }
230 |
231 | [data-bs-core=modern][data-bs-theme=dark] {
232 | /* Background */
233 |
234 | --bs-body-bg-hsl: var(--bs-sable-900-hsl);
235 | --bs-secondary-bg-hsl: var(--bs-sable-800-hsl);
236 | --bs-tertiary-bg-hsl: var(--bs-sable-700-hsl);
237 |
238 | /* Border */
239 |
240 | --bs-border-color: var(--bs-gray-900);
241 |
242 | /* Content (used as needed in cards, panels, menus, etc.) */
243 |
244 | --bs-content-floating-bg-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 16.5%;
245 |
246 | /* Action (used as needed in buttons, inputs, menu items, page links, etc.) */
247 |
248 | --bs-action-border-color: var(--bs-border-color);
249 |
250 | /* Contextual buttons */
251 |
252 | --bs-ctx-btn-border-color: transparent;
253 | --bs-ctx-btn-bg-clip: border-box;
254 |
255 | /* Action bar (used as needed in range, progress, etc.) */
256 |
257 | --bs-actionbar-border-color: hsla(var(--bs-white-hsl), 0.075);
258 | --bs-progresstrack-border-width: 0;
259 | --bs-progresstrack-box-shadow: inset 0 0 0 var(--bs-border-width) var(--bs-actionbar-border-color);
260 | --bs-progresstrack-bg-clip: border-box;
261 | }
262 |
263 | /* Sidebar */
264 |
265 | [data-bs-core=modern] .sidebar {
266 | --bs-sidebar-item-padding-x: 1rem;
267 | --bs-sidebar-item-padding-y: 0.25rem;
268 | --bs-sidebar-header-font-weight: var(--bs-font-weight-bold);
269 | --bs-sidebar-divider-bg: var(--bs-sidebar-bg);
270 | }
271 |
272 | [data-bs-core=modern] .sidebar-nav .nav-link {
273 | border-left: var(--bs-border-width) solid var(--bs-border-color-light);
274 | }
275 |
276 | [data-bs-core=modern] .sidebar-nav .nav-link.active,
277 | [data-bs-core=modern] .sidebar-nav .nav-link.show {
278 | font-weight: var(--bs-font-weight-bold);
279 | border-color: currentColor;
280 | -webkit-font-smoothing: antialiased;
281 | -moz-osx-font-smoothing: grayscale;
282 | }
283 |
284 | /*!
285 | * ----------------------------------------------------------------------------
286 | * Halfmoon CSS - Elegant theme
287 | * Copyright (c) 2023, Tahmid Khan | MIT License | https://www.gethalfmoon.com
288 | * ----------------------------------------------------------------------------
289 | * The above notice must be included in its entirety when this file is used.
290 | */
291 |
292 | /* Color palette */
293 |
294 | [data-bs-core=elegant] {
295 | /* Light gray */
296 |
297 | --bs-lightgray-hue: var(--bs-stone-hue);
298 | --bs-lightgray-saturation: var(--bs-stone-saturation);
299 |
300 | /* Dark gray */
301 |
302 | --bs-darkgray-hue: var(--bs-stone-hue);
303 | --bs-darkgray-saturation: var(--bs-stone-saturation);
304 |
305 | /* Primary */
306 |
307 | --bs-primary-hue: var(--bs-sable-hue);
308 | --bs-primary-saturation: var(--bs-sable-saturation);
309 | --bs-primary-100-hsl: var(--bs-sable-100-hsl);
310 | --bs-primary-200-hsl: var(--bs-sable-200-hsl);
311 | --bs-primary-300-hsl: var(--bs-sable-300-hsl);
312 | --bs-primary-400-hsl: var(--bs-sable-400-hsl);
313 | --bs-primary-500-hsl: var(--bs-sable-500-hsl);
314 | --bs-primary-600-hsl: var(--bs-sable-600-hsl);
315 | --bs-primary-700-hsl: var(--bs-sable-700-hsl);
316 | --bs-primary-800-hsl: var(--bs-sable-800-hsl);
317 | --bs-primary-900-hsl: var(--bs-sable-900-hsl);
318 | --bs-primary-100: var(--bs-sable-100);
319 | --bs-primary-200: var(--bs-sable-200);
320 | --bs-primary-300: var(--bs-sable-300);
321 | --bs-primary-400: var(--bs-sable-400);
322 | --bs-primary-500: var(--bs-sable-500);
323 | --bs-primary-600: var(--bs-sable-600);
324 | --bs-primary-700: var(--bs-sable-700);
325 | --bs-primary-800: var(--bs-sable-800);
326 | --bs-primary-900: var(--bs-sable-900);
327 | --bs-primary-hsl: var(--bs-sable-hsl);
328 | --bs-primary: var(--bs-sable);
329 | --bs-primary-foreground-hsl: var(--bs-sable-foreground-hsl);
330 | --bs-primary-foreground: var(--bs-sable-foreground);
331 | --bs-primary-text-emphasis-hsl: var(--bs-sable-text-emphasis-hsl);
332 | --bs-primary-text-emphasis: var(--bs-sable-text-emphasis);
333 | --bs-primary-hover-bg: var(--bs-sable-hover-bg);
334 | --bs-primary-active-bg: var(--bs-sable-active-bg);
335 | --bs-primary-bg-subtle: var(--bs-sable-bg-subtle);
336 | --bs-primary-border-subtle: var(--bs-sable-border-subtle);
337 | --bs-primary-checkbox-svg: var(--bs-sable-checkbox-svg);
338 | --bs-primary-dash-svg: var(--bs-sable-dash-svg);
339 | --bs-primary-radio-svg: var(--bs-sable-radio-svg);
340 | --bs-primary-switch-svg: var(--bs-sable-switch-svg);
341 |
342 | /* Info */
343 |
344 | --bs-info-hue: var(--bs-sienna-hue);
345 | --bs-info-saturation: var(--bs-sienna-saturation);
346 | --bs-info-100-hsl: var(--bs-sienna-100-hsl);
347 | --bs-info-200-hsl: var(--bs-sienna-200-hsl);
348 | --bs-info-300-hsl: var(--bs-sienna-300-hsl);
349 | --bs-info-400-hsl: var(--bs-sienna-400-hsl);
350 | --bs-info-500-hsl: var(--bs-sienna-500-hsl);
351 | --bs-info-600-hsl: var(--bs-sienna-600-hsl);
352 | --bs-info-700-hsl: var(--bs-sienna-700-hsl);
353 | --bs-info-800-hsl: var(--bs-sienna-800-hsl);
354 | --bs-info-900-hsl: var(--bs-sienna-900-hsl);
355 | --bs-info-100: var(--bs-sienna-100);
356 | --bs-info-200: var(--bs-sienna-200);
357 | --bs-info-300: var(--bs-sienna-300);
358 | --bs-info-400: var(--bs-sienna-400);
359 | --bs-info-500: var(--bs-sienna-500);
360 | --bs-info-600: var(--bs-sienna-600);
361 | --bs-info-700: var(--bs-sienna-700);
362 | --bs-info-800: var(--bs-sienna-800);
363 | --bs-info-900: var(--bs-sienna-900);
364 | --bs-info-hsl: var(--bs-sienna-hsl);
365 | --bs-info: var(--bs-sienna);
366 | --bs-info-foreground-hsl: var(--bs-sienna-foreground-hsl);
367 | --bs-info-foreground: var(--bs-sienna-foreground);
368 | --bs-info-text-emphasis-hsl: var(--bs-sienna-text-emphasis-hsl);
369 | --bs-info-text-emphasis: var(--bs-sienna-text-emphasis);
370 | --bs-info-hover-bg: var(--bs-sienna-hover-bg);
371 | --bs-info-active-bg: var(--bs-sienna-active-bg);
372 | --bs-info-bg-subtle: var(--bs-sienna-bg-subtle);
373 | --bs-info-border-subtle: var(--bs-sienna-border-subtle);
374 | --bs-info-checkbox-svg: var(--bs-sienna-checkbox-svg);
375 | --bs-info-dash-svg: var(--bs-sienna-dash-svg);
376 | --bs-info-radio-svg: var(--bs-sienna-radio-svg);
377 | --bs-info-switch-svg: var(--bs-sienna-switch-svg);
378 | }
379 |
380 | [data-bs-core=elegant][data-bs-theme=dark] {
381 | /* Primary */
382 |
383 | --bs-primary-hue: var(--bs-lightgray-hue);
384 | --bs-primary-saturation: var(--bs-lightgray-saturation);
385 | --bs-primary-100-hsl: var(--bs-lightgray-100-hsl);
386 | --bs-primary-200-hsl: var(--bs-lightgray-200-hsl);
387 | --bs-primary-300-hsl: var(--bs-lightgray-300-hsl);
388 | --bs-primary-400-hsl: var(--bs-lightgray-400-hsl);
389 | --bs-primary-500-hsl: var(--bs-lightgray-500-hsl);
390 | --bs-primary-600-hsl: var(--bs-lightgray-600-hsl);
391 | --bs-primary-700-hsl: var(--bs-lightgray-700-hsl);
392 | --bs-primary-800-hsl: var(--bs-lightgray-800-hsl);
393 | --bs-primary-900-hsl: var(--bs-lightgray-900-hsl);
394 | --bs-primary-100: var(--bs-lightgray-100);
395 | --bs-primary-200: var(--bs-lightgray-200);
396 | --bs-primary-300: var(--bs-lightgray-300);
397 | --bs-primary-400: var(--bs-lightgray-400);
398 | --bs-primary-500: var(--bs-lightgray-500);
399 | --bs-primary-600: var(--bs-lightgray-600);
400 | --bs-primary-700: var(--bs-lightgray-700);
401 | --bs-primary-800: var(--bs-lightgray-800);
402 | --bs-primary-900: var(--bs-lightgray-900);
403 | --bs-primary-hsl: var(--bs-lightgray-hsl);
404 | --bs-primary: var(--bs-lightgray);
405 | --bs-primary-foreground-hsl: var(--bs-lightgray-foreground-hsl);
406 | --bs-primary-foreground: var(--bs-lightgray-foreground);
407 | --bs-primary-text-emphasis-hsl: var(--bs-lightgray-text-emphasis-hsl);
408 | --bs-primary-text-emphasis: var(--bs-lightgray-text-emphasis);
409 | --bs-primary-hover-bg: var(--bs-lightgray-hover-bg);
410 | --bs-primary-active-bg: var(--bs-lightgray-active-bg);
411 | --bs-primary-bg-subtle: var(--bs-lightgray-bg-subtle);
412 | --bs-primary-border-subtle: var(--bs-lightgray-border-subtle);
413 | --bs-primary-checkbox-svg: var(--bs-lightgray-checkbox-svg);
414 | --bs-primary-dash-svg: var(--bs-lightgray-dash-svg);
415 | --bs-primary-radio-svg: var(--bs-lightgray-radio-svg);
416 | --bs-primary-switch-svg: var(--bs-lightgray-switch-svg);
417 |
418 | /* Info */
419 |
420 | --bs-info-text-emphasis-hsl: var(--bs-sienna-text-emphasis-hsl);
421 | --bs-info-text-emphasis: var(--bs-sienna-text-emphasis);
422 | --bs-info-bg-subtle: var(--bs-sienna-bg-subtle);
423 | --bs-info-border-subtle: var(--bs-sienna-border-subtle);
424 | }
425 |
426 | /* Variables */
427 |
428 | [data-bs-core=elegant] {
429 | /* Font family */
430 |
431 | --bs-body-font-family: var(--bs-font-serif);
432 |
433 | /* Link */
434 |
435 | --bs-link-color-hsl: var(--bs-primary-text-emphasis-hsl);
436 | --bs-link-hover-color-hsl: var(--bs-primary-hsl);
437 |
438 | /* Content (used as needed in cards, panels, menus, etc.) */
439 |
440 | --bs-content-bg-hsl: var(--bs-body-bg-hsl);
441 | --bs-content-border-color: var(--bs-border-color);
442 |
443 | /* Form */
444 |
445 | --bs-form-focus-border-color: var(--bs-info-border-subtle);
446 | --bs-form-focus-shadow-hsl: var(--bs-info-hsl);
447 | --bs-form-check-focus-border-color: var(--bs-info-border-subtle);
448 | }
449 |
450 | [data-bs-core=elegant]:not([data-bs-theme=dark]) {
451 | /* Color */
452 |
453 | --bs-body-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 5%;
454 | --bs-secondary-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 30%;
455 | --bs-tertiary-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 55%;
456 |
457 | /* Background */
458 |
459 | --bs-body-bg-hsl: var(--bs-info-hue), var(--bs-info-saturation), 97.5%;
460 | --bs-secondary-bg-hsl: var(--bs-info-hue), var(--bs-info-saturation), 95%;
461 | --bs-tertiary-bg-hsl: var(--bs-info-hue), var(--bs-info-saturation), 92.5%;
462 |
463 | /* Border */
464 |
465 | --bs-border-color: var(--bs-lightgray-900);
466 |
467 | /* Action (used as needed in buttons, inputs, menu items, page links, etc.) */
468 |
469 | --bs-action-color: hsl(var(--bs-color-hue), var(--bs-color-saturation), 10%);
470 | --bs-action-bg: hsl(var(--bs-info-hue), var(--bs-info-saturation), 99%);
471 | --bs-action-border-color: var(--bs-border-color);
472 | --bs-action-hover-bg: hsl(var(--bs-info-hue), var(--bs-info-saturation), 94%);
473 | --bs-action-active-bg: hsl(var(--bs-info-hue), var(--bs-info-saturation), 89%);
474 | --bs-action-disabled-bg: hsl(var(--bs-info-hue), var(--bs-info-saturation), 89%);
475 | }
476 |
477 | [data-bs-core=elegant][data-bs-theme=dark] {
478 | /* Color */
479 |
480 | --bs-body-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 90%;
481 | --bs-secondary-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 65%;
482 | --bs-tertiary-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 40%;
483 |
484 | /* Action (used as needed in buttons, inputs, menu items, page links, etc.) */
485 |
486 | --bs-action-color: hsl(var(--bs-color-hue), var(--bs-color-saturation), 85%);
487 | --bs-action-border-color: var(--bs-border-color);
488 |
489 | /* Contextual buttons */
490 |
491 | --bs-ctx-btn-border-color: transparent;
492 | --bs-ctx-btn-bg-clip: border-box;
493 |
494 | /* Action bar (used as needed in range, progress, etc.) */
495 |
496 | --bs-actionbar-border-color: hsla(var(--bs-white-hsl), 0.075);
497 | --bs-progresstrack-border-width: 0;
498 | --bs-progresstrack-box-shadow: inset 0 0 0 var(--bs-border-width) var(--bs-actionbar-border-color);
499 | --bs-progresstrack-bg-clip: border-box;
500 | }
501 |
502 | /* Sidebar */
503 |
504 | [data-bs-core=elegant] .sidebar {
505 | --bs-sidebar-bg: var(--bs-secondary-bg);
506 | --bs-sidebar-border-width: 0;
507 | }
508 |
509 | [data-bs-core=elegant] .sidebar-nav .nav-link.active,
510 | [data-bs-core=elegant] .sidebar-nav .nav-link.show {
511 | padding-left: 0.75rem;
512 | background-color: hsla(var(--bs-emphasis-color-hsl), 0.05);
513 | border-left: var(--bs-border-width-2) solid var(--bs-info);
514 | }
515 |
--------------------------------------------------------------------------------
/css/cores/halfmoon.elegant.css:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * ----------------------------------------------------------------------------
4 | * Halfmoon CSS - Elegant theme
5 | * Copyright (c) 2023, Tahmid Khan | MIT License | https://www.gethalfmoon.com
6 | * ----------------------------------------------------------------------------
7 | * The above notice must be included in its entirety when this file is used.
8 | */
9 |
10 | /* Color palette */
11 |
12 | [data-bs-core=elegant] {
13 | /* Light gray */
14 |
15 | --bs-lightgray-hue: var(--bs-stone-hue);
16 | --bs-lightgray-saturation: var(--bs-stone-saturation);
17 |
18 | /* Dark gray */
19 |
20 | --bs-darkgray-hue: var(--bs-stone-hue);
21 | --bs-darkgray-saturation: var(--bs-stone-saturation);
22 |
23 | /* Primary */
24 |
25 | --bs-primary-hue: var(--bs-sable-hue);
26 | --bs-primary-saturation: var(--bs-sable-saturation);
27 | --bs-primary-100-hsl: var(--bs-sable-100-hsl);
28 | --bs-primary-200-hsl: var(--bs-sable-200-hsl);
29 | --bs-primary-300-hsl: var(--bs-sable-300-hsl);
30 | --bs-primary-400-hsl: var(--bs-sable-400-hsl);
31 | --bs-primary-500-hsl: var(--bs-sable-500-hsl);
32 | --bs-primary-600-hsl: var(--bs-sable-600-hsl);
33 | --bs-primary-700-hsl: var(--bs-sable-700-hsl);
34 | --bs-primary-800-hsl: var(--bs-sable-800-hsl);
35 | --bs-primary-900-hsl: var(--bs-sable-900-hsl);
36 | --bs-primary-100: var(--bs-sable-100);
37 | --bs-primary-200: var(--bs-sable-200);
38 | --bs-primary-300: var(--bs-sable-300);
39 | --bs-primary-400: var(--bs-sable-400);
40 | --bs-primary-500: var(--bs-sable-500);
41 | --bs-primary-600: var(--bs-sable-600);
42 | --bs-primary-700: var(--bs-sable-700);
43 | --bs-primary-800: var(--bs-sable-800);
44 | --bs-primary-900: var(--bs-sable-900);
45 | --bs-primary-hsl: var(--bs-sable-hsl);
46 | --bs-primary: var(--bs-sable);
47 | --bs-primary-foreground-hsl: var(--bs-sable-foreground-hsl);
48 | --bs-primary-foreground: var(--bs-sable-foreground);
49 | --bs-primary-text-emphasis-hsl: var(--bs-sable-text-emphasis-hsl);
50 | --bs-primary-text-emphasis: var(--bs-sable-text-emphasis);
51 | --bs-primary-hover-bg: var(--bs-sable-hover-bg);
52 | --bs-primary-active-bg: var(--bs-sable-active-bg);
53 | --bs-primary-bg-subtle: var(--bs-sable-bg-subtle);
54 | --bs-primary-border-subtle: var(--bs-sable-border-subtle);
55 | --bs-primary-checkbox-svg: var(--bs-sable-checkbox-svg);
56 | --bs-primary-dash-svg: var(--bs-sable-dash-svg);
57 | --bs-primary-radio-svg: var(--bs-sable-radio-svg);
58 | --bs-primary-switch-svg: var(--bs-sable-switch-svg);
59 |
60 | /* Info */
61 |
62 | --bs-info-hue: var(--bs-sienna-hue);
63 | --bs-info-saturation: var(--bs-sienna-saturation);
64 | --bs-info-100-hsl: var(--bs-sienna-100-hsl);
65 | --bs-info-200-hsl: var(--bs-sienna-200-hsl);
66 | --bs-info-300-hsl: var(--bs-sienna-300-hsl);
67 | --bs-info-400-hsl: var(--bs-sienna-400-hsl);
68 | --bs-info-500-hsl: var(--bs-sienna-500-hsl);
69 | --bs-info-600-hsl: var(--bs-sienna-600-hsl);
70 | --bs-info-700-hsl: var(--bs-sienna-700-hsl);
71 | --bs-info-800-hsl: var(--bs-sienna-800-hsl);
72 | --bs-info-900-hsl: var(--bs-sienna-900-hsl);
73 | --bs-info-100: var(--bs-sienna-100);
74 | --bs-info-200: var(--bs-sienna-200);
75 | --bs-info-300: var(--bs-sienna-300);
76 | --bs-info-400: var(--bs-sienna-400);
77 | --bs-info-500: var(--bs-sienna-500);
78 | --bs-info-600: var(--bs-sienna-600);
79 | --bs-info-700: var(--bs-sienna-700);
80 | --bs-info-800: var(--bs-sienna-800);
81 | --bs-info-900: var(--bs-sienna-900);
82 | --bs-info-hsl: var(--bs-sienna-hsl);
83 | --bs-info: var(--bs-sienna);
84 | --bs-info-foreground-hsl: var(--bs-sienna-foreground-hsl);
85 | --bs-info-foreground: var(--bs-sienna-foreground);
86 | --bs-info-text-emphasis-hsl: var(--bs-sienna-text-emphasis-hsl);
87 | --bs-info-text-emphasis: var(--bs-sienna-text-emphasis);
88 | --bs-info-hover-bg: var(--bs-sienna-hover-bg);
89 | --bs-info-active-bg: var(--bs-sienna-active-bg);
90 | --bs-info-bg-subtle: var(--bs-sienna-bg-subtle);
91 | --bs-info-border-subtle: var(--bs-sienna-border-subtle);
92 | --bs-info-checkbox-svg: var(--bs-sienna-checkbox-svg);
93 | --bs-info-dash-svg: var(--bs-sienna-dash-svg);
94 | --bs-info-radio-svg: var(--bs-sienna-radio-svg);
95 | --bs-info-switch-svg: var(--bs-sienna-switch-svg);
96 | }
97 |
98 | [data-bs-core=elegant][data-bs-theme=dark] {
99 | /* Primary */
100 |
101 | --bs-primary-hue: var(--bs-lightgray-hue);
102 | --bs-primary-saturation: var(--bs-lightgray-saturation);
103 | --bs-primary-100-hsl: var(--bs-lightgray-100-hsl);
104 | --bs-primary-200-hsl: var(--bs-lightgray-200-hsl);
105 | --bs-primary-300-hsl: var(--bs-lightgray-300-hsl);
106 | --bs-primary-400-hsl: var(--bs-lightgray-400-hsl);
107 | --bs-primary-500-hsl: var(--bs-lightgray-500-hsl);
108 | --bs-primary-600-hsl: var(--bs-lightgray-600-hsl);
109 | --bs-primary-700-hsl: var(--bs-lightgray-700-hsl);
110 | --bs-primary-800-hsl: var(--bs-lightgray-800-hsl);
111 | --bs-primary-900-hsl: var(--bs-lightgray-900-hsl);
112 | --bs-primary-100: var(--bs-lightgray-100);
113 | --bs-primary-200: var(--bs-lightgray-200);
114 | --bs-primary-300: var(--bs-lightgray-300);
115 | --bs-primary-400: var(--bs-lightgray-400);
116 | --bs-primary-500: var(--bs-lightgray-500);
117 | --bs-primary-600: var(--bs-lightgray-600);
118 | --bs-primary-700: var(--bs-lightgray-700);
119 | --bs-primary-800: var(--bs-lightgray-800);
120 | --bs-primary-900: var(--bs-lightgray-900);
121 | --bs-primary-hsl: var(--bs-lightgray-hsl);
122 | --bs-primary: var(--bs-lightgray);
123 | --bs-primary-foreground-hsl: var(--bs-lightgray-foreground-hsl);
124 | --bs-primary-foreground: var(--bs-lightgray-foreground);
125 | --bs-primary-text-emphasis-hsl: var(--bs-lightgray-text-emphasis-hsl);
126 | --bs-primary-text-emphasis: var(--bs-lightgray-text-emphasis);
127 | --bs-primary-hover-bg: var(--bs-lightgray-hover-bg);
128 | --bs-primary-active-bg: var(--bs-lightgray-active-bg);
129 | --bs-primary-bg-subtle: var(--bs-lightgray-bg-subtle);
130 | --bs-primary-border-subtle: var(--bs-lightgray-border-subtle);
131 | --bs-primary-checkbox-svg: var(--bs-lightgray-checkbox-svg);
132 | --bs-primary-dash-svg: var(--bs-lightgray-dash-svg);
133 | --bs-primary-radio-svg: var(--bs-lightgray-radio-svg);
134 | --bs-primary-switch-svg: var(--bs-lightgray-switch-svg);
135 |
136 | /* Info */
137 |
138 | --bs-info-text-emphasis-hsl: var(--bs-sienna-text-emphasis-hsl);
139 | --bs-info-text-emphasis: var(--bs-sienna-text-emphasis);
140 | --bs-info-bg-subtle: var(--bs-sienna-bg-subtle);
141 | --bs-info-border-subtle: var(--bs-sienna-border-subtle);
142 | }
143 |
144 | /* Variables */
145 |
146 | [data-bs-core=elegant] {
147 | /* Font family */
148 |
149 | --bs-body-font-family: var(--bs-font-serif);
150 |
151 | /* Link */
152 |
153 | --bs-link-color-hsl: var(--bs-primary-text-emphasis-hsl);
154 | --bs-link-hover-color-hsl: var(--bs-primary-hsl);
155 |
156 | /* Content (used as needed in cards, panels, menus, etc.) */
157 |
158 | --bs-content-bg-hsl: var(--bs-body-bg-hsl);
159 | --bs-content-border-color: var(--bs-border-color);
160 |
161 | /* Form */
162 |
163 | --bs-form-focus-border-color: var(--bs-info-border-subtle);
164 | --bs-form-focus-shadow-hsl: var(--bs-info-hsl);
165 | --bs-form-check-focus-border-color: var(--bs-info-border-subtle);
166 | }
167 |
168 | [data-bs-core=elegant]:not([data-bs-theme=dark]) {
169 | /* Color */
170 |
171 | --bs-body-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 5%;
172 | --bs-secondary-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 30%;
173 | --bs-tertiary-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 55%;
174 |
175 | /* Background */
176 |
177 | --bs-body-bg-hsl: var(--bs-info-hue), var(--bs-info-saturation), 97.5%;
178 | --bs-secondary-bg-hsl: var(--bs-info-hue), var(--bs-info-saturation), 95%;
179 | --bs-tertiary-bg-hsl: var(--bs-info-hue), var(--bs-info-saturation), 92.5%;
180 |
181 | /* Border */
182 |
183 | --bs-border-color: var(--bs-lightgray-900);
184 |
185 | /* Action (used as needed in buttons, inputs, menu items, page links, etc.) */
186 |
187 | --bs-action-color: hsl(var(--bs-color-hue), var(--bs-color-saturation), 10%);
188 | --bs-action-bg: hsl(var(--bs-info-hue), var(--bs-info-saturation), 99%);
189 | --bs-action-border-color: var(--bs-border-color);
190 | --bs-action-hover-bg: hsl(var(--bs-info-hue), var(--bs-info-saturation), 94%);
191 | --bs-action-active-bg: hsl(var(--bs-info-hue), var(--bs-info-saturation), 89%);
192 | --bs-action-disabled-bg: hsl(var(--bs-info-hue), var(--bs-info-saturation), 89%);
193 | }
194 |
195 | [data-bs-core=elegant][data-bs-theme=dark] {
196 | /* Color */
197 |
198 | --bs-body-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 90%;
199 | --bs-secondary-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 65%;
200 | --bs-tertiary-color-hsl: var(--bs-color-hue), var(--bs-color-saturation), 40%;
201 |
202 | /* Action (used as needed in buttons, inputs, menu items, page links, etc.) */
203 |
204 | --bs-action-color: hsl(var(--bs-color-hue), var(--bs-color-saturation), 85%);
205 | --bs-action-border-color: var(--bs-border-color);
206 |
207 | /* Contextual buttons */
208 |
209 | --bs-ctx-btn-border-color: transparent;
210 | --bs-ctx-btn-bg-clip: border-box;
211 |
212 | /* Action bar (used as needed in range, progress, etc.) */
213 |
214 | --bs-actionbar-border-color: hsla(var(--bs-white-hsl), 0.075);
215 | --bs-progresstrack-border-width: 0;
216 | --bs-progresstrack-box-shadow: inset 0 0 0 var(--bs-border-width) var(--bs-actionbar-border-color);
217 | --bs-progresstrack-bg-clip: border-box;
218 | }
219 |
220 | /* Sidebar */
221 |
222 | [data-bs-core=elegant] .sidebar {
223 | --bs-sidebar-bg: var(--bs-secondary-bg);
224 | --bs-sidebar-border-width: 0;
225 | }
226 |
227 | [data-bs-core=elegant] .sidebar-nav .nav-link.active,
228 | [data-bs-core=elegant] .sidebar-nav .nav-link.show {
229 | padding-left: 0.75rem;
230 | background-color: hsla(var(--bs-emphasis-color-hsl), 0.05);
231 | border-left: var(--bs-border-width-2) solid var(--bs-info);
232 | }
233 |
--------------------------------------------------------------------------------
/css/cores/halfmoon.modern.css:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * ----------------------------------------------------------------------------
4 | * Halfmoon CSS - Modern theme
5 | * Copyright (c) 2023, Tahmid Khan | MIT License | https://www.gethalfmoon.com
6 | * ----------------------------------------------------------------------------
7 | * The above notice must be included in its entirety when this file is used.
8 | */
9 |
10 | /* Color palette */
11 |
12 | [data-bs-core=modern] {
13 | /* Gray */
14 |
15 | --bs-slate-hue: 216;
16 | --bs-slate-saturation: 20%;
17 |
18 | /* Light gray */
19 |
20 | --bs-lightgray-hue: var(--bs-slate-hue);
21 | --bs-lightgray-saturation: var(--bs-slate-saturation);
22 |
23 | /* Sable (almost black) */
24 |
25 | --bs-sable-hue: var(--bs-darkgray-hue);
26 | --bs-sable-saturation: var(--bs-darkgray-saturation);
27 | --bs-sable-100-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 31%;
28 | --bs-sable-200-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 29%;
29 | --bs-sable-300-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 27%;
30 | --bs-sable-400-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 25%;
31 | --bs-sable-500-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 23%;
32 | --bs-sable-600-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 21%;
33 | --bs-sable-700-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 19%;
34 | --bs-sable-800-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 17%;
35 | --bs-sable-900-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 15%;
36 | --bs-sable-100: hsl(var(--bs-sable-100-hsl));
37 | --bs-sable-200: hsl(var(--bs-sable-200-hsl));
38 | --bs-sable-300: hsl(var(--bs-sable-300-hsl));
39 | --bs-sable-400: hsl(var(--bs-sable-400-hsl));
40 | --bs-sable-500: hsl(var(--bs-sable-500-hsl));
41 | --bs-sable-600: hsl(var(--bs-sable-600-hsl));
42 | --bs-sable-700: hsl(var(--bs-sable-700-hsl));
43 | --bs-sable-800: hsl(var(--bs-sable-800-hsl));
44 | --bs-sable-900: hsl(var(--bs-sable-900-hsl));
45 | --bs-sable-hsl: var(--bs-sable-500-hsl);
46 | --bs-sable: hsl(var(--bs-sable-hsl));
47 | --bs-sable-foreground-hsl: var(--bs-white-hsl);
48 | --bs-sable-foreground: hsl(var(--bs-sable-foreground-hsl));
49 | --bs-sable-text-emphasis-hsl: var(--bs-sable-600-hsl);
50 | --bs-sable-text-emphasis: hsl(var(--bs-sable-text-emphasis-hsl));
51 | --bs-sable-hover-bg: var(--bs-sable-600);
52 | --bs-sable-active-bg: var(--bs-sable-700);
53 | --bs-sable-bg-subtle: hsl(var(--bs-sable-hue), var(--bs-sable-saturation), 70%);
54 | --bs-sable-border-subtle: var(--bs-sable-400);
55 | --bs-sable-checkbox-svg: var(--bs-checkbox-svg-light);
56 | --bs-sable-dash-svg: var(--bs-dash-svg-light);
57 | --bs-sable-radio-svg: var(--bs-radio-svg-light);
58 | --bs-sable-switch-svg: var(--bs-switch-svg-light);
59 |
60 | /* Primary */
61 |
62 | --bs-primary-hue: var(--bs-navy-hue);
63 | --bs-primary-saturation: var(--bs-navy-saturation);
64 | --bs-primary-100-hsl: var(--bs-navy-100-hsl);
65 | --bs-primary-200-hsl: var(--bs-navy-200-hsl);
66 | --bs-primary-300-hsl: var(--bs-navy-300-hsl);
67 | --bs-primary-400-hsl: var(--bs-navy-400-hsl);
68 | --bs-primary-500-hsl: var(--bs-navy-500-hsl);
69 | --bs-primary-600-hsl: var(--bs-navy-600-hsl);
70 | --bs-primary-700-hsl: var(--bs-navy-700-hsl);
71 | --bs-primary-800-hsl: var(--bs-navy-800-hsl);
72 | --bs-primary-900-hsl: var(--bs-navy-900-hsl);
73 | --bs-primary-100: var(--bs-navy-100);
74 | --bs-primary-200: var(--bs-navy-200);
75 | --bs-primary-300: var(--bs-navy-300);
76 | --bs-primary-400: var(--bs-navy-400);
77 | --bs-primary-500: var(--bs-navy-500);
78 | --bs-primary-600: var(--bs-navy-600);
79 | --bs-primary-700: var(--bs-navy-700);
80 | --bs-primary-800: var(--bs-navy-800);
81 | --bs-primary-900: var(--bs-navy-900);
82 | --bs-primary-hsl: var(--bs-navy-hsl);
83 | --bs-primary: var(--bs-navy);
84 | --bs-primary-foreground-hsl: var(--bs-navy-foreground-hsl);
85 | --bs-primary-foreground: var(--bs-navy-foreground);
86 | --bs-primary-text-emphasis-hsl: var(--bs-navy-text-emphasis-hsl);
87 | --bs-primary-text-emphasis: var(--bs-navy-text-emphasis);
88 | --bs-primary-hover-bg: var(--bs-navy-hover-bg);
89 | --bs-primary-active-bg: var(--bs-navy-active-bg);
90 | --bs-primary-bg-subtle: var(--bs-navy-bg-subtle);
91 | --bs-primary-border-subtle: var(--bs-navy-border-subtle);
92 | --bs-primary-checkbox-svg: var(--bs-navy-checkbox-svg);
93 | --bs-primary-dash-svg: var(--bs-navy-dash-svg);
94 | --bs-primary-radio-svg: var(--bs-navy-radio-svg);
95 | --bs-primary-switch-svg: var(--bs-navy-switch-svg);
96 |
97 | /* Info */
98 |
99 | --bs-info-hue: var(--bs-blue-hue);
100 | --bs-info-saturation: var(--bs-blue-saturation);
101 | --bs-info-100-hsl: var(--bs-blue-100-hsl);
102 | --bs-info-200-hsl: var(--bs-blue-200-hsl);
103 | --bs-info-300-hsl: var(--bs-blue-300-hsl);
104 | --bs-info-400-hsl: var(--bs-blue-400-hsl);
105 | --bs-info-500-hsl: var(--bs-blue-500-hsl);
106 | --bs-info-600-hsl: var(--bs-blue-600-hsl);
107 | --bs-info-700-hsl: var(--bs-blue-700-hsl);
108 | --bs-info-800-hsl: var(--bs-blue-800-hsl);
109 | --bs-info-900-hsl: var(--bs-blue-900-hsl);
110 | --bs-info-100: var(--bs-blue-100);
111 | --bs-info-200: var(--bs-blue-200);
112 | --bs-info-300: var(--bs-blue-300);
113 | --bs-info-400: var(--bs-blue-400);
114 | --bs-info-500: var(--bs-blue-500);
115 | --bs-info-600: var(--bs-blue-600);
116 | --bs-info-700: var(--bs-blue-700);
117 | --bs-info-800: var(--bs-blue-800);
118 | --bs-info-900: var(--bs-blue-900);
119 | --bs-info-hsl: var(--bs-blue-hsl);
120 | --bs-info: var(--bs-blue);
121 | --bs-info-foreground-hsl: var(--bs-blue-foreground-hsl);
122 | --bs-info-foreground: var(--bs-blue-foreground);
123 | --bs-info-text-emphasis-hsl: var(--bs-blue-text-emphasis-hsl);
124 | --bs-info-text-emphasis: var(--bs-blue-text-emphasis);
125 | --bs-info-hover-bg: var(--bs-blue-hover-bg);
126 | --bs-info-active-bg: var(--bs-blue-active-bg);
127 | --bs-info-bg-subtle: var(--bs-blue-bg-subtle);
128 | --bs-info-border-subtle: var(--bs-blue-border-subtle);
129 | --bs-info-checkbox-svg: var(--bs-blue-checkbox-svg);
130 | --bs-info-dash-svg: var(--bs-blue-dash-svg);
131 | --bs-info-radio-svg: var(--bs-blue-radio-svg);
132 | --bs-info-switch-svg: var(--bs-blue-switch-svg);
133 | }
134 |
135 | [data-bs-core=modern][data-bs-theme=dark] {
136 | /* Dark gray */
137 |
138 | --bs-darkgray-text-emphasis-hsl: var(--bs-darkgray-200-hsl);
139 | --bs-darkgray-text-emphasis: hsl(var(--bs-darkgray-text-emphasis-hsl));
140 |
141 | /* Sable (black) */
142 |
143 | --bs-sable-text-emphasis-hsl: var(--bs-sable-400-hsl);
144 | --bs-sable-text-emphasis: hsl(var(--bs-sable-text-emphasis-hsl));
145 | --bs-sable-bg-subtle: hsl(var(--bs-sable-hue), var(--bs-sable-saturation), 14%);
146 | --bs-sable-border-subtle: var(--bs-sable-600);
147 |
148 | /* Blue */
149 |
150 | --bs-blue-text-emphasis-hsl: var(--bs-blue-300-hsl);
151 | --bs-blue-text-emphasis: hsl(var(--bs-blue-text-emphasis-hsl));
152 |
153 | /* Primary */
154 |
155 | --bs-primary-hue: var(--bs-sky-hue);
156 | --bs-primary-saturation: var(--bs-sky-saturation);
157 | --bs-primary-100-hsl: var(--bs-sky-100-hsl);
158 | --bs-primary-200-hsl: var(--bs-sky-200-hsl);
159 | --bs-primary-300-hsl: var(--bs-sky-300-hsl);
160 | --bs-primary-400-hsl: var(--bs-sky-400-hsl);
161 | --bs-primary-500-hsl: var(--bs-sky-500-hsl);
162 | --bs-primary-600-hsl: var(--bs-sky-600-hsl);
163 | --bs-primary-700-hsl: var(--bs-sky-700-hsl);
164 | --bs-primary-800-hsl: var(--bs-sky-800-hsl);
165 | --bs-primary-900-hsl: var(--bs-sky-900-hsl);
166 | --bs-primary-100: var(--bs-sky-100);
167 | --bs-primary-200: var(--bs-sky-200);
168 | --bs-primary-300: var(--bs-sky-300);
169 | --bs-primary-400: var(--bs-sky-400);
170 | --bs-primary-500: var(--bs-sky-500);
171 | --bs-primary-600: var(--bs-sky-600);
172 | --bs-primary-700: var(--bs-sky-700);
173 | --bs-primary-800: var(--bs-sky-800);
174 | --bs-primary-900: var(--bs-sky-900);
175 | --bs-primary-hsl: var(--bs-sky-hsl);
176 | --bs-primary: var(--bs-sky);
177 | --bs-primary-foreground-hsl: var(--bs-sky-foreground-hsl);
178 | --bs-primary-foreground: var(--bs-sky-foreground);
179 | --bs-primary-text-emphasis-hsl: var(--bs-sky-text-emphasis-hsl);
180 | --bs-primary-text-emphasis: var(--bs-sky-text-emphasis);
181 | --bs-primary-hover-bg: var(--bs-sky-hover-bg);
182 | --bs-primary-active-bg: var(--bs-sky-active-bg);
183 | --bs-primary-bg-subtle: var(--bs-sky-bg-subtle);
184 | --bs-primary-border-subtle: var(--bs-sky-border-subtle);
185 | --bs-primary-checkbox-svg: var(--bs-sky-checkbox-svg);
186 | --bs-primary-dash-svg: var(--bs-sky-dash-svg);
187 | --bs-primary-radio-svg: var(--bs-sky-radio-svg);
188 | --bs-primary-switch-svg: var(--bs-sky-switch-svg);
189 |
190 | /* Info */
191 |
192 | --bs-info-text-emphasis-hsl: var(--bs-blue-text-emphasis-hsl);
193 | --bs-info-text-emphasis: var(--bs-blue-text-emphasis);
194 | --bs-info-bg-subtle: var(--bs-blue-bg-subtle);
195 | --bs-info-border-subtle: var(--bs-blue-border-subtle);
196 | }
197 |
198 | /* Variables */
199 |
200 | [data-bs-core=modern] {
201 | /* Link */
202 |
203 | --bs-link-color-hsl: var(--bs-info-text-emphasis-hsl);
204 | --bs-link-hover-color-hsl: var(--bs-info-hsl);
205 |
206 | /* Content (used as needed in cards, panels, menus, etc.) */
207 |
208 | --bs-content-bg-hsl: var(--bs-body-bg-hsl);
209 | --bs-content-border-color: var(--bs-border-color);
210 |
211 | /* Form */
212 |
213 | --bs-form-focus-border-color: var(--bs-info-border-subtle);
214 | --bs-form-focus-shadow-hsl: var(--bs-info-hsl);
215 | --bs-form-check-focus-border-color: var(--bs-info-border-subtle);
216 | }
217 |
218 | [data-bs-core=modern]:not([data-bs-theme=dark]) {
219 | /* Background */
220 |
221 | --bs-body-bg-hsl: var(--bs-white-hsl);
222 | --bs-secondary-bg-hsl: var(--bs-lightgray-hue), var(--bs-lightgray-saturation), 98.75%;
223 | --bs-tertiary-bg-hsl: var(--bs-lightgray-hue), var(--bs-lightgray-saturation), 97.5%;
224 |
225 | /* Border */
226 |
227 | --bs-border-color: var(--bs-lightgray-700);
228 | --bs-border-color-light: var(--bs-lightgray-500);
229 | }
230 |
231 | [data-bs-core=modern][data-bs-theme=dark] {
232 | /* Background */
233 |
234 | --bs-body-bg-hsl: var(--bs-sable-900-hsl);
235 | --bs-secondary-bg-hsl: var(--bs-sable-800-hsl);
236 | --bs-tertiary-bg-hsl: var(--bs-sable-700-hsl);
237 |
238 | /* Border */
239 |
240 | --bs-border-color: var(--bs-gray-900);
241 |
242 | /* Content (used as needed in cards, panels, menus, etc.) */
243 |
244 | --bs-content-floating-bg-hsl: var(--bs-sable-hue), var(--bs-sable-saturation), 16.5%;
245 |
246 | /* Action (used as needed in buttons, inputs, menu items, page links, etc.) */
247 |
248 | --bs-action-border-color: var(--bs-border-color);
249 |
250 | /* Contextual buttons */
251 |
252 | --bs-ctx-btn-border-color: transparent;
253 | --bs-ctx-btn-bg-clip: border-box;
254 |
255 | /* Action bar (used as needed in range, progress, etc.) */
256 |
257 | --bs-actionbar-border-color: hsla(var(--bs-white-hsl), 0.075);
258 | --bs-progresstrack-border-width: 0;
259 | --bs-progresstrack-box-shadow: inset 0 0 0 var(--bs-border-width) var(--bs-actionbar-border-color);
260 | --bs-progresstrack-bg-clip: border-box;
261 | }
262 |
263 | /* Sidebar */
264 |
265 | [data-bs-core=modern] .sidebar {
266 | --bs-sidebar-item-padding-x: 1rem;
267 | --bs-sidebar-item-padding-y: 0.25rem;
268 | --bs-sidebar-header-font-weight: var(--bs-font-weight-bold);
269 | --bs-sidebar-divider-bg: var(--bs-sidebar-bg);
270 | }
271 |
272 | [data-bs-core=modern] .sidebar-nav .nav-link {
273 | border-left: var(--bs-border-width) solid var(--bs-border-color-light);
274 | }
275 |
276 | [data-bs-core=modern] .sidebar-nav .nav-link.active,
277 | [data-bs-core=modern] .sidebar-nav .nav-link.show {
278 | font-weight: var(--bs-font-weight-bold);
279 | border-color: currentColor;
280 | -webkit-font-smoothing: antialiased;
281 | -moz-osx-font-smoothing: grayscale;
282 | }
283 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "halfmoon",
3 | "version": "2.0.2",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "halfmoon",
9 | "version": "2.0.2",
10 | "license": "MIT",
11 | "dependencies": {
12 | "csso-cli": "^4.0.2",
13 | "rtlcss": "^4.3.0"
14 | }
15 | },
16 | "node_modules/ansi-colors": {
17 | "version": "4.1.3",
18 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
19 | "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
20 | "engines": {
21 | "node": ">=6"
22 | }
23 | },
24 | "node_modules/anymatch": {
25 | "version": "3.1.3",
26 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
27 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
28 | "dependencies": {
29 | "normalize-path": "^3.0.0",
30 | "picomatch": "^2.0.4"
31 | },
32 | "engines": {
33 | "node": ">= 8"
34 | }
35 | },
36 | "node_modules/binary-extensions": {
37 | "version": "2.3.0",
38 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
39 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
40 | "engines": {
41 | "node": ">=8"
42 | },
43 | "funding": {
44 | "url": "https://github.com/sponsors/sindresorhus"
45 | }
46 | },
47 | "node_modules/braces": {
48 | "version": "3.0.3",
49 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
50 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
51 | "dependencies": {
52 | "fill-range": "^7.1.1"
53 | },
54 | "engines": {
55 | "node": ">=8"
56 | }
57 | },
58 | "node_modules/chokidar": {
59 | "version": "3.6.0",
60 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
61 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
62 | "dependencies": {
63 | "anymatch": "~3.1.2",
64 | "braces": "~3.0.2",
65 | "glob-parent": "~5.1.2",
66 | "is-binary-path": "~2.1.0",
67 | "is-glob": "~4.0.1",
68 | "normalize-path": "~3.0.0",
69 | "readdirp": "~3.6.0"
70 | },
71 | "engines": {
72 | "node": ">= 8.10.0"
73 | },
74 | "funding": {
75 | "url": "https://paulmillr.com/funding/"
76 | },
77 | "optionalDependencies": {
78 | "fsevents": "~2.3.2"
79 | }
80 | },
81 | "node_modules/clap": {
82 | "version": "3.1.1",
83 | "resolved": "https://registry.npmjs.org/clap/-/clap-3.1.1.tgz",
84 | "integrity": "sha512-vp42956Ax06WwaaheYEqEOgXZ3VKJxgccZ0gJL0HpyiupkIS9RVJFo5eDU1BPeQAOqz+cclndZg4DCqG1sJReQ==",
85 | "dependencies": {
86 | "ansi-colors": "^4.1.1"
87 | },
88 | "engines": {
89 | "node": "^12.20.0 || ^14.13.0 || >=15.0.0",
90 | "npm": ">=7.0.0"
91 | }
92 | },
93 | "node_modules/css-tree": {
94 | "version": "2.2.1",
95 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
96 | "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
97 | "dependencies": {
98 | "mdn-data": "2.0.28",
99 | "source-map-js": "^1.0.1"
100 | },
101 | "engines": {
102 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
103 | "npm": ">=7.0.0"
104 | }
105 | },
106 | "node_modules/csso": {
107 | "version": "5.0.5",
108 | "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
109 | "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
110 | "dependencies": {
111 | "css-tree": "~2.2.0"
112 | },
113 | "engines": {
114 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
115 | "npm": ">=7.0.0"
116 | }
117 | },
118 | "node_modules/csso-cli": {
119 | "version": "4.0.2",
120 | "resolved": "https://registry.npmjs.org/csso-cli/-/csso-cli-4.0.2.tgz",
121 | "integrity": "sha512-p/VipA45w8EmS8Lv6wGtE+UdsbFlqUBGhL9FCTGKxd5dC07mtg3BbZaMzMh0X+oIl2JUGR/mPx5YzuNnTM2a3w==",
122 | "dependencies": {
123 | "chokidar": "^3.5.3",
124 | "clap": "^3.1.1",
125 | "csso": "^5.0.4",
126 | "source-map-js": "^1.0.2"
127 | },
128 | "bin": {
129 | "csso": "bin/csso"
130 | },
131 | "engines": {
132 | "node": ">=12.20.0"
133 | }
134 | },
135 | "node_modules/escalade": {
136 | "version": "3.2.0",
137 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
138 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
139 | "engines": {
140 | "node": ">=6"
141 | }
142 | },
143 | "node_modules/fill-range": {
144 | "version": "7.1.1",
145 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
146 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
147 | "dependencies": {
148 | "to-regex-range": "^5.0.1"
149 | },
150 | "engines": {
151 | "node": ">=8"
152 | }
153 | },
154 | "node_modules/fsevents": {
155 | "version": "2.3.3",
156 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
157 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
158 | "hasInstallScript": true,
159 | "optional": true,
160 | "os": [
161 | "darwin"
162 | ],
163 | "engines": {
164 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
165 | }
166 | },
167 | "node_modules/glob-parent": {
168 | "version": "5.1.2",
169 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
170 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
171 | "dependencies": {
172 | "is-glob": "^4.0.1"
173 | },
174 | "engines": {
175 | "node": ">= 6"
176 | }
177 | },
178 | "node_modules/is-binary-path": {
179 | "version": "2.1.0",
180 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
181 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
182 | "dependencies": {
183 | "binary-extensions": "^2.0.0"
184 | },
185 | "engines": {
186 | "node": ">=8"
187 | }
188 | },
189 | "node_modules/is-extglob": {
190 | "version": "2.1.1",
191 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
192 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
193 | "engines": {
194 | "node": ">=0.10.0"
195 | }
196 | },
197 | "node_modules/is-glob": {
198 | "version": "4.0.3",
199 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
200 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
201 | "dependencies": {
202 | "is-extglob": "^2.1.1"
203 | },
204 | "engines": {
205 | "node": ">=0.10.0"
206 | }
207 | },
208 | "node_modules/is-number": {
209 | "version": "7.0.0",
210 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
211 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
212 | "engines": {
213 | "node": ">=0.12.0"
214 | }
215 | },
216 | "node_modules/mdn-data": {
217 | "version": "2.0.28",
218 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
219 | "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="
220 | },
221 | "node_modules/nanoid": {
222 | "version": "3.3.7",
223 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
224 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
225 | "funding": [
226 | {
227 | "type": "github",
228 | "url": "https://github.com/sponsors/ai"
229 | }
230 | ],
231 | "bin": {
232 | "nanoid": "bin/nanoid.cjs"
233 | },
234 | "engines": {
235 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
236 | }
237 | },
238 | "node_modules/normalize-path": {
239 | "version": "3.0.0",
240 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
241 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
242 | "engines": {
243 | "node": ">=0.10.0"
244 | }
245 | },
246 | "node_modules/picocolors": {
247 | "version": "1.1.0",
248 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
249 | "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw=="
250 | },
251 | "node_modules/picomatch": {
252 | "version": "2.3.1",
253 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
254 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
255 | "engines": {
256 | "node": ">=8.6"
257 | },
258 | "funding": {
259 | "url": "https://github.com/sponsors/jonschlinkert"
260 | }
261 | },
262 | "node_modules/postcss": {
263 | "version": "8.4.44",
264 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.44.tgz",
265 | "integrity": "sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==",
266 | "funding": [
267 | {
268 | "type": "opencollective",
269 | "url": "https://opencollective.com/postcss/"
270 | },
271 | {
272 | "type": "tidelift",
273 | "url": "https://tidelift.com/funding/github/npm/postcss"
274 | },
275 | {
276 | "type": "github",
277 | "url": "https://github.com/sponsors/ai"
278 | }
279 | ],
280 | "dependencies": {
281 | "nanoid": "^3.3.7",
282 | "picocolors": "^1.0.1",
283 | "source-map-js": "^1.2.0"
284 | },
285 | "engines": {
286 | "node": "^10 || ^12 || >=14"
287 | }
288 | },
289 | "node_modules/readdirp": {
290 | "version": "3.6.0",
291 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
292 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
293 | "dependencies": {
294 | "picomatch": "^2.2.1"
295 | },
296 | "engines": {
297 | "node": ">=8.10.0"
298 | }
299 | },
300 | "node_modules/rtlcss": {
301 | "version": "4.3.0",
302 | "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz",
303 | "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==",
304 | "dependencies": {
305 | "escalade": "^3.1.1",
306 | "picocolors": "^1.0.0",
307 | "postcss": "^8.4.21",
308 | "strip-json-comments": "^3.1.1"
309 | },
310 | "bin": {
311 | "rtlcss": "bin/rtlcss.js"
312 | },
313 | "engines": {
314 | "node": ">=12.0.0"
315 | }
316 | },
317 | "node_modules/source-map-js": {
318 | "version": "1.2.0",
319 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
320 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
321 | "engines": {
322 | "node": ">=0.10.0"
323 | }
324 | },
325 | "node_modules/strip-json-comments": {
326 | "version": "3.1.1",
327 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
328 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
329 | "engines": {
330 | "node": ">=8"
331 | },
332 | "funding": {
333 | "url": "https://github.com/sponsors/sindresorhus"
334 | }
335 | },
336 | "node_modules/to-regex-range": {
337 | "version": "5.0.1",
338 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
339 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
340 | "dependencies": {
341 | "is-number": "^7.0.0"
342 | },
343 | "engines": {
344 | "node": ">=8.0"
345 | }
346 | }
347 | }
348 | }
349 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "halfmoon",
3 | "version": "2.0.2",
4 | "description": "Drop-in Bootstrap replacement, fully customizable with CSS variables.",
5 | "main": "css/halfmoon.min.css",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "build": "rtlcss css/halfmoon.css css/halfmoon.rtl.css && csso css/halfmoon.css --output css/halfmoon.min.css --source-map file && csso css/halfmoon.rtl.css --output css/halfmoon.rtl.min.css --source-map file && cat css/cores/halfmoon.modern.css css/cores/halfmoon.elegant.css > css/cores/halfmoon.cores.css"
9 | },
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/halfmoonui/halfmoon.git"
13 | },
14 | "keywords": [
15 | "halfmoon",
16 | "css",
17 | "bootstrap",
18 | "dark-theme",
19 | "dark-mode",
20 | "dashboard",
21 | "web-framework",
22 | "css-framework",
23 | "css-variables",
24 | "css-custom-properties"
25 | ],
26 | "author": "Tahmid Khan",
27 | "license": "MIT",
28 | "bugs": {
29 | "url": "https://github.com/halfmoonui/halfmoon/issues"
30 | },
31 | "homepage": "https://www.gethalfmoon.com",
32 | "dependencies": {
33 | "csso-cli": "^4.0.2",
34 | "rtlcss": "^4.3.0"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------