/******************* Constants *******************/ :root { --font-color: #EFEFEF; --font-color_rgb: 239, 239, 239; --font-color-em: #8C8C8C; --background-color: #1C1C1C; --background-color-light: #252525; --background-color-dark: #121212; --avatar-background: #B6B6B6; --color01: #799479; --color01_bright: #58af58; --color02: #8f8071; --color02_bright: #b88a5b; --color03: #871818; --image-margin-side: 2.5em; --navigation-height: 4em; --content-width: 900px; } /******************* Page *******************/ * { box-sizing: border-box; } html { background-color: var(--background-color); font-family: "Times New Roman", Georgia, serif; font-size: medium; color: var(--font-color); } @media only screen and (min-width: 768px) { html { font-size: large; } } body { margin: 0; } p, ul, ol { line-height: 1.6em; } /******************* Links *******************/ a { text-decoration: none; color: var(--font-color); } a:not(.anchor):not(.hidden_link) { border-bottom: 1px dotted; transition: box-shadow 0.2s ease, outline-offset 0.2s ease, transform 0.2s ease, background 0.4s ease; } a:visited { color: var(--font-color); } a:hover { outline: 1px solid; outline-offset: .3em; } a:not(.anchor):not(.hidden_link):hover { border-bottom: 1px dashed; } a:not(.anchor):not(.hidden_link):active { border-bottom: 1px solid; } a.not(.anchor):focus { outline-offset: .3em; outline: 1px solid; } /******************* Wrapper *******************/ .wrapper { display: flex; flex-direction: column; min-height: 100vh; width: 100%; } /******************* Home Page *******************/ .centered { display: flex; flex: 1; align-items: center; justify-content: center; margin: 1em; } /******************* Navbar *******************/ #navigation { position: fixed; top: 0; height: var(--navigation-height); width: 100%; line-height: var(--navigation-height); background-color: var(--background-color); z-index: 90; } #navigation a { padding: 1em; padding-bottom: 0.75em; /* Pour éviter d'avoir un espace trop grand en bas*/ border: none; border-radius: 0.5em; } #navigation a:hover { background-color: var(--font-color); text-decoration: none; color: var(--background-color); outline: none; } #navigation a:active { color: var(--font-color); border: none; } #navigation a:focus { outline: none; } #navigation .navigation-container, #footer { margin: 0 auto; max-width: 90vw; } #footer { width: 100%; margin-top: 1em; padding: 0 1em; } @media only screen and (max-width: 320px) { #navigation .navigation-container, #footer { max-width: 100vw; } } @media only screen and (min-width: 1000px) { #navigation .navigation-container, #footer { max-width: var(--content-width); } } #navigation-title { letter-spacing: .1rem; text-transform: uppercase; font-weight: bold; font-size: 1em; } #social { list-style: none; padding: 0; margin-top: 0; } #social .social-element { display: inline-block; vertical-align: middle; height: 2em; margin-top: .7em; } #social .social-element a { height: 1.5em; display: inline-block; margin-left: 1em; margin-right: 1em; border: none; } #social .social-element a:active { outline: 2px solid; } #social .social-icon { height: 100%; } @media only screen and (min-width: 768px) { #social .social-element a { height: 2em; } } /******************* Navbar Menu *******************/ #menu-toggle { display: none; } #navigation .menu-button { float: right; position: relative; display: none; width: 4em; height: 4em; } #navigation .menu-button-inner { width: 3em; height: 3em; position:relative; top: 0.5em; left: 0.5em; text-align:center } #navigation .menu-button .menu-button-image { display: inline-block; position: relative; height: 1.5em; width: 1.5em; top: 0.75em; background-image: url(../svg/bars.svg); background-size: contain; background-repeat: no-repeat; margin: auto; vertical-align: top; } #menu-toggle:checked + .menu-button .menu-button-inner { background-color: var(--link-hover-background); border-radius: 0.5em; transition: background .5s, max-height .35s linear; } #menu-toggle:checked + .menu-button .menu-button-image { opacity: 40%; } #navigation-list { position: absolute; top: 6rem; right: 0; visibility: hidden; opacity: 0; max-height: 0; width: 100%; font-size: 1.5em; background-color: var(--background-color); border-top: solid 2px var(--font-color); border-bottom: solid 2px var(--font-color); transition: opacity .5s, max-height .35s linear; padding: 0; } #navigation-list .navigation-item { float: none !important; text-align: center; margin: 0; display: block; } #navigation-list .navigation-item, #navigation-list .navigation-item span { line-height: 5rem; } #menu-toggle:checked + label + ul { visibility: visible; opacity: 1; max-height: 100rem; z-index: 100; } #navigation .menu-button { display: block; cursor: pointer; } @media only screen and (min-width: 768px) { #navigation-list { position: relative; float: right; top: 0; max-height: none; visibility: visible; opacity: 100; width: auto; border: none; list-style: none; font-size: 1em; margin-top: 0; } #navigation-list .navigation-item { display: inline-block; font-weight: bold; line-height: 4rem; } #navigation-list .navigation-item a, #navigation-list .navigation-item span { line-height: 1rem; } #menu-toggle:checked + label + ul { visibility: visible; opacity: 1; max-height: 100rem; } #navigation .menu-button { display: none; } } /******************* Author Infos *******************/ #author { text-align: center; margin: 0 auto; max-width: 90vw; } @media only screen and (max-width: 320px) { #author { max-width: 100vw; } } @media only screen and (min-width: 1000px) { #author { max-width: var(--content-width); } } #avatar img { width: 20vw; min-width: 120px; max-width: 200px; border-radius: 40%; background-color: var(--avatar-background); } /******************* Simple Page *******************/ .container { max-width: 90vw; margin: 0 auto; margin-top: var(--navigation-height); width: 100%; display: flex; flex: 1; } @media only screen and (min-width: 1000px) { .container { max-width: var(--content-width); } } .page-icon { width: 1em; height: 1em; vertical-align: middle; } /******************* Error Page *******************/ .error_page { width: max-content; } .error_page footer { padding-top: 1em; border-top: 1px solid var(--font-color); } /******************* Error Page *******************/ #blog-list .list-title, #site-page .site-title { font-size: 2rem; } /******************* Archives List *******************/ #blog-list { max-width: 95vw; } .archives-list { list-style: none; padding-left: 0; display: flex; flex-wrap: wrap; align-content: flex-start; justify-content: space-between; gap: 1em; } .archives-list::after { content: ""; flex: auto; flex-basis: 20em; } .archives-list .archive { display: block; position: relative; margin: 1em 0; overflow: auto; border: none; width: 100%; } .archives-list .archive:hover { border: none; } .archives-list .thumbnail { display: inline-block; width: 100%; text-align: left; } @media only screen and (min-width: 768px) { .archives-list .archive { width: 48%; } .archives-list .thumbnail { display: inline-block; text-align: right; } } .archives-list .title { font-weight: bold; } .archives-list .year { font-style: italic; } .archives-list .year::before { content: " - "; } .archives-list .description { display: inline-block; min-width: 10em; vertical-align: top; } .archives-list .description>p { min-height: 3em; } .archive .more { position: absolute; bottom: 0; right: 0; font-style: italic; display: none; } .archive:hover .more { display: inherit; } /******************* Letters *******************/ #letter-counter { margin: auto; width: fit-content; width: -moz-fit-content; } #letter-counter #counter { border: 1px solid white; margin-top: 0.5em; padding: .7em; text-align: center; font-size: 2.5em; } #letter-form { margin-left: 1em; margin-right: 1em; } #letter-choice { display: inline-block; } #letter-choice-title { float: left; margin-top: 0; } #letter-form input, #letter-form label { margin-top: 1em; } #letter-choice>p, #letter-form>label { display: block; } #letter-choice input:first-of-type { margin-top: 0; } #letter-form input[type="text"] { height: 2em; width: 100%; max-width: 100%; } #letter-form #submit { padding: 0.5em 0.8em; } @media only screen and (min-width: 768px) { #letter-form>label { display: inline-block; min-width: 16em; } #letter-form input[type="text"] { height: 2em; width: 24em; } } /******************* Paginator *******************/ .pagination { padding-left: 0; margin: auto; text-align: center; } .pagination li { display: inline-block; } /******************* Article *******************/ .container article { margin: 0 1em; width: 100%; } @media only screen and (max-width: 320px) { .container article { margin: 0em; } } /******************* Article Header *******************/ .container article .post-title { margin-bottom: 0.3em; } .container article .post-title a:hover { outline: none; } .container article .post-title a:active { border-bottom: 1px solid; } .post-meta { margin-top: 1em; } .post-meta>div { line-height: 2em; } .post-meta .date span { display: inline-block; } .post-meta .posted-on { margin-right: 1em; } .post-meta .categories, .post-meta .tags { display: inline-block; } .post-meta .categories { margin-right: 1em; } .post-meta .header-icon { vertical-align: baseline; margin-right: 0.3em; } .post-header { margin-top: 3.5rem; margin-bottom: 1.8rem; } @media only screen and (max-width: 320px) { .post-header { margin-top: 2rem; margin-bottom: 1.6rem; } } .post-title { font-size: 3rem; margin: 0; } @media only screen and (max-width: 320px) { .post-title { font-size: 2.4rem; } } /******************* Projects *******************/ article .project-image { display: inline-block; width: 100%; max-width: 100%; margin-left: 0em; margin-right: 0em; } article .project-text { display: inline-block; width: 100%; max-width: 100%; } article .project-image img { width: 100%; max-width: 100%; } @media only screen and (min-width: 768px) { article .project-image { max-width: 40%; margin-left: 0em; margin-right: 1em; max-width: 40%; } article .project-text { max-width: 55%; font-size: .9rem; } } /******************* Archive Body *******************/ .archive-body { margin-bottom: 2em; position: relative; } .archive-body img { max-width: 100%; } .archive-body h1 { font-size: 2.55rem; margin: 3.5rem 0 1.8rem; } .archive-body h2 { font-size: 2.17rem; margin: 2.98rem 0 1.53rem; } .archive-body h3 { font-size: 1.84rem; margin: 2.53rem 0 1.30rem; } .archive-body h4 { font-size: 1.57rem; margin: 2.15rem 0 1.11rem; } .archive-body h5 { font-size: 1.33rem; margin: 1.83rem 0 0.94rem; } .archive-body h6 { font-size: 1.13rem; margin: 1.55rem 0 0.80rem; } @media only screen and (max-width: 320px) { .archive-body h1 { font-size: 2.16rem; margin: 2rem 0 1.6rem; } .archive-body h2 { font-size: 1.94rem; margin: 1.80rem 0 1.44rem; } .archive-body h3 { font-size: 1.75rem; margin: 1.62rem 0 1.30rem; } .archive-body h4 { font-size: 1.57rem; margin: 1.46rem 0 1.17rem; } .archive-body h5 { font-size: 1.42rem; margin: 1.31rem 0 1.05rem; } .archive-body h6 { font-size: 1.28rem; margin: 1.18rem 0 0.94rem; } } .anchor { content: '#'; position: absolute; opacity: 0%; left: -1em; width: 80%; max-width: 600px; border: none; color: var(--font-color-em); text-decoration: none; } @media only screen and (max-width: 500px) { .anchor { left: -0.8em; } } .anchor:hover { opacity: 100%; outline: none; border: none; cursor: pointer; } @media only screen and (max-width: 320px) { .anchor:hover { opacity: 0%; } } /******************* Archive Footer *******************/ .archive-footer { font-style: italic; font-size: 0.8rem; margin: 2rem 0; } .archive-footer .footer-return { margin-bottom: 1em; width: 100%; text-align: right; display: inline-block; } .archive-footer .footer-link { display: block; } .archive-footer .footer-link .spacer { display: none; } .archive-footer .footer-link .label { display: inline-block; width: 8em; } @media only screen and (min-width: 768px) { .archive-footer .footer-link { display: inline-block; } .archive-footer .footer-link .label { width: auto; } .archive-footer .footer-link .spacer { display: inline-block !important; } } .footnotes { clear: left; } /******************* Archive Figure *******************/ .archive-body figure { margin: 1em 0; max-width: 100%; width: fit-content; overflow: visible; } .archive-body figure picture, .archive-body figure figcaption { display: table-row; border-spacing: 0; } .archive-body figure img { vertical-align: middle; padding-bottom: 0.3em; min-width: calc(50% - 2 * var(--image-margin-side)); } @media only screen and (min-width: 768px) { .archive-body figure { margin: 1em 2.5em; } .archive-body figure.logo, .archive-body figure.inline { margin: 0; } .archive-body figure.border img { min-width: calc(100% - 2 * var(--image-margin-side)) !important; } } .archive-body figure.logo { display: inline-block; min-width: auto; } .archive-body figure.wrap { float: left; margin: 0.7em 1em; } .archive-body figure.inline { display: inline-block; min-width: auto; margin-left: 1em; margin-right: 1em; } .archive-body figure.half { width: 100%; max-width: 45%; } .archive-body figure.third { width: 100%; max-width: 30%; } .archive-body figure.logo img { width: 10vw; max-width: 100px; min-width: 40px; vertical-align: bottom; padding: 0; } .archive-body figure.border img { padding: 0.3rem; border: 3px solid var(--background-color-light); min-width: 100%; } .archive-body figure.border figcaption { background-color: var(--background-color-light); min-width: 100%; display: inline-block; } .archive-body figure>a { display: block; outline: none; min-height: 100%; border: none; } .archive-body figure>a>img:hover { box-shadow: 0 0 1em rgba(var(--font-color_rgb), 0.5); } .archive-body figure figcaption p, .archive-body figure figcaption h4 { font-style: italic; font-weight: normal; font-size: 0.9rem; margin-top: 0.5rem; margin-bottom: 0.5rem; margin-left: 1rem; margin-right: 1rem; } .archive-body figure figcaption .attribution { float: right; } @media only screen and (max-width: 320px) { .archive-body .footnotes ol { padding-left: 2em; } } .archive-body .separator { margin: 0 0.2em; } /******************* Article Tabular *******************/ .archive-body .tabular.border table { padding: 0.3rem; border: 3px solid var(--background-color-light); min-width: 100%; } .archive-body .tabular td, .archive-body .tabular th { padding: 0 0.4rem; } .archive-body .tabular th { border-bottom: 3px solid var(--background-color-light); } .archive-body .tabular.center td { text-align: center; } .archive-body .tabular.right td { text-align: right; } /******************* Archive Superscript *******************/ .archive-body sup { vertical-align: top; position: relative; top: -0.5rem; } /******************* Archive Blockquote *******************/ blockquote { position: relative; background-color: var(--background-color-light); padding: 0.1rem 1rem; margin-top: 2rem; } .bigquote { padding: 1rem; border-radius: 1.5rem; } .bigquote p:first-of-type { margin-top: 0; } .bigquote footer { text-align: right; } blockquote:after { position: absolute; content: "”"; color: var(--text-color); font-size: 10rem; line-height: 0; top: 2rem; right: 1rem; font-family: Arial; } /******************* Archive Gallery *******************/ .thumb { display: inline-block; position: relative; } .thumb:hover { z-index: 2; } .thumb img { max-height: 150px; max-width: 150px; border: solid 4px var(--background-color-dark); } .lightbox { position: fixed; z-index: 97; height: 0; width: 0; text-align: center; top: 0; left: 0; background: rgba(0, 0, 0, 0.8); opacity: 0; } .lightbox img { position: absolute; max-width: 90%; max-height: 92vh; opacity: 0; top: 50%; left: 50%; transform: translate(-50%, -50%); } .lightbox:target { /** Remove default browser outline */ outline: none; width: 100%; height: 100%; opacity: 1 !important; } .lightbox:target img { border: solid 1em var(--background-color-light); opacity: 1; webkit-transition: opacity 0.6s; transition: opacity 0.6s; } .light-btn { color: #fafafa; background-color: var(--background-color-dark); border: solid 3px var(--font-color-em); padding: .3em .9em; border-radius: 2px; text-decoration: none; cursor: pointer; vertical-align: middle; position: absolute; top: 50%; transform: translate(0%, -50%); z-index: 98; opacity: 50%; } .light-btn:hover { outline: none; opacity: 100%; } .btn-prev { left: 3%; } .btn-next { right: 3%; } .btn-close { position: absolute; right: 2%; top: 2%; z-index: 98; color: #fafafa; background-color: var(--background-color-dark); border: solid 5px var(--font-color-em); padding: 0.7em 0.9em 0.6em 0.9em; border-radius: 1px; text-decoration: none; opacity: 50%; font-family: sans-serif; } .btn-close:hover { background-color: #740404; outline: none; opacity: 100%; } /******************* Generic colors *******************/ .color01 { color: var(--color01); } .color01.bright { color: var(--color01_bright); } .color02 { color: var(--color02); } .color02.bright { color: var(--color02_bright); }