diff --git a/documentation/themes/beastie/assets/js/copy-clipboard.js b/documentation/themes/beastie/assets/js/copy-clipboard.js index 7ee41cfef4..9c2473dad8 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) 1994-2023, The FreeBSD Documentation Project -Copyright (c) 2021-2023, Sergio Carlavilla +Copyright (c) 1994-2025, The FreeBSD Documentation Project +Copyright (c) 2021-2025, 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 12e9fc3b04..d9cd420eb2 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) 1994-2023, The FreeBSD Documentation Project -Copyright (c) 2021-2023, Sergio Carlavilla +Copyright (c) 1994-2025, The FreeBSD Documentation Project +Copyright (c) 2021-2025, 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 62b6235853..7a075580f5 100644 --- a/documentation/themes/beastie/assets/js/theme-chooser.js +++ b/documentation/themes/beastie/assets/js/theme-chooser.js @@ -1,79 +1,79 @@ /* BSD 2-Clause License -Copyright (c) 1994-2023, The FreeBSD Documentation Project -Copyright (c) 2021-2023, Sergio Carlavilla +Copyright (c) 1994-2025, The FreeBSD Documentation Project +Copyright (c) 2021-2025, 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 if (theme === "theme-light") { setTheme('theme-light'); themeChooser.value = 'theme-light'; } else { setTheme('theme-system'); themeChooser.value = 'theme-system'; } 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 if (theme === "theme-light") { setTheme('theme-light'); } else { setTheme('theme-system'); } }); function setTheme(themeName) { localStorage.setItem('theme', themeName); if (themeName === 'theme-system') { if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { document.documentElement.className = 'theme-dark'; } else { document.documentElement.className = 'theme-light'; } } else { document.documentElement.className = themeName; } } })(); diff --git a/documentation/themes/beastie/assets/styles/documentation.scss b/documentation/themes/beastie/assets/styles/documentation.scss index 678e3c4cbc..c993293349 100644 --- a/documentation/themes/beastie/assets/styles/documentation.scss +++ b/documentation/themes/beastie/assets/styles/documentation.scss @@ -1,407 +1,407 @@ /* - * Copyright (c) 1994-2023, The FreeBSD Documentation Project - * Copyright (c) 2021-2023, Sergio Carlavilla + * Copyright (c) 1994-2025, The FreeBSD Documentation Project + * Copyright (c) 2021-2025, 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. * */ .documents-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; justify-content: center; margin-left: auto; margin-right: auto; 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; h1 { margin: .8rem 0; } } } .main-wrapper-book { display: flex; justify-content: center; margin-left: auto; margin-right: auto; 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(100vh - 8rem); 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: 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 dca2960eb9..8ac35990bb 100644 --- a/documentation/themes/beastie/assets/styles/footer.scss +++ b/documentation/themes/beastie/assets/styles/footer.scss @@ -1,187 +1,187 @@ /* - * Copyright (c) 1994-2023, The FreeBSD Documentation Project - * Copyright (c) 2021-2023, Sergio Carlavilla + * Copyright (c) 1994-2025, The FreeBSD Documentation Project + * Copyright (c) 2021-2025, 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 { margin-top: 1rem; padding: 1rem; color: var(--global-font-color); background-color: var(--footer-background-color); } .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; } .logo-column { grid-area: logo; } .about-column { grid-area: about; } .community-column { grid-area: community; } .documentation-column { grid-area: documentation; } .legal-column { grid-area: legal; } .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; } .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 { font-size: 1.2rem; color: #E38582; } .heart:hover { color: #D1332E; } .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"; } } @media screen and (min-width: 900px) { footer { padding: 2rem; } .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 (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 98881886be..7a2db627a4 100644 --- a/documentation/themes/beastie/assets/styles/global.scss +++ b/documentation/themes/beastie/assets/styles/global.scss @@ -1,774 +1,774 @@ /* - * Copyright (c) 1994-2023, The FreeBSD Documentation Project - * Copyright (c) 2021-2023, Sergio Carlavilla + * Copyright (c) 1994-2025, The FreeBSD Documentation Project + * Copyright (c) 2021-2025, 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; justify-content: center; margin: 0 auto; width: 100%; max-width: var(--max-width); transition: padding .15s; background-color: var(--global-background-color); .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: 10%; } 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; border: none; input { display: block; width: 80%; 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: grid; grid-gap: 1rem; margin: 0 auto; margin-top: 3rem; margin-bottom: 3rem; padding-right: 10%; padding-left: 10%; .card { padding: 1rem; 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; } } } } .document { padding: var(--documentation-padding); } } 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 (min-width: 600px) { .main-wrapper { .welcome-container { .title-language-container { h2 { margin-left: auto; } } form { input { width: 50%; } } } } .cards-container { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 900px) { .cards-container { grid-template-columns: repeat(3, 1fr); } } .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); padding-top: .8rem; } 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; vertical-align: top; } .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; vertical-align: top; } 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; } .listingblock .title { position: absolute; top: -1em; left: 1em; } .highlight { padding: 1.5em 2em; code { font-size: 0.75rem; padding: 0; border-radius: inherit; background-color: transparent; color: inherit; } &:hover code::before { content: attr(data-lang); position: absolute; top: 0.5em; right: 3em; } } code { font-family: "DejaVu Sans Mono", Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; padding: .12rem .20rem; border-radius: .25rem; background-color: var(--pre-background-color); color: var(--pre-font-color); } .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 6f7461c8c0..fb07877df4 100644 --- a/documentation/themes/beastie/assets/styles/header.scss +++ b/documentation/themes/beastie/assets/styles/header.scss @@ -1,348 +1,348 @@ /* - * Copyright (c) 1994-2023, The FreeBSD Documentation Project - * Copyright (c) 2021-2023, Sergio Carlavilla + * Copyright (c) 1994-2025, The FreeBSD Documentation Project + * Copyright (c) 2021-2025, 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: sticky; top: 0; z-index: 9999; padding: .5rem 1rem; background-color: var(--header-background); } .header-container { display: flex; width: 100%; max-width: var(--max-width); margin-left: auto; margin-right: auto; align-items: center; } .logo-menu-bars-container { display: flex; align-items: center; } .logo { display: flex; align-items: center; margin-right: 1rem; } header nav { margin-left: 0; margin-right: 0; } header ul { margin: 0; padding: 0; list-style: none; overflow: hidden; } header ul li { list-style: none; } .menu-bars { display: none; margin-left: auto; color: var(--white); cursor: pointer; } input[type='checkbox'] { display: none; } .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; } .donate a { color: var(--black) !important; } .menu-item i { margin-left: .1rem; } .sub-menu { visibility: hidden; position: absolute; top: 55px; padding: 1rem .75rem; min-width: 250px; background-color: var(--white); border-radius: .4rem; color: #444; border: 1px solid #CDCDCD; z-index: 999; } .sub-menu:hover { visibility: visible; } .menu-item a:hover+.sub-menu { visibility: visible; } .sub-menu li { margin-top: 0; padding: .75rem .6rem; } .sub-menu .title { border-bottom: 1px solid #E5E7EB; } .sub-menu li a { font-weight: normal !important; } .sub-menu .title a { font-weight: bolder !important; } .search-donate-container { display: flex; align-items: center; margin-top: 0px; margin-left: auto; } .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; background-color: var(--white); color: var(--black); } .search button { background-color: var(--white); border: none; border-radius: .4rem; } .search button i { color: var(--black); } .donate { margin-left: .5rem; } .donate a { display: inline-block; padding: .5rem 1rem; background-color: var(--white); border-radius: .4rem; } .donate a .heart, .heart .heart { font-size: 1.2rem; color: #E38582; } .donate:hover a .heart, .heart:hover .heart { color: #D1332E; } @media screen and (max-width: 1100px) { .header-container { flex-direction: column; } .logo-menu-bars-container { width: 100%; padding: .5rem 0; } 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%; } .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 .heart { font-size: 1.2rem; 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 48db35239d..6824f1c398 100644 --- a/documentation/themes/beastie/assets/styles/main.scss +++ b/documentation/themes/beastie/assets/styles/main.scss @@ -1,51 +1,51 @@ /* - * Copyright (c) 1994-2023, The FreeBSD Documentation Project - * Copyright (c) 2021-2023, Sergio Carlavilla + * Copyright (c) 1994-2025, The FreeBSD Documentation Project + * Copyright (c) 2021-2025, 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 16199befd6..4c67fe1772 100644 --- a/documentation/themes/beastie/assets/styles/variables.scss +++ b/documentation/themes/beastie/assets/styles/variables.scss @@ -1,150 +1,150 @@ /* - * Copyright (c) 1994-2023, The FreeBSD Documentation Project - * Copyright (c) 2021-2023, Sergio Carlavilla + * Copyright (c) 1994-2025, The FreeBSD Documentation Project + * Copyright (c) 2021-2025, 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-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; } .theme-light { --white: #FFF; --black: #000; --global-font-color: #444; --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-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: #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;} .theme-high-contrast { --white: #FFF; --black: #000; --global-font-color: #FFF; --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-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; }