| /* See FiraSans-LICENSE.txt for the Fira Sans license. */ |
| @font-face { |
| font-family: 'Fira Sans'; |
| font-style: normal; |
| font-weight: 400; |
| src: local('Fira Sans'), |
| url("FiraSans-Regular.woff2") format("woff2"), |
| url("FiraSans-Regular.woff") format('woff'); |
| font-display: swap; |
| } |
| @font-face { |
| font-family: 'Fira Sans'; |
| font-style: normal; |
| font-weight: 500; |
| src: local('Fira Sans Medium'), |
| url("FiraSans-Medium.woff2") format("woff2"), |
| url("FiraSans-Medium.woff") format('woff'); |
| font-display: swap; |
| } |
| |
| /* See SourceSerif4-LICENSE.md for the Source Serif 4 license. */ |
| @font-face { |
| font-family: 'Source Serif 4'; |
| font-style: normal; |
| font-weight: 400; |
| src: local('Source Serif 4'), url("SourceSerif4-Regular.ttf.woff") format('woff'); |
| font-display: swap; |
| } |
| @font-face { |
| font-family: 'Source Serif 4'; |
| font-style: italic; |
| font-weight: 400; |
| src: local('Source Serif 4 Italic'), url("SourceSerif4-It.ttf.woff") format('woff'); |
| font-display: swap; |
| } |
| @font-face { |
| font-family: 'Source Serif 4'; |
| font-style: normal; |
| font-weight: 700; |
| src: local('Source Serif 4 Bold'), url("SourceSerif4-Bold.ttf.woff") format('woff'); |
| font-display: swap; |
| } |
| |
| /* See SourceCodePro-LICENSE.txt for the Source Code Pro license. */ |
| @font-face { |
| font-family: 'Source Code Pro'; |
| font-style: normal; |
| font-weight: 400; |
| /* Avoid using locally installed font because bad versions are in circulation: |
| * see https://github.com/rust-lang/rust/issues/24355 */ |
| src: url("SourceCodePro-Regular.ttf.woff") format('woff'); |
| font-display: swap; |
| } |
| @font-face { |
| font-family: 'Source Code Pro'; |
| font-style: italic; |
| font-weight: 400; |
| src: url("SourceCodePro-It.ttf.woff") format('woff'); |
| font-display: swap; |
| } |
| @font-face { |
| font-family: 'Source Code Pro'; |
| font-style: normal; |
| font-weight: 600; |
| src: url("SourceCodePro-Semibold.ttf.woff") format('woff'); |
| font-display: swap; |
| } |
| |
| /* Avoid using legacy CJK serif fonts in Windows like Batang */ |
| @font-face { |
| font-family: 'Noto Sans KR'; |
| src: url("noto-sans-kr-v13-korean-regular.woff") format("woff"); |
| font-display: swap; |
| unicode-range: U+A960-A97F, U+AC00-D7AF, U+D7B0-D7FF; |
| } |
| |
| * { |
| -webkit-box-sizing: border-box; |
| -moz-box-sizing: border-box; |
| box-sizing: border-box; |
| } |
| |
| /* This part handles the "default" theme being used depending on the system one. */ |
| html { |
| content: ""; |
| } |
| @media (prefers-color-scheme: light) { |
| html { |
| content: "light"; |
| } |
| } |
| @media (prefers-color-scheme: dark) { |
| html { |
| content: "dark"; |
| } |
| } |
| |
| /* General structure and fonts */ |
| |
| body { |
| font: 16px/1.4 "Source Serif 4", "Noto Sans KR", serif; |
| margin: 0; |
| position: relative; |
| padding: 10px 15px 20px 15px; |
| |
| -webkit-font-feature-settings: "kern", "liga"; |
| -moz-font-feature-settings: "kern", "liga"; |
| font-feature-settings: "kern", "liga"; |
| } |
| |
| h1 { |
| font-size: 1.5em; |
| } |
| h2 { |
| font-size: 1.4em; |
| } |
| h3 { |
| font-size: 1.3em; |
| } |
| h1, h2, h3, h4 { |
| font-weight: 500; |
| margin: 20px 0 15px 0; |
| padding-bottom: 6px; |
| } |
| h1.fqn { |
| display: flex; |
| border-bottom: 1px dashed; |
| margin-top: 0; |
| |
| /* workaround to keep flex from breaking below 700 px width due to the float: right on the nav |
| above the h1 */ |
| padding-left: 1px; |
| } |
| h1.fqn > .in-band > a:hover { |
| text-decoration: underline; |
| } |
| #main > h2, #main > h3, #main > h4 { |
| border-bottom: 1px solid; |
| } |
| h3.code-header, h4.code-header { |
| font-size: 1em; |
| font-weight: 600; |
| border: none; |
| padding: 0; |
| margin: 0; |
| } |
| .impl, |
| .impl-items .method, |
| .methods .method, |
| .impl-items .type, |
| .methods .type, |
| .impl-items .associatedconstant, |
| .methods .associatedconstant, |
| .impl-items .associatedtype, |
| .methods .associatedtype { |
| flex-basis: 100%; |
| font-weight: 600; |
| margin-top: 16px; |
| margin-bottom: 10px; |
| position: relative; |
| } |
| .impl, .method.trait-impl, |
| .type.trait-impl, |
| .associatedconstant.trait-impl, |
| .associatedtype.trait-impl { |
| padding-left: 15px; |
| } |
| |
| div.impl-items > div { |
| padding-left: 0; |
| } |
| |
| h1, h2, h3, h4, |
| .sidebar, a.source, .search-input, .search-results .result-name, |
| .content table td:first-child > a, |
| div.item-list .out-of-band, span.since, |
| #source-sidebar, #sidebar-toggle, |
| details.rustdoc-toggle > summary::before, |
| details.undocumented > summary::before, |
| div.impl-items > div:not(.docblock):not(.item-info), |
| .content ul.crate a.crate, a.srclink, |
| /* This selector is for the items listed in the "all items" page. */ |
| #main > ul.docblock > li > a { |
| font-family: "Fira Sans", Arial, sans-serif; |
| } |
| |
| .content ul.crate a.crate { |
| font-size: 16px/1.6; |
| } |
| |
| ol, ul { |
| padding-left: 25px; |
| } |
| ul ul, ol ul, ul ol, ol ol { |
| margin-bottom: .6em; |
| } |
| |
| p { |
| margin: 0 0 .6em 0; |
| } |
| |
| summary { |
| outline: none; |
| } |
| |
| /* Fix some style changes due to normalize.css 8 */ |
| |
| td, |
| th { |
| padding: 0; |
| } |
| |
| table { |
| border-collapse: collapse; |
| } |
| |
| button, |
| input, |
| optgroup, |
| select, |
| textarea { |
| color: inherit; |
| font: inherit; |
| margin: 0; |
| } |
| |
| /* end tweaks for normalize.css 8 */ |
| |
| details:not(.rustdoc-toggle) summary { |
| margin-bottom: .6em; |
| } |
| |
| code, pre, a.test-arrow, .code-header { |
| font-family: "Source Code Pro", monospace; |
| } |
| .docblock code, .docblock-short code { |
| border-radius: 3px; |
| padding: 0 0.1em; |
| } |
| .docblock pre code, .docblock-short pre code { |
| padding: 0; |
| padding-right: 1ex; |
| } |
| pre { |
| padding: 14px; |
| } |
| |
| .source .content pre { |
| padding: 20px; |
| } |
| |
| img { |
| max-width: 100%; |
| } |
| |
| li { |
| position: relative; |
| } |
| |
| .source .content { |
| margin-top: 50px; |
| max-width: none; |
| overflow: visible; |
| margin-left: 0px; |
| } |
| |
| nav.sub { |
| font-size: 16px; |
| text-transform: uppercase; |
| } |
| |
| .sidebar { |
| width: 200px; |
| position: fixed; |
| left: 0; |
| top: 0; |
| bottom: 0; |
| overflow: auto; |
| } |
| |
| /* Improve the scrollbar display on firefox */ |
| * { |
| scrollbar-width: initial; |
| } |
| .sidebar { |
| scrollbar-width: thin; |
| } |
| |
| /* Improve the scrollbar display on webkit-based browsers */ |
| ::-webkit-scrollbar { |
| width: 12px; |
| } |
| .sidebar::-webkit-scrollbar { |
| width: 8px; |
| } |
| ::-webkit-scrollbar-track { |
| -webkit-box-shadow: inset 0; |
| } |
| |
| .sidebar .block > ul > li { |
| margin-right: -10px; |
| } |
| |
| .content, nav { |
| max-width: 960px; |
| } |
| |
| /* Everything else */ |
| |
| .hidden { |
| display: none !important; |
| } |
| |
| .logo-container { |
| height: 100px; |
| width: 100px; |
| position: relative; |
| margin: 20px auto; |
| display: block; |
| margin-top: 10px; |
| } |
| |
| .logo-container > img { |
| max-width: 100px; |
| max-height: 100px; |
| position: absolute; |
| left: 50%; |
| top: 50%; |
| transform: translate(-50%, -50%); |
| display: block; |
| } |
| |
| .sidebar .location { |
| border: 1px solid; |
| font-size: 17px; |
| margin: 30px 10px 20px 10px; |
| text-align: center; |
| word-wrap: break-word; |
| font-weight: inherit; |
| padding: 0; |
| } |
| |
| .sidebar .version { |
| font-size: 15px; |
| text-align: center; |
| border-bottom: 1px solid; |
| overflow-wrap: break-word; |
| word-wrap: break-word; /* deprecated */ |
| word-break: break-word; /* Chrome, non-standard */ |
| } |
| |
| .location:empty { |
| border: none; |
| } |
| |
| .location a:first-of-type { |
| font-weight: 500; |
| } |
| .location a:hover { |
| text-decoration: underline; |
| } |
| |
| .block { |
| padding: 0; |
| margin-bottom: 14px; |
| } |
| .block h2, .block h3 { |
| text-align: center; |
| } |
| .block ul, .block li { |
| margin: 0 10px; |
| padding: 0; |
| list-style: none; |
| } |
| |
| .block a { |
| display: block; |
| text-overflow: ellipsis; |
| overflow: hidden; |
| line-height: 15px; |
| padding: 7px 5px; |
| font-size: 14px; |
| font-weight: 300; |
| transition: border 500ms ease-out; |
| } |
| |
| .sidebar-title { |
| border-top: 1px solid; |
| border-bottom: 1px solid; |
| text-align: center; |
| font-size: 17px; |
| margin-bottom: 5px; |
| font-weight: inherit; |
| padding: 0; |
| } |
| |
| .sidebar-links { |
| margin-bottom: 15px; |
| } |
| |
| .sidebar-links > a { |
| padding-left: 10px; |
| width: 100%; |
| } |
| |
| .sidebar-menu { |
| display: none; |
| } |
| |
| .content { |
| padding: 15px 0; |
| } |
| |
| .source .content pre.rust { |
| white-space: pre; |
| overflow: auto; |
| padding-left: 0; |
| } |
| |
| .rustdoc .example-wrap { |
| display: inline-flex; |
| margin-bottom: 10px; |
| } |
| |
| .example-wrap { |
| position: relative; |
| width: 100%; |
| } |
| |
| .example-wrap > pre.line-number { |
| overflow: initial; |
| border: 1px solid; |
| padding: 13px 8px; |
| text-align: right; |
| border-top-left-radius: 5px; |
| border-bottom-left-radius: 5px; |
| } |
| |
| .rustdoc:not(.source) .example-wrap > pre.rust { |
| width: 100%; |
| overflow-x: auto; |
| } |
| |
| .rustdoc .example-wrap > pre { |
| margin: 0; |
| } |
| |
| #search { |
| margin-left: 230px; |
| position: relative; |
| } |
| |
| #results > table { |
| width: 100%; |
| table-layout: fixed; |
| } |
| |
| .content > .example-wrap pre.line-numbers { |
| position: relative; |
| -webkit-user-select: none; |
| -moz-user-select: none; |
| -ms-user-select: none; |
| user-select: none; |
| } |
| .line-numbers span { |
| cursor: pointer; |
| } |
| |
| .docblock-short { |
| overflow-wrap: anywhere; |
| } |
| .docblock-short p { |
| display: inline; |
| } |
| |
| .docblock-short p { |
| overflow: hidden; |
| text-overflow: ellipsis; |
| margin: 0; |
| } |
| /* Wrap non-pre code blocks (`text`) but not (```text```). */ |
| .docblock > :not(pre) > code, |
| .docblock-short > :not(pre) > code { |
| white-space: pre-wrap; |
| } |
| |
| .docblock h1, .docblock h2, .docblock h3, .docblock h4, .docblock h5 { |
| border-bottom: 1px solid; |
| } |
| |
| .top-doc .docblock h1 { font-size: 1.3em; } |
| .top-doc .docblock h2 { font-size: 1.15em; } |
| .top-doc .docblock h3, |
| .top-doc .docblock h4, |
| .top-doc .docblock h5 { |
| font-size: 1em; |
| } |
| |
| .docblock h1 { font-size: 1em; } |
| .docblock h2 { font-size: 0.95em; } |
| .docblock h3, .docblock h4, .docblock h5 { font-size: 0.9em; } |
| |
| .docblock { |
| margin-left: 24px; |
| position: relative; |
| } |
| |
| .content .out-of-band { |
| flex-grow: 0; |
| text-align: right; |
| font-size: 23px; |
| margin: 0px; |
| padding: 0 0 0 12px; |
| font-weight: normal; |
| } |
| |
| .method > .code-header, .trait-impl > .code-header, .invisible > .code-header { |
| max-width: calc(100% - 41px); |
| display: block; |
| flex-grow: 1; |
| } |
| |
| .invisible { |
| width: 100%; |
| display: inline-block; |
| } |
| |
| .content .in-band { |
| flex-grow: 1; |
| margin: 0px; |
| padding: 0px; |
| } |
| |
| .in-band > code, .in-band > .code-header { |
| display: inline-block; |
| } |
| |
| #main { |
| position: relative; |
| } |
| #main > .since { |
| top: inherit; |
| font-family: "Fira Sans", Arial, sans-serif; |
| } |
| |
| .content table:not(.table-display) { |
| border-spacing: 0 5px; |
| } |
| .content td { vertical-align: top; } |
| .content td:first-child { padding-right: 20px; } |
| .content td p:first-child { margin-top: 0; } |
| .content td h1, .content td h2 { margin-left: 0; font-size: 1.1em; } |
| .content tr:first-child td { border-top: 0; } |
| |
| .docblock table { |
| margin: .5em 0; |
| width: calc(100% - 2px); |
| border: 1px dashed; |
| } |
| |
| .docblock table td { |
| padding: .5em; |
| border: 1px dashed; |
| } |
| |
| .docblock table th { |
| padding: .5em; |
| text-align: left; |
| border: 1px solid; |
| } |
| |
| .fields + table { |
| margin-bottom: 1em; |
| } |
| |
| .content .item-list { |
| list-style-type: none; |
| padding: 0; |
| } |
| |
| .content .multi-column { |
| -moz-column-count: 5; |
| -moz-column-gap: 2.5em; |
| -webkit-column-count: 5; |
| -webkit-column-gap: 2.5em; |
| column-count: 5; |
| column-gap: 2.5em; |
| } |
| .content .multi-column li { width: 100%; display: inline-block; } |
| |
| .content > .methods > .method { |
| font-size: 1em; |
| position: relative; |
| } |
| /* Shift "where ..." part of method or fn definition down a line */ |
| .content .method .where, |
| .content .fn .where, |
| .content .where.fmt-newline { |
| display: block; |
| font-size: 0.8em; |
| } |
| |
| .content .methods > div:not(.notable-traits):not(.method) { |
| margin-left: 40px; |
| margin-bottom: 15px; |
| } |
| |
| .content .docblock > .impl-items { |
| margin-left: 20px; |
| margin-top: -34px; |
| } |
| .content .docblock >.impl-items .table-display { |
| margin: 0; |
| } |
| .content .docblock >.impl-items table td { |
| padding: 0; |
| } |
| .content .docblock > .impl-items .table-display, .impl-items table td { |
| border: none; |
| } |
| |
| .content .item-info code { |
| font-size: 90%; |
| } |
| |
| .content .item-info { |
| position: relative; |
| margin-left: 33px; |
| margin-top: -6px; |
| } |
| |
| .sub-variant > div > .item-info { |
| margin-top: initial; |
| } |
| |
| .content .item-info::before { |
| content: '⬑'; |
| font-size: 25px; |
| position: absolute; |
| top: 0px; |
| left: -19px; |
| } |
| |
| .content .impl-items .method, .content .impl-items > .type, .impl-items > .associatedconstant, |
| .impl-items > .associatedtype, .content .impl-items details > summary > .type, |
| .impl-items details > summary > .associatedconstant, |
| .impl-items details > summary > .associatedtype { |
| margin-left: 20px; |
| } |
| |
| .content .impl-items .docblock, .content .impl-items .item-info { |
| margin-bottom: .6em; |
| } |
| |
| .content .impl-items > .item-info { |
| margin-left: 40px; |
| } |
| |
| .methods > .item-info, .content .impl-items > .item-info { |
| margin-top: -8px; |
| } |
| |
| .impl-items { |
| flex-basis: 100%; |
| } |
| |
| #main > .item-info { |
| margin-top: 0; |
| } |
| |
| nav:not(.sidebar) { |
| border-bottom: 1px solid; |
| padding-bottom: 10px; |
| margin-bottom: 10px; |
| } |
| nav.main { |
| padding: 20px 0; |
| text-align: center; |
| } |
| nav.main .current { |
| border-top: 1px solid; |
| border-bottom: 1px solid; |
| } |
| nav.main .separator { |
| border: 1px solid; |
| display: inline-block; |
| height: 23px; |
| margin: 0 20px; |
| } |
| nav.sum { text-align: right; } |
| nav.sub form { display: inline; } |
| |
| nav.sub, .content { |
| margin-left: 230px; |
| } |
| |
| a { |
| text-decoration: none; |
| background: transparent; |
| } |
| |
| .small-section-header:hover > .anchor { |
| display: initial; |
| } |
| |
| .in-band:hover > .anchor, .impl:hover > .anchor, .method.trait-impl:hover > .anchor, |
| .type.trait-impl:hover > .anchor, .associatedconstant.trait-impl:hover > .anchor, |
| .associatedtype.trait-impl:hover > .anchor { |
| display: inline-block; |
| position: absolute; |
| } |
| .anchor { |
| display: none; |
| position: absolute; |
| left: -7px; |
| } |
| .anchor.field { |
| left: -5px; |
| } |
| .small-section-header > .anchor { |
| left: -28px; |
| padding-right: 10px; /* avoid gap that causes hover to disappear */ |
| } |
| .anchor:before { |
| content: '\2002\00a7\2002'; |
| } |
| |
| .docblock a:not(.srclink):not(.test-arrow):hover, |
| .docblock-short a:not(.srclink):not(.test-arrow):hover, .item-info a { |
| text-decoration: underline; |
| } |
| |
| .invisible > .srclink, |
| .method > .code-header + .srclink { |
| position: absolute; |
| top: 0; |
| right: 0; |
| font-size: 17px; |
| font-weight: normal; |
| } |
| |
| .block a.current.crate { font-weight: 500; } |
| |
| .search-container { |
| position: relative; |
| } |
| .search-container > div { |
| display: inline-flex; |
| width: calc(100% - 63px); |
| } |
| #crate-search { |
| min-width: 115px; |
| margin-top: 5px; |
| padding: 6px; |
| padding-right: 19px; |
| flex: none; |
| border: 0; |
| border-right: 0; |
| border-radius: 4px 0 0 4px; |
| outline: none; |
| cursor: pointer; |
| border-right: 1px solid; |
| -moz-appearance: none; |
| -webkit-appearance: none; |
| /* Removes default arrow from firefox */ |
| text-indent: 0.01px; |
| text-overflow: ""; |
| background-repeat: no-repeat; |
| background-color: transparent; |
| background-size: 20px; |
| background-position: calc(100% - 1px) 56%; |
| } |
| .search-container > .top-button { |
| position: absolute; |
| right: 0; |
| top: 10px; |
| } |
| .search-input { |
| /* Override Normalize.css: we have margins and do |
| not want to overflow - the `moz` attribute is necessary |
| until Firefox 29, too early to drop at this point */ |
| -moz-box-sizing: border-box !important; |
| box-sizing: border-box !important; |
| outline: none; |
| border: none; |
| border-radius: 1px; |
| margin-top: 5px; |
| padding: 10px 16px; |
| font-size: 17px; |
| transition: border-color 300ms ease; |
| transition: border-radius 300ms ease-in-out; |
| transition: box-shadow 300ms ease-in-out; |
| width: 100%; |
| } |
| |
| #crate-search + .search-input { |
| border-radius: 0 1px 1px 0; |
| width: calc(100% - 32px); |
| } |
| |
| .search-input:focus { |
| border-radius: 2px; |
| border: 0; |
| outline: 0; |
| } |
| |
| .search-results { |
| display: none; |
| padding-bottom: 2em; |
| } |
| |
| .search-results.active { |
| display: block; |
| /* prevent overhanging tabs from moving the first result */ |
| clear: both; |
| } |
| |
| .search-results .desc > span { |
| white-space: nowrap; |
| text-overflow: ellipsis; |
| overflow: hidden; |
| display: block; |
| } |
| |
| .search-results > a { |
| display: block; |
| width: 100%; |
| /* A little margin ensures the browser's outlining of focused links has room to display. */ |
| margin-left: 2px; |
| margin-right: 2px; |
| border-bottom: 1px solid #aaa3; |
| } |
| |
| .search-results > a > div { |
| display: flex; |
| flex-flow: row wrap; |
| } |
| |
| .search-results .result-name, .search-results div.desc, .search-results .result-description { |
| width: 50%; |
| } |
| .search-results .result-name { |
| padding-right: 1em; |
| } |
| |
| .search-results .result-name > span { |
| display: inline-block; |
| margin: 0; |
| font-weight: normal; |
| } |
| |
| body.blur > :not(#help) { |
| filter: blur(8px); |
| -webkit-filter: blur(8px); |
| opacity: .7; |
| } |
| |
| #help { |
| width: 100%; |
| height: 100vh; |
| position: fixed; |
| top: 0; |
| left: 0; |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| } |
| #help > div { |
| flex: 0 0 auto; |
| box-shadow: 0 0 6px rgba(0,0,0,.2); |
| width: 550px; |
| height: auto; |
| border: 1px solid; |
| } |
| #help dt { |
| float: left; |
| clear: left; |
| display: block; |
| margin-right: 0.5rem; |
| } |
| #help > div > span { |
| text-align: center; |
| display: block; |
| margin: 10px 0; |
| font-size: 18px; |
| border-bottom: 1px solid #ccc; |
| padding-bottom: 4px; |
| margin-bottom: 6px; |
| } |
| #help dd { margin: 5px 35px; } |
| #help .infos { padding-left: 0; } |
| #help h1, #help h2 { margin-top: 0; } |
| #help > div div { |
| width: 50%; |
| float: left; |
| padding: 0 20px 20px 17px;; |
| } |
| |
| .stab { |
| display: table; |
| border-width: 1px; |
| border-style: solid; |
| padding: 3px; |
| margin-bottom: 5px; |
| font-size: 90%; |
| } |
| .stab p { |
| display: inline; |
| } |
| |
| .stab summary { |
| display: list-item; |
| } |
| |
| .stab .emoji { |
| font-size: 1.5em; |
| } |
| |
| /* Black one-pixel outline around emoji shapes */ |
| .emoji { |
| text-shadow: |
| 1px 0 0 black, |
| -1px 0 0 black, |
| 0 1px 0 black, |
| 0 -1px 0 black; |
| } |
| |
| .module-item .stab, |
| .import-item .stab { |
| border-radius: 3px; |
| display: inline-block; |
| font-size: 80%; |
| line-height: 1.2; |
| margin-bottom: 0; |
| margin-right: .3em; |
| padding: 2px; |
| vertical-align: text-bottom; |
| } |
| |
| .module-item.unstable, |
| .import-item.unstable { |
| opacity: 0.65; |
| } |
| |
| .since { |
| font-weight: normal; |
| font-size: initial; |
| position: absolute; |
| right: 0; |
| top: 0; |
| } |
| |
| .impl-items .since, .impl .since, .methods .since { |
| flex-grow: 0; |
| padding-left: 12px; |
| padding-right: 6px; |
| position: initial; |
| } |
| |
| .impl-items .srclink, .impl .srclink, .methods .srclink { |
| flex-grow: 0; |
| /* Override header settings otherwise it's too bold */ |
| font-size: 17px; |
| font-weight: normal; |
| } |
| |
| .impl-items code, .impl code, .methods code { |
| flex-grow: 1; |
| } |
| |
| .has-srclink { |
| display: flex; |
| flex-basis: 100%; |
| font-size: 16px; |
| margin-bottom: 12px; |
| /* Push the src link out to the right edge consistently */ |
| justify-content: space-between; |
| } |
| |
| .variants_table { |
| width: 100%; |
| } |
| |
| .variants_table tbody tr td:first-child { |
| width: 1%; /* make the variant name as small as possible */ |
| } |
| |
| td.summary-column { |
| width: 100%; |
| } |
| |
| .summary { |
| padding-right: 0px; |
| } |
| |
| pre.rust .question-mark { |
| font-weight: bold; |
| } |
| |
| a.test-arrow { |
| display: inline-block; |
| position: absolute; |
| padding: 5px 10px 5px 10px; |
| border-radius: 5px; |
| font-size: 130%; |
| top: 5px; |
| right: 5px; |
| z-index: 1; |
| } |
| a.test-arrow:hover{ |
| text-decoration: none; |
| } |
| |
| .section-header:hover a:before { |
| position: absolute; |
| left: -25px; |
| padding-right: 10px; /* avoid gap that causes hover to disappear */ |
| content: '\2002\00a7\2002'; |
| } |
| |
| .section-header:hover a { |
| text-decoration: none; |
| } |
| |
| .section-header a { |
| color: inherit; |
| } |
| |
| .code-attribute { |
| font-weight: 300; |
| } |
| |
| .since + .srclink { |
| display: table-cell; |
| padding-left: 10px; |
| } |
| |
| .item-spacer { |
| width: 100%; |
| height: 12px; |
| } |
| |
| .out-of-band > span.since { |
| position: initial; |
| font-size: 20px; |
| margin-right: 5px; |
| } |
| |
| .sub-variant, .sub-variant > h3 { |
| margin-top: 0px !important; |
| padding-top: 1px; |
| } |
| |
| #main > details > .sub-variant > h3 { |
| font-size: 15px; |
| margin-left: 25px; |
| margin-bottom: 5px; |
| } |
| |
| .sub-variant > div { |
| margin-left: 20px; |
| margin-bottom: 10px; |
| } |
| |
| .sub-variant > div > span { |
| display: block; |
| position: relative; |
| } |
| |
| .toggle-label { |
| display: inline-block; |
| margin-left: 4px; |
| margin-top: 3px; |
| } |
| |
| .docblock > .section-header:first-child { |
| margin-left: 15px; |
| margin-top: 0; |
| } |
| |
| .docblock > .section-header:first-child:hover > a:before { |
| left: -10px; |
| } |
| |
| #main > .variant, #main > .structfield { |
| display: block; |
| } |
| |
| :target > code, :target > .code-header { |
| opacity: 1; |
| } |
| |
| .information { |
| position: absolute; |
| left: -25px; |
| margin-top: 7px; |
| z-index: 1; |
| } |
| |
| .tooltip { |
| position: relative; |
| display: inline-block; |
| cursor: pointer; |
| } |
| |
| .tooltip::after { |
| display: none; |
| text-align: center; |
| padding: 5px 3px 3px 3px; |
| border-radius: 6px; |
| margin-left: 5px; |
| font-size: 16px; |
| } |
| |
| .tooltip.ignore::after { |
| content: "This example is not tested"; |
| } |
| .tooltip.compile_fail::after { |
| content: "This example deliberately fails to compile"; |
| } |
| .tooltip.should_panic::after { |
| content: "This example panics"; |
| } |
| .tooltip.edition::after { |
| content: "This code runs with edition " attr(data-edition); |
| } |
| |
| .tooltip::before { |
| content: " "; |
| position: absolute; |
| top: 50%; |
| left: 16px; |
| margin-top: -5px; |
| border-width: 5px; |
| border-style: solid; |
| display: none; |
| } |
| |
| .tooltip:hover::before, .tooltip:hover::after { |
| display: inline; |
| } |
| |
| .tooltip.compile_fail, .tooltip.should_panic, .tooltip.ignore { |
| font-weight: bold; |
| font-size: 20px; |
| } |
| |
| .notable-traits-tooltip { |
| display: inline-block; |
| cursor: pointer; |
| } |
| |
| .notable-traits:hover .notable-traits-tooltiptext, |
| .notable-traits .notable-traits-tooltiptext.force-tooltip { |
| display: inline-block; |
| } |
| |
| .notable-traits .notable-traits-tooltiptext { |
| display: none; |
| padding: 5px 3px 3px 3px; |
| border-radius: 6px; |
| margin-left: 5px; |
| z-index: 10; |
| font-size: 16px; |
| cursor: default; |
| position: absolute; |
| border: 1px solid; |
| } |
| |
| .notable-traits-tooltip::after { |
| /* The margin on the tooltip does not capture hover events, |
| this extends the area of hover enough so that mouse hover is not |
| lost when moving the mouse to the tooltip */ |
| content: "\00a0\00a0\00a0"; |
| } |
| |
| .notable-traits .notable, .notable-traits .docblock { |
| margin: 0; |
| } |
| |
| .notable-traits .notable { |
| margin: 0; |
| margin-bottom: 13px; |
| font-size: 19px; |
| font-weight: 600; |
| } |
| |
| .notable-traits .docblock code.content{ |
| margin: 0; |
| padding: 0; |
| font-size: 20px; |
| } |
| |
| /* Example code has the "Run" button that needs to be positioned relative to the pre */ |
| pre.rust.rust-example-rendered { |
| position: relative; |
| } |
| |
| pre.rust { |
| tab-size: 4; |
| -moz-tab-size: 4; |
| } |
| |
| .search-failed { |
| text-align: center; |
| margin-top: 20px; |
| display: none; |
| } |
| |
| .search-failed.active { |
| display: block; |
| } |
| |
| .search-failed > ul { |
| text-align: left; |
| max-width: 570px; |
| margin-left: auto; |
| margin-right: auto; |
| } |
| |
| #titles { |
| height: 35px; |
| } |
| |
| #titles > button { |
| float: left; |
| width: 33.3%; |
| text-align: center; |
| font-size: 18px; |
| cursor: pointer; |
| border: 0; |
| border-top: 2px solid; |
| } |
| |
| #titles > button:not(:last-child) { |
| margin-right: 1px; |
| width: calc(33.3% - 1px); |
| } |
| |
| #titles > button > div.count { |
| display: inline-block; |
| font-size: 16px; |
| } |
| |
| .notable-traits { |
| cursor: pointer; |
| z-index: 2; |
| margin-left: 5px; |
| } |
| |
| #all-types { |
| text-align: center; |
| border: 1px solid; |
| margin: 0 10px; |
| margin-bottom: 10px; |
| display: block; |
| border-radius: 7px; |
| } |
| #all-types > p { |
| margin: 5px 0; |
| } |
| |
| #sidebar-toggle { |
| position: fixed; |
| top: 30px; |
| left: 300px; |
| z-index: 10; |
| padding: 3px; |
| border-top-right-radius: 3px; |
| border-bottom-right-radius: 3px; |
| cursor: pointer; |
| font-weight: bold; |
| transition: left .5s; |
| font-size: 1.2em; |
| border: 1px solid; |
| border-left: 0; |
| } |
| #source-sidebar { |
| position: fixed; |
| top: 0; |
| bottom: 0; |
| left: 0; |
| width: 300px; |
| z-index: 1; |
| overflow: auto; |
| transition: left .5s; |
| border-right: 1px solid; |
| } |
| #source-sidebar > .title { |
| font-size: 1.5em; |
| text-align: center; |
| border-bottom: 1px solid; |
| margin-bottom: 6px; |
| } |
| |
| .theme-picker { |
| position: absolute; |
| left: 211px; |
| top: 19px; |
| } |
| |
| .theme-picker button { |
| outline: none; |
| } |
| |
| #settings-menu, #help-button { |
| position: absolute; |
| top: 10px; |
| } |
| |
| #settings-menu { |
| right: 0; |
| outline: none; |
| } |
| |
| #theme-picker, #settings-menu, #help-button, #copy-path { |
| padding: 4px; |
| width: 27px; |
| height: 29px; |
| border: 1px solid; |
| border-radius: 3px; |
| cursor: pointer; |
| } |
| |
| #help-button { |
| right: 30px; |
| font-family: "Fira Sans", Arial, sans-serif; |
| text-align: center; |
| font-size: 17px; |
| padding-top: 2px; |
| } |
| |
| #copy-path { |
| background: initial; |
| margin-left: 10px; |
| padding: 0; |
| padding-left: 2px; |
| border: 0; |
| } |
| |
| #theme-choices { |
| display: none; |
| position: absolute; |
| left: 0; |
| top: 28px; |
| border: 1px solid; |
| border-radius: 3px; |
| z-index: 1; |
| cursor: pointer; |
| } |
| |
| #theme-choices > button { |
| border: none; |
| width: 100%; |
| padding: 4px 8px; |
| text-align: center; |
| background: rgba(0,0,0,0); |
| } |
| |
| #theme-choices > button:not(:first-child) { |
| border-top: 1px solid; |
| } |
| |
| kbd { |
| display: inline-block; |
| padding: 3px 5px; |
| font: 15px monospace; |
| line-height: 10px; |
| vertical-align: middle; |
| border: solid 1px; |
| border-radius: 3px; |
| box-shadow: inset 0 -1px 0; |
| cursor: default; |
| } |
| |
| .hidden-by-impl-hider, |
| .hidden-by-usual-hider { |
| /* important because of conflicting rule for small screens */ |
| display: none !important; |
| } |
| |
| #implementations-list > h3 > span.in-band { |
| width: 100%; |
| } |
| |
| .table-display { |
| width: 100%; |
| border: 0; |
| border-collapse: collapse; |
| border-spacing: 0; |
| font-size: 16px; |
| } |
| |
| .table-display tr td:first-child { |
| padding-right: 0; |
| } |
| |
| .table-display tr td:last-child { |
| float: right; |
| } |
| .table-display .out-of-band { |
| position: relative; |
| font-size: 19px; |
| display: block; |
| } |
| #implementors-list > .impl-items .table-display .out-of-band { |
| font-size: 17px; |
| } |
| |
| .table-display td:hover .anchor { |
| display: block; |
| top: 2px; |
| left: -5px; |
| } |
| |
| #main > ul { |
| padding-left: 10px; |
| } |
| #main > ul > li { |
| list-style: none; |
| } |
| |
| .non-exhaustive { |
| margin-bottom: 1em; |
| } |
| |
| div.children { |
| padding-left: 27px; |
| display: none; |
| } |
| div.name { |
| cursor: pointer; |
| position: relative; |
| margin-left: 16px; |
| } |
| div.files > a { |
| display: block; |
| padding: 0 3px; |
| } |
| div.files > a:hover, div.name:hover { |
| background-color: #a14b4b; |
| } |
| div.name.expand + .children { |
| display: block; |
| } |
| div.name::before { |
| content: "\25B6"; |
| padding-left: 4px; |
| font-size: 0.7em; |
| position: absolute; |
| left: -16px; |
| top: 4px; |
| } |
| div.name.expand::before { |
| transform: rotate(90deg); |
| left: -15px; |
| top: 2px; |
| } |
| |
| /* The hideme class is used on summary tags that contain a span with |
| placeholder text shown only when the toggle is closed. For instance, |
| "Expand description" or "Show methods". */ |
| details.rustdoc-toggle > summary.hideme { |
| cursor: pointer; |
| } |
| |
| details.rustdoc-toggle > summary, details.undocumented > summary { |
| list-style: none; |
| } |
| details.rustdoc-toggle > summary::-webkit-details-marker, |
| details.rustdoc-toggle > summary::marker, |
| details.undocumented > summary::-webkit-details-marker, |
| details.undocumented > summary::marker { |
| display: none; |
| } |
| |
| details.rustdoc-toggle > summary.hideme > span { |
| margin-left: 9px; |
| } |
| |
| details.rustdoc-toggle > summary::before { |
| content: "[+]"; |
| font-weight: 300; |
| font-size: 0.8em; |
| letter-spacing: 1px; |
| cursor: pointer; |
| } |
| |
| details.rustdoc-toggle.top-doc > summary, |
| details.rustdoc-toggle.top-doc > summary::before, |
| details.rustdoc-toggle.non-exhaustive > summary, |
| details.rustdoc-toggle.non-exhaustive > summary::before { |
| font-family: 'Fira Sans'; |
| font-size: 16px; |
| } |
| |
| details.non-exhaustive { |
| margin-bottom: 8px; |
| } |
| |
| details.rustdoc-toggle > summary.hideme::before { |
| position: relative; |
| } |
| |
| details.rustdoc-toggle > summary:not(.hideme)::before { |
| position: absolute; |
| left: -23px; |
| top: 3px; |
| } |
| |
| .impl-items > details.rustdoc-toggle > summary:not(.hideme)::before, |
| .undocumented > details.rustdoc-toggle > summary:not(.hideme)::before { |
| position: absolute; |
| left: -2px; |
| } |
| |
| /* When a "hideme" summary is open and the "Expand description" or "Show |
| methods" text is hidden, we want the [-] toggle that remains to not |
| affect the layout of the items to its right. To do that, we use |
| absolute positioning. Note that we also set position: relative |
| on the parent <details> to make this work properly. */ |
| details.rustdoc-toggle[open] > summary.hideme { |
| position: absolute; |
| } |
| |
| details.rustdoc-toggle, details.undocumented { |
| position: relative; |
| } |
| |
| details.rustdoc-toggle[open] > summary.hideme > span { |
| display: none; |
| } |
| |
| details.rustdoc-toggle[open] > summary::before { |
| content: "[−]"; |
| display: inline; |
| } |
| |
| details.undocumented > summary::before { |
| content: "[+] Show hidden undocumented items"; |
| cursor: pointer; |
| font-size: 16px; |
| font-weight: 300; |
| } |
| |
| details.undocumented[open] > summary::before { |
| content: "[−] Hide undocumented items"; |
| } |
| |
| /* Media Queries */ |
| |
| @media (min-width: 701px) { |
| /* In case there is no documentation before a code block, we need to add some margin at the top |
| to prevent an overlay between the "collapse toggle" and the information tooltip. |
| However, it's not needed with smaller screen width because the doc/code block is always put |
| "one line" below. */ |
| .docblock > .information:first-child > .tooltip { |
| margin-top: 16px; |
| } |
| } |
| |
| @media (max-width: 700px) { |
| body { |
| padding-top: 0px; |
| } |
| |
| .rustdoc > .sidebar { |
| height: 45px; |
| min-height: 40px; |
| margin: 0; |
| margin-left: -15px; |
| padding: 0 15px; |
| position: static; |
| z-index: 11; |
| } |
| |
| .sidebar > .location { |
| float: right; |
| margin: 0px; |
| margin-top: 2px; |
| padding: 3px 10px 1px 10px; |
| min-height: 39px; |
| background: inherit; |
| text-align: left; |
| font-size: 24px; |
| } |
| |
| .sidebar .location:empty { |
| padding: 0; |
| } |
| |
| .sidebar .logo-container { |
| width: 35px; |
| height: 35px; |
| margin-top: 5px; |
| margin-bottom: 5px; |
| float: left; |
| margin-left: 50px; |
| } |
| |
| .sidebar .logo-container > img { |
| max-width: 35px; |
| max-height: 35px; |
| } |
| |
| .sidebar-menu { |
| position: fixed; |
| z-index: 10; |
| font-size: 2rem; |
| cursor: pointer; |
| width: 45px; |
| left: 0; |
| text-align: center; |
| display: block; |
| border-bottom: 1px solid; |
| border-right: 1px solid; |
| height: 45px; |
| } |
| |
| .rustdoc.source > .sidebar > .sidebar-menu { |
| display: none; |
| } |
| |
| /* We do NOT hide this element so that alternative device readers still have this information |
| available. */ |
| .sidebar-elems { |
| position: fixed; |
| z-index: 1; |
| top: 45px; |
| bottom: 0; |
| width: 246px; |
| /* We move the sidebar to the left by its own width so it doesn't appear. */ |
| left: -246px; |
| overflow-y: auto; |
| border-right: 1px solid; |
| } |
| |
| .sidebar > .block.version { |
| border-bottom: none; |
| margin-top: 12px; |
| margin-bottom: 0; |
| } |
| |
| nav.sub { |
| width: calc(100% - 32px); |
| float: right; |
| } |
| |
| .content { |
| margin-left: 0px; |
| } |
| |
| #main, #search { |
| margin-top: 45px; |
| padding: 0; |
| } |
| |
| #search { |
| margin-left: 0; |
| } |
| |
| .content .impl-items .method, .content .impl-items > .type, .impl-items > .associatedconstant, |
| .impl-items > .associatedtype { |
| display: flex; |
| } |
| |
| .anchor { |
| display: none !important; |
| } |
| |
| .theme-picker { |
| left: 10px; |
| top: 54px; |
| z-index: 1; |
| } |
| |
| .notable-traits { |
| position: absolute; |
| left: -22px; |
| top: 24px; |
| } |
| |
| #titles > button > div.count { |
| float: left; |
| width: 100%; |
| } |
| |
| #titles { |
| height: 50px; |
| } |
| |
| .sidebar.mobile { |
| position: fixed; |
| width: 100%; |
| margin-left: 0; |
| background-color: rgba(0,0,0,0); |
| height: 100%; |
| } |
| /* |
| This allows to prevent the version text to overflow the sidebar title on mobile mode when the |
| sidebar is displayed (after clicking on the "hamburger" button). |
| */ |
| .sidebar.mobile > div.version { |
| overflow: hidden; |
| max-height: 33px; |
| } |
| .sidebar { |
| width: calc(100% + 30px); |
| } |
| |
| .show-it { |
| left: 0; |
| } |
| |
| .show-it > .block.items { |
| margin: 8px 0; |
| } |
| |
| .show-it > .block.items > ul { |
| margin: 0; |
| } |
| |
| .show-it > .block.items > ul > li { |
| text-align: center; |
| margin: 2px 0; |
| } |
| |
| .show-it > .block.items > ul > li > a { |
| font-size: 21px; |
| } |
| |
| /* Because of ios, we need to actually have a full height sidebar title so the |
| * actual sidebar can show up. But then we need to make it transparent so we don't |
| * hide content. The filler just allows to create the background for the sidebar |
| * title. But because of the absolute position, I had to lower the z-index. |
| */ |
| #sidebar-filler { |
| position: fixed; |
| left: 45px; |
| width: calc(100% - 45px); |
| top: 0; |
| height: 45px; |
| z-index: -1; |
| border-bottom: 1px solid; |
| } |
| |
| #main > details.rustdoc-toggle > summary::before, |
| #main > div > details.rustdoc-toggle > summary::before { |
| left: -11px; |
| } |
| |
| #all-types { |
| margin: 10px; |
| } |
| |
| #sidebar-toggle { |
| top: 100px; |
| width: 30px; |
| font-size: 1.5rem; |
| text-align: center; |
| padding: 0; |
| } |
| |
| #source-sidebar { |
| z-index: 11; |
| } |
| |
| #main > .line-numbers { |
| margin-top: 0; |
| } |
| |
| .notable-traits .notable-traits-tooltiptext { |
| left: 0; |
| top: 100%; |
| } |
| |
| /* We don't display the help button on mobile devices. */ |
| #help-button { |
| display: none; |
| } |
| .search-container > div { |
| width: calc(100% - 32px); |
| } |
| |
| /* Display an alternating layout on tablets and phones */ |
| .search-results > a { |
| border-bottom: 1px solid #aaa9; |
| padding: 5px 0px; |
| } |
| .search-results .result-name, .search-results div.desc, .search-results .result-description { |
| width: 100%; |
| } |
| .search-results div.desc, .search-results .result-description { |
| padding-left: 2em; |
| } |
| } |
| |
| @media print { |
| nav.sub, .content .out-of-band { |
| display: none; |
| } |
| } |
| |
| @media (max-width: 464px) { |
| #titles, #titles > button { |
| height: 73px; |
| } |
| |
| /* This is to prevent the search bar from being underneath the <section> |
| * element following it. |
| */ |
| #main, #search { |
| margin-top: 100px; |
| } |
| |
| #main > table:not(.table-display) td { |
| word-break: break-word; |
| width: 50%; |
| } |
| |
| .search-container > div { |
| display: block; |
| width: calc(100% - 37px); |
| } |
| |
| #crate-search { |
| width: 100%; |
| border-radius: 4px; |
| border: 0; |
| } |
| |
| #crate-search + .search-input { |
| width: calc(100% + 71px); |
| margin-left: -36px; |
| } |
| |
| #theme-picker, #settings-menu { |
| padding: 5px; |
| width: 31px; |
| height: 31px; |
| } |
| |
| #theme-picker { |
| margin-top: -2px; |
| } |
| |
| #settings-menu { |
| top: 7px; |
| } |
| |
| .docblock { |
| margin-left: 12px; |
| } |
| } |