Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/api_split.pug
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends layout

append style
link(rel="stylesheet", href=`${versions.versionedPath}/docs/css/api.css`)
link(rel="stylesheet", href=`${versions.versionedPath}/docs/css/api.css?v=${Date.now()}`)
script(src=`${versions.versionedPath}/docs/js/api-bold-current-nav.js`)
script(src=`${versions.versionedPath}/docs/js/convert-old-anchorid.js`)

Expand Down
103 changes: 102 additions & 1 deletion docs/css/api.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,28 @@
height: 100%;
padding-bottom: 10px;
overflow-y: auto;
background-color: var(--menu-bg, #fafafa);
border-left: 1px solid var(--border-color, #ddd);
scrollbar-width: thin;
scrollbar-color: var(--border-color, #ddd) var(--menu-bg, #fafafa);
transition: background-color 0.3s ease, border-color 0.3s ease;
}

.api-nav::-webkit-scrollbar {
width: 8px;
}

.api-nav::-webkit-scrollbar-track {
background: var(--menu-bg, #fafafa);
}

.api-nav::-webkit-scrollbar-thumb {
background-color: var(--border-color, #ddd);
border-radius: 4px;
}

.api-nav::-webkit-scrollbar-thumb:hover {
background-color: var(--text-muted, #777);
}

.api-nav .nav-item-title {
Expand All @@ -24,7 +46,18 @@
}

.api-nav a {
color: #777;
color: var(--text-muted, #777);
transition: color 0.2s ease;
}

.api-nav a:hover {
color: var(--link-color, #0971B2);
}

.api-nav a:focus-visible {
outline: 3px solid var(--focus-ring, #0971B2);
outline-offset: 2px;
border-radius: 2px;
}

.api-nav .nav-item-sub {
Expand Down Expand Up @@ -54,12 +87,47 @@
margin-top: 3em;
}

/* Responsive API navigation */
@media (max-width: 1785px) {
.api-nav {
display: none;
}
}

/* Tablet: Show API nav as collapsible sidebar */
@media (min-width: 1400px) and (max-width: 1785px) {
.api-nav {
display: block;
left: auto;
right: 0;
width: 280px;
z-index: 10;
}
}

/* Mobile: API nav as bottom sheet or hidden */
@media (max-width: 1400px) {
.api-nav {
display: none;
}

/* Optionally show as bottom sheet on mobile */
.api-nav.mobile-open {
display: block;
position: fixed;
bottom: 0;
left: 0;
right: 0;
top: auto;
height: 50vh;
width: 100%;
border-left: none;
border-top: 1px solid var(--border-color, #ddd);
border-radius: 8px 8px 0 0;
box-shadow: 0 -2px 8px var(--shadow, rgba(0, 0, 0, 0.1));
}
}

ul {
margin-top: -10px;
}
Expand Down Expand Up @@ -166,4 +234,37 @@ hr.separate-api {

.deprecated {
color: #ff0000;
font-weight: 600;
}

/* Accessibility improvements */
.method-type:focus-visible,
.api-nav .nav-item-title:focus-visible {
outline: 3px solid var(--focus-ring, #0971B2);
outline-offset: 2px;
border-radius: 2px;
}

/* Dark mode support for API page */
@media (prefers-color-scheme: dark) {
.api-nav {
background-color: var(--menu-bg, #252525);
border-left-color: var(--border-color, #444);
}

.api-nav a {
color: var(--text-muted, #888);
}

.api-nav a:hover {
color: var(--link-color, #4a9eff);
}

.native-ad {
background-color: var(--bg-secondary, #2d2d2d);
}

.native-ad a {
color: var(--text-primary, #e0e0e0);
}
}
210 changes: 194 additions & 16 deletions docs/css/github.css
Original file line number Diff line number Diff line change
@@ -1,31 +1,45 @@
code {
background-color: #eee;
padding: 2px 4px;
background-color: var(--code-bg, #eee);
padding: 2px 6px;
font-size: 0.9em;
color: #800;
color: var(--link-color, #800);
border-radius: 4px;
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
transition: background-color 0.3s ease, color 0.3s ease;
}

pre code {
background-color: transparent;
padding: 0;
font-size: 1em;
color: #222;
color: var(--code-text, #222);
}

pre {
display: block;
padding: 9.5px;
margin: 10px 0 10px;
padding: 12px 16px;
margin: 16px 0;
font-size: 13px;
line-height: 1.42857143;
color: #333;
word-break: break-all;
word-wrap: break-word;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 4px;
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
line-height: 1.6;
color: var(--code-text, #333);
word-break: break-word;
overflow-wrap: break-word;
overflow-x: auto;
background-color: var(--code-bg, #f5f5f5);
border: 1px solid var(--border-color, #ccc);
border-radius: 6px;
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
box-shadow: 0 1px 3px var(--shadow, rgba(0, 0, 0, 0.1));
transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

/* Improve code block copy functionality */
pre {
position: relative;
}

pre:hover {
box-shadow: 0 2px 6px var(--shadow, rgba(0, 0, 0, 0.15));
}

/*
Expand All @@ -38,9 +52,10 @@ github.com style (c) Vasily Polovnyov <[email protected]>
display: block;
overflow-x: auto;
padding: 0.5em;
color: #333;
background: #f8f8f8;
color: var(--code-text, #333);
background: var(--code-bg, #f8f8f8);
-webkit-text-size-adjust: none;
transition: background-color 0.3s ease, color 0.3s ease;
}

.hljs-comment,
Expand Down Expand Up @@ -152,3 +167,166 @@ github.com style (c) Vasily Polovnyov <[email protected]>
.hljs-chunk {
color: #aaa;
}

/* Dark mode support for syntax highlighting */
@media (prefers-color-scheme: dark) {
code {
background-color: var(--code-bg, #2d2d2d);
color: var(--link-color, #4a9eff);
}

pre {
background-color: var(--code-bg, #2d2d2d);
border-color: var(--border-color, #444);
color: var(--code-text, #e0e0e0);
}

.hljs {
background: var(--code-bg, #2d2d2d);
color: var(--code-text, #e0e0e0);
}

.hljs-comment,
.diff .hljs-header,
.hljs-javadoc {
color: #6a9955;
}

.hljs-keyword,
.css .rule .hljs-keyword,
.hljs-winutils,
.nginx .hljs-title,
.hljs-subst,
.hljs-request,
.hljs-status {
color: #569cd6;
font-weight: bold;
}

.hljs-number,
.hljs-hexcolor,
.ruby .hljs-constant {
color: #b5cea8;
}

.hljs-string,
.hljs-tag .hljs-value,
.hljs-phpdoc,
.hljs-dartdoc,
.tex .hljs-formula {
color: #ce9178;
}

.hljs-title,
.hljs-id,
.scss .hljs-preprocessor {
color: #d7ba7d;
font-weight: bold;
}

.hljs-class .hljs-title,
.hljs-type,
.vhdl .hljs-literal,
.tex .hljs-command {
color: #4ec9b0;
font-weight: bold;
}

.hljs-tag,
.hljs-tag .hljs-title,
.hljs-rules .hljs-property,
.django .hljs-tag .hljs-keyword {
color: #569cd6;
font-weight: normal;
}

.hljs-attribute,
.hljs-variable,
.lisp .hljs-body {
color: #9cdcfe;
}

.hljs-regexp {
color: #d16969;
}

.hljs-symbol,
.ruby .hljs-symbol .hljs-string,
.lisp .hljs-keyword,
.clojure .hljs-keyword,
.scheme .hljs-keyword,
.tex .hljs-special,
.hljs-prompt {
color: #c586c0;
}

.hljs-built_in {
color: #4fc1ff;
}

.hljs-preprocessor,
.hljs-pragma,
.hljs-pi,
.hljs-doctype,
.hljs-shebang,
.hljs-cdata {
color: #808080;
font-weight: bold;
}

.hljs-deletion {
background: #5a1d1d;
color: #f48771;
}

.hljs-addition {
background: #1e3a1e;
color: #b5cea8;
}

.diff .hljs-change {
background: #2d4d2d;
color: #4ec9b0;
}

.hljs-chunk {
color: #808080;
}
}

/* Accessibility: Ensure sufficient contrast for code */
code,
pre,
.hljs {
/* WCAG AA compliant contrast ratios */
min-height: 1.5em;
}

/* Improve code block readability on small screens */
@media (max-width: 768px) {
pre {
font-size: 12px;
padding: 10px;
margin: 12px 0;
}

code {
font-size: 0.85em;
padding: 2px 4px;
}
}

/* Print styles for code blocks */
@media print {
pre {
border: 1px solid #ccc;
page-break-inside: avoid;
background: #f5f5f5;
color: #000;
}

code {
background: #f0f0f0;
color: #000;
}
}
Loading