2
0
mirror of https://github.com/opnsense/docs synced 2024-11-17 03:25:33 +00:00
opensense-docs/themes/opnsense/sass/_theme_rst.sass
2018-11-08 20:59:18 +01:00

390 lines
12 KiB
Sass

// -------------------------------------------------------------------------------------------------------------------
// CONTRIBUTORS, PLEASE READ THIS!
// -------------------------------------------------------------------------------------------------------------------
// Couple things...
// 1. Lots of this @extends from wyrm_core/_type.sass (http://www.github.com/snide/wyrm/.
// * Try not to replace any @extends code. It's pretty generic stuff meant to work together.
// * That said, know that I'm very unlikely to accept PRs from wyrm just to change style here.
// 2. I plan to remove the !importants in here. Part of it is due to lazyness, part to sphinx's fondness for nesting.
// 3. Try to use variables from wyrm_core/wy_variables.sass. Notable are...
// * $base-line-height // All margins, padding and line-height should use this in .25 increments.
// * $text-color, $text-light, $text-dark...etc
// * $base-font-family, $custom-font-family, $code-font-family
// 4. If you have changes for mobile/tablet, put them at the bottom of the sass file.
// --------------------------------------------------------------------------------------------------------------------
.rst-content
// Sphinx by default applies HxW style attributes to images. This fixes that oversite.
img
max-width: 100%
height: auto
div.figure
margin-bottom: $base-line-height
p.caption
font-style: italic
p:last-child.caption
margin-bottom: 0px
div.figure.align-center
text-align: center
// Usually it's a good idea to give images some space.
.section > img, .section > a > img
margin-bottom: $base-line-height
// normalize browser styling
abbr[title]
text-decoration: none
// Style external links
&.style-external-links a.reference.external:after
font-family: FontAwesome
content: "\f08e"
color: $text-light
vertical-align: super
font-size: 60%
margin: 0 0.2em
// For the most part, its safe to assume that sphinx wants you to use a blockquote as an indent. It gets
// used in many different ways, so don't assume you can apply some fancy style, just leave it be.
blockquote
margin-left: $base-line-height
line-height: $base-line-height
margin-bottom: $base-line-height
pre.literal-block, div[class^='highlight']
border: 1px solid $table-border-color
padding: 0px
overflow-x: auto
// 1px hack otherwise border won't show. lame
margin: 1px 0 $base-line-height 0
div[class^='highlight']
border: none
margin: 0
// Needs 100% width for line highlighting to work properly
div[class^='highlight'] td.code
width: 100%
.linenodiv pre
border-right: solid 1px lighten($table-border-color, 2%)
margin: 0
padding: $base-line-height / 2 $base-line-height / 2
font-family: $code-font-family
user-select: none
pointer-events: none
div[class^='highlight'] pre
white-space: pre
margin: 0
padding: $base-line-height / 2 $base-line-height / 2
font-family: $code-font-family
display: block
overflow: auto
& .hll
// Line emphasis spans full width
display: block
margin: 0 -1 * $base-line-height / 2
padding: 0 $base-line-height / 2
pre.literal-block, div[class^='highlight'] pre, .linenodiv pre
font-size: 12px
line-height: normal
@media print
.codeblock, div[class^='highlight'], div[class^='highlight'] pre
white-space: pre-wrap
// These are the various note pullouts that sphinx applies
.note, .attention, .caution, .danger, .error, .hint, .important, .tip, .warning, .seealso, .admonition-todo, .admonition
@extend .wy-alert
.last
margin-bottom: 0
.admonition-title
@extend .wy-alert-title
@extend .fa
@extend .fa-exclamation-circle
&:before
margin-right: 4px
.note, .seealso
@extend .wy-alert.wy-alert-info
.hint, .tip, .important
@extend .wy-alert.wy-alert-success
.error, .danger
@extend .wy-alert.wy-alert-danger
.warning, .caution, .attention, .admonition-todo
@extend .wy-alert.wy-alert-warning
// Some people put tables in notes. Let's give them very basic support.
.admonition table
border-color: rgba(0,0,0,.1)
td, th
background: transparent !important
border-color: rgba(0,0,0,.1) !important
.section ul, .toctree-wrapper ul
@extend .wy-plain-list-disc
.section ol.loweralpha, .section ol.loweralpha li
list-style: lower-alpha
.section ol.upperalpha, .section ol.upperalpha li
list-style: upper-alpha
.section ol, ol.arabic
@extend .wy-plain-list-decimal
.section ol p, .section ul p
margin-bottom: $base-line-height / 2
&:last-child
margin-bottom: $base-line-height
.line-block
margin-left: 0px
margin-bottom: $base-line-height
.line-block .line-block
margin-left: $base-line-height
margin-bottom: 0px
// Generics handling of headings and toc stuff.
.topic-title
font-weight: bold
margin-bottom: $base-line-height / 2
.toc-backref
color: $text-color
.align-right
float: right
margin: 0px 0px $base-line-height $base-line-height
.align-left
float: left
margin: 0px $base-line-height $base-line-height 0px
.align-center
margin: auto
// Do not override display:table for tables
&:not(table)
display: block
.toctree-wrapper p.caption
@extend h2
// This is the #href that shows up on hover. Sphinx's is terrible so I hack it away.
h1, h2, h3, h4, h5, h6, dl dt, p.caption, table > caption
.headerlink
visibility: hidden
font-size: 14px
@extend .fa
&:after
content: "\f0c1"
font-family: FontAwesome
&:hover .headerlink:after
visibility: visible
table > caption .headerlink:after
font-size: 12px
.centered
text-align: center
// Sidebar content. You'll see at the bottom of this file I change it in mobile.
.sidebar
float: right
width: 40%
display: block
margin: 0 0 $base-line-height $base-line-height
padding: $base-line-height
background: $sidebar-background-color
border: solid 1px $sidebar-border-color
// Sidebar content is usually less relevant, so adjust the margins and sizes.
p, ul, dl
font-size: 90%
.last
margin-bottom: 0
.sidebar-title
display: block
font-family: $custom-font-family
font-weight: bold
background: $table-border-color
padding: $base-line-height / 4 $base-line-height / 2
margin: -$base-line-height
margin-bottom: $base-line-height
font-size: 100%
// Sphinx can highlight searched text with ?highlighted=searchterm
.highlighted
background: $highlight-color
display: inline-block
font-weight: bold
padding: 0 $base-line-height / 4
// These are the little citation links [1] that show up within paragraphs.
.footnote-reference, .citation-reference
vertical-align: baseline
position: relative
top: -0.4em
line-height: 0
font-size: 90%
// Tables! Sphinx LOVES TABLES. Most of wyrm assumes you're only going to use a table as a table
// so I have to write a bunch of unique stuff for Sphinx to style them up differently like it's 2003.
table.docutils.citation, table.docutils.footnote
background: none
border: none
color: $text-medium
td, tr
border: none
background-color: transparent !important
white-space: normal
td.label
padding-left: 0
padding-right: 0
vertical-align: top
code
color: $gray
// Remove the large vertical space between citations and footnotes
.wy-table-responsive.citation, .wy-table-responsive.footnote
margin-bottom: 0
// Re-add vertical space to element directly following citation and footnotes,
// if the following element is of a different type
.wy-table-responsive.citation + :not(.citation),
.wy-table-responsive.footnote + :not(.footnote)
margin-top: $base-line-height
// Re-add vertical space after citation and footnotes if it is the last child of a parent
.wy-table-responsive.citation:last-child, .wy-table-responsive.footnote:last-child
margin-bottom: $base-line-height
table.docutils
@extend .wy-table
@extend .wy-table-bordered-all
th
border-color: $table-border-color
&:not(.field-list)
@extend .wy-table-striped
// This table is what gets spit out for auto-generated API stuff. I style it smaller bits of padding.
table.field-list
@extend .wy-table
border: none
td
border: none
td > strong
display: inline-block
.field-name
padding-right: 10px
text-align: left
white-space: nowrap
.field-body
text-align: left
// These are the "literals" that get spit out when you mark stuff as ``code`` as your write.
tt, code
@extend code
color: $black
padding: 2px 5px
big, em
font-size: 100% !important
line-height: normal
&.literal
color: $text-code-color
&.xref, a &
font-weight: bold
color: $text-codexref-color
// If the literal is inside an a tag, let's color it like a link
a tt, a code
color: $link-color
dl
margin-bottom: $base-line-height
dt
font-weight: bold
// Most of the content within these dls are one liners, so I halve the normal margins.
p, table, ul, ol
margin-bottom: $base-line-height / 2 !important
// rST seems to want dds to be treated as the browser would, indented.
dd
margin: 0 0 $base-line-height / 2 $base-line-height
// This is what Sphinx spits out for its autodocs. Depending upon what language the person is referencing
// these things usually have a class of "method" or "class" or something similar, but really who knows.
// Sphinx doesn't give me a generic class on these, so unfortunately I have to apply it to the root dl.
// This makes me terribly unhappy and makes this code very nesty. Unfortunately I've seen hand-written docs
// that output similar, but not quite the same nesting so this is really the best we can do.
dl:not(.docutils)
margin-bottom: $base-line-height
// This would be the equivilant of a .. class::
dt
display: table
margin: $base-line-height / 4 0
font-size: 90%
line-height: normal
background: lighten($class-color, 50%)
color: $class-color
border-top: solid 3px lighten($class-color, 20%)
padding: $base-line-height / 4
position: relative
&:before
color: lighten($class-color, 20%)
.headerlink
color: $text-color
font-size: 100% !important
// And this would be the .. method::
dl dt
margin-bottom: $base-line-height / 4
border: none
border-left: solid 3px hsl(0,0%,80%)
background: hsl(0,0%,94%)
color: $method-color
.headerlink
color: $headerlink-color
font-size: 100% !important
dt:first-child
margin-top: 0
// Since dts get the callout style, we treat this less as callouts.
tt, code
font-weight: bold
&.descname, &.descclassname
background-color: transparent
border: none
padding: 0
font-size: 100% !important
&.descname
font-weight: bold
// This is for more advanced parameter control
.optional
display: inline-block
padding: 0 4px
color: $black
font-weight: bold
.property
display: inline-block
padding-right: 8px
// Doc links to sourcecode
.viewcode-link, .viewcode-back
display: inline-block
color: $text-viewcode-color
font-size: 80%
padding-left: $base-line-height
.viewcode-back
display: block
float: right
p.rubric
margin-bottom: 12px
font-weight: bold
//Download link
code.download
background: inherit
padding: inherit
font-weight: normal
font-family: inherit
font-size: inherit
color: inherit
border: inherit
white-space: inherit
span:first-child
-webkit-font-smoothing: subpixel-antialiased
@extend .fa
@extend .fa-download
&:before
margin-right: 4px
.guilabel
border: 1px solid lighten($guilabel-color, 25%)
background: lighten($guilabel-color, 50%)
font-size: 80%
font-weight: 700
border-radius: $base-line-height / 6
padding: $base-line-height / 10 $base-line-height / 4
margin: auto $base-line-height / 12
.versionmodified
font-style: italic
// Mobile specific
+media($mobile)
.rst-content
.sidebar
width: 100%