/* Responsive base font size using clamp() */
body {
font-family: Arial, sans-serif;
font-size: clamp(14px, 2.5vw, 16px); /* scales from 14px to 16px */
line-height: 1.5;
margin: 1em;
color: #1e1e1e;
background: #fff;
}
/* Layout foundation: force the page to be full-height and use flex */
html {
height: 100%;
box-sizing: border-box;
}
*, *::before, *::after { box-sizing: inherit; }
body {
min-height: 100vh; /* robust against percentage height issues */
display: flex;
flex-direction: column;
margin: 0;
padding: 0;
}
/* make the main content take remaining space */
main.container {
flex: 1 1 auto; /* grow and shrink as needed */
display: block; /* keep existing layout inside main */
}
/* allow footer to sit at bottom (if content short) */
footer {
margin-top: auto;
}
/* Mobile-specific adjustments */
@media (max-width: 768px) {
body {
margin: 0.5em;
font-size: 14px;
}
}
/* Responsive headings */
h1 {
font-size: clamp(1.75rem, 4vw, 2.5rem);
font-weight: bold;
margin: 1em 0 0.5em;
}
h2 {
font-size: clamp(1.5rem, 3.5vw, 2rem);
font-weight: bold;
margin: 1em 0 0.5em;
}
h3 {
font-size: clamp(1.25rem, 3vw, 1.75rem);
font-weight: bold;
margin: 1em 0 0.5em;
}
h4 {
font-size: clamp(1.1rem, 2.5vw, 1.5rem);
font-weight: bold;
margin: 1em 0 0.5em;
}
h5 {
font-size: clamp(1rem, 2vw, 1.25rem);
font-weight: bold;
margin: 1em 0 0.5em;
}
h6 {
font-size: clamp(0.9rem, 1.5vw, 1rem);
font-weight: bold;
margin: 1em 0 0.5em;
}
p, ul, ol, blockquote, pre, table {
margin: 0.5em 0;
}
/* Lists */
ul, ol {
padding-left: 2em;
}
li {
margin: 0.25em 0;
}
/* Mobile list adjustments */
@media (max-width: 768px) {
ul, ol {
padding-left: 1.5em;
}
}
/* Links */
a {
color: blue;
text-decoration: underline;
}
a:hover {
color: darkblue;
}
/* Tables */
table {
border-collapse: collapse;
width: 100%;
margin: 1em 0;
font-size: clamp(0.85rem, 2vw, 1rem); /* slightly smaller on mobile */
}
th, td {
border: 1px solid #1e1e1e;
padding: 0.5em;
text-align: left;
}
th {
background: #eee;
}
/* Mobile table adjustments */
@media (max-width: 768px) {
table {
font-size: 0.85rem;
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
th, td {
padding: 0.4em;
min-width: 80px;
}
}
/* Code blocks */
code, pre {
font-family: Consolas, monospace;
background: #f5f5f5;
padding: 2px 4px;
border-radius: 3px;
font-size: clamp(0.8rem, 1.8vw, 0.9rem); /* responsive code font */
}
pre {
overflow: auto;
padding: 0.5em;
}
/* Blockquote */
blockquote {
border-left: 4px solid #ccc;
padding-left: 1em;
color: #555;
margin: 1em 0;
font-size: clamp(0.9rem, 2.2vw, 1rem);
}
/* Forms */
input, select, textarea, button {
font: inherit;
padding: 0.4em;
margin: 0.25em 0;
border: 1px solid #999;
border-radius: 3px;
font-size: clamp(0.9rem, 2.2vw, 1rem);
}
button {
background: #eee;
cursor: pointer;
}
button:hover {
background: #ddd;
}
.html-content {
margin-left: 1em;
}
.html-content hr {
border: none;
height: 1px;
background: linear-gradient(to right, transparent, #bbb, transparent);
margin: 2em auto;
width: 80%;
}
/* Content container */
.html-content {
margin: 0 auto;
padding: 0 clamp(0.5em, 3vw, 1em); /* responsive padding */
max-width: 800px;
line-height: 1.6;
}
/* Mobile content container adjustments */
@media (max-width: 768px) {
.html-content {
padding: 0 0.5em;
margin-left: 0;
max-width: 100%;
}
}
/* Headings inside content */
.html-content h1,
.html-content h2,
.html-content h3,
.html-content h4,
.html-content h5,
.html-content h6 {
margin-top: 1em;
margin-bottom: 0.75em;
line-height: 1.3;
}
/* Paragraphs & lists */
.html-content p,
.html-content ul,
.html-content ol,
.html-content blockquote,
.html-content pre,
.html-content table {
margin: 1em 0;
}
/* Links inside content */
.html-content a {
color: blue;
text-decoration: underline;
}
.html-content a:hover {
color: darkblue;
}
/* Tables */
.html-content table {
border-collapse: collapse;
margin: 1.5em auto;
max-width: 100%;
width: auto;
min-width: 60%;
}
.html-content th,
.html-content td {
border: 1px solid #1e1e1e;
padding: 0.5em 0.75em;
}
.html-content th {
background: #eee;
}
/* Prevent wide tables/code/images from breaking layout */
.html-content pre,
.html-content table,
.html-content img {
max-width: 100%;
overflow-x: auto;
}
/* Code blocks */
.html-content code,
.html-content pre {
font-family: Consolas, monospace;
background: #f5f5f5;
border-radius: 3px;
}
.html-content pre {
padding: 0.75em;
margin: 1em 0;
}
/* Blockquotes */
.html-content blockquote {
border-left: 4px solid #ccc;
padding-left: 1em;
color: #555;
margin: 1.5em 0;
font-style: italic;
}
/* Forms */
.html-content input,
.html-content select,
.html-content textarea,
.html-content button {
font: inherit;
padding: 0.4em;
margin: 0.25em 0;
border: 1px solid #999;
border-radius: 3px;
}
.html-content button {
background: #eee;
cursor: pointer;
}
.html-content button:hover {
background: #ddd;
}
/* HR */
.html-content hr {
border: none;
height: 1px;
background: linear-gradient(to right, transparent, #bbb, transparent);
width: 80%;
}
/* GFM CSS */
.html-content blockquote.alert {
border-left: 4px solid;
padding: 0.75em 1em;
margin: 1.5em 0;
border-radius: 4px;
background: #f9f9f9;
font-size: clamp(0.85rem, 2vw, 0.95rem); /* responsive alert font */
}
.html-content blockquote.alert p:first-child {
font-weight: bold;
margin-top: 0;
}
/* Variants */
.html-content .alert-note {
border-color: #0366d6;
background: #f0f7ff;
color: #0366d6;
}
.html-content .alert-tip {
border-color: #28a745;
background: #f0fff4;
color: #28a745;
}
.html-content .alert-important {
border-color: #6f42c1;
background: #f9f5ff;
color: #6f42c1;
}
.html-content .alert-warning {
border-color: #d97706;
background: #fffaf0;
color: #d97706;
}
.html-content .alert-caution {
border-color: #d73a49;
background: #fff5f5;
color: #d73a49;
}
.html-content blockquote.alert p:first-child::before {
content: "";
display: inline-block;
width: 1em;
height: 1em;
margin-right: 0.5em;
vertical-align: -0.125em;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none !important;
color: inherit;
}
.language-css .token.string,
.style .token.string,
.token.entity,
.token.operator,
.token.url {
background: none !important;
color: inherit;
}
/* Dark mode */
body.dark-mode {
background: #1e1e1e; /* before this was #121212 or something, which wasnt blending smooth with the indexer page*/
color: #e0e0e0;
}
body.dark-mode a { color: #80b3ff; }
body.dark-mode a:hover { color: #a3c8ff; }
body.dark-mode th,
body.dark-mode td {
border-color: #444;
}
body.dark-mode th {
background: #2a2a2a;
}
body.dark-mode code,
body.dark-mode pre {
background: #121212;
color: #c8c8c8;
}
body.dark-mode blockquote {
border-left-color: #555;
color: #bbb;
}
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea,
body.dark-mode button {
background: #121212;
color: #e0e0e0;
border: 1px solid #555;
}
body.dark-mode button {
background: #2a2a2a;
}
body.dark-mode button:hover {
background: #333;
}
/* Alerts in dark mode */
body.dark-mode .html-content .alert-note {
background: #1a2433;
color: #80b3ff;
border-color: #80b3ff;
}
body.dark-mode .html-content .alert-tip {
background: #13291b;
color: #6ede8a;
border-color: #6ede8a;
}
body.dark-mode .html-content .alert-important {
background: #241833;
color: #c29fff;
border-color: #c29fff;
}
body.dark-mode .html-content .alert-warning {
background: #2a200f;
color: #ffcc66;
border-color: #ffcc66;
}
body.dark-mode .html-content .alert-caution {
background: #2a1518;
color: #ff8080;
border-color: #ff8080;
}
/* SVG icons for alerts */
.html-content .alert-note p:first-child::before {
background-image: url("data:image/svg+xml;utf8,");
}
.html-content .alert-tip p:first-child::before {
background-image: url("data:image/svg+xml;utf8,");
}
.html-content .alert-important p:first-child::before {
background-image: url("data:image/svg+xml;utf8,");
}
.html-content .alert-warning p:first-child::before {
background-image: url("data:image/svg+xml;utf8,");
}
.html-content .alert-caution p:first-child::before {
background-image: url("data:image/svg+xml;utf8,");
}