diff --git a/documentation/themes/beastie/LICENSE b/documentation/themes/beastie/LICENSE index e94c3e41c7..dba716913c 100644 --- a/documentation/themes/beastie/LICENSE +++ b/documentation/themes/beastie/LICENSE @@ -1,23 +1,23 @@ -Copyright (c) 2020-2022, The FreeBSD Project +Copyright (c) 1994-2022, The FreeBSD Project Copyright (c) 2020-2022, Sergio Carlavilla Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/documentation/themes/beastie/assets/js/copy-clipboard.js b/documentation/themes/beastie/assets/js/copy-clipboard.js index 126f2bf8b1..8038e96141 100644 --- a/documentation/themes/beastie/assets/js/copy-clipboard.js +++ b/documentation/themes/beastie/assets/js/copy-clipboard.js @@ -1,69 +1,69 @@ /* BSD 2-Clause License -Copyright (c) 2001-2022, The FreeBSD Documentation Project +Copyright (c) 1994-2022, The FreeBSD Documentation Project Copyright (c) 2021-2022, Sergio Carlavilla All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ;(function () { 'use strict' document.querySelectorAll(".rouge, .highlight").forEach(function(codeItem) { var sourceCode = codeItem.textContent; var icon = document.createElement("i"); icon.className = "fa fa-clipboard"; var tooltip = document.createElement("span"); tooltip.className = "tooltip"; tooltip.innerHTML = "Copied!"; var button = document.createElement("button"); button.title = "Copy to clipboard"; button.appendChild(icon); button.appendChild(tooltip); var clipboardWrapper = document.createElement("div"); clipboardWrapper.className = "copy-to-clipboard-wrapper"; clipboardWrapper.appendChild(button); codeItem.appendChild(clipboardWrapper); button.addEventListener('click', copyToClipboard.bind(button, sourceCode)); }); function copyToClipboard(text, item) { const tooltip = item.target.nextElementSibling; window.navigator.clipboard.writeText(text).then(function() { if (tooltip) { tooltip.classList.add("show-tooltip"); setTimeout(function(){ tooltip.classList.remove("show-tooltip"); }, 1200); } }); } })(); diff --git a/documentation/themes/beastie/assets/js/search.js b/documentation/themes/beastie/assets/js/search.js index 0cf9a29bb2..f2f1584ab6 100644 --- a/documentation/themes/beastie/assets/js/search.js +++ b/documentation/themes/beastie/assets/js/search.js @@ -1,65 +1,65 @@ /* BSD 2-Clause License -Copyright (c) 2001-2022, The FreeBSD Documentation Project +Copyright (c) 1994-2022, The FreeBSD Documentation Project Copyright (c) 2021-2022, Sergio Carlavilla All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ;(function () { 'use strict' var searchBookInput = document.querySelector("#search-book"); var menuContents = document.querySelector("#MenuContents"); if (searchBookInput) { searchBookInput.addEventListener('keyup', search); } function search() { var menuElements = menuContents.children[0]; Array.from(menuElements.children).map(element => { var menuContent = element.textContent || element.innerText; var check = element.getElementsByTagName("input"); if (menuContent.toUpperCase().includes(searchBookInput.value.toUpperCase())) { element.classList.remove("hidden"); if (check && check[0]) { if (searchBookInput.value) { check[0].checked = true; } else { check[0].checked = false; } } } else { element.classList.add("hidden"); if (check && check[0]) { check[0].checked = false; } } }); } })(); diff --git a/documentation/themes/beastie/assets/js/theme-chooser.js b/documentation/themes/beastie/assets/js/theme-chooser.js index cc52d7084b..40e4cd898f 100644 --- a/documentation/themes/beastie/assets/js/theme-chooser.js +++ b/documentation/themes/beastie/assets/js/theme-chooser.js @@ -1,65 +1,65 @@ /* BSD 2-Clause License -Copyright (c) 2001-2022, The FreeBSD Documentation Project +Copyright (c) 1994-2022, The FreeBSD Documentation Project Copyright (c) 2021-2022, Sergio Carlavilla All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ;(function () { 'use strict' var theme = localStorage.getItem('theme'); var themeChooser = document.querySelector('#theme-chooser'); var themeContainer = document.querySelector('.theme-container'); themeContainer.style.display = "block"; if (theme === "theme-dark") { setTheme('theme-dark'); themeChooser.value = 'theme-dark'; } else if (theme === "theme-high-contrast") { setTheme('theme-high-contrast'); themeChooser.value = 'theme-high-contrast'; } else { setTheme('theme-light'); themeChooser.value = 'theme-light'; } themeChooser.addEventListener('change', function() { var theme = this.value; if (theme === "theme-dark") { setTheme('theme-dark'); } else if (theme === "theme-high-contrast") { setTheme('theme-high-contrast'); } else { setTheme('theme-light'); } }); function setTheme(themeName) { localStorage.setItem('theme', themeName); document.documentElement.className = themeName; } })(); diff --git a/documentation/themes/beastie/assets/styles/documentation.scss b/documentation/themes/beastie/assets/styles/documentation.scss index 7826480db8..39d4c1d27f 100644 --- a/documentation/themes/beastie/assets/styles/documentation.scss +++ b/documentation/themes/beastie/assets/styles/documentation.scss @@ -1,404 +1,403 @@ /* - * Copyright (c) 2001-2022, The FreeBSD Documentation Project + * Copyright (c) 1994-2022, The FreeBSD Documentation Project * Copyright (c) 2021-2022, Sergio Carlavilla * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ .articles-books-list { list-style: none; padding-left: 10px; li { a { text-decoration: none; font-weight: bolder; color: var(--global-font); } p { margin-top: 0px; } } } .main-wrapper-article { display: flex; - margin-top: var(--header-height); justify-content: center; margin-left: auto; margin-right: auto; - max-width: 1440px; + max-width: var(--max-width); width: 100%; .article { flex-grow: 1; padding: var(--documentation-padding); width: 90vw; width: clamp(16rem, 90vw, 70rem); min-width: 20rem; margin-left: auto; margin-right: auto; padding-left: 1.5rem; padding-right: 1.5rem; transition: .2s ease-in-out; } } .main-wrapper-book { display: flex; - margin-top: var(--header-height); justify-content: center; margin-left: auto; margin-right: auto; - max-width: 1440px; + max-width: var(--max-width); width: 100%; .book-menu { flex: 0 0 16rem; font-size: .75rem; background-color: var(--global-background-color); .book-menu-content { width: 16rem; position: sticky; top: var(--header-height); bottom: 0; overflow-x: hidden; overflow-y: auto; background-color: var(--global-background-color); transition: .2s ease-in-out; h3 { margin: 1rem 0; padding-left: .5rem; border-bottom: none; } #search-book { + margin-top: 1.5rem; margin-bottom: .75rem; border: 1px solid #CCC; border-radius: 4px; box-shadow: inset 0 1px 3px #DDD; box-sizing: border-box; background-color: #FCFCFD; color: #444; width: 95%; margin-left: .5rem; } input.toggle ~ .icon::after { display: inline-block; font: 1rem FontAwesome; text-rendering: auto; content: "\f105"; } input.toggle:checked ~ .icon::after { display: inline-block; font: 1rem FontAwesome; text-rendering: auto; content: "\f107"; } input.toggle ~ ul { display:none } input.toggle:checked ~ ul { display:block } #MenuContents { position: sticky; overflow: auto; max-height: calc(90vh); line-height: 2; ul { margin: 0; padding: 0; padding-left: .5rem; li { list-style: none; margin: 0; label { position: absolute; cursor: pointer; font-size: 0.875rem; } a { color: var(--global-font-color); display: block; padding-left: 1rem; padding-right: .5rem; font-size: 0.875rem; } } } } } } .book { flex-grow: 1; padding: var(--documentation-padding); width: 90vw; min-width: 20rem; - max-width: 1440px; + max-width: var(--max-width); padding-left: 1.5rem; padding-right: 1.5rem; transition-duration: 0.2s; background-color: var(--global-background-color); h1 { margin: .8rem 0; } .book-menu-mobile { margin-top: 10px; .menu-control-button { border-radius: 2px; cursor: pointer; font-weight: 500; padding: 5px; border: 1px solid var(--lines-color); i { padding-right: 5px; } } } .buttons { display: flex; align-content: center; align-items: center; justify-content: center; flex-direction: row; .prev, .home, .next { display: flex; flex-direction: row; align-items: center; i { padding: 1rem; } } .home { margin-left: auto; margin-right: auto; i { padding-left: .2rem; padding-right: .2rem; } } .container { display: flex; flex-direction: column; .direction { font-weight: bolder; } } } } } .toc { flex: 0 0 16rem; font-size: .75rem; background-color: var(--global-background-color); .toc-content { width: 16rem; position: sticky; top: var(--header-height); bottom: 0; overflow-x: hidden; overflow-y: auto; transition: .2s ease-in-out; h3 { border-bottom: none; margin: 1rem 0; } #TableOfContents { position: sticky; overflow: auto; max-height: 60vh; ul { margin: 0; padding: 0; li { margin: 0; margin-bottom: .5rem; list-style: none; a { color: var(--global-font-color); display: inline-block; padding: .25rem .5rem .25rem .5rem; margin-left: .5rem; font-size: 0.875rem; text-decoration: none; &:hover { text-decoration: underline; } } } } } .resources { h3 { margin: 1rem 0; } ul { margin: 0; padding: 0; li { list-style: none; margin: 0; a { color: var(--global-font-color); display: inline-block; padding: .25rem .5rem .25rem .5rem; font-size: 0.875rem; } i { margin-left: 1rem; } } } } } } .toc-mobile { h3 { border-bottom: none; } #TableOfContents, .resources { ul { list-style: none; margin: 0; padding: 0; li { margin: 0; a { color: var(--global-font-color); display: inline-block; padding: .25rem 0 .25rem .5rem; text-decoration: none; border-left: 1px solid var(--lines-color); &:hover { font-weight: bolder; } } } } } } .hidden { display: none; } input.toggle { height: 0; width: 0; overflow: hidden; opacity: 0; position: absolute; } @media (max-width: 55em) { .toc { display: none; } #menu-control { display: inline; } .book-menu { visibility: hidden; margin-inline-start: -16rem; z-index: 1; } #menu-control:checked ~ main { .book-menu { visibility: initial; } .book-menu .book-menu-content { transform: translateX(16rem); box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.1); } .book { opacity: 0.25; } .book-menu-overlay { display: block; position: absolute; top: 0; bottom: 0; left: 0; right: 0; } } } @media (min-width: 55em) { .toc-mobile, .book-menu-mobile { display: none; } } diff --git a/documentation/themes/beastie/assets/styles/footer.scss b/documentation/themes/beastie/assets/styles/footer.scss index aece947208..947687c4fe 100644 --- a/documentation/themes/beastie/assets/styles/footer.scss +++ b/documentation/themes/beastie/assets/styles/footer.scss @@ -1,185 +1,182 @@ /* - * Copyright (c) 2001-2022, The FreeBSD Documentation Project + * Copyright (c) 1994-2022, The FreeBSD Documentation Project * Copyright (c) 2021-2022, Sergio Carlavilla * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ footer { - display: flex; - flex-flow: row wrap; - padding: 30px 20px 20px 20px; + margin-top: 1rem; + padding: 1rem; color: var(--global-font-color); - background-color: var(--footer-background); - border-top: 1px solid var(--footer-border-color); - align-items: center; - justify-content: center; + background-color: var(--footer-background-color); +} - .container { - display: flex; - max-width: 1440px; - flex-flow: row wrap; - } +.footer-container { + display: grid; + gap: 1rem; + grid-template-columns: 1fr; + grid-template-areas: + "logo" + "about" + "documentation" + "community" + "legal" + "copyright"; + max-width: var(--max-width); + margin-left: auto; + margin-right: auto; +} - > * { - flex: 1 100%; - } +.logo-column { + grid-area: logo; +} - .footer-project-language { - margin-right: 1.25em; - margin-bottom: 2em; - - h1 { - font-weight: bolder; - font-size: 1.5rem; - } - - .options-container { - display: flex; - align-items: center; - - .theme-container { - display: none; - margin-left: 2rem; - - select { - border: 1px solid #CCC; - border-radius: 4px; - box-sizing: border-box; - background-color: #FCFCFD; - color: #444; - } - } - - .language-container { - display: flex; - align-items: center; - - a { - display: flex; - align-items: center; - text-decoration: none; - color: var(--global-font-color); - border-radius: 1px; - padding: .3rem; - - img { - display: inline-flex; - padding-right: 10px; - align-items: center; - justify-content: center; - height: 1.5rem; - width: 1.5rem; - } - } - } - - } +.about-column { + grid-area: about; +} - } +.community-column { + grid-area: community; +} - .footer-nav { - display: flex; - list-style: none; - margin: 0; - padding: 0; - - > * { - flex: 1 50%; - margin-right: 1.25em; - } - - .title { - font-weight: bolder; - font-size: 15px; - border-bottom: 1px solid var(--white); - } - - h2 { - border: none !important; - } - - ul { - list-style: none; - padding-left: 0; - - li { - line-height: 2em; - - a { - text-decoration: none; - color: var(--global-font-color); - } - } - } - } +.documentation-column { + grid-area: documentation; +} - .footer-nav > li { - margin-bottom: 2rem; - } +.legal-column { + grid-area: legal; +} - .copyright { - display: flex; - flex-wrap: wrap; - width: 100%; - color: var(--global-font-color); - - .love { - display: flex; - align-items: center; - font-weight: bolder; - - .heart { - color: red; - } - } - } +.copyright-column { + grid-area: copyright; + padding-top: 1rem; + border-top: 1px solid #E5E7EB; + line-height: 1rem; + font-size: .8rem; +} +.column-title { + margin-top: 0; + font-size: inherit; + border-bottom: none; } -@media screen and (min-width: 24rem) { - .copyright .love { - margin-left: auto; - } +.column-elements-container { + margin: .5rem 0; + padding: 0; + list-style: none; +} + +.column-elements-container li { + margin-top: .7rem; +} + +.column-element { + text-decoration: none; + line-height: 2rem; + color: inherit; + font-size: inherit; +} + +.heart { + color: red; } -@media screen and (min-width: 40rem) { - .footer-project-language { - flex: 1 0px; +.options-container { + display: flex; + align-items: center; +} + +.theme-container { + display: none; + margin-left: 2rem; +} + +.theme-container select { + border: 1px solid #CCC; + border-radius: 4px; + box-sizing: border-box; + background-color: #FCFCFD; + color: #444; +} + +.language-container { + display: flex; + align-items: center; +} + +.language-container a { + display: flex; + align-items: center; + text-decoration: none; + color: var(--global-font-color); + border-radius: 1px; + padding: .3rem; +} + +.language-container a img { + display: inline-flex; + padding-right: 10px; + align-items: center; + justify-content: center; + height: 1.5rem; + width: 1.5rem; +} + +@media screen and (min-width: 450px) { + .footer-container { + gap: 2rem; + grid-template-columns: 1fr 1fr; + grid-template-areas: + "logo logo" + "about community" + "documentation legal" + "copyright copyright"; } +} - .footer-nav > * { - flex: 1; +@media screen and (min-width: 900px) { + footer { + padding: 2rem; } - .footer-nav { - flex: 2 0px; + .footer-container { + grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; + grid-template-areas: + "logo about documentation community legal" + "copyright copyright copyright copyright copyright"; + gap: 1rem; } } -@media screen and (max-width: 41rem) { - .footer-nav { - display: block !important; +@media screen and (min-width: 1451px) { + footer { + padding: 2rem 5rem; + } + + .footer-container { + gap: 2rem; } } diff --git a/documentation/themes/beastie/assets/styles/global.scss b/documentation/themes/beastie/assets/styles/global.scss index 77c1ece932..83537922e5 100644 --- a/documentation/themes/beastie/assets/styles/global.scss +++ b/documentation/themes/beastie/assets/styles/global.scss @@ -1,793 +1,792 @@ /* - * Copyright (c) 2001-2022, The FreeBSD Documentation Project + * Copyright (c) 1994-2022, The FreeBSD Documentation Project * Copyright (c) 2021-2022, Sergio Carlavilla * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ html { font-family: 'Inter', -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; scroll-padding-top: var(--header-height); scroll-behavior: auto; } @supports (font-variation-settings: normal) { html { font-family: 'Inter var', -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; } } html, body { text-rendering: optimizeLegibility; line-height: 1.5; } body { display: flex; flex-direction: column; color: var(--global-font-color); padding: 0; margin: 0; font-size: 100%; font-weight: 400; font-style: normal; cursor: auto; background-color: var(--global-background-color); } /* Main */ .main-wrapper { display: flex; flex-direction: column; - margin-top: var(--header-height); justify-content: center; margin-left: auto; margin-right: auto; - max-width: 1440px; + max-width: var(--max-width); transition: padding .15s; background-color: var(--global-background-color); .article { .paragraph { padding-left: .5rem; } } .welcome-container { display: flex; width: 100%; margin-top: 2.5rem; text-align: center; align-items: center; flex-direction: column; .title-language-container { display: flex; width: 100%; justify-content: center; h2 { margin: 0; border-bottom: 0px; margin-left: auto; } a { margin-left: auto; img { display: inline-flex; padding-right: 10px; align-items: center; justify-content: center; height: 1.5rem; width: 1.5rem; } } } form { display: flex; width: 100%; background-color: var(--global-background-color); justify-content: center; input { display: block; width: 50%; padding: 10px 20px; border: 1px solid #CCC; border-radius: 4px; box-shadow: inset 0 1px 3px #DDD; box-sizing: border-box; background-color: #FCFCFD; color: #444; } } } .cards-container { display: flex; flex-direction: column; justify-content: center; width: 100%; margin-top: 3rem; margin-bottom: 3rem; .row { display: flex; flex-direction: row; justify-content: center; width: 100%; margin-bottom: 2rem; .card { display: flex; flex: 280px 0; margin-left: 16px; padding: 24px; border: 1px solid var(--card-border-color); background-color: var(--card-background-color); a { display: flex; flex-direction: column; text-decoration: none; h5 { color: var(--global-font-color); font-weight: 700; font-size: 22px; margin: 0px 0px 8px 0px; border-bottom: 0px; } p { color: var(--global-font-color); font-size: 18px; margin: 0px; margin-top: auto; text-align: inherit; } } } } } } ul.language-list { display: flex; flex-wrap: wrap; list-style: none; li { flex: 1 0 25%; list-style-type: none; max-width: 25%; a { cursor: pointer; color: var(--global-font-color); } } .selected { font-weight: bolder; } } @media (max-width: 55em) { .main-wrapper { padding: 0rem 1rem 2rem 1rem; .welcome-container { margin-bottom: 2.5rem; form { input { width: 100%; background-color: var(--white); } } } .cards-container { display: block; width: 100%; margin: 0; padding: 0; .row { display: block; width: 100%; .card { display: block; width: 100%; margin: 0px; margin-bottom: 2rem; padding: 0px; a { display: flex; padding: 20px; min-height: 100px; } } } } } } @media (min-width: 1200px) { .main-wrapper { .cards-container { .row { .card { width: 33.3%; } } } } } @media (min-width: 768px) { .main-wrapper { .cards-container { .row { .card { width: 50%; } } } } } .abstract-title { font-size: 24px; font-weight: 700; } h1, h2, h3, h4, h5, h6 { margin: 0; padding-bottom: .3rem; } h1, h2, h3, h4 { line-height: 1.3; } h1, h2 { font-weight: 900; } h1 { font-size: var(--size-750); } h2 { font-size: var(--size-600); } h3 { font-size: var(--size-550); } h4 { font-size: var(--size-500); } h5 { font-size: var(--size-400); } h6 { font-size: var(--size-300); } h2 > .anchor, h3 > .anchor, h4 > .anchor, h5 > .anchor, h6 > .anchor { text-decoration: none; &:hover { text-decoration: none; } } h2 > .anchor::before, h3 > .anchor::before, h4 > .anchor::before, h5 > .anchor::before, h6 > .anchor::before { visibility: hidden; margin-left: .3rem; content: "#"; color: var(--global-font-color); } h2, h3, h4, h5, h6 { border-bottom: 1px solid var(--lines-color); &:hover .anchor::before { visibility: visible; transition: visibility 0s easy 0s; } } hr { margin-top: 1rem; margin-bottom: 1rem; border: 0; border-top: 1px solid var(--lines-color); } a { text-decoration: none; color: var(--links-color); &:hover { text-decoration: underline; } } img { max-width: 100%; } .imageblock { .title { margin-top: .5rem; padding-bottom: 0; font-weight: bolder; font-style: italic; } } figcaption { font-size: var(--size-300); font-style: italic; margin-top: 1rem; } pre { border-radius: 0.25rem; font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; background-color: var(--pre-background-color); font-size: 1rem; color: var(--pre-font-color); line-height: 1.4; margin: 0 0 24px; overflow: auto !important; padding: 1rem; margin: 0; } p { text-justify: inter-word; } b, dt, strong, th { font-weight: bolder; } dt { font-style: italic; } blockquote { padding-left: var(--size-600); border-left: 5px solid; font-style: italic; } .literalblock { margin: .75em 0; overflow: auto; .content { overflow: auto; } } /* callouts */ .conum { display: inline-block; color: #FFF !important; background-color: #000; border-radius: 100px; text-align: center; font-size: .75em; width: 1.67em; height: 1.67em; font-style: normal; font-weight: bold; } .conum[data-value] { color: #FFF !important; text-align: center; font-size: .75em; line-height: 1.67em; font-style: normal; font-weight: bold; } .conum[data-value]::after { content: attr(data-value); } .colist td { padding-top: 4px; padding-bottom: 4px; } .colist tr td b, .programlisting b { display: none; } .rouge b { display: none; } /* Tables */ table { caption { text-rendering: optimizeLegibility; text-align: left; font-weight: bolder; font-size: 1rem; } } table.tableblock { display: block; margin: auto; margin-bottom: 1.25em; max-width: 100%; border-collapse: collapse; overflow-x: auto; th { text-align: left; background-color: var(--table-header-background-color); color: var(--table-header-font-color); text-rendering: optimizeLegibility; padding: .5em .625em .625em; border: 0 solid #DEDEDE; border-width: 0 1px 1px 0; } td { text-align: left; border: 0 solid #DEDEDE; text-rendering: optimizeLegibility; line-height: 1.6; padding: .5em .625em .625em; font-size: inherit; border-width: 0 1px 1px 0; } td.icon { border: none; } td:first-of-type, th:first-of-type { border-left: none; } td:last-of-type, th:last-of-type { border-right: none; } } table.stretch { width: 100%; } /* Admonitions */ .admonitionblock { margin: 1.4rem 0; padding: 1rem; color: var(--admonition-font-color); table { table-layout: fixed; position: relative; width: 100%; tbody { tr { td.icon { position: absolute; top: 0; left: 0; line-height: 1; padding-bottom: .5rem; i { display: inline-flex; align-items: center; width: auto; background-position-x: .5em; vertical-align: initial; font-style: normal; &:after { content: attr(title); font-family: 'Inter var', sans-serif; font-weight: bolder; padding: 0 .5em; margin: -.05em; } } .icon-note::before { content:"\f05a"; color: var(--admonition-note-color); } .icon-tip::before { content:"\f0eb"; color: var(--admonition-tip-color) } .icon-warning::before { content:"\f071"; color: var(--admonition-warning-color); } .icon-caution::before { content:"\f06d"; color: var(--admonition-caution-color); } .icon-important::before { content:"\f06a"; color: var(--admonition-important-color); } } td.icon [class^="fa icon-"] { font-size: 1.2rem; cursor: default; } td.content { width: 100%; word-wrap: anywhere; .title { margin-top: 2rem; } .paragraph { padding-top: .5rem; } a { color: var(--admonition-links-color); } } } } } } .note { border-left: 5px solid var(--admonition-note-color); background-color: var(--admonition-note-background-color); } .warning { border-left: 5px solid var(--admonition-warning-color); background-color: var(--admonition-warning-background-color); } .important { border-left: 5px solid var(--admonition-important-color); background-color: var(--admonition-important-background-color); } .caution { border-left: 5px solid var(--admonition-caution-color); background-color: var(--admonition-caution-background-color); } .tip { border-left: 5px solid var(--admonition-tip-color); background-color: var(--admonition-tip-background-color); } /* Example */ .example, .exampleblock { border-left: 5px solid var(--example-block-color); padding: 1rem; background-color: var(--example-block-background-color); } .exampleblock { margin: .75rem 0; color: var(--example-block-font-color); .title { font-weight: bolder; font-family: 'Inter var', sans-serif; } .content { .literalblock { .content{ background: #fefde6 !important; border: none !important; color: var(--global-font-color); } } a { color: var(--admonition-links-color); } } } .procedure { border-left: 5px solid #B3B3B3; padding: 1rem; margin-bottom: 1.4rem; } /* Misc */ .fa { font-family: FontAwesome; font-style: normal; } .listingblock { margin: .75em 0; position: relative; } .highlight { padding-top: 1.5rem; padding-bottom: 1.5rem; } code { font-family: "DejaVu Sans Mono", Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; font-size: 0.75rem; } .filename { font-weight: bolder; } details { margin: 1rem 0; summary { cursor: pointer; } } kbd { font-family: "DejaVu Sans", "DejaVu Sans Bold"; display: inline-block; color: rgba(0,0,0,.8); font-size: .65em; line-height: 1.45; background-color: #F7F7F7; border: 1px solid #ccc; border-radius: 3px; box-shadow: 0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #FFF inset; margin: 0 .15em; padding: .2em .5em; vertical-align: middle; position: relative; top: -.1em; white-space: nowrap; } .to-top { opacity: 1; visibility: visible; transition: .2s; position: fixed; bottom: 1.2rem; right: 1.5rem; z-index: 15; text-decoration: none; i { font-size: 2rem; color: var(--global-font-color); } } .copy-to-clipboard-wrapper { position: absolute; margin: 0; padding: .50rem; right: .5rem; top: 0rem; button { display: flex; flex-direction: column; border: none; cursor: pointer; align-items: center; width: 1rem; height: 1rem; background: none; &:focus { outline: none; } i { color: var(--white); } } .tooltip { visibility: hidden; opacity: 0; justify-content: center; margin-top: 1em; background-color: var(--copy-clipboard-tooltip-background-color); border-radius: .25em; padding: .5em; color: var(--white); z-index: 999; &:focus { outline: none; } } .show-tooltip { visibility: visible; opacity: 1; transition: visibility 0s easy 0s; } } diff --git a/documentation/themes/beastie/assets/styles/header.scss b/documentation/themes/beastie/assets/styles/header.scss index 04c953103e..fbb50b15cf 100644 --- a/documentation/themes/beastie/assets/styles/header.scss +++ b/documentation/themes/beastie/assets/styles/header.scss @@ -1,173 +1,340 @@ /* - * Copyright (c) 2001-2022, The FreeBSD Documentation Project + * Copyright (c) 1994-2022, The FreeBSD Documentation Project * Copyright (c) 2021-2022, Sergio Carlavilla * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ header { - position: fixed; + position: sticky; + top: 0; + z-index: 9999; + padding: .5rem 1rem; background-color: var(--header-background); - box-shadow: 1px 1px 4px 0 rgba(0,0,0,.1); +} + +.header-container { + display: flex; width: 100%; - z-index: 9999; + max-width: var(--max-width); + margin-left: auto; + margin-right: auto; + align-items: center; +} - nav { - display: block; - max-width: 1440px; - width: 100%; - margin-left: auto; - margin-right: auto; - } +.logo-menu-bars-container { + display: flex; + align-items: center; +} - ul { - margin: 0; - padding: 0; - list-style: none; - overflow: hidden; - background-color: var(--header-background); +.logo { + display: flex; + align-items: center; + margin-right: 1rem; +} - li { - list-style: none; +header nav { + margin-left: 0; + margin-right: 0; +} - a { - display: block; - padding: 20px 20px; - border-right: 1px solid var(--header-background); - text-decoration: none; - color: var(--header-font-color); - font-weight: bolder; - } - } - } +header ul { + margin: 0; + padding: 0; + list-style: none; + overflow: hidden; +} - .logo { - display: block; - float: left; - font-size: 2em; - padding: 10px 20px; - padding-bottom: 0px; - text-decoration: none; - } +header ul li { + list-style: none; +} - .menu { - clear: both; - max-height: 0; - transition: max-height .2s ease-out; +.menu-bars { + display: none; + margin-left: auto; + color: var(--white); + cursor: pointer; +} - .first-element{ - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255,255,255,.1); - } - } +input[type='checkbox'] { + display: none; +} - .menu-icon { - cursor: pointer; - display: inline-block; - float: right; - padding: 28px 20px; - position: relative; - user-select: none; - margin-top: 5px; - - .navicon { - background: var(--white); - display: block; - height: 2px; - position: relative; - transition: background .2s ease-out; - width: 18px; - } - } -} - -header li a:hover, -header .menu-btn:hover { - background-color: var(--header-background); +.menu { + display: flex; + padding: 0; + margin: 0; +} + +.menu-item { + display: flex; + margin-right: 1rem; + align-items: center; + color: var(--white) !important; + margin-top: 0px !important; +} + +.menu-item a { + padding: 1rem 0; + color: inherit; +} + +.menu-item a, +.donate a { + text-decoration: none; + font-weight: 600; +} + +.menu-item a:hover, +.donate a:hover { + text-decoration: none; } -header .menu-icon .navicon:before, -header .menu-icon .navicon:after { - background: var(--white); - content: ''; - display: block; - height: 100%; +.donate a { + color: var(--black) !important; +} + +.menu-item i { + margin-left: .1rem; +} + +.sub-menu { + visibility: hidden; position: absolute; - transition: all .2s ease-out; - width: 100%; + top: 55px; + padding: 1rem .75rem; + min-width: 250px; + background-color: var(--white); + border-radius: .4rem; + color: #444; + border: 1px solid #CDCDCD; + z-index: 999; } -header .menu-icon .navicon:before { - top: 5px; +.sub-menu:hover { + visibility: visible; } -header .menu-icon .navicon:after { - top: -5px; +.menu-item a:hover+.sub-menu { + visibility: visible; } -header .menu-btn { - display: none; +.sub-menu li { + margin-top: 0; + padding: .75rem .6rem; } -header .menu-btn:checked ~ .menu { - max-height: 300px; +.sub-menu .title { + border-bottom: 1px solid #E5E7EB; } -header .menu-btn:checked ~ .menu-icon .navicon { - background: transparent; +.sub-menu li a { + font-weight: normal !important; } -header .menu-btn:checked ~ .menu-icon .navicon:before { - transform: rotate(-45deg); +.sub-menu .title a { + font-weight: bolder !important; } -header .menu-btn:checked ~ .menu-icon .navicon:after { - transform: rotate(45deg); +.search-donate-container { + display: flex; + align-items: center; + margin-top: 0px; + margin-left: auto; } -header .menu-btn:checked ~ .menu-icon:not(.steps) .navicon:before, -header .menu-btn:checked ~ .menu-icon:not(.steps) .navicon:after { - top: 0; +.search { + display: flex; + border-radius: .4rem; + background-color: var(--white); + border: 1px solid var(--white); + margin-top: 0px; +} + +.search input[type='text'] { + display: inline-block; + width: 100%; + padding: .3rem .8rem; + border: none; + border-radius: .4rem; + appearance: none; + outline: none; +} + +.search button { + background-color: var(--white); + border: none; + border-radius: .4rem; +} + +.donate { + margin-left: .5rem; +} + +.donate a { + display: inline-block; + padding: .5rem 1rem; + background-color: var(--white); + border-radius: .4rem; } -@media (min-width: 55em) { - header li { - float: left; - list-style: none; +.donate a i, +.heart i { + color: #E38582; +} + +.donate:hover a i, +.heart:hover i { + color: #D1332E; +} + +@media screen and (max-width: 1100px) { + .header-container { + flex-direction: column; } - header li a { - padding: 20px 30px; + .logo-menu-bars-container { + width: 100%; + padding: .5rem 0; } - header .menu { - clear: none; - float: right; - max-height: none; + nav { + width: 100%; + margin: 0; + padding: 0; + } + + .menu-bars { + display: block; + } + + .menu { + display: none; + width: 100%; + } + + #menu-bars:checked~nav .menu { + display: block !important; + } + + .menu-item { + flex-direction: column; + width: 100%; + margin-right: 0px; + border-top: 1px solid var(--white); + cursor: pointer; + } + + .menu-item a { + width: 100%; } - header .menu-icon { + .menu-item a:hover+.sub-menu { + visibility: visible; + } + + .menu-item-description { + display: flex; + width: 100%; + cursor: pointer; + } + + .menu-item-description i { + margin-left: auto; + } + + .sub-menu { display: none; + flex-direction: column; + width: 100%; + padding: 0px; + position: static; + visibility: visible; + border: none; + background-color: inherit; + color: inherit; + box-shadow: inherit; + } + + .sub-menu .title { + display: none; + border-bottom: none; + } + + .sub-menu li { + padding-left: 0px; + padding-right: 0px; + } + + #about:checked~.sub-menu, + #download:checked~.sub-menu, + #documentation:checked~.sub-menu, + #community:checked~.sub-menu { + display: flex; + } + + .search-donate-container { + display: none; + } + + .search { + width: 100%; + } + + #menu-bars:checked~.search-donate-container { + display: flex; + flex-direction: column; + width: 100%; + margin-left: unset; + padding-top: .2rem; + } + + .donate { + display: flex; + width: 100%; + margin-left: unset; + padding-top: .8rem; + } + + .donate a { + width: 100%; + text-align: center; + } + + .donate a i { + color: #D1332E; + } +} + +@media screen and (min-width: 900px) { + header { + padding: .5rem 2rem; + } +} + +@media screen and (min-width: 1451px) { + header { + padding: .5rem 5rem; } } diff --git a/documentation/themes/beastie/assets/styles/main.scss b/documentation/themes/beastie/assets/styles/main.scss index 8d3fdbb1c9..e2d1a98f03 100644 --- a/documentation/themes/beastie/assets/styles/main.scss +++ b/documentation/themes/beastie/assets/styles/main.scss @@ -1,51 +1,51 @@ /* - * Copyright (c) 2001-2022, The FreeBSD Documentation Project + * Copyright (c) 1994-2022, The FreeBSD Documentation Project * Copyright (c) 2021-2022, Sergio Carlavilla * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ @font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/inter/Inter-Regular.woff2") format("woff2"), url("../fonts/inter/Inter-Regular.woff") format("woff"); } @font-face { font-family: 'Inter var'; font-weight: 100 900; font-display: swap; font-style: normal; font-named-instance: 'Regular'; src: url("../fonts/inter/Inter-roman.var.woff2") format("woff2"); } @import "variables"; @import "global"; @import "header"; @import "documentation"; @import "footer"; @import "rouge"; diff --git a/documentation/themes/beastie/assets/styles/variables.scss b/documentation/themes/beastie/assets/styles/variables.scss index 717f154347..2cb677a321 100644 --- a/documentation/themes/beastie/assets/styles/variables.scss +++ b/documentation/themes/beastie/assets/styles/variables.scss @@ -1,152 +1,150 @@ /* - * Copyright (c) 2001-2022, The FreeBSD Documentation Project + * Copyright (c) 1994-2022, The FreeBSD Documentation Project * Copyright (c) 2021-2022, Sergio Carlavilla * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ :root { + --max-width: 1450px; --header-height: 4.5rem; --documentation-padding: 0px 20px 20px 20px; - --size-200: 0.50rem; + --size-300: 0.75rem; --size-400: 1rem; --size-500: 1.33rem; --size-550: 1.55rem; --size-600: 1.77rem; --size-700: 2.30rem; --size-750: 2.40rem; - --size-800: 3.15rem; - --size-900: 4.2rem; - - --flow-space: var(--size-700); } .theme-light { --white: #FFF; --black: #000; --global-font-color: #444; - --header-background: #9F0E0F; + --header-background: #AB2B28; --header-font-color: #FFF; --global-background-color: #FFF; --card-background-color: #F0F1F5; --card-border-color: #F0F1F5; --table-header-background-color: #F1F3F1; --table-header-font-color: #444; - --footer-background: #F0F1F5; + --footer-background-color: #F0F1F5; --footer-border-color: #F0F1F5; --lines-color: #DDD; --links-color: #0645AD; --pre-background-color: #F4F4F4; --pre-font-color: #444; --copy-clipboard-tooltip-background-color: #43453B; --admonition-font-color: #444; --admonition-links-color: #0645AD; --admonition-note-color: #19407C; --admonition-note-background-color: #EAF1FB; --admonition-warning-color: #BF6900; --admonition-warning-background-color: #FFF4E6; --admonition-important-color: #BF0000; --admonition-important-background-color: #FFE6E6; --admonition-caution-color: #BF3400; --admonition-caution-background-color: #FFECE6; --admonition-tip-color: #43B929; --admonition-tip-background-color: #EDFAEA; --example-block-color: #F1BB16; --example-block-background-color: #FEF8E7; --example-block-font-color: #444; + + --footer-logo: ""; } .theme-dark { - --white: #FFF; - --black: #000; - --global-font-color: #EEEFF1; - --header-background: #9F0E0F; - --header-font-color: #EEEFF1; - --global-background-color: #333333; - --card-background-color: #272727; - --card-border-color: #272727; - --table-header-background-color: #F1F3F1; - --table-header-font-color: #444; - --footer-background: #2B2B2B; - --footer-border-color: #2B2B2B; - --lines-color: #4d4d4d; - --links-color: #BAD7FF; - --pre-background-color: #272727; - --pre-font-color: #EEEFF1; - --copy-clipboard-tooltip-background-color: #43453B; + --white: #FFF; + --black: #000; + --global-font-color: #EEEFF1; + --header-background: #AB2B28; + --header-font-color: #EEEFF1; + --global-background-color: #333333; + --card-background-color: #272727; + --card-border-color: #272727; + --table-header-background-color: #F1F3F1; + --table-header-font-color: #444; + --footer-background-color: #2B2B2B; + --footer-border-color: #2B2B2B; + --lines-color: #4d4d4d; + --links-color: #BAD7FF; + --pre-background-color: #272727; + --pre-font-color: #EEEFF1; + --copy-clipboard-tooltip-background-color: #43453B; - --admonition-font-color: #444; - --admonition-links-color: #1A79FF; - --admonition-note-color: #19407C; - --admonition-note-background-color: #EAF1FB; - --admonition-warning-color: #BF6900; - --admonition-warning-background-color: #FFF4E6; - --admonition-important-color: #BF0000; - --admonition-important-background-color: #FFE6E6; - --admonition-caution-color: #BF3400; - --admonition-caution-background-color: #FFECE6; - --admonition-tip-color: #43B929; - --admonition-tip-background-color: #EDFAEA; - --example-block-color: #F1BB16; - --example-block-background-color: #FEF8E7; - --example-block-font-color: #272727; -} + --admonition-font-color: #444; + --admonition-links-color: #1A79FF; + --admonition-note-color: #19407C; + --admonition-note-background-color: #EAF1FB; + --admonition-warning-color: #BF6900; + --admonition-warning-background-color: #FFF4E6; + --admonition-important-color: #BF0000; + --admonition-important-background-color: #FFE6E6; + --admonition-caution-color: #BF3400; + --admonition-caution-background-color: #FFECE6; + --admonition-tip-color: #43B929; + --admonition-tip-background-color: #EDFAEA; + --example-block-color: #F1BB16; + --example-block-background-color: #FEF8E7; + --example-block-font-color: #272727;} .theme-high-contrast { --white: #FFF; --black: #000; --global-font-color: #FFF; - --header-background: #9F0E0F; + --header-background: #AB2B28; --header-font-color: #FFF; --global-background-color: #000; --card-background-color: #000; --card-border-color: #FFF; --table-header-background-color: #FFF; --table-header-font-color: #000; - --footer-background: #000; + --footer-background-color: #000; --footer-border-color: #FFF; --lines-color: #FFF; --links-color: #9F0E0F; --pre-background-color: #FFF; --pre-font-color: #000; --copy-clipboard-tooltip-background-color: #43453B; --admonition-font-color: #000; --admonition-note-color: #19407C; --admonition-links-color: #9F0E0F; --admonition-note-background-color: #EAF1FB; --admonition-warning-color: #BF6900; --admonition-warning-background-color: #FFF4E6; --admonition-important-color: #BF0000; --admonition-important-background-color: #FFE6E6; --admonition-caution-color: #BF3400; --admonition-caution-background-color: #FFECE6; --admonition-tip-color: #43B929; --admonition-tip-background-color: #EDFAEA; --example-block-color: #F1BB16; --example-block-background-color: #FEF8E7; --example-block-font-color: #000; } diff --git a/documentation/themes/beastie/i18n/en.toml b/documentation/themes/beastie/i18n/en.toml index 548a4736dd..5d557b332c 100644 --- a/documentation/themes/beastie/i18n/en.toml +++ b/documentation/themes/beastie/i18n/en.toml @@ -1,305 +1,437 @@ # --------------------------------------------------- # Global # --------------------------------------------------- [freebsd] other = "FreeBSD" [freebsd-project] other = "The FreeBSD Project" [freebsd-foundation] other = "The FreeBSD Foundation" [freebsd-documentation] other = "FreeBSD Documentation" [freebsd-documentation-main-desc] other = "FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms." [global-search-placeholder] other = "Search in the articles, books and guides." [toc] other = "Table of Contents" [resources] other = "Resources" [download-pdf] other = "Download PDF" [edit-page] other = "Edit this page" [trademarks] other = "trademarks" [books] other = "Books" [articles] other = "Articles" [choose-language] other = "Choose language" [last-modified] other = "Last modified on" [by] other = "by" [search] other = "Search" # --------------------------------------------------- # Header # --------------------------------------------------- [documentation] other = "Documentation" [community] other = "Community" +[h-about] +other = "About" + +[h-freebsd] +other = "FreeBSD" + +[h-freebsd-foundation] +other = "FreeBSD Foundation" + +[h-code-of-conduct] +other = "Code of Conduct" + +[h-get-freebsd] +other = "Get FreeBSD" + +[h-release-information] +other = "Release Information" + +[h-release-engineering] +other = "Release Engineering" + +[h-security-advisories] +other = "Security Advisories" + +[h-documentation] +other = "Documentation" + +[h-documentation-portal] +other = "Documentation portal" + +[h-freebsd-handbook] +other = "FreeBSD's Handbook" + +[h-porter-handbook] +other = "Porter's Handbook" + +[h-documentation-handbook] +other = "Documentation's Handbook" + +[h-manual-pages] +other = "Manual pages" + +[h-presentation-and-papers] +other = "Presentation and papers" + +[h-wiki] +other = "Wiki" + +[h-books] +other = "List of books" + +[h-articles] +other = "List of articles" + +[h-community] +other = "Community" + +[h-get-involved] +other = "Get involved" + +[h-community-forum] +other = "Community forum" + +[h-mailing-lists] +other = "Mailing lists" + +[h-irc-channels] +other = "IRC Channels" + +[h-bug-tracker] +other = "Bug Tracker" + +[h-support] +other = "Support" + +[h-donate] +other = "Donate" + # --------------------------------------------------- # Main page # --------------------------------------------------- [getting-started] other = "Getting started" [learn-basics] other = "Learn about FreeBSD basics" [download] other = "Download" [download-freebsd] other = "Download FreeBSD" [handbook] other = "FreeBSD Handbook" [handbook-desc] other = "A constantly evolving, comprehensive resource for FreeBSD users" [porters-handbook] other = "FreeBSD Porter's Handbook" [porters-handbook-desc] other = "A complete reference about the FreeBSD ports system" [faq] other = "FreeBSD FAQ" [faq-desc] other = "FreeBSD Frequently Asked Questions (FAQ) for 13.X and 12.X" [fdp] other = "Documentation Project Primer" [fdp-desc] other = "A complete guide about how to start contributing to the documentation" [books-list] other = "List of FreeBSD books" [articles-list] other = "List of FreeBSD articles" [manual-pages] other = "Manual pages" [manual-pages-desc] other = "FreeBSD Manual Pages" # --------------------------------------------------- # Footer # --------------------------------------------------- [light] other = "Light" [dark] other = "Dark" [high-contrast] other = "High contrast" -[previous-versions] +[f-about] +other = "About" + +[f-freebsd] +other = "FreeBSD" + +[f-freebsd-foundation] +other = "FreeBSD Foundation" + +[f-get-freebsd] +other = "Get FreeBSD" + +[f-code-of-conduct] +other = "Code of Conduct" + +[f-security-advisories] +other = "Security Advisories" + +[f-documentation] +other = "Documentation" + +[f-documentation-portal] +other = "Documentation portal" + +[f-manual-pages] +other = "Manual pages" + +[f-presentation-and-papers] +other = "Presentation and papers" + +[f-previous-versions] other = "Previous versions" -[4-4bsd-documents] +[f-44bsd-documents] other = "4.4BSD Documents" -[about] -other = "About" +[f-wiki] +other = "Wiki" + +[f-community] +other = "Community" + +[f-get-involved] +other = "Get involved" + +[f-community-forum] +other = "Community forum" -[legal] +[f-mailing-lists] +other = "Mailing lists" + +[f-irc-channels] +other = "IRC Channels" + +[f-bug-tracker] +other = "Bug Tracker" + +[f-legal] other = "Legal" -[donations] +[f-donations] other = "Donations" -[legal-notices] +[f-licensing] +other = "Licensing" + +[f-privacy-policy] +other = "Privacy Policy" + +[f-legal-notices] other = "Legal notices" -[made-with] +[f-all-rights-reserved] +other = "The FreeBSD Project. All rights reserved" + +[f-made-with] other = "Made with" -[by-freebsd-community] +[f-by-freebsd-community] other = "by the FreeBSD Community" -[copyright] -other = "All rights reserved." - # --------------------------------------------------- # Articles page # --------------------------------------------------- [list-desc-articles] other = "Explore a comprehensive list of FreeBSD articles." # --------------------------------------------------- # Books page # --------------------------------------------------- [prev] other = "Prev" [next] other = "Next" [home] other = "Home" [split-html] other = "Split HTML" [single-html] other = "Single HTML" [book-chapters] other = "Book chapters" [book-menu] other = "Book menu" [list-desc-books] other = "Explore a comprehensive list of FreeBSD books." # --------------------------------------------------- # Languages page # --------------------------------------------------- [select-language] other = "Select a language" [current-selection] other = "Current selection:" # --------------------------------------------------- # Copyright # --------------------------------------------------- [freebsd-copyright] other = "FreeBSD is a registered trademark of the FreeBSD Foundation." [pam] other = "This article was written for the FreeBSD Project by ThinkSec AS and Network Associates Laboratories, the Security Research Division of Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 (“CBOSS”), as part of the DARPA CHATS research program." [coverity] other = "Coverity is a registered trademark; Coverity Extend, Coverity Prevent and Coverity Prevent SQS are trademarks of Coverity, Inc." [ibm] other = "IBM, AIX, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both." [ieee] other = "IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States." [redhat] other = "Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries." [3com] other = "3Com and HomeConnect are registered trademarks of 3Com Corporation." [amd] other = "AMD, AMD Athlon, AMD Opteron, AMD Phenom, AMD Sempron, AMD Turion, Athlon, Élan, Opteron, and PCnet are trademarks of Advanced Micro Devices, Inc." [adobe] other = "Adobe, Acrobat, Acrobat Reader, Flash and PostScript are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries." [apple] other = "Apple, AirPort, FireWire, iMac, iPhone, iPad, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Inc., registered in the U.S. and other countries." [intel] other = "Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries." [linux] other = "Linux is a registered trademark of Linus Torvalds." [microsoft] other = "Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries." [opengroup] other = "Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries." [qualcomm] other = "QUALCOMM and Eudora are registered trademarks of QUALCOMM Incorporated." [sparc] other = "SPARC, SPARC64, and UltraSPARC are trademarks of SPARC International, Inc in the United States and other countries. SPARC International, Inc owns all of the SPARC trademarks and under licensing agreements allows the proper use of these trademarks by its members." [sun] other = "Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, Netra, OpenJDK, Solaris, StarOffice, SunOS and VirtualBox are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries." [unix] other = "UNIX is a registered trademark of The Open Group in the United States and other countries." [netbsd] other = "NetBSD is a registered trademark of the NetBSD Foundation." [realnetworks] other = "RealNetworks, RealPlayer, and RealAudio are the registered trademarks of RealNetworks, Inc." [oracle] other = "Oracle is a registered trademark of Oracle Corporation." [3ware] other = "3ware is a registered trademark of 3ware Inc." [arm] other = "ARM is a registered trademark of ARM Limited." [adaptec] other = "Adaptec is a registered trademark of Adaptec, Inc." [google] other = "Android is a trademark of Google Inc." [heidelberger] other = "Heidelberg, Helvetica, Palatino, and Times Roman are either registered trademarks or trademarks of Heidelberger Druckmaschinen AG in the U.S. and other countries." [intuit] other = "Intuit and Quicken are registered trademarks and/or registered service marks of Intuit Inc., or one of its subsidiaries, in the United States and other countries." [lsilogic] other = "LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID and Mylex are trademarks or registered trademarks of LSI Logic Corp." [themathworks] other = "MATLAB is a registered trademark of The MathWorks, Inc." [thomson] other = "SpeedTouch is a trademark of Thomson." [vmware] other = "VMware is a trademark of VMware, Inc." [wolframresearch] other = "Mathematica is a registered trademark of Wolfram Research, Inc." [xiph] other = "Ogg Vorbis and Xiph.Org are trademarks of Xiph.Org." [xfree86] other = "XFree86 is a trademark of The XFree86 Project, Inc." [daemon-news] other = "This article was originally published in the January 2000 issue of DaemonNews. This version of the article may include updates from Matt and other authors to reflect changes in FreeBSD's VM implementation." [general] other = "Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol." diff --git a/documentation/themes/beastie/layouts/books/list.html b/documentation/themes/beastie/layouts/books/list.html index a9fcae0cbc..5356835001 100644 --- a/documentation/themes/beastie/layouts/books/list.html +++ b/documentation/themes/beastie/layouts/books/list.html @@ -1,142 +1,141 @@ {{ define "main" }}
{{ if eq .Params.showBookMenu true }} {{ end }}
{{ if eq .Params.showBookMenu true }}
{{ end }}

{{ .Title }}

{{ if .Params.copyright }} {{ end}} {{ if isset .Params "trademarks" }} {{ partial "trademarks" .Params.trademarks }} {{ end }}

{{ i18n "toc" }}

{{ .TableOfContents }}
{{ if $.Site.Params.isOnline }} {{ if .Params.add_split_page_link }}
[ {{ i18n "split-html" }} / {{ i18n "single-html" }} ]
{{ end }} {{ if .Params.add_single_page_link }}
[ {{ i18n "split-html" }} / {{ i18n "single-html" }} ]
{{ end }} {{ end }}
{{ .Content }}
{{ if .GitInfo }}

{{ i18n "last-modified" }}: {{ .GitInfo.AuthorDate | time.Format ":date_long" }} {{ i18n "by" }} {{ .GitInfo.AuthorName }}

{{ end }}
{{ if .Params.prev }} {{ end }}
{{ if $.Site.Params.isOnline }} {{ i18n "home" }} {{ else }} {{ i18n "home" }} {{ end }}
{{ if .Params.next }} {{ end }}
{{ end }} diff --git a/documentation/themes/beastie/layouts/books/single.html b/documentation/themes/beastie/layouts/books/single.html index a9fcae0cbc..5356835001 100644 --- a/documentation/themes/beastie/layouts/books/single.html +++ b/documentation/themes/beastie/layouts/books/single.html @@ -1,142 +1,141 @@ {{ define "main" }}
{{ if eq .Params.showBookMenu true }} {{ end }}
{{ if eq .Params.showBookMenu true }}
{{ end }}

{{ .Title }}

{{ if .Params.copyright }} {{ end}} {{ if isset .Params "trademarks" }} {{ partial "trademarks" .Params.trademarks }} {{ end }}

{{ i18n "toc" }}

{{ .TableOfContents }}
{{ if $.Site.Params.isOnline }} {{ if .Params.add_split_page_link }}
[ {{ i18n "split-html" }} / {{ i18n "single-html" }} ]
{{ end }} {{ if .Params.add_single_page_link }}
[ {{ i18n "split-html" }} / {{ i18n "single-html" }} ]
{{ end }} {{ end }}
{{ .Content }}
{{ if .GitInfo }}

{{ i18n "last-modified" }}: {{ .GitInfo.AuthorDate | time.Format ":date_long" }} {{ i18n "by" }} {{ .GitInfo.AuthorName }}

{{ end }}
{{ if .Params.prev }} {{ end }}
{{ if $.Site.Params.isOnline }} {{ i18n "home" }} {{ else }} {{ i18n "home" }} {{ end }}
{{ if .Params.next }} {{ end }}
{{ end }} diff --git a/documentation/themes/beastie/layouts/partials/site-footer.html b/documentation/themes/beastie/layouts/partials/site-footer.html index 06099138e9..634a79ab2b 100755 --- a/documentation/themes/beastie/layouts/partials/site-footer.html +++ b/documentation/themes/beastie/layouts/partials/site-footer.html @@ -1,67 +1,113 @@ diff --git a/documentation/themes/beastie/layouts/partials/site-header.html b/documentation/themes/beastie/layouts/partials/site-header.html index 25e98b01fc..18480e6d3e 100755 --- a/documentation/themes/beastie/layouts/partials/site-header.html +++ b/documentation/themes/beastie/layouts/partials/site-header.html @@ -1,21 +1,107 @@
- + + + + + +
+ + +
+
diff --git a/documentation/themes/beastie/static/images/FreeBSD-colors.svg b/documentation/themes/beastie/static/images/FreeBSD-colors.svg new file mode 100755 index 0000000000..decb8e0f53 --- /dev/null +++ b/documentation/themes/beastie/static/images/FreeBSD-colors.svg @@ -0,0 +1,92 @@ + + + + + + ® + + + + + + + ® + diff --git a/documentation/themes/beastie/static/images/FreeBSD-monochromatic.svg b/documentation/themes/beastie/static/images/FreeBSD-monochromatic.svg new file mode 100755 index 0000000000..e62c678fea --- /dev/null +++ b/documentation/themes/beastie/static/images/FreeBSD-monochromatic.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + +