cosmos-docusaurus-theme 1.2.6 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/package.json +1 -1
- package/src/css/theme.css +216 -31
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,30 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [2.0.1] — 2026-03-10
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **Tables full-width**: `display:table; width:100%` on desktop (>996px),
|
|
15
|
+
`display:block; overflow-x:auto` on mobile — responsive, never breaks layout
|
|
16
|
+
|
|
17
|
+
## [2.0.0] — 2026-03-10
|
|
18
|
+
|
|
19
|
+
### Added — Native Docusaurus component coverage
|
|
20
|
+
|
|
21
|
+
1. **Color mode toggle icons** — sun (amber `#fbbf24`) in dark mode, moon (brand indigo `#7592ff`) in light mode via CSS `filter` colorization
|
|
22
|
+
2. **TOCCollapsible** — mobile table-of-contents styled as bordered card with uppercase monospace label, matching sidebar section labels
|
|
23
|
+
3. **DocCard / DocCardList** — auto-generated category index cards follow Void/Slate palette with hover lift
|
|
24
|
+
4. **Announcement bar close button** — `×` styled with opacity + hover bg tint
|
|
25
|
+
5. **Tag pages** — `/docs/tags/...` pages use pill tags with brand hover state
|
|
26
|
+
6. **Mobile search** — search input collapses to `2rem` icon-only on ≤576px, expands on focus with smooth width transition
|
|
27
|
+
7. **prefers-reduced-motion** — all transitions and animations disabled when the OS accessibility setting is active
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
|
|
31
|
+
- **Docker GHCR push timeout** — `provenance: false` + `sbom: false` on `docker/build-push-action` eliminates attestation overhead that caused network timeouts; `timeout-minutes: 30` on job; `docker/setup-buildx-action` added explicitly
|
|
32
|
+
- **CSS comments** — removed stale TailAdmin references, fixed redundant inline color-name comments
|
|
33
|
+
|
|
10
34
|
## [1.2.6] — 2026-03-10
|
|
11
35
|
|
|
12
36
|
### Added
|
package/package.json
CHANGED
package/src/css/theme.css
CHANGED
|
@@ -10,8 +10,7 @@
|
|
|
10
10
|
* Font: Outfit + JetBrains Mono for code
|
|
11
11
|
*
|
|
12
12
|
* Usage:
|
|
13
|
-
*
|
|
14
|
-
* require.resolve('cosmos-docusaurus-theme')
|
|
13
|
+
* themes: ['cosmos-docusaurus-theme']
|
|
15
14
|
*
|
|
16
15
|
* @see https://github.com/SckyzO/cosmos-docusaurus-theme
|
|
17
16
|
* @license MIT
|
|
@@ -22,16 +21,16 @@
|
|
|
22
21
|
|
|
23
22
|
/* ── Light mode ──────────────────────────────────────────────────────────── */
|
|
24
23
|
:root {
|
|
25
|
-
/*
|
|
26
|
-
--ifm-color-primary: #465fff;
|
|
27
|
-
--ifm-color-primary-dark: #3641f5;
|
|
28
|
-
--ifm-color-primary-darker: #2a31d8;
|
|
29
|
-
--ifm-color-primary-darkest: #252dae;
|
|
30
|
-
--ifm-color-primary-light: #7592ff;
|
|
31
|
-
--ifm-color-primary-lighter: #9cb9ff;
|
|
32
|
-
--ifm-color-primary-lightest:#dde9ff;
|
|
33
|
-
|
|
34
|
-
/* Typography —
|
|
24
|
+
/* Brand palette (indigo) — matches Rackscope accent color */
|
|
25
|
+
--ifm-color-primary: #465fff;
|
|
26
|
+
--ifm-color-primary-dark: #3641f5;
|
|
27
|
+
--ifm-color-primary-darker: #2a31d8;
|
|
28
|
+
--ifm-color-primary-darkest: #252dae;
|
|
29
|
+
--ifm-color-primary-light: #7592ff;
|
|
30
|
+
--ifm-color-primary-lighter: #9cb9ff;
|
|
31
|
+
--ifm-color-primary-lightest:#dde9ff;
|
|
32
|
+
|
|
33
|
+
/* Typography — Outfit + JetBrains Mono, same as Rackscope app */
|
|
35
34
|
--ifm-font-family-base: 'Outfit', system-ui, -apple-system, sans-serif;
|
|
36
35
|
--ifm-font-family-monospace: 'JetBrains Mono', 'Fira Code', monospace;
|
|
37
36
|
--ifm-font-size-base: 16.5px;
|
|
@@ -43,8 +42,8 @@
|
|
|
43
42
|
--ifm-h3-font-size: 1.25rem;
|
|
44
43
|
|
|
45
44
|
/* Background — Slate: Tailwind gray-50 / white */
|
|
46
|
-
--ifm-background-color: #f9fafb;
|
|
47
|
-
--ifm-background-surface-color: #fff;
|
|
45
|
+
--ifm-background-color: #f9fafb;
|
|
46
|
+
--ifm-background-surface-color: #fff;
|
|
48
47
|
|
|
49
48
|
/* Text — Slate: warm brown tones (not cold blue-gray) */
|
|
50
49
|
--ifm-font-color-base: #1a1714; /* warm near-black */
|
|
@@ -55,14 +54,14 @@
|
|
|
55
54
|
--ifm-navbar-background-color: #fff;
|
|
56
55
|
--ifm-navbar-shadow: 0px 1px 3px 0px rgb(16,24,40,0.10), 0px 1px 2px 0px rgb(16,24,40,0.06);
|
|
57
56
|
--ifm-navbar-link-color: #2c2822; /* warm dark text */
|
|
58
|
-
--ifm-navbar-link-hover-color: #465fff;
|
|
57
|
+
--ifm-navbar-link-hover-color: #465fff;
|
|
59
58
|
--ifm-navbar-link-active-color: #465fff;
|
|
60
59
|
|
|
61
60
|
/* Sidebar */
|
|
62
61
|
--ifm-sidebar-width: 280px;
|
|
63
62
|
--doc-sidebar-width: 280px;
|
|
64
63
|
--ifm-sidebar-padding: 16px;
|
|
65
|
-
--docusaurus-collapse-button-bg-hover-color: #f3f4f6;
|
|
64
|
+
--docusaurus-collapse-button-bg-hover-color: #f3f4f6;
|
|
66
65
|
|
|
67
66
|
/* Links */
|
|
68
67
|
--ifm-link-color: #465fff;
|
|
@@ -95,20 +94,20 @@
|
|
|
95
94
|
/* ── Dark mode ───────────────────────────────────────────────────────────── */
|
|
96
95
|
[data-theme='dark'] {
|
|
97
96
|
/* Primary — lighter variant for readability on dark backgrounds */
|
|
98
|
-
--ifm-color-primary: #7592ff;
|
|
99
|
-
--ifm-color-primary-dark: #465fff;
|
|
100
|
-
--ifm-color-primary-darker: #3641f5;
|
|
101
|
-
--ifm-color-primary-darkest: #2a31d8;
|
|
102
|
-
--ifm-color-primary-light: #9cb9ff;
|
|
103
|
-
--ifm-color-primary-lighter: #c2d6ff;
|
|
104
|
-
--ifm-color-primary-lightest:#dde9ff;
|
|
97
|
+
--ifm-color-primary: #7592ff;
|
|
98
|
+
--ifm-color-primary-dark: #465fff;
|
|
99
|
+
--ifm-color-primary-darker: #3641f5;
|
|
100
|
+
--ifm-color-primary-darkest: #2a31d8;
|
|
101
|
+
--ifm-color-primary-light: #9cb9ff;
|
|
102
|
+
--ifm-color-primary-lighter: #c2d6ff;
|
|
103
|
+
--ifm-color-primary-lightest:#dde9ff;
|
|
105
104
|
--docusaurus-highlighted-code-line-bg: rgb(117, 146, 255, 0.15);
|
|
106
105
|
|
|
107
106
|
/* Background — Void: Tailwind gray-950 / gray-900 neutral blacks */
|
|
108
107
|
--ifm-background-color: #030712; /* gray-950 — deepest background */
|
|
109
108
|
--ifm-background-surface-color: #111827; /* gray-900 — cards, sidebar, panels */
|
|
110
|
-
--ifm-navbar-background-color: #111827;
|
|
111
|
-
--ifm-footer-background-color: #030712;
|
|
109
|
+
--ifm-navbar-background-color: #111827;
|
|
110
|
+
--ifm-footer-background-color: #030712;
|
|
112
111
|
|
|
113
112
|
/* Text — neutral grays, no blue tint */
|
|
114
113
|
--ifm-font-color-base: #e5e5e5; /* neutral light */
|
|
@@ -133,7 +132,7 @@
|
|
|
133
132
|
--ifm-navbar-shadow: 0px 1px 0px 0px #1f2937;
|
|
134
133
|
|
|
135
134
|
/* Code */
|
|
136
|
-
--ifm-code-background: #1f2937;
|
|
135
|
+
--ifm-code-background: #1f2937;
|
|
137
136
|
|
|
138
137
|
/* Sidebar collapse button */
|
|
139
138
|
--docusaurus-collapse-button-bg-hover-color: rgb(255,255,255,0.05);
|
|
@@ -304,21 +303,21 @@ button[aria-label*="dark and light mode"]:hover::before {
|
|
|
304
303
|
transition: background 0.12s, color 0.12s;
|
|
305
304
|
}
|
|
306
305
|
|
|
307
|
-
/* Active sidebar link —
|
|
306
|
+
/* Active sidebar link — brand tint bg + brand color text */
|
|
308
307
|
.menu__link--active,
|
|
309
308
|
.menu__link--active:hover {
|
|
310
|
-
background: #ecf3ff;
|
|
311
|
-
color: #465fff;
|
|
309
|
+
background: #ecf3ff;
|
|
310
|
+
color: #465fff;
|
|
312
311
|
font-weight: 600;
|
|
313
312
|
}
|
|
314
313
|
|
|
315
314
|
[data-theme='dark'] .menu__link--active,
|
|
316
315
|
[data-theme='dark'] .menu__link--active:hover {
|
|
317
316
|
background: rgb(70, 95, 255, 0.12);
|
|
318
|
-
color: #7592ff;
|
|
317
|
+
color: #7592ff;
|
|
319
318
|
}
|
|
320
319
|
|
|
321
|
-
/* Sidebar
|
|
320
|
+
/* Sidebar category toggle */
|
|
322
321
|
.menu__list-item-collapsible {
|
|
323
322
|
border-radius: 8px;
|
|
324
323
|
}
|
|
@@ -398,6 +397,23 @@ code {
|
|
|
398
397
|
|
|
399
398
|
/* ── Tables — direct overrides (CSS variables not reliably cascaded) ─────── */
|
|
400
399
|
|
|
400
|
+
/* Full-width tables on desktop; scrollable on mobile.
|
|
401
|
+
Infima forces display:block which caps width — we override for desktop,
|
|
402
|
+
and restore scrollable block on narrow viewports. */
|
|
403
|
+
.markdown table {
|
|
404
|
+
display: table !important;
|
|
405
|
+
width: 100% !important;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
@media (width <= 996px) {
|
|
409
|
+
.markdown table {
|
|
410
|
+
display: block !important;
|
|
411
|
+
overflow-x: auto !important;
|
|
412
|
+
max-width: 100% !important;
|
|
413
|
+
width: max-content !important;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
401
417
|
/* Dark mode — Infima applies --ifm-table-head-background directly on th,
|
|
402
418
|
so we must target th explicitly (higher specificity than thead). */
|
|
403
419
|
[data-theme='dark'] table {
|
|
@@ -1281,6 +1297,175 @@ details > :not(summary) {
|
|
|
1281
1297
|
border-top-color: #1f2937;
|
|
1282
1298
|
}
|
|
1283
1299
|
|
|
1300
|
+
/* =============================================================================
|
|
1301
|
+
NATIVE DOCUSAURUS COMPONENTS
|
|
1302
|
+
============================================================================= */
|
|
1303
|
+
|
|
1304
|
+
/* ── 1. Color mode toggle icons ──────────────────────────────────────────── */
|
|
1305
|
+
/* Sun = amber shown in dark mode (hints "switch to light").
|
|
1306
|
+
Moon = brand indigo shown in light mode (hints "switch to dark").
|
|
1307
|
+
Uses CSS filter to colorize since Docusaurus SVG paths use hardcoded fill. */
|
|
1308
|
+
|
|
1309
|
+
/* Dark mode shows the sun icon */
|
|
1310
|
+
[data-theme='dark'] [class*="toggleButton"] [class*="lightToggleIcon"],
|
|
1311
|
+
[data-theme='dark'] [class*="toggleButton"] svg {
|
|
1312
|
+
filter: drop-shadow(0 0 0 #fbbf24) sepia(1) saturate(4) hue-rotate(5deg) brightness(1.1);
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1315
|
+
/* Light mode shows the moon icon */
|
|
1316
|
+
[data-theme='light'] [class*="toggleButton"] [class*="darkToggleIcon"],
|
|
1317
|
+
[data-theme='light'] [class*="toggleButton"] svg {
|
|
1318
|
+
filter: drop-shadow(0 0 0 #7592ff) sepia(1) saturate(6) hue-rotate(190deg) brightness(0.9);
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
/* ── 2. TOCCollapsible (mobile table of contents) ────────────────────────── */
|
|
1322
|
+
[class*="tocCollapsible"] {
|
|
1323
|
+
border: 1px solid var(--ifm-toc-border-color);
|
|
1324
|
+
border-radius: 10px;
|
|
1325
|
+
margin-bottom: 1rem;
|
|
1326
|
+
overflow: hidden;
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
[class*="tocCollapsibleButton"] {
|
|
1330
|
+
background: none;
|
|
1331
|
+
border: none;
|
|
1332
|
+
cursor: pointer;
|
|
1333
|
+
display: flex;
|
|
1334
|
+
align-items: center;
|
|
1335
|
+
justify-content: space-between;
|
|
1336
|
+
width: 100%;
|
|
1337
|
+
padding: 10px 14px;
|
|
1338
|
+
font-family: var(--ifm-font-family-monospace);
|
|
1339
|
+
font-size: 0.68rem;
|
|
1340
|
+
font-weight: 600;
|
|
1341
|
+
letter-spacing: 0.1em;
|
|
1342
|
+
text-transform: uppercase;
|
|
1343
|
+
color: var(--ifm-font-color-secondary);
|
|
1344
|
+
transition: color 0.12s, background 0.12s;
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
[class*="tocCollapsibleButton"]:hover {
|
|
1348
|
+
color: var(--ifm-color-primary);
|
|
1349
|
+
background: rgb(70, 95, 255, 0.04);
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
[class*="tocCollapsibleContent"] {
|
|
1353
|
+
border-top: 1px solid var(--ifm-toc-border-color);
|
|
1354
|
+
padding: 8px 0;
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
/* ── 3. DocCard / DocCardList (auto-generated category index pages) ─────── */
|
|
1358
|
+
[class*="cardContainer"] > article.card {
|
|
1359
|
+
height: 100%;
|
|
1360
|
+
transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
[class*="cardContainer"] > article.card:hover {
|
|
1364
|
+
transform: translateY(-2px);
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
[class*="cardContainer"] a {
|
|
1368
|
+
text-decoration: none;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
/* Category card title */
|
|
1372
|
+
[class*="cardContainer"] h2 {
|
|
1373
|
+
font-size: 1rem;
|
|
1374
|
+
font-weight: 700;
|
|
1375
|
+
margin-bottom: 0.5rem;
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1378
|
+
/* Category card description */
|
|
1379
|
+
[class*="cardContainer"] p {
|
|
1380
|
+
font-size: 0.875rem;
|
|
1381
|
+
color: var(--ifm-font-color-secondary);
|
|
1382
|
+
margin: 0;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
/* ── 4. Announcement bar close button ────────────────────────────────────── */
|
|
1386
|
+
.announcement-close,
|
|
1387
|
+
[class*="announcementBarClose"] {
|
|
1388
|
+
color: rgb(255, 255, 255, 0.65) !important;
|
|
1389
|
+
border-radius: 6px !important;
|
|
1390
|
+
padding: 4px 6px !important;
|
|
1391
|
+
transition: color 0.15s, background 0.15s !important;
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
.announcement-close:hover,
|
|
1395
|
+
[class*="announcementBarClose"]:hover {
|
|
1396
|
+
color: #fff !important;
|
|
1397
|
+
background: rgb(255, 255, 255, 0.12) !important;
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
/* ── 5. Tag pages (/docs/tags/...) ───────────────────────────────────────── */
|
|
1401
|
+
[class*="tagList"] {
|
|
1402
|
+
display: flex;
|
|
1403
|
+
flex-wrap: wrap;
|
|
1404
|
+
gap: 8px;
|
|
1405
|
+
list-style: none;
|
|
1406
|
+
padding: 0;
|
|
1407
|
+
margin: 0;
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
[class*="tagItem"] a,
|
|
1411
|
+
[class*="tag_"] {
|
|
1412
|
+
display: inline-flex;
|
|
1413
|
+
align-items: center;
|
|
1414
|
+
border: 1px solid var(--ifm-toc-border-color);
|
|
1415
|
+
border-radius: 20px;
|
|
1416
|
+
padding: 4px 14px;
|
|
1417
|
+
font-size: 0.8125rem;
|
|
1418
|
+
font-weight: 500;
|
|
1419
|
+
color: var(--ifm-font-color-base);
|
|
1420
|
+
text-decoration: none;
|
|
1421
|
+
transition: border-color 0.15s, background 0.15s, color 0.15s;
|
|
1422
|
+
}
|
|
1423
|
+
|
|
1424
|
+
[class*="tagItem"] a:hover,
|
|
1425
|
+
[class*="tag_"]:hover {
|
|
1426
|
+
border-color: var(--ifm-color-primary);
|
|
1427
|
+
background: rgb(70, 95, 255, 0.06);
|
|
1428
|
+
color: var(--ifm-color-primary);
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
/* ── 7. Responsive search ─────────────────────────────────────────────────── */
|
|
1432
|
+
/* On mobile the input collapses — restore sizing on focus */
|
|
1433
|
+
@media (width <= 576px) {
|
|
1434
|
+
.navbar__search-input {
|
|
1435
|
+
min-width: 0 !important;
|
|
1436
|
+
width: 2rem !important;
|
|
1437
|
+
padding-left: 2rem !important;
|
|
1438
|
+
transition: width 0.25s ease, background-color 0.15s !important;
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
.navbar__search-input:focus {
|
|
1442
|
+
width: 220px !important;
|
|
1443
|
+
}
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
/* ── 8. prefers-reduced-motion ───────────────────────────────────────────── */
|
|
1447
|
+
/* Respects the OS-level "reduce motion" accessibility setting by
|
|
1448
|
+
disabling all transitions and animations. */
|
|
1449
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1450
|
+
.navbar,
|
|
1451
|
+
.theme-doc-sidebar-container,
|
|
1452
|
+
.menu__link,
|
|
1453
|
+
.main-wrapper,
|
|
1454
|
+
article,
|
|
1455
|
+
.footer,
|
|
1456
|
+
.table-of-contents__link,
|
|
1457
|
+
.pagination-nav__link,
|
|
1458
|
+
.prism-code,
|
|
1459
|
+
.alert,
|
|
1460
|
+
.card,
|
|
1461
|
+
[class*="sidebar-cat-"] > .menu__list-item-collapsible > .menu__link,
|
|
1462
|
+
[class*="toggleIcon"],
|
|
1463
|
+
button[aria-label*="dark and light mode"] {
|
|
1464
|
+
transition: none !important;
|
|
1465
|
+
animation: none !important;
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1284
1469
|
/* =============================================================================
|
|
1285
1470
|
OPTIONAL UTILITY CLASSES
|
|
1286
1471
|
The following classes are not required for the theme to work.
|