diff --git a/assets/css/style.scss b/assets/css/style.scss
index 5ee2660..7569063 100644
--- a/assets/css/style.scss
+++ b/assets/css/style.scss
@@ -20,8 +20,6 @@ html {
body {
margin: 0;
padding: 0;
- overflow-x: hidden;
- zoom: 1;
font-size: 16px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.5;
@@ -64,7 +62,6 @@ body {
}
.site-nav {
- float: right;
line-height: 54px;
}
@@ -176,14 +173,6 @@ body {
background-color: #fff;
}
-/* Ensure footer displays correctly */
-.site-footer {
- margin-left: 280px;
- /* Same as sidebar width */
- width: calc(100% - 280px);
- clear: both;
-}
-
/* Documentation Layout with Sidebar */
.docs-container {
display: flex;
@@ -334,8 +323,12 @@ body {
margin-left: 280px;
/* Same as sidebar width */
padding: 30px 60px 30px 60px;
- max-width: calc(100vw - 280px);
+ max-width: calc(100% - 280px);
width: 100%;
+ /* Flex items default to min-width:auto, which lets a long unbreakable
+ line (e.g. inside a
) push the column wider than its container.
+ min-width:0 lets it shrink so the 's own overflow:auto kicks in. */
+ min-width: 0;
}
/* Override minima wrapper inside docs-content */
@@ -407,6 +400,37 @@ body {
font-size: inherit;
}
+/* Wide tables scroll inside their own box rather than widening the page.
+ display:block is what makes overflow-x apply to a . */
+.docs-content table {
+ display: block;
+ width: fit-content;
+ max-width: 100%;
+ overflow-x: auto;
+ border-collapse: collapse;
+ margin-bottom: 1.1rem;
+}
+
+.docs-content th,
+.docs-content td {
+ padding: 0.4rem 0.75rem;
+ border: 1px solid #e1e4e8;
+ text-align: left;
+}
+
+.docs-content th {
+ background-color: #f6f8fa;
+ font-weight: 600;
+}
+
+/* Keep images and embedded content inside the column on narrow screens */
+.docs-content img,
+.docs-content iframe,
+.docs-content video {
+ max-width: 100%;
+ height: auto;
+}
+
/* Responsive */
@media (max-width: 1024px) {
.docs-sidebar {
@@ -416,31 +440,79 @@ body {
.docs-content {
margin-left: 250px;
padding: 25px 40px;
- }
-
- .site-footer {
- margin-left: 250px;
- width: calc(100% - 250px);
+ max-width: calc(100% - 250px);
}
}
@media (max-width: 768px) {
+ /* Stack sidebar and content. Without this the sidebar keeps
+ flex-shrink:0 at width:100% and the content column is laid out
+ beside it, entirely off-screen. */
+ .docs-container {
+ flex-direction: column;
+ }
+
.docs-sidebar {
width: 100%;
position: static;
height: auto;
border-right: none;
- border-bottom: 1px solid #e1e4e8;
+ border-top: 1px solid #e1e4e8;
+ border-bottom: none;
+ /* Nav goes after the article: the header menu is the primary
+ navigation on mobile, so this is the secondary path. */
+ order: 2;
}
.docs-content {
+ order: 1;
margin-left: 0;
padding: 20px;
+ max-width: 100%;
}
- .site-footer {
- margin-left: 0;
- width: 100%;
+ /* The sidebar's own scroll containers are only meaningful when it is
+ a fixed full-height column. */
+ .docs-nav {
+ overflow-y: visible;
+ padding-bottom: 0;
+ }
+}
+
+/* Phone-sized screens */
+@media (max-width: 480px) {
+ .docs-content {
+ padding: 16px;
+ }
+
+ .docs-content h1 {
+ font-size: 1.75rem;
+ }
+
+ .docs-content h2 {
+ font-size: 1.4rem;
+ }
+
+ .docs-content h3 {
+ font-size: 1.2rem;
+ }
+
+ .docs-content pre {
+ padding: 12px;
+ font-size: 13px;
+ }
+
+ .splash-content {
+ margin: 32px auto;
+ padding: 0 20px;
+ }
+
+ .splash-content h1 {
+ font-size: 2rem;
+ }
+
+ .splash-content p {
+ font-size: 1rem;
}
}
@@ -539,6 +611,92 @@ body {
user-select: none;
}
+/* ------------------------------------------------------------------ */
+/* Mobile header nav */
+/* */
+/* Must come after the .nav-dropdown rules above: these override */
+/* `display: none` on .nav-dropdown-content at equal specificity, so */
+/* source order decides. Touch devices have no :hover, so the */
+/* hover-triggered dropdowns are replaced by an always-expanded list */
+/* inside the checkbox-toggled hamburger menu. */
+/* ------------------------------------------------------------------ */
+
+@media (max-width: 768px) {
+ .site-header .wrapper {
+ padding: 0 20px;
+ position: relative;
+ }
+
+ .site-nav {
+ line-height: normal;
+ }
+
+ .site-nav .menu-icon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ /* 44x44 tap target per Apple HIG */
+ width: 44px;
+ height: 44px;
+ cursor: pointer;
+ }
+
+ .site-nav .menu-icon svg {
+ fill: #424242;
+ }
+
+ .site-nav .trigger {
+ display: none;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+ background: #fff;
+ border-top: 1px solid #e8e8e8;
+ border-bottom: 1px solid #e8e8e8;
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
+ padding: 8px 0 12px;
+ max-height: calc(100dvh - 56px);
+ overflow-y: auto;
+ }
+
+ .site-nav .nav-trigger:checked ~ .trigger {
+ display: block;
+ }
+
+ .nav-dropdown {
+ display: block;
+ line-height: normal;
+ position: static;
+ }
+
+ .nav-dropdown-content {
+ display: block;
+ position: static;
+ border: none;
+ box-shadow: none;
+ min-width: 0;
+ padding: 0 0 6px;
+ }
+
+ .site-nav .page-link {
+ display: block;
+ margin-left: 0;
+ padding: 12px 20px;
+ font-weight: 600;
+ }
+
+ .nav-dropdown-content a {
+ padding: 12px 20px 12px 36px;
+ font-size: 15px;
+ white-space: normal;
+ }
+
+ .nav-dropdown-heading {
+ padding: 10px 20px 3px 36px;
+ }
+}
+
/* ------------------------------------------------------------------ */
/* Splash / home page layout */
/* ------------------------------------------------------------------ */
@@ -576,7 +734,7 @@ body {
.doc-btn {
display: inline-block;
- padding: 7px 14px;
+ padding: 11px 16px;
background: #39bda7;
color: white;
text-decoration: none;
diff --git a/docs/_includes/head.html b/docs/_includes/head.html
index e50a4f2..6705eb1 100644
--- a/docs/_includes/head.html
+++ b/docs/_includes/head.html
@@ -1,7 +1,7 @@
-
+
{%- seo -%}