evennia/docs/source/_static/custom.css

445 lines
12 KiB
CSS
Raw Normal View History

/* ===========================================================================
Evennia Docs Custom CSS for Sphinx 7.x
(Auto-generated: ports all styles from live Evennia nature.css,
adapted for modern Sphinx, minimal layout overrides)
COMMENTS:
- All major overrides/fixes are documented.
- Responsive and layout hacks are clearly marked for Sphinx 7.x compatibility.
- Magic values from live Evennia docs are annotated for traceability.
========================================================================== */
/* --- Imports & Font Setup --- */
@import url("https://fonts.googleapis.com/css?family=Arvo:400,700,400italic");
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic");
@import url("https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap");
/* --- Page Layout & Core Backgrounds --- */
/* HACK: Body and wrappers for Evennia look. Padding/margin settings ensure consistent backgrounds and edge gutters. */
body {
font-family: "Open Sans", Helvetica, Arial, sans-serif;
background-color: #eee !important;
color: #555;
width: 100% !important;
min-width: 0 !important;
max-width: none !important;
margin: 0 !important;
padding: 0 24px !important; /* Adjust padding as you like */
}
.bodywrapper {
width: 100% !important;
min-width: 0 !important;
max-width: none !important;
margin: 0 !important;
padding: 0 !important;
}
/* Container styling for max-width, background, shadow, and border-radius—matches Evennia's live docs. */
div.document {
background-color: #eeeeea !important;
max-width: 1090px; /* Copied from live Evennia for page width */
margin: 0 0;
box-shadow: 0 0 4px 0 #ececec;
border-radius: 6px;
}
div.body {
background-color: #f1f1ef !important;
color: #3E4349;
padding: 0 30px 30px 30px;
font-size: 0.9em;
margin-top: -9px;
}
div.documentwrapper {
display: flex;
flex-wrap: wrap;
}
div.bodywrapper {
width: 79%;
box-sizing: border-box;
}
hr {
border: 1px solid #B1B4B6;
}
/* --- Header/Footer Bar --- */
/* Header & footer bars: color, margin, radius, and link color tuned for Evennia branding */
div.related {
background-color: #dbe9f0 !important;
line-height: 32px;
color: #9FA0A0;
font-size: 0.9em;
max-width: 1090px;
margin: 0 0;
border-radius: 0 0 6px 6px;
}
div.related a {
color: #565F62;
text-shadow: none;
}
div.footer {
color: #555;
width: 100%;
padding: 13px 0;
text-align: center;
font-size: 75%;
max-width: 1080px;
margin: 0 auto;
}
div.footer a {
color: #444;
text-decoration: underline;
}
/* --- Logo Centering --- */
/* Center Evennia logo in sidebar or header—matches live docs. */
.logo {
padding-left: 1px;
margin-left: auto;
margin-right: auto;
display: block;
margin-top: -12px;
opacity: 0.8;
}
/* --- Sidebar --- */
/* SIDEBAR LAYOUT: Custom overrides to maintain left sidebar (pre-Sphinx 7 behavior)
and adapt sidebar coloring/spacing to Evennia's look as of July 2025. */
div.sphinxsidebar {
font-size: 0.75em;
line-height: 1.5em;
background-color: #fafaf8;
border-right: 1px solid #e4e4dc;
background: #eeeeea;
}
div.sphinxsidebarwrapper {
padding: 20px 0;
}
div.sphinxsidebar h3,
div.sphinxsidebar h4 {
font-family: Arvo, sans-serif;
color: #4f4f4f;
font-size: 1.2em;
font-weight: normal;
margin: 0;
padding: 5px 10px;
background-color: #dbe9f0 !important;
border-radius: 2px;
margin-top: 15px;
margin-bottom: 4px;
}
div.sphinxsidebar h4 {
font-size: 1.1em;
}
div.sphinxsidebar h3 a {
color: #444;
text-shadow: none;
}
div.sphinxsidebar p {
color: #888;
padding: 5px 20px;
}
div.sphinxsidebar ul {
margin: 10px 20px;
padding: 0;
color: #000;
}
div.sphinxsidebar a {
color: #444;
}
div.sphinxsidebar input {
border: 1px solid #ccc;
font-family: Arvo, sans-serif;
font-size: 1em;
background-color: #f7f7f7;
}
div.sphinxsidebar .searchformwrapper {
margin-left: 20px;
margin-right: 20px;
}
/* --- Main Content Headers --- */
/* HEADINGS: Matches Evennia live doc headers for background, border, and text style */
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
font-family: Arvo, Monaco, serif;
background-color: #f7f7f3 !important;
font-weight: normal;
color: #212224;
margin: 30px 0px 10px 0px;
padding: 5px 0 5px 10px;
text-shadow: 0px 1px 0 white;
border-bottom: 1px solid #c6d7df;
border-left: 10px solid #cfdde8;
border-top: 0px solid #cfdde8;
}
div.body h1 { margin-top: 20px solid #fff; font-size: 230%; }
div.body h2 { font-size: 150%; }
div.body h3 { font-size: 120%; }
div.body h4 { font-size: 110%; }
div.body h5 { font-size: 100%; }
div.body h6 { font-size: 100%; }
/* --- Blockquotes --- */
blockquote {
font-style: italic;
color: #797979;
background-color: #e1e8e2;
border: 1px solid #c7cdc8;
padding-left: 14px;
padding-right: 15px;
margin-left: 0;
width: 96%;
border-left-style: dotted;
border-left-width: medium;
position: relative;
}
blockquote:before {
content: "!";
float: left;
font-size: 230%;
opacity: 0.3;
padding-right: 5px;
}
/* --- Admonitions, Notes, Warnings --- */
div.note, .admonition.note {
background-color: #e1e8e2 !important;
border: 1px solid #ccc;
font-style: italic;
text-indent: -2.9em;
padding-left: 3.5em;
}
div.note > p { text-indent: 0em; }
div.important, .admonition.important {
background-color: #fbf7c3 !important;
border: 1px solid #c8c59b;
font-style: italic;
text-indent: -5.5em;
padding-left: 6.1em;
}
div.important > p { text-indent: 0em; }
div.warning, .admonition.warning {
background-color: #ffe4e4 !important;
border: 1px solid #f66;
font-style: italic;
text-indent: -4.6em;
padding-left: 5.2em;
}
div.warning > p { text-indent: 0em; }
div.seealso {
background-color: #ffc;
border: 1px solid #ff6;
}
div.topic, aside.topic {
background-color: #eee;
}
div.attention { background-color: #e5f3ff; border-color: #65b9ff; }
div.danger { background-color: #fff2f0; border-color: #f33; }
p.admonition-title {
margin-right: 0.2em;
display: inline;
font-weight: bold;
padding-right: 0.6em;
}
p.admonition-title:after { content: ":"; }
div.admonition p.admonition-title + p { display: inline; }
/* --- Version added/changed/deprecated boxes --- */
.versionadded { background-color: #e9f6e1; }
.versionchanged { background-color: #b7e6e8; padding-left: 10px; }
.deprecated { background-color: #fff3f3; }
/* --- Lists & Lists in API Docs --- */
li > p:first-child { margin-top: 0px; margin-bottom: 0px; }
li > p { margin-top: 0px; margin-bottom: 0px; }
dl.field-list.simple > dd.field-odd > ul.simple > li > ul { margin-left: 24px; }
dd.field-odd > ul.simple > li > ul > li > dl.simple { margin-bottom: -8px; }
/* --- Code blocks, Inline code, API highlighting --- */
/* Pygments highlighting is loaded separately—only container backgrounds here. */
div.highlight {
background-color: #f1f1ef !important;
border-left: 4px double #7ea6b3;
border-radius: 4px;
margin: 18px 0;
}
.highlight .hll { background-color: #ffffcc !important; border-radius: 5px; }
pre {
padding: 10px;
background-color: #e3e3e3;
color: #222;
line-height: 1.2em;
border: 1px solid #C6C9CB;
font-size: 1.1em;
margin: 1.5em 0 1.5em 0;
box-shadow: 1px 1px 1px #d8d8d8;
}
pre, div[class*="highlight-"] { clear: none; }
code {
background-color: #f7f7f7 !important;
color: #6e0e0e !important;
font-size: 0.9em;
font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
font-weight: normal;
border-radius: 3px;
padding: 1px 4px;
}
.viewcode-back {
font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
}
div.viewcode-block:target {
background-color: #f4e9d9;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}
div.code-block-caption {
background-color: #ddd;
color: #222;
border: 1px solid #C6C9CB;
}
/* --- API/Class/Method Styling --- */
.class {
font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
font-size: 0.9em;
background-color: #f5ffff;
padding: 5px;
}
.method {
background-color: #e3ecec;
padding: 5px;
font-size: 1.0em;
}
.sig-param {
font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
}
.sig-paren { margin-left: 1px; }
.property {
font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
}
dl.class > dd > p,
dl.method > dd > p {
font-style: italic;
}
code.descname { font-size: 0.9em; }
.function { background-color: #eff; padding: 5px; }
.exception { background-color: #fff9f9; padding: 5px; }
div.linenodiv>pre {
font-size: 0.9em;
line-height: 153%;
padding-right: 0;
padding-top: 8px;
}
/* --- Develop branch warning header --- */
.develop {
background-color: #ffe4e4;
align-content: center;
width: auto;
text-align: center;
letter-spacing: 15px;
}
/* --- Miscellaneous Tweaks --- */
a {
color: #005B81;
text-decoration: underline;
text-decoration-color: #fff;
text-decoration-color: #bdcbdf;
}
a:hover {
color: #0492CA;
text-decoration: underline;
text-decoration-color: #9bbed5;
}
a:visited { color: #551A8B; }
a.headerlink { color: #7caeb7; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; }
a.headerlink:hover { color: #7caeb7; }
ul.sidebar-links { list-style: none; padding-left: 0; margin: 14px 0; }
ul.sidebar-links li { padding-bottom: 2px; }
/* --- Responsive Tweaks --- */
/* These media queries are for legacy mobile and tablet support. */
@media print, screen and (max-width: 960px) {
div.body { min-width: auto; max-width: none; padding: 0 30px 30px 30px; }
div.bodywrapper { margin-left: 0px; margin-top: 110px; }
div.document, div.documentwrapper, div.bodywrapper { margin: 0 !important; }
#top-link { display: none; }
}
@media print, screen and (max-width: 720px) {
div.related>ul { visibility: hidden; }
div.related>ul>li.nav-item.nav-item-0 { visibility: visible; }
}
@media print, screen and (max-width: 480px) {
div.body { box-sizing: border-box; padding: 5px; }
div.sphinxsidebar, div.document, div.documentwrapper, div.bodywrapper { width: 100%; }
}
/* ━━━━━━━━━━━━━━━━━━━ Sidebar Responsive Layout Fix ━━━━━━━━━━━━━━━━━━━ */
/* -- Force old-style left sidebar layout for Sphinx 7 --
Sphinx 7+ switched to a single-column mobile-first layout;
this hack restores flex-row with sidebar left/content right for desktop.
Remove this when upstream Sphinx supports left sidebars natively again.
*/
.document {
display: flex !important;
flex-direction: row !important;
align-items: flex-start;
width: 100%;
box-sizing: border-box;
}
/* Sidebar goes left, main content right */
.sphinxsidebar {
order: 0 !important;
width: 18vw !important;
min-width: 170px !important;
max-width: 228.891px !important; /* Magic number: matches live Evennia sidebar width at 1200px */
flex-shrink: 0 !important;
box-sizing: border-box;
position: static !important;
z-index: 10 !important;
background-clip: padding-box;
overflow-y: auto;
max-height: 100vh;
margin: 0 !important;
}
/* Main content fills remaining space */
.documentwrapper {
order: 1 !important;
flex: 1 1 0 !important; /* THIS is what fills the rest! */
min-width: 0 !important; /* Required for flex overflow to work */
width: auto !important;
max-width: none !important;
box-sizing: border-box;
margin: 0 !important; /* Remove any stray margin */
padding: 0 !important;
}
/* Mobile: Stack vertically again at 480px, matches legacy Sphinx/Evennia */
@media screen and (max-width: 480px) {
.document {
flex-direction: column !important;
}
.sphinxsidebar,
.documentwrapper {
width: 100% !important;
min-width: 0 !important;
max-width: 100vw !important;
}
.sphinxsidebar {
margin-bottom: 24px !important;
}
}
/* Avoid pop-under: clear floats just in case */
.clearer {
display: none !important;
}
/* End of Evennia custom CSS */