# -*- mode: org; -*-
#+TITLE: Global CSS file
#+SUBTITLE: Site-wide styling informations.
#+AUTHOR: Marius Peter
#+DATE: <2022-01-30 Sun>
#+OPTIONS: toc:nil
#+PROPERTY: header-args :tangle mlnp.css
#+HTML_HEAD:
#+INCLUDE: topnav.org
#+TOC: headlines 3
* Global appearance
These styles apply across the entire =mlnp.fr= website, to every
element.
#+BEGIN_SRC css
body {
font-family: "Public Sans", sans-serif;
background: linear-gradient(0deg, white 0%, gray 70%);
background-attachment: fixed;
margin: 0;
}
#+END_SRC
** Colors
These colors can be accessed anywhere in the rest of the stylesheet.
#+NAME: colors
#+BEGIN_SRC css
:root {
--topnav: cornflowerblue;
--topnav-menu: royalblue;
}
#+END_SRC
** TODO Fonts
Add @ rules and set
#+NAME: fonts
#+BEGIN_SRC css
code, .src {
font-family: "Hack", sans-serif;
}
#+END_SRC
** Entire content
This rule concerns all content except for the title section and
postamble.
#+BEGIN_SRC css
.outline-2, .abstract {
width: 70%;
margin-right: auto;
margin-left: auto;
}
#+END_SRC
** Title and subtitle
#+BEGIN_SRC css
.title {
background: cornflowerblue;
color: white;
margin-top: 0;
padding-top: 0.5em;
margin-bottom: 0;
padding-bottom: 0;
}
.subtitle {
color: lightgray;
}
#+END_SRC
** Table of contents
#+BEGIN_SRC css
#table-of-contents {
width: 20%;
/* position: sticky; */
top: 5em;
display: inline-block;
vertical-align: top;
}
#text-table-of-contents ul {
list-style-type: none;
padding: 0;
}
#+END_SRC
* Top navigation bar
The HTML preamble contains a single child: the /navigation bar/. This
bar contains a link to the homepage, and links to the other top-level
website pages.
#+NAME: navbar
#+BEGIN_SRC css
#topnav {
background: var(--topnav);
z-index: 100;
position: sticky;
top: 0;
}
#+END_SRC
** Wide screens
#+BEGIN_SRC css
#topnav ul {
display: flex;
list-style-type: none;
justify-content: center;
padding: 0.5em;
margin: 0;
}
#topnav ul a {
/* flex-grow: 1; */
/* flex-basis: 0; */
padding: 0.5em;
color: lightgray;
text-align: center;
}
#topnav a:hover {
background: white;
color: var(--topnav-menu);
}
#+END_SRC
*** Hide home and hamburger icons
When the top navigation bar is wide, the hamburger menu is hidden.
#+NAME: topnav-wide-hidden
#+BEGIN_SRC css
#home { display: none; }
#topnav label, #hamburger { display: none; }
#+END_SRC
** Narrow screens
These styles apply to screens narrower than 500px.
#+BEGIN_SRC css :noweb no-export
@media all and (max-width: 500px) {
<>
<>
<>
<>
<>
<>
}
#+END_SRC
*** Narrow top navigation bar
#+NAME: narrow-topnav
#+BEGIN_SRC css :tangle no
#topnav {
padding: 0.5em;
}
#+END_SRC
*** Narrow home link
#+NAME: narrow-home
#+BEGIN_SRC css :tangle no
#home {
display: inline-block;
background: var(--topnav-menu);
color: white;
text-decoration: none;
border-radius: 0 8px 8px 0;
padding: 0.5em;
}
#+END_SRC
*** Narrow hamburger
#+NAME: narrow-hamburger
#+BEGIN_SRC css :tangle no
#topnav label {
display: inline-block;
float: right;
color: white;
padding: 0.5em;
margin: 0;
background: var(--topnav-menu);
border-radius: 8px;
cursor: pointer;
}
#topnav label:hover {
color: var(--topnav-menu);
background: white;
}
#topnav ul { display: none; }
#topnav input:checked ~ ul {
display: block;
width: 100%;
margin: 0;
}
#+END_SRC
*** TODO Narrow top navigation links
#+NAME: narrow-topnav-links
#+BEGIN_SRC css :tangle no
#topnav ul {
padding: 0;
}
#topnav ul a {
box-sizing: border-box;
display: block;
}
#+END_SRC
*** Narrow table of contents
#+NAME: narrow-table-of-contents
#+BEGIN_SRC css :tangle no
/* #table-of-contents { */
/* display: none; */
/* } */
#+END_SRC
*** Narrow content
#+NAME: narrow-content
#+BEGIN_SRC css :tangle no
.outline-2 {
width: 90%;
}
#+END_SRC