jekyll-theme-zer0 0.21.2 → 0.22.5

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 (110) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +103 -0
  3. data/README.md +86 -46
  4. data/_data/authors.yml +12 -3
  5. data/_data/features.yml +1 -1
  6. data/_data/glossary.yml +101 -0
  7. data/_data/navigation/docs.yml +12 -0
  8. data/_data/navigation/home.yml +2 -2
  9. data/_data/navigation/main.yml +2 -8
  10. data/_data/prompts.yml +184 -0
  11. data/_includes/components/author-eeat.html +133 -0
  12. data/_includes/components/cookie-consent.html +9 -9
  13. data/_includes/components/dev-shortcuts.html +36 -27
  14. data/_includes/components/env-detect.html +14 -0
  15. data/_includes/components/env-switcher.html +38 -16
  16. data/_includes/components/halfmoon.html +31 -20
  17. data/_includes/components/info-section.html +4 -3
  18. data/_includes/components/js-cdn.html +8 -15
  19. data/_includes/components/mermaid.html +13 -9
  20. data/_includes/components/powered-by.html +5 -3
  21. data/_includes/content/intro.html +64 -4
  22. data/_includes/content/jsonld-faq.html +47 -0
  23. data/_includes/content/jsonld-software.html +121 -0
  24. data/_includes/content/sitemap.html +2 -2
  25. data/_includes/core/branding.html +9 -7
  26. data/_includes/core/footer.html +12 -9
  27. data/_includes/core/head.html +17 -14
  28. data/_includes/core/header.html +33 -21
  29. data/_includes/navigation/navbar.html +130 -124
  30. data/_includes/navigation/sidebar-left.html +3 -3
  31. data/_includes/navigation/sidebar-right.html +4 -8
  32. data/_includes/search-data.json +1 -2
  33. data/_layouts/landing.html +30 -11
  34. data/_layouts/root.html +4 -4
  35. data/_layouts/sitemap-collection.html +20 -10
  36. data/_sass/core/_docs-layout.scss +756 -0
  37. data/_sass/core/_navbar.scss +522 -69
  38. data/_sass/core/_offcanvas-panels.scss +48 -0
  39. data/_sass/core/_syntax.scss +1 -51
  40. data/_sass/core/_theme.scss +2 -249
  41. data/_sass/core/_variables.scss +1 -54
  42. data/_sass/core/code-copy.scss +6 -6
  43. data/_sass/custom.scss +141 -133
  44. data/_sass/theme/_color-modes.scss +3 -0
  45. data/_sass/theme/_css-variables.scss +29 -0
  46. data/_sass/theme/_wizard-mode.scss +31 -0
  47. data/assets/css/custom.css +5 -120
  48. data/assets/css/main.scss +6 -2
  49. data/assets/css/stats.css +3 -0
  50. data/assets/css/theme-npm-entry.scss +6 -0
  51. data/assets/css/vendor/.gitkeep +0 -0
  52. data/assets/images/authors/bamr87.png +0 -0
  53. data/assets/js/auto-hide-nav.js +71 -20
  54. data/assets/js/color-modes.js +8 -2
  55. data/assets/js/halfmoon.js +8 -2
  56. data/assets/js/myScript.js +4 -12
  57. data/assets/js/navigation.js +174 -19
  58. data/assets/js/search-modal.js +50 -7
  59. data/assets/js/ui-enhancements.js +13 -0
  60. data/assets/vendor/bootstrap/css/bootstrap.min.css +5 -0
  61. data/assets/vendor/bootstrap/js/bootstrap.bundle.min.js +6 -0
  62. data/assets/vendor/bootstrap-icons/font/bootstrap-icons.css +2018 -0
  63. data/assets/vendor/bootstrap-icons/font/fonts/bootstrap-icons.woff +0 -0
  64. data/assets/vendor/bootstrap-icons/font/fonts/bootstrap-icons.woff2 +0 -0
  65. data/assets/vendor/font-awesome/css/all.min.css +9 -0
  66. data/assets/vendor/font-awesome/webfonts/fa-brands-400.ttf +0 -0
  67. data/assets/vendor/font-awesome/webfonts/fa-brands-400.woff2 +0 -0
  68. data/assets/vendor/font-awesome/webfonts/fa-regular-400.ttf +0 -0
  69. data/assets/vendor/font-awesome/webfonts/fa-regular-400.woff2 +0 -0
  70. data/assets/vendor/font-awesome/webfonts/fa-solid-900.ttf +0 -0
  71. data/assets/vendor/font-awesome/webfonts/fa-solid-900.woff2 +0 -0
  72. data/assets/vendor/font-awesome/webfonts/fa-v4compatibility.ttf +0 -0
  73. data/assets/vendor/font-awesome/webfonts/fa-v4compatibility.woff2 +0 -0
  74. data/assets/vendor/github-calendar/github-calendar-responsive.css +231 -0
  75. data/assets/vendor/github-calendar/github-calendar.min.js +240 -0
  76. data/assets/vendor/jquery/jquery-3.7.1.min.js +2 -0
  77. data/assets/vendor/mathjax/es5/adaptors/liteDOM.js +1 -0
  78. data/assets/vendor/mathjax/es5/core.js +1 -0
  79. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  80. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  81. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  82. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  83. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  84. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  85. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  86. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  87. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  88. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  89. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  90. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  91. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  92. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  93. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  94. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  95. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  96. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  97. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  98. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  99. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  100. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  101. data/assets/vendor/mathjax/es5/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  102. data/assets/vendor/mathjax/es5/startup.js +1 -0
  103. data/assets/vendor/mathjax/es5/tex-mml-chtml.js +1 -0
  104. data/assets/vendor/mermaid/mermaid.min.js +2029 -0
  105. data/scripts/bin/build +12 -2
  106. data/scripts/lib/version.sh +41 -0
  107. data/scripts/test/integration/mermaid +1 -1
  108. data/scripts/vendor-install.sh +196 -0
  109. metadata +62 -3
  110. data/_sass/core/_docs.scss +0 -3219
data/_sass/custom.scss CHANGED
@@ -10,6 +10,7 @@
10
10
 
11
11
  // Import navbar styles (extracted from navbar.html)
12
12
  @import "core/navbar";
13
+ @import "core/offcanvas-panels";
13
14
 
14
15
  html, body {
15
16
  max-width: 100%;
@@ -34,6 +35,28 @@ html, body {
34
35
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, .35), inset 0 -1px 0 rgba(0, 0, 0, .15);
35
36
  }
36
37
 
38
+ // Vendored Bootstrap build may omit vh utilities; landing hero uses this for stable min height
39
+ .min-vh-50 {
40
+ min-height: 50vh;
41
+ }
42
+
43
+ // Landing layout: stable hero media slot (ratio) + no reliance on scroll script for first paint
44
+ .landing-hero {
45
+ .landing-hero-media {
46
+ max-width: min(100%, 28rem);
47
+ }
48
+
49
+ .landing-hero-media.ratio > img {
50
+ object-position: center;
51
+ }
52
+ }
53
+
54
+ @media (prefers-reduced-motion: reduce) {
55
+ .landing-hero .landing-hero-media {
56
+ transition: none;
57
+ }
58
+ }
59
+
37
60
  #TableOfContents {
38
61
  overflow: hidden;
39
62
  text-overflow: ellipsis;
@@ -113,7 +136,7 @@ html, body {
113
136
  }
114
137
 
115
138
 
116
- // Sidebar classes consolidated in _sass/core/_docs.scss for consistency
139
+ // Sidebar / docs layout: _sass/core/_docs-layout.scss
117
140
 
118
141
  // ==============================================================================
119
142
  // SIDEBAR & TOC ENHANCEMENTS
@@ -134,12 +157,24 @@ html, body {
134
157
 
135
158
  // Mobile FAB positioning (TOC button above back-to-top)
136
159
  .bd-toc-fab {
137
- // On mobile, ensure proper spacing above back-to-top button
160
+ right: 20px;
161
+ z-index: 1030;
162
+
138
163
  @media (max-width: 991.98px) {
139
164
  bottom: 90px !important; // 20px (back-to-top) + 56px (button height) + 14px (spacing)
140
165
  }
141
166
  }
142
167
 
168
+ .bd-toc-fab .bd-toc-toggle {
169
+ width: 56px;
170
+ height: 56px;
171
+ }
172
+
173
+ // Cookie banner: above fixed navbar (1030), below offcanvas (1045) so drawers cover it
174
+ .cookie-consent-banner {
175
+ z-index: 1036;
176
+ }
177
+
143
178
  // Active TOC link highlighting
144
179
  .bd-toc nav a.active {
145
180
  font-weight: 600;
@@ -180,7 +215,7 @@ html {
180
215
  z-index: 1020; /* Below TOC button (1030) but above other content */
181
216
  border: none; /* Remove borders */
182
217
  outline: none; /* Remove outline */
183
- background-color: $primary; /* Set a background color */
218
+ background-color: var(--bs-primary); /* Match Bootstrap theme primary */
184
219
  color: inherit; /* Text color */
185
220
  opacity: 25%;
186
221
  cursor: pointer; /* Add a mouse pointer on hover */
@@ -220,6 +255,21 @@ img {
220
255
  height: auto;
221
256
  }
222
257
 
258
+ // Navbar logo: global img { max-width: 100% } shrinks it inside tight flex/grid cells on small viewports
259
+ // (Use a.navbar-brand only — div.navbar-brand.site-title should still shrink/truncate.)
260
+ #navbar a.navbar-brand {
261
+ flex-shrink: 0;
262
+ }
263
+ #navbar .navbar-brand img {
264
+ width: 30px;
265
+ height: 30px;
266
+ min-width: 30px;
267
+ min-height: 30px;
268
+ max-width: none;
269
+ object-fit: contain;
270
+ flex-shrink: 0;
271
+ }
272
+
223
273
  // ============================================
224
274
  // NAVBAR - Fixed positioning with auto-hide
225
275
  // ============================================
@@ -234,6 +284,12 @@ img {
234
284
  background-color: var(--bs-body-bg);
235
285
  }
236
286
 
287
+ // Keep the outer Bootstrap navbar shell on one row (nanobar + nav); avoids rare wrap on wide pages
288
+ #navbar > .navbar.navbar-expand-lg {
289
+ flex-wrap: nowrap !important;
290
+ align-items: center;
291
+ }
292
+
237
293
  #navbar .navbar-main {
238
294
  align-items: center;
239
295
  }
@@ -249,6 +305,83 @@ img {
249
305
  gap: 0.25rem;
250
306
  }
251
307
 
308
+ // Desktop (lg+): 3-column grid — [brand/title | main nav | utilities] so nav cannot paint over Search/Settings
309
+ @media (min-width: 992px) {
310
+ #navbar .navbar-main {
311
+ display: grid !important;
312
+ grid-template-columns: auto minmax(0, 1fr) auto;
313
+ align-items: center;
314
+ column-gap: 0.5rem;
315
+ row-gap: 0.25rem;
316
+ flex-wrap: unset !important;
317
+ }
318
+
319
+ #navbar .navbar-main-start {
320
+ grid-column: 1;
321
+ min-width: 0;
322
+ max-width: 100%;
323
+ }
324
+
325
+ #navbar #bdNavbar {
326
+ grid-column: 2;
327
+ width: 100%;
328
+ max-width: 100%;
329
+ min-width: 0;
330
+ }
331
+
332
+ #navbar .navbar-utility-controls {
333
+ grid-column: 3;
334
+ justify-self: end;
335
+ flex-shrink: 1;
336
+ min-width: 0;
337
+ max-width: 100%;
338
+ display: inline-flex;
339
+ flex-wrap: nowrap;
340
+ align-items: center;
341
+ gap: 0.25rem;
342
+ padding-left: 0.25rem;
343
+ }
344
+
345
+ #navbar .navbar-utility-controls .nav-search-button,
346
+ #navbar .navbar-utility-controls .nav-settings-button {
347
+ flex: 0 1 auto;
348
+ min-width: 0;
349
+ padding-left: 0.5rem;
350
+ padding-right: 0.5rem;
351
+ }
352
+
353
+ // Brand + title column yields when the bar is crowded
354
+ #navbar .navbar-brand-group,
355
+ #navbar .site-title,
356
+ #navbar .site-subtitle {
357
+ flex-shrink: 1;
358
+ min-width: 0;
359
+ }
360
+
361
+ #navbar .site-title .site-title-text {
362
+ max-width: min(14rem, 20vw);
363
+ overflow: hidden;
364
+ text-overflow: ellipsis;
365
+ white-space: nowrap;
366
+ vertical-align: bottom;
367
+ }
368
+
369
+ @media (min-width: 1200px) {
370
+ #navbar .site-title .site-title-text {
371
+ max-width: min(20rem, 28vw);
372
+ }
373
+ }
374
+
375
+ #navbar .site-subtitle .site-subtitle-text {
376
+ max-width: min(10rem, 14vw);
377
+ overflow: hidden;
378
+ text-overflow: ellipsis;
379
+ white-space: nowrap;
380
+ display: inline-block;
381
+ vertical-align: bottom;
382
+ }
383
+ }
384
+
252
385
  // Hidden state - slides up out of view
253
386
  // Using higher specificity to override Bootstrap's fixed-top
254
387
  #navbar.navbar-hidden {
@@ -279,18 +412,17 @@ img {
279
412
 
280
413
  #navbar .site-title .nav-link {
281
414
  padding: 0;
415
+ min-height: 2.5rem;
416
+ align-items: center;
282
417
  }
283
418
 
419
+ // Cap width so title doesn’t crowd toggles; full hide only via @container nav-brand-start
284
420
  #navbar .site-title-text {
285
- max-width: 45vw;
421
+ max-width: min(12rem, 38vw);
286
422
  white-space: nowrap;
287
423
  overflow: hidden;
288
424
  text-overflow: ellipsis;
289
- }
290
-
291
- #navbar .navbar-brand img {
292
- width: 28px;
293
- height: 28px;
425
+ vertical-align: middle;
294
426
  }
295
427
 
296
428
  #navbar .navbar-toggler {
@@ -329,130 +461,6 @@ img {
329
461
  border-color: var(--bs-border-color-translucent);
330
462
  }
331
463
 
332
- $enable-cssgrid: true;
333
- $enable-grid-classes: false;
334
-
335
- // #box {
336
- // background:url('data:image/gif;base64,R0lGODlhBgAGAIAAAO7u7t7e3iH5BAAAAAAALAAAAAAGAAYAAAIKhIOXgKGuDIOzAAA7') #eeeff1;
337
- // }
338
-
339
- // body {font-size:12px; background:#ffe;}
340
- // body,
341
- // textarea {text-align:center; font-family:arial;}
342
-
343
- // input {}
344
- // input[type='number'],
345
- // input[type='color'] {width:5em;}
346
- // input[type='number'] {padding:0.25em; text-align:right;}
347
- // select {width:9em; font-size:11px; padding:0.25em 0.2em;}
348
- // option {padding:0.25em 0.2em;}
349
- // textarea {resize:none; padding:2.5em; color:#358; background:#eef2f4; font-size:2em; border:0; width:100%;}
350
-
351
-
352
-
353
- // #set {user-select:none; background:#fff; overflow:hidden;}
354
- // #set table {border-collapse:collapse; padding:2em; font-size:11px; text-transform:uppercase; margin:2em auto;}
355
- // #set th,
356
- // #set td {padding:0.4em 0.5em;}
357
- // #set th {text-align:right; color:#567;}
358
- // #set td {text-align:left;}
359
-
360
-
361
- // /* res beautifier */
362
- // #res {color:#789; padding:2em; text-align:left; font-family:'Lucida Console', Monaco, monospace;}
363
- // #res b {font-weight:normal;}
364
- // #res i {font-style:normal;}
365
- // #res .obj {color:#789;}
366
- // #res .obj b {color:#345; font-weight:bold;}
367
- // #res .key {color:#45a;}
368
- // #res .num {color:#12a;}
369
- // #res .txt {color:#9ab;}
370
- // #res .txt i {color:#384;}
371
- // #res .clr {color:#9ab;}
372
- // #res .clr i {color:#731;}
373
- // #res a {color:#67a;}
374
- // #res a:hover {color:#67e;}
375
-
376
-
377
- // #box {overflow:hidden; position:relative; height:300px; padding:3em;}
378
- // #box svg {display:block; position:absolute; right:50%; bottom:50%; transform:translate( 50%, 50%); cursor:pointer;}
379
- // #box svg {max-width:100%; max-height:100%;}
380
-
381
-
382
- // /* minimized options for small screen */
383
- // .opt {display:block; padding:1em; background:#0ae; color:#fff; text-decoration:none;}
384
- // .opt:hover {background:#0af;}
385
-
386
- // #op2.opt {background:#ea0;}
387
- // #op2.opt:hover {background:#fa0;}
388
-
389
- // #set table,
390
- // #set .legend,
391
- // #set #op2.opt,
392
- // #set.show #op1.opt {display:none;}
393
-
394
- // #set.show table {display:table;}
395
- // #set.show #op2.opt {display:block;}
396
-
397
- // @media (min-width: 620px) {
398
-
399
- // html,
400
- // body,
401
- // #box,
402
- // #set,
403
- // #txt,
404
- // #msg,
405
- // #hnt {display:block; position:absolute; top:0; right:0; left:0; bottom:0;}
406
-
407
- // html,
408
- // body {overflow:hidden;}
409
- // #box {height:auto;}
410
-
411
- // #txt,
412
- // #hnt {height:250px; top:auto; border-top:3px #eee solid;}
413
-
414
- // #set,
415
- // #hnt {width:270px; left:auto;}
416
- // #set table {font-size:10px;}
417
-
418
- // #box,
419
- // #txt {right:270px}
420
-
421
- // #box,
422
- // #set {bottom:250px;}
423
-
424
- // #hnt {overflow:auto;}
425
- // #msg {width:100%; height:100%;}
426
-
427
- // #set {overflow-y:auto;}
428
- // #set .legend {display:block;}
429
- // #set table {display:table;}
430
- // #set .opt {display:none !important;}
431
- // }
432
-
433
- // @media (min-width:900px) {
434
-
435
- // #set,
436
- // #hnt {width:30%}
437
- // #box,
438
- // #txt {right:30%}
439
- // }
440
-
441
- // @media (min-width:1024px) {
442
-
443
- // #set table {font-size:11px;}
444
- // }
445
-
446
- // @media (min-width:1600px) {
447
-
448
- // #set,
449
- // #hnt {width:480px}
450
- // #box,
451
- // #txt {right:480px}
452
- // }
453
-
454
- // .legend {padding:1.5em 0.5em; border-bottom:1px #eee solid;}
455
-
456
464
  .nested-list-group {
457
465
  display: none;
458
466
  }
@@ -0,0 +1,3 @@
1
+ // Barrel: wizard Sass/CSS overrides, then shared --bd-* tokens.
2
+ @import "theme/wizard-mode";
3
+ @import "theme/css-variables";
@@ -0,0 +1,29 @@
1
+ // Docs-layout and light/dark accent tokens (--bd-*). Consumed by CDN Bootstrap + _docs-layout.scss.
2
+ // Wizard palette lives in _wizard-mode.scss.
3
+
4
+ :root,
5
+ [data-bs-theme="light"] {
6
+ --bd-purple: #4c0bce;
7
+ --bd-violet: #712cf9;
8
+ --bd-accent: #ffe484;
9
+ --bd-violet-rgb: 112.520718, 44.062154, 249.437846;
10
+ --bd-accent-rgb: 255, 228, 132;
11
+ --bd-pink-rgb: 214, 51, 132;
12
+ --bd-teal-rgb: 32, 201, 151;
13
+ --bd-violet-bg: var(--bd-violet);
14
+ --bd-toc-color: var(--bd-violet);
15
+ --bd-sidebar-link-bg: rgba(var(--bd-violet-rgb), 0.1);
16
+ --bd-callout-link: 10, 88, 202;
17
+ --bd-callout-code-color: #ab296a;
18
+ --bd-pre-bg: var(--bs-tertiary-bg);
19
+ }
20
+
21
+ [data-bs-theme="dark"] {
22
+ --bd-violet: #9461fb;
23
+ --bd-violet-bg: #712cf9;
24
+ --bd-toc-color: var(--bs-emphasis-color);
25
+ --bd-sidebar-link-bg: rgba(84, 33, 187, 0.5);
26
+ --bd-callout-link: 110, 168, 254;
27
+ --bd-callout-code-color: #e685b5;
28
+ --bd-pre-bg: #1b1f22;
29
+ }
@@ -0,0 +1,31 @@
1
+ // Wizard color mode — Sass-backed overrides for [data-bs-theme="wizard"].
2
+ // Depends on gray/white/blue maps from core/_variables.scss (imported before this file).
3
+
4
+ $blue-400: #073781;
5
+ $blue-500: #073781;
6
+ $blue-600: #346182;
7
+ $blue-700: #346182;
8
+
9
+ [data-bs-theme="wizard"] {
10
+ --bs-body-color: var(--bs-white);
11
+ --bs-body-color-rgb: #{to-rgb($white)};
12
+ --bs-body-bg: var(--bs-blue);
13
+ --bs-body-bg-rgb: #{to-rgb($blue)};
14
+ --bs-tertiary-bg: #{$blue-600};
15
+
16
+ .dropdown-menu {
17
+ --bs-dropdown-bg: #{mix($blue-500, $blue-600)};
18
+ --bs-dropdown-link-active-bg: #{$blue-700};
19
+ }
20
+
21
+ .btn-secondary {
22
+ --bs-btn-bg: #{mix($gray-600, $blue-400, 0.5)};
23
+ --bs-btn-border-color: #{rgba($white, 0.25)};
24
+ --bs-btn-hover-bg: #{darken(mix($gray-600, $blue-400, 0.5), 5%)};
25
+ --bs-btn-hover-border-color: #{rgba($white, 0.25)};
26
+ --bs-btn-active-bg: #{darken(mix($gray-600, $blue-400, 0.5), 10%)};
27
+ --bs-btn-active-border-color: #{rgba($white, 0.5)};
28
+ --bs-btn-focus-border-color: #{rgba($white, 0.5)};
29
+ --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.2);
30
+ }
31
+ }
@@ -1,120 +1,5 @@
1
- -------------------------------------------------------------------------------------------------------------------
2
- /* Customize theme
3
- /* ------------------------------------------------------------------------------------------------------------------- */
4
-
5
- /* Remove padding so particles fill screen */
6
- .masthead {
7
- padding-top: 0rem;
8
- padding-bottom: 0rem;
9
- }
10
-
11
- /* Add background and shadow to navbar when scrolling */
12
- #mainNav.navbar-shrink {
13
- background-color: white;
14
- box-shadow: 0px 0px 30px rgba(44, 62, 80, 0.5);
15
- }
16
-
17
- /* Set navbar brand color */
18
- #mainNav .navbar-brand {
19
- color: #1abc9c;
20
- }
21
-
22
- /* Underline navbar brand on hover */
23
- #mainNav .navbar-brand:hover {
24
- text-decoration: underline;
25
- }
26
-
27
- /* Set navbar link color */
28
- #mainNav .navbar-nav li.nav-item a.nav-link {
29
- color: #2c3e50;
30
- }
31
-
32
- #mainNav .navbar-nav li.nav-item a.nav-link:active, #mainNav .navbar-nav li.nav-item a.nav-link:focus {
33
- color: #2c3e50;
34
- }
35
-
36
- /* Set navbar link color and underline on hover */
37
- #mainNav .navbar-nav li.nav-item a.nav-link:hover {
38
- color: #1abc9c;
39
- border-bottom: 3px solid;
40
- }
41
-
42
- #mainNav .navbar-nav li.nav-item a.nav-link.active {
43
- color: #1abc9c;
44
- border-bottom: 3px solid;
45
- background: white;
46
- }
47
-
48
- @media (min-width: 992px) {
49
- #mainNav .navbar-nav > li.nav-item > a.nav-link.active:active, #mainNav .navbar-nav > li.nav-item > a.nav-link.active:focus, #mainNav .navbar-nav > li.nav-item > a.nav-link.active:hover {
50
- color: #1abc9c;
51
- border-bottom: 3px solid;
52
- background: white;
53
- }
54
- }
55
-
56
- /* Increase top margin of divider line to align with icon */
57
- .divider-custom-line {
58
- margin-top: 1.75rem;
59
- }
60
-
61
- /* Increase icon size in social buttons */
62
- .btn-social {
63
- font-size: 1.5rem;
64
- }
65
-
66
- /* ------------------------------------------------------------------------------------------------------------------- */
67
- /* Add new components
68
- /* ------------------------------------------------------------------------------------------------------------------- */
69
-
70
- /* Add divider-primary class to set dividers to primary color */
71
- .divider-custom.divider-primary .divider-custom-line {
72
- background-color: #1abc9c;
73
- }
74
-
75
- .divider-custom.divider-primary .divider-custom-icon {
76
- color: #1abc9c !important;
77
- }
78
-
79
- /* Center text landing over previous element */
80
- #textlanding {
81
- position: absolute;
82
- top: 50%;
83
- right: 50%;
84
- transform: translate(50%,-50%);
85
- }
86
-
87
- /* Move arrow near bottom of section */
88
- #arrowlanding {
89
- position: absolute;
90
- top: 95%;
91
- right: 50%;
92
- transform: translate(50%,-50%);
93
- }
94
-
95
- /* Set arrow color */
96
- #arrowlanding a {
97
- color: #2c3e50;
98
- }
99
-
100
- /* Set arrow color on hover */
101
- #arrowlanding a:hover {
102
- color: #1abc9c;
103
- }
104
-
105
- /* Ensure particles span entire section */
106
- #particles-js {
107
- width: 100%;
108
- /* height: 100%; */
109
- /* background-color: white; */
110
- background-image: url('');
111
- background-size: cover;
112
- /* background-position: 50% 50%; */
113
- background-repeat: no-repeat;
114
- }
115
-
116
-
117
- .nanobar .bar {
118
- margin-top: 56px;
119
- background: #1cc927;
120
- }
1
+ /*
2
+ * Legacy asset path — not used by the current theme.
3
+ * Custom styles: _sass/custom.scss (compiled into assets/css/main.css), or optional user-overrides.css.
4
+ * Kept so older builds or cached HTML that still link here do not 404.
5
+ */
data/assets/css/main.scss CHANGED
@@ -5,10 +5,14 @@
5
5
 
6
6
  @charset "utf-8";
7
7
 
8
- // Styling Variables
8
+ // Theme layer on top of bundled Bootstrap CSS (assets/vendor/bootstrap/css/bootstrap.min.css in head.html).
9
+ // Advanced: npm run css:bootstrap can emit a custom Bootstrap build; swap the head <link> — never load two full Bootstraps.
10
+
11
+ // Design tokens + theme (CSS variables / wizard mode)
9
12
  @import "core/variables";
10
- @import "core/docs";
11
13
  @import "core/theme";
14
+ // Bootstrap-docs-style layout (trimmed; was ~3.2k-line vendor snapshot)
15
+ @import "core/docs-layout";
12
16
 
13
17
  // Bootstrap Styles
14
18
  // @import "bootstrap.scss";
data/assets/css/stats.css CHANGED
@@ -4,6 +4,9 @@
4
4
  ===================================================================
5
5
 
6
6
  File: stats.css
7
+ Loaded only when `page.layout == 'stats'` (_includes/core/head.html).
8
+ Kept separate so dashboard CSS is not bundled into every page’s main.css.
9
+
7
10
  Purpose: Custom styles for the statistics dashboard that cannot be
8
11
  achieved with Bootstrap 5 utility classes alone.
9
12
 
@@ -0,0 +1,6 @@
1
+ // Optional npm build: compiles Bootstrap from node_modules (same major as CDN in head.html).
2
+ // Run from repo root: npm install && npm run css:bootstrap
3
+ // Output: assets/css/vendor/bootstrap-from-npm.css
4
+ // To use: point the Bootstrap <link> in _includes/core/head.html at that file instead of jsDelivr.
5
+
6
+ @import "bootstrap/scss/bootstrap";
File without changes
Binary file