@charset "UTF-8"; /* Theme Name: Quarante-Douze Theme URI: https://git.kobold.cafe/quarante-douze/qdouze2-wordpress-theme Author: Kazhnuz Author URI: https://kazhnuz.space Description: The default theme for Quarante-Douze, my tech blog. Version: 0.1 License: GNU General Public License v3 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog, two-columns, right-sidebar Text Domain: qdouze2-wordpress-theme This theme is licensed under the GPLv3. */ /* --- 00. PALETTE --- */ /* * Les définitions globales des couleurs du theme. * * Elle permettent de définir rapidement à la fois les couleurs * de base qui seront utilisée pour tout le theme, mais * également celles spécifiques pour certains sujets (liens, texte) * */ @font-face { font-family: 'Teko'; src: url("fonts/teko-light-webfont.woff"); font-weight: 300; } @font-face { font-family: 'Teko'; src: url("fonts/teko-regular-webfont.woff"); font-weight: 400; } @font-face { font-family: 'Teko'; src: url("fonts/teko-medium-webfont.woff"); font-weight: 500; } @font-face { font-family: 'Teko'; src: url("fonts/teko-semibold-webfont.woff"); font-weight: 600; } @font-face { font-family: 'Teko'; src: url("fonts/teko-bold-webfont.woff2") format("woff2"), url("fonts/teko-bold-webfont.woff") format("woff"); font-weight: 700; font-display: swap; } /* --- 00. COLORS --- */ /* * La gestion des couleurs dans le theme. Cette partie de la stylesheet est * automatique et n'a pas besoin d'être modifiée */ /* 0. CORE ** All the basic functions from the stylesheet */ *, *::before, *::after { box-sizing: inherit; } html { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Cantarell, Roboto, Oxygen, Ubuntu, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; text-align: left; font-size: 4.75mm; line-height: 1.6rem; font-weight: 400; box-sizing: border-box; -webkit-text-size-adjust: 100%; } body { margin: 0; overflow-x: hidden; text-rendering: optimizeLegibility; color: var(--text-color); } abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } :root { --accent-color: #e03131; --text-color-contrast: #ffffff; --accent-color-hover: #cc1f1f; --text-color:#212529; --link-color-hover:rgba(33, 37, 41, 0.15); --link-color:#c11d1d; } strong { font-weight: 600; } em { font-style: italic; font-weight: 400; } mark { padding: 0.05rem 0.25rem; border-radius: 0.1rem; } a { color: var(--link-color); outline-color: #e03131; padding: 0.05rem; border-radius: 0.1rem; text-decoration: underline dashed 1px; text-underline-offset: 0.1rem; } a:visited { color: var(--link-color); } a:hover, a:active { background-color: var(--link-color-hover); text-decoration: none; } a:focus-visible, input:focus-visible { outline-style: dashed; outline-width: 2px; outline-offset: 1px; } mark { background-color: white; color: inherit; } p, ul, ol { padding: 0; padding-bottom: 1.6rem; margin: 0; } p:last-child, ul:last-child, ol:last-child { padding-bottom: 0; } ul, ol { list-style: disc; } ul ul, ul ol, ol ul, ol ol { padding-bottom: 0; margin: 0; } ul li, ol li { margin: 0; margin-left: 1.6rem; line-height: 1.6rem; } ul.nolist, ol.nolist { display: inline; list-style: none; margin: 0; padding: 0; } ul.nolist li, ol.nolist li { display: inline; margin: 0; padding: 0; } ::selection, ::-moz-selection { background-color: #1971c2; color: #ffffff; } h1, h2, h3, h4, h5, h6, h7 { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Cantarell, Roboto, Oxygen, Ubuntu, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; text-align: left; font-size: 1em; padding: 0; margin: 0; font-weight: 400; padding-bottom: 1.6rem; } h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, h7 a { border: none; } sup > a, sub > a { color: #e03131; background-color: transparent; } sup > a:hover, sup > a:focus, sup > a:active, sub > a:hover, sub > a:focus, sub > a:active { color: #c11d1d; } .main-title { font-family: Teko, sans-serif; font-size: 3.815rem; line-height: 4.8rem; font-weight: 800; } h1, .title-1 { font-family: Teko, sans-serif; font-size: 2.441rem; line-height: 3.2rem; font-weight: 800; color: #e03131; } h2, .title-2 { font-size: 2.441rem; line-height: 3.2rem; font-weight: 300; } h3, .title-3 { font-size: 1.953rem; line-height: 3.2rem; font-weight: 600; } h4, .title-4 { font-size: 1.563rem; line-height: 3.2rem; font-weight: 800; } h5, .title-5 { font-size: 1.25rem; line-height: 1.6rem; font-weight: 600; } h6, .title-6 { font-size: 1rem; line-height: 1.6rem; font-weight: 800; } hr { border: 0px solid rgba(1, 1, 1, 0.15); border-bottom: 1px; margin: 1.5em; box-sizing: content-box; height: 0; overflow: visible; } pre { font-family: monospace, monospace; font-size: 1em; } .small-text, small { font-size: 0.9em; } .time { font-style: italic; text-align: right; width: 100%; display: block; } #wrapper { background-color: #ffffff; } .container-big { padding-left: 1.6rem; padding-right: 1.6rem; max-width: 1600px; margin: auto; } .container, .container-onecolumn { padding-left: 1.6rem; padding-right: 1.6rem; max-width: 1200px; margin: auto; } .icon { display: inline-block; width: 1em; height: 1em; stroke-width: 0; stroke: currentColor; fill: currentColor; color: currentColor; position: relative; top: 0.1em; } .icon.icon-newspaper-o { top: 0.15em; } /* --- 04. COMPOSANTS --- */ /* * Les différents composants réutilisables de la page. * */ .badge { border: 0px solid rgba(0, 0, 0, 0.3); border-radius: 4px 4px 4px 4px; background-color: transparent; line-height: 1.5em; padding-left: 0.4em; padding-right: 0.4em; text-decoration: none !important; background-color: var(--accent-color); color: var(--text-color-contrast); } .btn { border: 0px solid rgba(0, 0, 0, 0.3); border-radius: 4px 4px 4px 4px; background-color: transparent; text-decoration: none; padding: 0.5333333333em 1.6em; margin: 0.5333333333em 0.8em 1.6rem; line-height: 1.6rem; height: auto; transition: background-color .2s, border .2s, box-shadow .2s, color .2s; outline-color: var(--accent-color); color: var(--text-color-contrast); background-color: var(--accent-color); font-weight: 400; } .btn:visited { color: var(--text-color-contrast); } .btn:hover, .btn:active { background-color: var(--accent-color-hover); outline-color: var(--accent-color-hover); box-shadow: none; } p .btn:last-child { margin-bottom: 0; } .btn .fake { background-color: transparent !important; color: var(--text-color); } .btn.disabled, .btn:disabled { opacity: 0.8; background-color: var(--accent-color) !important; outline-color: var(--accent-color) !important; color: var(--text-color-contrast) !important; } .btn-small { padding: 0.1333333333em 0.2em; margin: 0.1333333333em 0.2em 1.6rem; } .btn-small:before { left: -0.2em; right: -0.2em; } .btn-readmore, .btn-link { color: var(--link-color); background-color: transparent; } .btn-readmore:visited, .btn-link:visited { color: var(--link-color); } .btn-readmore:hover::before, .btn-readmore:active::before, .btn-link:hover::before, .btn-link:active::before { background-color: var(--link-color-hover); } .btn-toolbar { padding: 0 1.6em; } .btn-group > .btn { border-radius: 4px 4px 4px 4px; margin: 0 0 0 0 !important; } .btn-group:not(:first-child) > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; } .btn-group:not(:first-child) > .btn:before { content: " " !important; border-left: 1px solid rgba(0, 0, 0, 0.2); } .btn-group:not(:last-child) > .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; } ul.breadcrumb, ol.breadcrumb, .breadcrumb { border: 0px solid rgba(0, 0, 0, 0.3); border-radius: 4px 4px 4px 4px; background-color: transparent; background-color: #e9ecef; padding: 0.8em; margin: 0 0 1.6rem; display: flex; flex-direction: row; align-items: flex-start; list-style: none; } ul.breadcrumb::before, ol.breadcrumb::before, .breadcrumb::before { background-color: #e9ecef; } ul.breadcrumb li, ol.breadcrumb li, .breadcrumb li { margin: 0; } .breadcrumb li:not(:first-child)::before { content: "/"; padding: 0.3rem; } .breadcrumb .active { font-weight: 600; } nav.pagination { padding-bottom: 1.6rem; } nav.pagination .nav-links { text-align: center; width: 100%; } nav.pagination .page-numbers, nav.pagination .next, nav.pagination .prev { border: 0px solid rgba(0, 0, 0, 0.3); border-radius: 4px 4px 4px 4px; background-color: transparent; padding: 0.2em 0.4em; margin: 0.2em; text-decoration: none; } nav.pagination .page-numbers:not(.current):not(.dots), nav.pagination .next:not(.current):not(.dots), nav.pagination .prev:not(.current):not(.dots) { outline-color: var(--accent-color); color: var(--link-color); } nav.pagination .page-numbers:not(.current):not(.dots):hover, nav.pagination .next:not(.current):not(.dots):hover, nav.pagination .prev:not(.current):not(.dots):hover { background-color: var(--link-color-hover); } nav.pagination .page-numbers.current, nav.pagination .next.current, nav.pagination .prev.current { background-color: #e03131; color: #ffffff; background-color: #e03131; } .card { border-radius: 8px 8px 8px 8px; background-color: #e9ecef; box-shadow: 0px 2px 4px rgba(0, 0, 0, 0); border: none; margin: 0; margin-bottom: 1.6rem; display: flex; flex-direction: column; color: #212529; } .card > * { margin-left: 1em; margin-right: 1em; } .card > *:first-child, .card > *.sr-only:first-child ~ * { margin-top: 2em; } .card > *:first-child.card-header, .card > *.sr-only:first-child ~ *.card-header { margin-top: 0px; } .card > *:last-child { margin-bottom: 2em; } .card > *:last-child.card-header { margin-bottom: 0px; } .card-body { padding: 0 !important; } .card-header { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Cantarell, Roboto, Oxygen, Ubuntu, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 1em; font-weight: 600; padding: 1em 1.6em; padding-bottom: 1em !important; margin: 0.8em 0px; line-height: 1; position: relative; left: 0px; width: 100%; border: 0px solid rgba(0, 0, 0, 0.3); border-radius: 4px 4px 4px 4px; background-color: transparent; background-color: var(--accent-color); border-radius: 0; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Cantarell, Roboto, Oxygen, Ubuntu, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; color: var(--text-color-contrast); } .card-header:first-child { border-top-left-radius: 8px; border-top-right-radius: 8px; } .card-header:last-child { border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; } .card-header .icon { margin-right: 0.25em; } .card-header::before { background-color: var(--accent-color); } ul.card-list, .card > ul { padding: 0; margin: 0; } ul.card-list li.list-element, .card > ul li.list-element { line-height: 0.8em; padding: 0.4em, 0.4em, 0.4em, 0.8em; margin: 0; } .menu { display: flex; flex-direction: column; } .menu ul, .menu li { list-style: none; padding: 0; margin: 0; } .menu a, .menu a:visited { display: flex; line-height: 1.6em; padding: 0.4em; margin: 0; justify-content: space-between; align-items: center; text-decoration: none; word-wrap: none; text-overflow: ellipsis; overflow: hidden; } .menu a .badge, .menu a:visited .badge { margin: 0; } .menu a { color: var(--text-color); outline-color: var(--text-color); } .menu a:hover, .menu a:active, .menu a.submenu:focus { background-color: var(--link-color-hover); } .submenu .fa-caret-down { position: relative; top: 2px; font-size: 0.8em; } .toolbar { flex-direction: row; padding: 0.4em; } .toolbar ul { display: flex; flex-direction: row; flex-grow: 1; } .toolbar li { text-align: center; position: relative; } .toolbar li a, .toolbar li span, .toolbar li em, .toolbar li strong, .toolbar li.toolbar-element { display: block; padding: 0.5333333333em 0.8em; } .toolbar li ul { visibility: hidden; opacity: 0; position: absolute; transition: all 0.5s ease; margin-top: 0rem; left: 0; display: none; padding: 0.33rem; z-index: 2; background-color: #e9ecef; } .toolbar li:hover ul, .toolbar li ul:hover, .toolbar li:focus-within ul { visibility: visible; opacity: 1; display: flex; flex-direction: column; border-radius: 8px; box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2); width: max-content; } .toolbar li:hover ul li, .toolbar li ul:hover li, .toolbar li:focus-within ul li { text-align: left; } .menu-divider, .menu ul h1, ul.menu h1, .menu h2, ul.menu h2 { position: relative; left: -0.4em; font-weight: 800; padding-top: 0.4em; padding-bottom: 0.4em; font-size: 1em; line-height: 1.6em; } .menu-label { transition: background-color .2s, border .2s, box-shadow .2s, color .2s; padding-left: 0.4em; padding-right: 0.4em; } .menu-label:hover, .menu-label:active { background-color: transparent; } blockquote, .quote, .well, pre, .pre, .well-pre, .toast, .code { border: 0; border-radius: 4px; margin: 0 0 1.6rem 0; padding: 1.6rem 1rem 1.6rem 1rem; max-width: 100%; font-style: italic; background-color: #e9ecef; color: #212529; box-shadow: 0px 1px 2px rgba(0, 0, 0, 0); } .toast { font-size: 0.8rem; line-height: 1.5em; padding: 0.8em; } code { font-family: monospace, monospace; } table { border-collapse: collapse; } table, th, td { border: 0; padding: 0; margin: 0; } th, td { vertical-align: center; padding-top: 0.325em; padding-bottom: 0.325em; } th { font-weight: 800; } .sidebar-container { width: 100%; display: grid; grid-template-columns: 1fr; grid-template-rows: auto; row-gap: 1.6rem; column-gap: 3.2rem; grid-template-areas: "side" "main"; } @media (min-width: 992px) { .sidebar-container { grid-template-columns: 360px auto; grid-template-areas: "side main"; } } .sidebar-container .sidebar { padding: 1rem; } input, textarea { width: 100%; background-color: #ffffff; border-radius: 4px; border: 0px solid rgba(0, 0, 0, 0); padding: 0.4em; line-height: 1.6em; } button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: inherit; margin: 0; } button, select { text-transform: none; } button, [type="button"], [type="reset"], [type="submit"] { appearance: button; -webkit-appearance: button; } button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 2px dotted var(--accent-color); } fieldset { padding: 0.35em 0.75em 0.625em; } legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; } progress { vertical-align: baseline; } textarea { overflow: auto; } [type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; } [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } [type="search"] { appearance: textfield; -webkit-appearance: textfield; outline-offset: -2px; } [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } /* 1. Utils ** All the utilities class of the stylesheet */ /* 1.0 - Accessibility classes * Some classes to help accessibility **/ .sr-only, .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } .sr-only-focusable:active, .sr-only-focusable:focus { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; } .skip { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; } .skip:focus-within { position: static; width: auto; height: auto; } /* 1.1 - Alignement classes * Handle easily alignement and flexboxes **/ .flex-that { display: flex; justify-content: space-between; } .align-center { text-align: center; text-indent: 0 !important; } .align-left { text-align: left; } .align-right { text-align: right; } .round, .pill { border-radius: 9999px; } .no-borders { border-width: 0px; border-style: none; } /* 1.2 - Colorization classes * Colorize some aspect of a class **/ .c-primary { --accent-color: #e03131; --text-color-contrast: #ffffff; --accent-color-hover: #cc1f1f; } .c-secondary { --accent-color: #343a40; --text-color-contrast: #ffffff; --accent-color-hover: #3d444b; } .c-warning { --accent-color: #e8590c; --text-color-contrast: #ffffff; --accent-color-hover: #c44b0a; } .c-danger { --accent-color: #e03131; --text-color-contrast: #ffffff; --accent-color-hover: #cc1f1f; } .c-info { --accent-color: #1971c2; --text-color-contrast: #ffffff; --accent-color-hover: #155da0; } .c-success { --accent-color: #2f9e44; --text-color-contrast: #ffffff; --accent-color-hover: #268137; } .c-muted { --accent-color: #adb5bd; --text-color-contrast: #ffffff; --accent-color-hover: #98a2ac; } .c-light { --accent-color: #ffffff; --text-color-contrast: #212529; --accent-color-hover: #ececec; } .c-dark { --accent-color: #343a40; --text-color-contrast: #ffffff; --accent-color-hover: #3d444b; } .bg-accent { background-color: var(--accent-color); } .bg-dark { background-color: #343a40; } .bg { background-color: #ffffff; } .bg-alt { background-color: #e9ecef; } .bg-soft-primary { background-color: #ffc9c9; color: #212529; } .bg-soft-primary a { color: currentColor; outline-color: currentColor; } .bg-soft-primary:hover { background-color: #ffc9c9; color: #212529; } .bg-soft-primary:hover a { color: currentColor; outline-color: currentColor; } .bg-soft-secondary { background-color: #adb5bd; color: #ffffff; } .bg-soft-secondary a { color: currentColor; outline-color: currentColor; } .bg-soft-secondary:hover { background-color: #adb5bd; color: #ffffff; } .bg-soft-secondary:hover a { color: currentColor; outline-color: currentColor; } .bg-soft-warning { background-color: #ffd8a8; color: #212529; } .bg-soft-warning a { color: currentColor; outline-color: currentColor; } .bg-soft-warning:hover { background-color: #ffd8a8; color: #212529; } .bg-soft-warning:hover a { color: currentColor; outline-color: currentColor; } .bg-soft-danger { background-color: #ffc9c9; color: #212529; } .bg-soft-danger a { color: currentColor; outline-color: currentColor; } .bg-soft-danger:hover { background-color: #ffc9c9; color: #212529; } .bg-soft-danger:hover a { color: currentColor; outline-color: currentColor; } .bg-soft-info { background-color: #a5d8ff; color: #212529; } .bg-soft-info a { color: currentColor; outline-color: currentColor; } .bg-soft-info:hover { background-color: #a5d8ff; color: #212529; } .bg-soft-info:hover a { color: currentColor; outline-color: currentColor; } .bg-soft-success { background-color: #b2f2bb; color: #212529; } .bg-soft-success a { color: currentColor; outline-color: currentColor; } .bg-soft-success:hover { background-color: #b2f2bb; color: #212529; } .bg-soft-success:hover a { color: currentColor; outline-color: currentColor; } .bg-soft-muted { background-color: #e9ecef; color: #212529; } .bg-soft-muted a { color: currentColor; outline-color: currentColor; } .bg-soft-muted:hover { background-color: #e9ecef; color: #212529; } .bg-soft-muted:hover a { color: currentColor; outline-color: currentColor; } .bg-soft-light { background-color: #ffffff; color: #212529; } .bg-soft-light a { color: currentColor; outline-color: currentColor; } .bg-soft-light:hover { background-color: #ffffff; color: #212529; } .bg-soft-light:hover a { color: currentColor; outline-color: currentColor; } .bg-soft-dark { background-color: #adb5bd; color: #ffffff; } .bg-soft-dark a { color: currentColor; outline-color: currentColor; } .bg-soft-dark:hover { background-color: #adb5bd; color: #ffffff; } .bg-soft-dark:hover a { color: currentColor; outline-color: currentColor; } .fg-light { --text-color:#ffffff; --link-color-hover:rgba(255, 255, 255, 0.3); } .fg-dark { color: #212529; --text-color:#212529; --link-color-hover:rgba(33, 37, 41, 0.15); } /* 1.3 - List classes * Handle more easily list **/ .no-pills { list-style: none; } /* 1.3 - Sizing classes * Handle sizing and margin **/ .m-half { margin: 0.8rem; } .mb-half { margin-bottom: 0.8rem; } .mr-half { margin-right: 0.8rem; } .ml-half { margin-left: 0.8rem; } .mt-half { margin-top: 0.8rem; } .m-0 { margin: 0rem; } .mb-0 { margin-bottom: 0rem; } .mr-0 { margin-right: 0rem; } .ml-0 { margin-left: 0rem; } .mt-0 { margin-top: 0rem; } .m-1 { margin: 1.6rem; } .mb-1 { margin-bottom: 1.6rem; } .mr-1 { margin-right: 1.6rem; } .ml-1 { margin-left: 1.6rem; } .mt-1 { margin-top: 1.6rem; } .m-2 { margin: 3.2rem; } .mb-2 { margin-bottom: 3.2rem; } .mr-2 { margin-right: 3.2rem; } .ml-2 { margin-left: 3.2rem; } .mt-2 { margin-top: 3.2rem; } .m-3 { margin: 4.8rem; } .mb-3 { margin-bottom: 4.8rem; } .mr-3 { margin-right: 4.8rem; } .ml-3 { margin-left: 4.8rem; } .mt-3 { margin-top: 4.8rem; } .m-4 { margin: 6.4rem; } .mb-4 { margin-bottom: 6.4rem; } .mr-4 { margin-right: 6.4rem; } .ml-4 { margin-left: 6.4rem; } .mt-4 { margin-top: 6.4rem; } .p-half { padding: 0.8rem; } .pb-half { padding-bottom: 0.8rem; } .pr-half { padding-right: 0.8rem; } .pl-half { padding-left: 0.8rem; } .pt-half { padding-top: 0.8rem; } .p-0 { padding: 0rem; } .pb-0 { padding-bottom: 0rem; } .pr-0 { padding-right: 0rem; } .pl-0 { padding-left: 0rem; } .pt-0 { padding-top: 0rem; } .p-1 { padding: 1.6rem; } .pb-1 { padding-bottom: 1.6rem; } .pr-1 { padding-right: 1.6rem; } .pl-1 { padding-left: 1.6rem; } .pt-1 { padding-top: 1.6rem; } .p-2 { padding: 3.2rem; } .pb-2 { padding-bottom: 3.2rem; } .pr-2 { padding-right: 3.2rem; } .pl-2 { padding-left: 3.2rem; } .pt-2 { padding-top: 3.2rem; } .p-3 { padding: 4.8rem; } .pb-3 { padding-bottom: 4.8rem; } .pr-3 { padding-right: 4.8rem; } .pl-3 { padding-left: 4.8rem; } .pt-3 { padding-top: 4.8rem; } .p-4 { padding: 6.4rem; } .pb-4 { padding-bottom: 6.4rem; } .pr-4 { padding-right: 6.4rem; } .pl-4 { padding-left: 6.4rem; } .pt-4 { padding-top: 6.4rem; } .f-column { display: flex; flex-direction: column; } .f-column.reverse { flex-direction: column-reverse; } .f-row { display: flex; flex-direction: row; } .f-row.reverse { flex-direction: row-reverse; } .f-start { justify-content: flex-start; } .f-end { justify-content: flex-end; } .f-center { justify-content: center; } .f-around { justify-content: space-around; } .f-between { justify-content: space-between; } .d-none { display: none !important; } @media (min-width: 576px) { .d-none-sm { display: none !important; } } @media (min-width: 768px) { .d-none-md { display: none !important; } } @media (min-width: 992px) { .d-none-lg { display: none !important; } } @media (min-width: 1200px) { .d-none-xl { display: none !important; } } @media (min-width: 1600px) { .d-none-xxl { display: none !important; } } .d-block { display: block !important; } @media (min-width: 576px) { .d-block-sm { display: block !important; } } @media (min-width: 768px) { .d-block-md { display: block !important; } } @media (min-width: 992px) { .d-block-lg { display: block !important; } } @media (min-width: 1200px) { .d-block-xl { display: block !important; } } @media (min-width: 1600px) { .d-block-xxl { display: block !important; } } .d-flex { display: flex !important; } @media (min-width: 576px) { .d-flex-sm { display: flex !important; } } @media (min-width: 768px) { .d-flex-md { display: flex !important; } } @media (min-width: 992px) { .d-flex-lg { display: flex !important; } } @media (min-width: 1200px) { .d-flex-xl { display: flex !important; } } @media (min-width: 1600px) { .d-flex-xxl { display: flex !important; } } /* 4 - Custom styling * Styles that are custom to this particular theme **/ /* --- 03. GLOBAL STYLING --- */ /* * Les styles "globaux" touchant toute la page. * */ .no-pills { list-style: none; } .align-center { text-align: center; } .align-left { text-align: left; } .align-right { text-align: right; } /* ------------------ HEADERS ------------------- */ #page-header { background: #e03131 url("img/background.png"); margin-bottom: 1.5rem; font-size: 0.8rem; } #page-header .fa { font-size: 1rem; } header h1 { border-style: none !important; font-weight: 800; font-size: 5.4em; font-style: oblique; padding: 1.5rem; line-height: 1rem; max-width: 1200px; margin: auto; text-align: center; } header h1 img { max-width: 800px; height: auto; margin-top: 0rem; width: 100%; } header h1 a, header h1 a:visited, header h1 a:hover { background-color: transparent; outline-color: white; display: block; } .osd { background-color: rgba(0, 0, 0, 0.3); } .navbar { border-left: 0; border-right: 0; padding: 0.75rem; color: #ffffff; } .navbar a { color: #ffffff; } .navbar li { margin: 0; } .categories { font-weight: 800; font-size: 0.8rem; } .dropdown-menu { box-shadow: 0px 1px 2px rgba(0, 0, 0, 0), inset 0px -2px 0px rgba(0, 0, 0, 0); } /* ------------------ CONTAINERS ------------------- */ .container-big { padding-left: 1.6rem; padding-right: 1.6rem; max-width: 1200px; margin: auto; } .container-blog { padding-left: 1.6rem; padding-right: 1.6rem; max-width: 1200px; margin: auto; display: grid; grid-template-columns: 1fr; grid-template-rows: auto; row-gap: 1.6rem; column-gap: 1.5rem; grid-template-areas: "main" "side"; } @media (min-width: 992px) { .container-blog { grid-template-columns: auto 300px; grid-template-areas: "main side"; } } .fullwidth { grid-column: span 2; } .sidebar { grid-area: side; font-size: 0.8rem; } ul.tag-list { display: flex; padding-bottom: 0; overflow: hidden; height: auto; flex-wrap: wrap; } ul.tag-list li { list-style: none; margin: 3px; } .container-preview { padding-left: 1.6rem; padding-right: 1.6rem; max-width: 1200px; margin: auto; display: grid; grid-template-columns: 1fr; grid-template-rows: auto; row-gap: 1.6rem; column-gap: 3rem; grid-template-areas: "main" "side"; } @media (min-width: 992px) { .container-preview { grid-template-columns: 360px auto; grid-template-areas: "side main"; } } .container-onecolumn { max-width: 1280px; margin: auto; padding-bottom: 1.6rem; } /* ------------------ PAGE ------------------- */ #wrapper { background-color: #ffffff; } /* ------------------ FOOTER ------------------- */ body { background-color: #343a40; } footer { color: #ffffff; --link-color: $color-footer-text; padding-bottom: 1.5rem; } footer .columns { font-size: 0.8rem; margin-top: 1.5rem; } @media (min-width: 768px) { footer .columns { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 1.6rem; } } footer .columns .col { margin-bottom: 1.6rem; } .home-toast { max-width: 800px; width: 100%; margin: auto; } #featured-articles, .preview-grid { display: grid; grid-template-columns: 1fr; grid-template-rows: auto; grid-gap: 0.5333333333rem; margin: -0.5333333333rem; padding-bottom: 1.6rem; } @media (min-width: 576px) { #featured-articles, .preview-grid { grid-template-columns: 1fr 1fr; } } @media (min-width: 992px) { #featured-articles, .preview-grid { grid-template-columns: 1fr 1fr 1fr; } } @media (min-width: 1200px) { .preview-grid { grid-template-columns: 1fr 1fr 1fr 1fr; } } .preview-list .preview { display: block; } @media (min-width: 576px) { .preview-list .preview-thumbnail { width: min-content; } .preview-list .preview-thumbnail img { width: 240px; margin-right: 0.8rem; } .preview-list .preview { display: flex; align-items: start; margin-bottom: 1.6rem; } } @media (min-width: 1200px) { .preview-list .preview-thumbnail img { width: 320px; } } .preview { font-size: 0.8rem; text-decoration: none; padding: 0.5333333333rem; border-radius: 8px; } .preview-thumbnail { display: block; width: 100%; background-color: transparent; object-fit: cover; padding: 0; line-height: 0; } .preview-thumbnail img { width: 100%; object-fit: cover; height: auto; aspect-ratio: 16/9; border-radius: 8px; } .preview h2, .preview-featured h2 { font-size: 1.25rem; line-height: 1.5rem; font-family: Teko, sans-serif; font-weight: 800; height: 3rem; color: #212529; } .preview h2 a, .preview-featured h2 a { background-color: transparent !important; color: #212529; } .preview-featured h2 { color: #ffffff; } .preview-excerpt { margin-top: 0.8rem; font-size: 0.8rem; line-height: 1.25rem; color: rgba(33, 37, 41, 0.8); } .preview-featured { font-size: 0.8rem; padding: 0.5333333333rem; } .preview-featured .preview-link { display: block; padding: 0; border-radius: 8px; overflow: hidden; text-decoration: none; } .preview-featured .preview-link .preview-item { width: 100%; height: auto; aspect-ratio: 16 / 9; background-size: 100% auto; background-position: center center; transition: background-size .5s; } .preview-featured .preview-link .preview-item:hover { background-size: 120% auto; } .preview-featured .preview-overlay { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; height: 100%; color: white !important; background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 60%); padding: 0.2rem; } .preview-featured .preview-overlay h2 { text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7); } .article img { max-width: 100%; height: auto; margin: auto; } .article .thumbnail img { width: 100%; aspect-ratio: 16 / 9; border-radius: 8px; object-fit: cover; } .article-meta .author-area { display: flex; align-items: center; margin-bottom: 0.8rem; } .article-meta .author-area img { border-radius: 9999px; width: 4.8rem; height: auto; margin: 0; margin-right: 0.8rem; } .article-meta .article-category .badge { display: inline-block; margin-bottom: 0.4rem; } #mobile-sidebar { position: fixed; top: 0; left: -100vw; width: 100vw; height: 100vh; transition: left 0.2s; padding: 1rem; overflow: scroll; } #mobile-sidebar.shown { left: 0; } @media (min-width: 576px) { #mobile-sidebar { display: none; } } .menu-button { position: fixed; bottom: 24px; right: 24px; background-color: rgba(0, 0, 0, 0.2); color: #ffffff; padding: 0.75em; border: none; font-size: 1.2rem; display: flex; align-content: center; justify-content: center; aspect-ratio: 1; border-radius: 999px; } .menu-button:hover { background-color: #e03131; } @media (min-width: 576px) { .menu-button { display: none; } }