@import url(‘fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap’);
:root {
--default-font: "Noto Sans", Verdana, Geneva, Arial, Helvetica, sans-serif; --heading-font: Georgia, Palatino, "Times New Roman", Times, serif; --fixed-font: Consolas, Monaco, "Lucida Console", monospace; --link-color: #00C; /* less aggressive than pure blue */ --link-hover-background: #ffa; /* pale yellow */ --link-to-non-documented-color: #555; /* grey */ --index-background: #f5f5f5; /* pale grey */ --pre-background: #f8f8f8; /* very pale grey */ --code-background: #f4f4f4; /* pale grey */ --current-index-link-color: firebrick; --current-index-link-background: #fcfcfc;
}
/*
* =============== * General reset * =============== */
-
{ padding: 0; margin: 0; }
body {
font-family: var(--default-font); background-color: white; color: black; font-size: 10pt;
}
pre, p, h1, h2, h3, h4, h5, h6, ul, ol, dl {
margin-top: 1ex;
}
td {
vertical-align: baseline; padding-right: 1ex;
}
blockquote {
border-left: 2px solid silver; padding-left: 12px;
}
ul { margin-left: 1.5em; } li { margin-top: 0.5ex; }
ol { margin-left: 2em; } ol li { margin-top: 1em; }
/* label lists: classic DT/DD */
.label-list > dt {
margin-top: 1ex; font-weight: bold;
} .label-list > dt > code { font-size: 100%; } .label-list > dd { margin-left: 2em; }
/* note lists: DT and DD on same row, no space between rows */
dl.note-list {
display: grid; grid-template-columns: max-content auto; margin-left: 1ex;
} dl.note-list > dt { grid-column-start: 1; } dl.note-list > dd { grid-column-start: 2; margin-left: 2ex; } dl.note-list > dd > p { margin-top: 0; } dl.note-list > dd > pre {
margin-top: 2px; padding-top: 0.5ex; padding-bottom: 0.5ex;
}
table {
border-collapse: collapse; margin-top: 1ex;
}
td p {
margin-top: 0.5ex;
}
hr {
margin-top: 1ex; border: 0; height: 2px; color: silver; background-color: silver;
}
a {
color: var(--link-color); text-decoration: none;
}
a:hover {
background-color: var(--link-hover-background); padding-bottom: 2px;
}
.nodoc a {
color: var(--link-to-non-documented-color);
}
/* banner colors */
header, .index .title {
color: white; background-color: #275382; background: linear-gradient(to right, #164270, #77a1d1);
}
/*
* =============== * General Layout * =============== */
body {
display: grid; grid-template-columns: auto 1fr;
}
left-container {
position: sticky; top: 0; width: 20vw; height: 100vh; overflow: hidden; border-right: 2px solid silver;
}
left-frame {
width: 100%; height: 100vh; border: none;
}
resizer {
position: absolute; right: -5px; top: 0; width: 10px; height: 100%; cursor: ew-resize; z-index: 9999;
}
/*
* ============= * Index files * ============= */
.index p, .index ul {
margin: 0; padding: 0;
}
body.index {
background-color: var(--index-background); display: unset; height: unset; overflow: auto;
}
.index .title {
font-family: var(--heading-font); padding: 3px 2px 5px 5px; /* TRBL */
} .index .title .text {
display: inline-block; padding-top: 2px; /* TRBL */
} .search-field {
font-family: var(--fixed-font); position: absolute; right: 3px; padding: 0 1px 2px 2px; /* TRBL */ border: 1px solid silver; color: gray; width: 8em; /* search... */
} .search-field:focus {
color: black;
}
.index .entries {
padding: 0.2em 0; font-size: 80%; overflow-x: hidden; overflow-y: auto;
} .index p {
white-space: nowrap;
} .index .type {
color:#444; font-size:75%; padding-left:0.67ex; display:inline-block; width:0.85em;
} .index a, .index a:hover {
padding: 0 0.5ex;
}
/* current file, class, method */ .current-main {
color: var(--current-index-link-color); background-color: var(--current-index-link-background);
}
/* the resizers, and a 9-pixel wide area around them */ file-class-resizer, class-method-resizer {
position: fixed; left: 0; width: 100%; top: 90px; height: 0px; /* background-color: red; */
} file-class-resizer::after, class-method-resizer::after {
content: ""; position: absolute; left: 0; right: 0; height: 9px; margin-top: -4px; background-color: transparent; cursor: ns-resize;
}
/*
* ============= * Main files * ============= * * The structure is: * #header * nav (inserted by script) * #documentation * */
h1, h2, h3, h4, h5, h6 {
font-family: var(--heading-font); color: #c61a1a; /* ruby red ;) */ padding-bottom: 0.5ex; font-weight: normal;
}
h1, h2, h3 {
margin-top: 1em; margin-bottom: 1ex; border-bottom: 1px solid #ddd;
}
h4, h5, h6 {
margin-top: 0.75em; border: none;
}
h1 a, h2 a, h3 a {
color: #e62020; /* not the best, but no other idea */
}
h1 { font-size: 230%; } h2 { font-size: 180%; } h3 { font-size: 150%; } h4 { font-size: 120%; } h5 { font-size: 105%; } h6 { font-size: 100%; }
documentation > h1:first-child, documentation > h2:first-child, documentation > h3:first-child {
margin-top: 0;
}
code {
font-family: var(--fixed-font); font-size: 100%; background-color: var(--code-background); padding: 1px 5px; border-radius: 4px;
}
a:hover code {
background-color: var(--link-hover-background);
}
pre {
font-family: var(--fixed-font); padding: 1ex; background-color: var(--pre-background); border-radius: 8px; white-space: break-spaces; /* for too wide text: see Net::HTTP#patch */
}
documentation {
padding: 1em; /* TRBL */ overflow: auto;
}
/* — toc button and menu */
nav {
position: fixed; padding-top: 10px; right: 10px; z-index: 2;
}
nav p {
margin: 0; padding: 0;
}
nav p.h2 { text-indent: 10px; } nav p.h3 { text-indent: 20px; } nav p.h4 { text-indent: 30px; } nav p.h5 { text-indent: 40px; } nav p.h6 { text-indent: 50px; }
menu-button {
float: right; margin-top: 4px; margin-right: 4px; cursor: pointer; background-color: #ededed; opacity: 0.5; box-shadow: none; border: 1px solid silver; border-radius: 3px; padding: 3px; padding-bottom: 0; /* centers the 18px icon vertically */
}
menu-button:hover {
opacity: 1;
}
menu-content {
font-size: 9pt; border: 1px solid silver; background-color: white; z-index: 1;
}
menu-top {
margin: 0; padding: 6pt; border-bottom: 1px solid silver;
}
toc-content {
margin: 0; padding: 6pt; max-height: 80vh; overflow: auto;
}
.hidden {
display: none;
}
.icon-hamburger {
content: url("images/menu_black_18dp.svg"); display: inline-block !important; }
.icon-cross {
content: url("images/close_black_18dp.svg"); display: none !important;
}
.show-close .icon-hamburger { display: none !important; } .show-close .icon-cross { display: inline-block !important; }
/* — top header of main files
div#header p.header-title span.prefix span.name p.header-title span.parent p#file-info span.in-files 'In:' span.file-list a (link to 1st files) a#show-all-files # if more than 2 files span#all-files a (link to each file)
*/
header {
padding: 1ex; display: flex; flex-wrap: wrap; align-items: end;
}
header p {
margin: 0; padding: 0; white-space: nowrap;
}
header a {
color: #ee0; padding: 0 2px 1px 2px; /* TRBL */
} header a:hover {
color: yellow; background-color: inherit; border-bottom: 1px solid yellow;
}
.header-title {
font-family: var(--heading-font); /* vertical-align: middle; */
}
header .prefix { font-size: 130%; } header .name { font-size: 170%; } header .parent { font-size: 130%; }
p#file-info {
font-family: var(--fixed-font); font-size: 90%; vertical-align: top; margin-left: auto;
} .in-files {
vertical-align: top;
} .file-list {
display: inline-block;
} all-files {
border: 1px solid silver; margin-top: 0.5ex; background-color: var(--index-background); padding: 1px 0; max-height: 30em; overflow-x: hidden; overflow-y: auto; display: none; position: absolute;
} all-files a {
color: var(--link-color); padding-top: 0; padding-bottom: 0;
} all-files a:hover {
color: var(--link-color); background-color: var(--link-hover-background);
}
/* — class page
#header (see above) #documentation (description stuff if any) #class-aliases (.list ul) #method-list (ul) #namespace-list (.list ul) #include-list (.list ul) #constant-list (.list table) tr.const-display td.const-name td.const-desc td.click-advice tr.const-value ... #external-aliases (.list table) #class-attributes (.list table) td.attr-rw td.attr-name td.attr-desc ... #instance-attributes (.list table) ... #<visibility>-<type>-methods #method:<method_name> (.method-detail [.method-alias]) .method-heading .method-call-seq | .method-name + .method-args .click-advice .method-description .method-source-code
*/
.click-advice {
font-size: 10px; color: #9b9877; background: url(images/zoom.png) no-repeat right top; padding-right: 20px; line-height: 16px; visibility: hidden; white-space: nowrap;
}
/* lists */
.list h3 {
margin-bottom: 0.5ex;
}
/* ul lists */
.list > ul {
list-style-type: none; margin: 0 1ex; padding: 0;
} .list li {
margin: 0; padding: 0;
}
/* list of methods */
method-list ul {
line-height: 1;
} method-list li {
display: inline-block; font-family: var(--fixed-font); font-size: 100%; padding: 2px 0;
} method-list .type {
padding-right: 1px; font-size: 80%;
} method-list li a {
padding: 0 4px 2px 4px; /* TRBL */
}
/* mixed class/module lists */
table.classes-modules {
margin: 0; margin-left: 1ex;
}
/* table lists */
.list table {
margin-top: 0;
}
.list p {
margin-top: 0.5ex;
}
.list table ul, .list table ol {
margin-top: 0;
}
.attr-rw p {
font-size: 70%; padding: 0.75ex 0 0 1ex;
} .const-name p, .attr-name p {
font-family: var(--fixed-font); font-size: 100%; font-weight: bold; padding: 0.3ex 0.5ex 0 0.2ex; /* top padding to align baselines */
} .const-desc p, .attr-desc p { } .const-display {
cursor: pointer;
} .const-display:hover .click-advice {
visibility: visible;
} .const-value {
font-family: var(--fixed-font); display: none;
}
/* — method details
.method-detail [.method-alias] .method-heading .method-call-seq | .method-name + .method-args .click-advice .method-description .method-source-code
*/
.method-detail {
border: 1px solid #ddd; border-radius: 3px; margin-top: 1em; padding-bottom: 1ex; /* cursor: pointer; */
}
.highlighted {
border: 1px solid red !important;
}
.method-detail h3 {
border: none; font-weight: normal; padding-bottom: 0;
}
.method-heading {
position: relative; font-family: var(--fixed-font); font-size: 105%; padding: 0.5ex 1ex; border-bottom: 1px solid #ddd; border-top-left-radius: 3px; border-top-right-radius: 3px; background-color: #eee; cursor: pointer;
} .method-heading :link, .method-heading :visited {
color: inherit;
} .method-call-seq {} .method-name {
font-weight: bold;
} .method-args {}
.method-heading .click-advice {
position: absolute; top: 4px; right: 5px;
} .method-heading:hover .click-advice {
visibility: visible;
}
.method-description {
padding: 0 1ex;
} .method-description p + p {
margin-bottom: 0.5ex;
} .method-description .nodoc {
color: #888;
}
/* source code */
pre.method-source-code {
border: 1px solid #fff5dd; /* very page orange */ background-color: #fffffa; /* very pale yellow */ margin-top: 1ex; padding-top: 0; padding-left: 0.5ex; padding-bottom: 0.5ex; display: none;
}
.ruby-constant { color: #7700cc; } /* violet */ .ruby-keyword { color: #3333ff; font-weight: bold; } /* a blue */ .ruby-ivar { color: #2233dd; } /* a lighter blue */ .ruby-operator { color: black; } .ruby-identifier { color: black; } .ruby-node { color: #860000; } /* dark red / light brown (resolved strings) */ .ruby-comment { color: green; } .ruby-regexp { color: ca1a1a; } /* orangish brown */ .ruby-string { color: #860000; } /* dark red / light brown (unresolved strings) */ .ruby-value { color: #860000; } /* dark red / light brown */ .line-num { color: grey; }
/* — file page (simple parser)
#header (see above) #documentation (description) --- other files #header (see above) #documentation (description if any) #file-details (requires in ul) (classes & modules) (webcvs)
*/
file-details h3 {
border: none; font-weight: normal; padding-bottom: 0;
}
/* requires */ file-details li {
font-family: var(--fixed-font);
}
/* maybe JS stuff */
.initially-hidden {
display: none;
}
.missing-docs {
-webkit-border-radius: 5px; -moz-border-radius: 5px;
}
/* debugging section */
debugging-toggle {
text-align: center;
} debugging-toggle img {
cursor: pointer;
}
rdoc-debugging-section-dump {
display: none; margin: 0 2em 2em; background: #ccc; border: 1px solid #999;
}