diff --git a/docs/.theme/assets/home.css b/docs/.theme/assets/home.css
index 6062a8d..b41978e 100644
--- a/docs/.theme/assets/home.css
+++ b/docs/.theme/assets/home.css
@@ -81,7 +81,7 @@
.rb-navcta .rb-menu-btn { display: none; }
.rb-navlinks a { color: var(--rb-text); }
.rb-navcta { display: flex; align-items: center; gap: 10px; }
-.rb-nav .form-control, .rb-nav .version-switcher {
+.rb-nav .form-control {
background-color: var(--rb-surface); color: var(--rb-text); border-color: var(--rb-line);
}
.rb-nav .form-control::placeholder { color: var(--rb-muted); }
@@ -348,7 +348,7 @@
.rb-link { display: none; }
}
@media (max-width: 720px) {
- .rb-search, .rb-navcta .version-switcher { display: none; }
+ .rb-search { display: none; }
.rb-hero h1 { font-size: 44px; }
.rb-section-head h2 { font-size: 30px; }
.rb-grid3, .rb-grid2, .rb-lessons, .rb-foot { grid-template-columns: minmax(0, 1fr); }
diff --git a/docs/.theme/assets/style.css b/docs/.theme/assets/style.css
index d465821..00bccbd 100644
--- a/docs/.theme/assets/style.css
+++ b/docs/.theme/assets/style.css
@@ -304,10 +304,43 @@ body {
}
.sidebar {
+ display: flex;
+ flex-direction: column;
padding-top: 1.5rem;
background: var(--bxsites-sidebar-bg);
}
+.sidebar-version-switcher {
+ width: auto;
+ max-width: none;
+ height: auto;
+ margin: 0 0 1rem;
+ padding: 0.4rem 0.6rem;
+}
+
+@media (min-width: 992px) {
+ .sidebar {
+ flex: 0 0 280px;
+ max-width: 280px;
+ position: sticky;
+ top: 56px;
+ height: calc(100vh - 56px);
+ overflow-y: auto;
+ }
+
+ .row:not(.bxsites-nav-collapsed) .content {
+ flex: 0 0 calc(100% - 280px);
+ max-width: calc(100% - 280px);
+ }
+}
+
+@media (min-width: 1200px) {
+ .row:not(.bxsites-nav-collapsed):has(.toc-sidebar) .content {
+ flex: 0 0 calc(100% - 280px - 16.66667%);
+ max-width: calc(100% - 280px - 16.66667%);
+ }
+}
+
/* The toggler is Alpine-driven (layout.bxm's own `navOpen`) at every
width now, not just below `lg` - overrides Bootstrap's own
`.navbar-expand-lg .navbar-toggler { display: none }` (same
@@ -344,12 +377,6 @@ body {
color: var(--bxsites-sidebar-text);
}
-.sidebar .nav-link > .bxsites-icon {
- width: 1.35em;
- height: 1.35em;
- vertical-align: -0.2em;
-}
-
.sidebar .nav-link.disabled {
color: var(--bxsites-muted);
font-weight: 600;
@@ -1017,6 +1044,9 @@ dd {
}
.toc-title {
+ display: flex;
+ align-items: center;
+ gap: 0.4rem;
font-weight: 600;
text-transform: uppercase;
font-size: 0.75rem;
@@ -1024,6 +1054,16 @@ dd {
margin-bottom: 0.25rem;
}
+.toc-title svg {
+ flex: 0 0 auto;
+ opacity: 0.8;
+}
+
+.toc,
+.toc-mobile {
+ font-size: 0.875rem;
+}
+
.toc li,
.toc-mobile li {
margin: 0.35rem 0;
@@ -1031,9 +1071,14 @@ dd {
}
.toc .toc-level-3,
-.toc-mobile .toc-level-3 {
- padding-left: 1rem;
+.toc .toc-level-4,
+.toc-mobile .toc-level-3,
+.toc-mobile .toc-level-4 {
+ padding-left: 0.85rem;
+ margin-left: 0.15rem;
+ border-left: 2px solid var(--bxsites-border);
font-size: 0.9em;
+ color: var(--bxsites-muted);
}
/* `theme.options.tocPosition: "sticky"` renders the same TOC list in its
@@ -2927,7 +2972,7 @@ a.button.primary {
display: flex;
align-items: center;
gap: 0.5rem;
- margin: 1.5rem 0 0.5rem;
+ margin: auto 0 0.5rem;
padding: 0.7rem 0.85rem;
border: 1px solid currentColor;
border-radius: 0.75rem;
@@ -2942,7 +2987,7 @@ a.button.primary {
opacity: 1;
}
-.bxsites-powered-by .bxsites-icon {
+.bxsites-powered-by__logo {
width: 1.25rem;
height: 1.25rem;
flex: 0 0 auto;
diff --git a/docs/.theme/blog.bxm b/docs/.theme/blog.bxm
index ba4515b..5851723 100644
--- a/docs/.theme/blog.bxm
+++ b/docs/.theme/blog.bxm
@@ -38,6 +38,8 @@
variables.pageActionsPosition = variables.siteConfig.theme.options.pageActionsPosition ?: "top"
variables.accentColor = trim( variables.siteConfig.theme.options.accentColor ?: "" )
variables.accentColorDark = trim( variables.siteConfig.theme.options.accentColorDark ?: "" )
+ variables.navAccentLine = ( variables.siteConfig.theme.options.navAccentLine ?: true ) ? true : false
+ variables.navAccentLineColor = trim( variables.siteConfig.theme.options.navAccentLineColor ?: "" )
// page.bxm (this layout's own default body) reads variables.tocPosition
// directly for its inline "On this page" rendering - still needed here
// even though this layout drops the sticky-rail aside, since a listing
@@ -83,6 +85,7 @@
+