Compare commits

..

No commits in common. "master" and "2.0" have entirely different histories.
master ... 2.0

22 changed files with 763 additions and 416 deletions

3
.gitignore vendored
View file

@ -1,3 +0,0 @@
dist/
package-lock.json
node_modules/

View file

@ -5,16 +5,6 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [3.0.0] - 2024-XX-XX
- Rebrand as moineau.css
- Simplify code
- Make color customisable
- Suppor Dark Theme
- Add support for `<details>`
- Ajout d'une classe .flex simple pour aligner horizontalement deux éléments.
- Ajout d'une navbar
## [2.0.0] - 2019-11-07
### Added

View file

@ -1,67 +1,4 @@
# Moineau
clear-typography
================
**Moineau** est un projet de feuille de style minimale inspirée des sites [bettermotherfuckingwebsite](http://bettermotherfuckingwebsite.com/) et [thebestmotherfucking.website](https://thebestmotherfucking.website/). Son but est d'être utilisé en remplacement du style par défaut de navigateur web pour des pages web "brutes", tout en restant agréable et fonctionnel.
Son but est d'avoir un style agréable à l'oeil et fonctionnel, assez minimaliste, utilisant les balises et propriété de l'HTML brut. Il n'y a pas de classe utilisé, ni de fonctionnalité de layout (à l'exception d'un support des navbar via `<nav>` qui donne des navbar horizontales).
Si le projet utilise surtout les balises standard du HTML, quelques utilitaires vont être ajoutés.
## Fonctionnalités
moineau supporte les fonctionnalités suivantes de base :
- Feuille de style simple et légère (TBD ko)
- Responsive (en tout cas le plus possible)
- Concentré sur la typographie et n'utilisant pas de classes
- Gestion des couleurs
- Support du mode sombre
- Customisation des couleurs via des variables
## Pourquoi
Tout les sites n'ont pas besoins de design spécifique, et le but de cette feuille de style est de fournir une feuille de style simple et customisable pour des sites "tout bêtes". Il a notamment été *optimisé* pour un cas spécifique : la génération de page web à partir de page markdown, mais supporte quelques cas en plus (notamment les balises standards du HTML).
L'idée est que dans le cas de ce genre de site peuvent avoir besoin de style simple et léger, s'adapter à de différents écrans et surtout lisible : pas de lignes trop longues, et avec un texte aéré (interligne, fin de paragraphes). Le but est d'avoir un côté un peu moderne aussi, avec quelques touches de couleurs.
L'idée est de pouvoir générer simplement un blog ou un site simple pour les gens en ayant besoin. Je ne pense pas que ce sera beaucoup utilisé, mais cela peut servir dans quelques cas spécifiques ^^
## Customiser
La couleur d'accents se customise en modifiant deux variables :
```css
:root {
--accent-color-dark: #1971c2;
--accent-color-light: #d0ebff;
}
```
La première détermine la couleur d'accent sombre (donc écrite sur fond clair, et en fond sur fond sombre), et la seconde celle d'accent clair (du coup l'inverse de la sombre : écrite sur fond sombre, et en fond sur fond clair).
Toute la palette peut également être customisé avec les variables css, de la manière suivante :
```css
:root {
--text-color: #212529;
--border-color: rgba(0,0,0,0.1);
--hover-color: rgba(0,0,0,0.05);
--background-color: #f8f9fa;
--well-color: #e9ecef;
}
@media (prefers-color-scheme: dark) {
:root {
--text-color: #e9ecef;
--background-color: #212529;
--well-color: #343a40;
--border-color: rgba(255,255,255,0.2);
--hover-color: rgba(255,255,255,0.1);
}
}
```
## Crédits
- Les couleurs proviennent de [open-color](https://yeun.github.io/open-color/)
Un projet CSS permettant d'avoir une typo plutot propre pour un blog/site, basé sur la police clear-sans, et pensé pour être utilisé en premier lieu avec bootstrap.

283
css/clear-typography.css Normal file
View file

@ -0,0 +1,283 @@
/* ------------------ FONT LOADING ------------------- */
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-Light-webfont.eot");
src: url("../fonts/OpenSans-Light-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Light-webfont.woff2") format("woff2"), url("../fonts/OpenSans-Light-webfont.woff") format("woff"), url("../fonts/OpenSans-Light-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Light-webfont.svg#open_sansbold") format("svg");
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-LightItalic-webfont.eot");
src: url("../fonts/OpenSans-LightItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-LightItalic-webfont.woff2") format("woff2"), url("../fonts/OpenSans-LightItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-LightItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-LightItalic-webfont.svg#open_sansbold") format("svg");
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-Regular-webfont.eot");
src: url("../fonts/OpenSans-Regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Regular-webfont.woff2") format("woff2"), url("../fonts/OpenSans-Regular-webfont.woff") format("woff"), url("../fonts/OpenSans-Regular-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Regular-webfont.svg#open_sansbold") format("svg");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-Italic-webfont.eot");
src: url("../fonts/OpenSans-Italic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Italic-webfont.woff2") format("woff2"), url("../fonts/OpenSans-Italic-webfont.woff") format("woff"), url("../fonts/OpenSans-Italic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Italic-webfont.svg#open_sansbold") format("svg");
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-Semibold-webfont.eot");
src: url("../fonts/OpenSans-Semibold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Semibold-webfont.woff2") format("woff2"), url("../fonts/OpenSans-Semibold-webfont.woff") format("woff"), url("../fonts/OpenSans-Semibold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Semibold-webfont.svg#open_sansbold") format("svg");
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-SemiboldItalic-webfont.eot");
src: url("../fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-SemiboldItalic-webfont.woff2") format("woff2"), url("../fonts/OpenSans-SemiboldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-SemiboldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-SemiboldItalic-webfont.svg#open_sansbold") format("svg");
font-weight: 600;
font-style: italic;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-Bold-webfont.eot");
src: url("../fonts/OpenSans-Bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Bold-webfont.woff2") format("woff2"), url("../fonts/OpenSans-Bold-webfont.woff") format("woff"), url("../fonts/OpenSans-Bold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Bold-webfont.svg#open_sansbold") format("svg");
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-BoldItalic-webfont.eot");
src: url("../fonts/OpenSans-BoldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-BoldItalic-webfont.woff2") format("woff2"), url("../fonts/OpenSans-BoldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-BoldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-BoldItalic-webfont.svg#open_sansbold") format("svg");
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-ExtraBold-webfont.eot");
src: url("../fonts/OpenSans-ExtraBold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-ExtraBold-webfont.woff2") format("woff2"), url("../fonts/OpenSans-ExtraBold-webfont.woff") format("woff"), url("../fonts/OpenSans-ExtraBold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-ExtraBold-webfont.svg#open_sansbold") format("svg");
font-weight: 800;
font-style: normal;
}
@font-face {
font-family: "OpenSans";
src: url("../fonts/OpenSans-ExtraBoldItalic-webfont.eot");
src: url("../fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.woff2") format("woff2"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.svg#open_sansbold") format("svg");
font-weight: 800;
font-style: italic;
}
html {
font-family: OpenSans, sans-serif;
text-align: left;
font-size: 18px;
}
body {
line-height: 1.75rem;
color: #444;
font-weight: 400;
}
.debug {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0, rgba(255, 255, 255, 0) 1px);
background-repeat: repeat-y;
background-size: 100% 1.75rem;
}
.night-mode {
color: #BBB;
}
strong {
font-weight: 600;
}
em {
font-style: italic;
}
a {
color: #2484c1;
text-decoration: none;
}
p, time {
padding: 0;
margin: 0;
margin-bottom: 1.75rem;
}
p:last-child, time:last-child {
margin-bottom: 0;
}
ul, ol {
padding: 0;
margin: 0;
margin-bottom: 1.75rem;
}
ul ul, ol ul {
margin-bottom: 0;
}
ul li, ol li {
margin-left: 1.75rem;
}
/* sup, sub */
sup, sub {
margin: 0;
padding: 0;
line-height: 1.75rem;
font-size: 0.8rem;
vertical-align: baseline;
position: relative;
}
sup {
top: -0.4375rem;
}
sub {
top: 0.4375rem;
}
::selection {
background: #2484c1;
color: #fff;
}
::-moz-selection {
background: #2484c1;
color: #fff;
}
/* ------------------ WRAPPERS ------------------- */
.text-wrapper {
width: 720px;
margin: auto;
}
/* ------------------ TITLES ------------------- */
h1, h2, h3, h4, h5, h6, h7 {
text-align: left;
font-size: 18px;
line-height: 1.75rem;
padding: 0;
margin: 0;
font-weight: 400;
}
h1 {
font-size: 2.3333333rem;
line-height: 3.5rem;
margin-bottom: 1.75rem;
font-weight: 700;
}
h2 {
font-size: 2rem;
line-height: 3.5rem;
margin-bottom: 1.75rem;
font-weight: 700;
}
h3 {
font-size: 1.5rem;
line-height: 1.75rem;
margin-bottom: 1.75rem;
font-weight: 700;
}
h4 {
font-size: 1.5rem;
line-height: 1.75rem;
margin-bottom: 1.75rem;
font-weight: 600;
}
h5 {
font-size: 1.333333rem;
line-height: 1.75rem;
margin-bottom: 1.75rem;
font-weight: 600;
}
h6 {
font-size: 1.1rem;
line-height: 1.75rem;
margin-bottom: 1.75rem;
font-weight: 600;
}
/* ------------------ HR ------------------- */
hr {
border-top: 0px;
border-left: 0px;
border-right: 0px;
border-bottom: 1px;
border-color: rgba(1, 1, 1, 0.15);
border-style: solid;
padding: 0;
margin: 0;
margin-bottom: 1.75rem;
}
/* ------------------ QUOTE ------------------- */
blockquote {
border-width: 0 0 0 0.4375rem;
border-style: solid;
border-radius: 0.21875rem;
margin: 0;
margin-bottom: 1.75rem;
padding: 1.75rem;
font-size: 1.1rem;
max-width: 100%;
overflow: auto;
border-color: rgba(1, 1, 1, 0.15);
}
.night-mode blockquote {
border-color: rgba(255, 255, 255, 0.15);
}
pre {
border-width: 0 0 0 0.4375rem;
border-style: solid;
border-radius: 0.21875rem;
margin: 0;
margin-bottom: 1.75rem;
padding: 1.75rem;
font-size: 1.1rem;
max-width: 100%;
overflow: auto;
border-color: rgba(1, 1, 1, 0.2);
background-color: #EEE;
}
.night-mode pre {
background-color: #222;
border-color: rgba(255, 255, 255, 0.2);
}
/* ------------------ SPECIAL STYLING ------------------- */
mark {
border-radius: 0.2em;
padding: 0 0.4375rem 0 0.4375rem;
background-color: rgba(255, 255, 0, 0.33);
color: inherit;
}
.night-mode mark {
background-color: rgba(128, 128, 0, 0.66);
}
/* ------------------ SPECIAL STYLING ------------------- */
.time {
font-style: italic;
text-align: right;
width: 100%;
display: block;
font-size: 0.9rem;
}
/*# sourceMappingURL=clear-typography.css.map */

View file

@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../scss/_font-face.scss","../scss/clear-typography.scss"],"names":[],"mappings":"AAAA;AAEA;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;;ACvGJ;EACC;EACA;EACA,WAhBY;;;AAmBb;EACC,aAfY;EAgBZ;EACA;;;AAGD;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACC;;;AAGD;EACC;;;AAGD;EACE;EACA;;;AAGF;EAxCE;EACA;EACA,eALW;;AA6CX;EACE;;;AAIJ;EA/CE;EACA;EACA,eALW;;AAoDX;EACE;;AAEF;EACE,aAxDS;;;AA4Db;AAEA;EACE;EACA;EACA,aAjEW;EAkEX;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIF;EAAc;EAAqB;;;AACnC;EAAmB;EAAqB;;;AAExC;AAEA;EACE;EACA;;;AAGF;AAUA;EACE;EACD,WA3GY;EA4GZ,aAvGY;EAwGZ;EACA;EACA;;;AAGD;EAfC;EACA;EACA,eAhGY;EAiGZ,aAa2B;;;AAG5B;EAnBC;EACA;EACA,eAhGY;EAiGZ,aAiBmB;;;AAGpB;EAvBC;EACA;EACA,eAhGY;EAiGZ,aAqBqB;;;AAGtB;EA3BC;EACA;EACA,eAhGY;EAiGZ,aAyBqB;;;AAGtB;EA/BC;EACA;EACA,eAhGY;EAiGZ,aA6B0B;;;AAG3B;EAnCC;EACA;EACA,eAhGY;EAiGZ,aAiCqB;;;AAGtB;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAhJW;;;AAmJb;AAeA;EAZE;EACD;EACA;EACA;EACA,eA1JY;EA2JZ,SA3JY;EA4JT;EAEH;EACG;EAKH;;AAEA;EACG;;;AAIJ;EArBE;EACD;EACA;EACA;EACA,eA1JY;EA2JZ,SA3JY;EA4JT;EAEH;EACG;EAcH;EACA;;AAEA;EACG;EACA;;;AAMJ;AAEA;EACE;EACA;EAEA;EACA;;;AAGF;EACE;;;AAGF;AAEA;EACC;EACA;EACA;EACA;EACG","file":"clear-typography.css"}

View file

@ -1,46 +0,0 @@
# Exemples
Quelques exemples des styles que prennent différents composants
## Details
La balise `<details>` permet de cacher et afficher une information au clic. Ici, elle a été stylisé comme un bloc, et le sommaire a reçu un état au survol pour que ce soit plus visible que c'est un élément interactif
<details>
<summary>Sommaire</summary>
Contenu du `details`.
</details>
## Mark
La balise `<mark>` permet d'afficher simplement des éléments en <mark>surbrillance</mark>. Cela utilise la couleur d'accent claire (et sombre en mode sombre). Le style est proche de celui de code, mais sans monospace et avec la couleur d'accent.
## Classes utilitaires
Quelques classes CSS sont utilisées afin d'avoir quelques outils supplémentaires utiles, notamment dans le cadre des flexboxes.
- `.flex` est utilisé pour afficher deux éléments cotes à cotes
- `.toolbar-end` est utilsié pour afficher un élément à la fin d'une navbar (cela poussera tout les composants après). Il est utilisé par exemple dans le bouton "Source" de la navbar.
- `.p` est utlisé pour se faire comporter une balise comme un paragraphe, se combine bien avec .flex dans les articles
## Artictecture des titres
Les différents types ont différent style, et voici ce que ça donne du h3 au h6 (le h1 est le titre de page, et le h2 celui juste au dessus)
### Titre H3
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae augue ut enim iaculis consequat.
#### Titre H4
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae augue ut enim iaculis consequat.
##### Titre H5
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae augue ut enim iaculis consequat.
###### Titre H6
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae augue ut enim iaculis consequat.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,51 +0,0 @@
var marked = require('marked')
var fs = require('fs')
const inFile = "README.md"
const outFile = "dist/index.html"
function parse(inFile, outFile) {
const inputContent = fs.readFileSync(inFile, 'utf8')
const content = `<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>moineau.css</title>
<link href="css/moineau.min.css" rel="stylesheet">
<link
rel="icon"
href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🐦</text></svg>"
/>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/">🏠 Accueil</a></li>
<li><a href="/exemples.html">🗒 Exemples</a></li>
<li><a href="/changelog.html">📋 Changelog</a></li>
<li class="toolbar-end"><a href="https://git.kobold.cafe/kazhnuz/moineau">Sources</a></li>
</ul>
</nav>
</header>
<main>
<article>
${marked.parse(inputContent)}
</article>
</main>
<hr>
<footer class="flex">
<div><small>moineau</small></div>
<div><small>CC BY <a href="https://kazhnuz.space/">Kazhnuz</a></small></div>
</footer>
</body>
</html>`
fs.writeFileSync(outFile, content)
}
parse("README.md", "dist/index.html")
parse("exemples/exemples.md", "dist/exemples.html")
parse("CHANGELOG.md", "dist/changelog.html")

140
index.html Normal file
View file

@ -0,0 +1,140 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Ma Page de tête</title>
<!-- meta -->
<meta name="description" content="">
<meta name="author" content="">
<!-- mon icon -->
<link rel="shortcut icon" href="favicon.ico">
<!-- framework utilisés -->
<link href="css/clear-typography.css" rel="stylesheet">
</head>
<body class="text-wrapper debug">
<h1>
Document de Test
</h1>
<time class="time"> Le vendredi 19 septembre 2014 à 07:16 </time>
<h2>
Introduction : Lorem Ipsum
</h2>
<p>
<em>
Lorem ipsum dolor sit amet
<sup>
<a href="#1">
[1]
</a>
</sup>
, consectetur adipiscing elit. Praesent varius ullamcorper diam, non sagittis lectus rutrum id. Integer eros urna, egestas et libero a, finibus egestas odio. Nunc vel hendrerit quam, eget malesuada sem. Sed hendrerit ligula pharetra leo aliquam volutpat. Integer auctor urna ac convallis laoreet. Nunc vestibulum ipsum sed tortor aliquam porta. Cras nunc est, lobortis in est at, rhoncus auctor nunc. Sed dignissim erat non sollicitudin ultricies. Integer vel consectetur urna. Etiam fermentum ligula vitae nunc viverra, a fringilla sem aliquam. Suspendisse potenti. Morbi sem mi, malesuada quis odio vitae, suscipit congue metus. Sed ut ullamcorper urna, eget molestie est. Sed pulvinar justo ac urna consectetur fringilla. Donec tristique eget leo sit amet mollis.
</em>
</p>
<ul>
<li>
1 - Filmographie de Joachim du Poulet
<ul>
<li>
1.1 - Pour une poignée de Poulet
</li>
<li>
1.2 - Pour quelques Poulet de plus
<ul>
<li>
Le personnage du Coq au Vin
<ul>
<li>
En plus il est délicieux
</li>
</ul>
</li>
</ul>
</li>
<li>
1.3 - Le bon, la brute et le Poulet
</li>
</ul>
</li>
<li>
2 - Les Cocotes : Etude de leur Violence
</li>
</ul>
<h3>
Filmographie de Joachim du Poulet
</h3>
<p>
Nous allons commencer par une célèbre citation de ce non moins célèbre réalisateur, en latin parce que c'est plus classe :
</p>
<blockquote>
<p>
Cras malesuada, metus at viverra molestie, mi ligula sodales tellus, vitae facilisis ante est vitae dolor. Donec feugiat non est eget elementum. Nullam in erat et arcu tincidunt maximus. Nullam nibh orci, egestas eu ex non, viverra pretium magna. Proin convallis, risus eu condimentum luctus, ante dui mattis eros, a varius risus diam sed nisl. Ut malesuada ipsum in augue accumsan ullamcorper. Phasellus efficitur augue in venenatis sollicitudin. Integer at consectetur arcu.
</p>
</blockquote>
<h4>
Pour une poignée de poulets
</h4>
<p>
Proin bibendum felis sit amet nisl iaculis,
<strong>
vel blandit purus dictum
</strong>
. Maecenas ullamcorper tortor ac dolor pulvinar, id imperdiet arcu suscipit.
<mark>
Sed posuere lectus eu orci tristique maximus
</mark>
. Nulla facilisi. Aenean sed fermentum nisl. Donec sodales ligula eu est finibus, eu posuere ligula condimentum. Morbi arcu magna, varius id justo ac, aliquam luctus magna. Pellentesque a velit et ipsum euismod congue eget eu sem. Nulla luctus est nec arcu volutpat blandit.
</p>
<p>
Quisque egestas, elit eu tempus tincidunt, mi libero porta purus, eget lobortis metus erat a dolor. Integer ac turpis lacinia, interdum nisl non, feugiat libero. Sed auctor quam turpis, quis volutpat lectus consectetur at.
<del>
Vestibulum tristique tellus eu nibh feugiat malesuada eu vitae diam.
</del>
Aenean mi leo, suscipit nec euismod vel, suscipit eu elit. Duis pharetra lectus risus, eget gravida felis mattis ac. Sed vitae arcu purus.
</p>
<h4>
Pour quelques poulets de plus
</h4>
<h5>
Le personnage du Coq au Vin
</h5>
<p>
Integer enim diam, venenatis sit amet ex ut, tincidunt ullamcorper erat. Cras sodales nibh quis nunc sodales, a pulvinar lacus eleifend. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut feugiat quam scelerisque, tempus ex et, volutpat ante. Pellentesque facilisis sapien non odio tempus, eget ultricies augue porttitor. Donec elementum tincidunt eros et accumsan. Nam nec lacinia est. Quisque erat mauris, sagittis nec nulla ac, convallis tempus nulla. Phasellus ligula nisl, vulputate id dapibus in, efficitur ut sapien. Suspendisse dapibus diam sit amet egestas pellentesque. Nulla vel eleifend dui. Morbi nec interdum sem. Nullam fringilla tincidunt viverra. Integer sodales elementum quam, id malesuada magna vulputate ut.
</p>
<h6>
En plus il est délicieux
</h6>
<p>
Proin rhoncus metus rhoncus, aliquam tellus et, interdum odio. Morbi porttitor commodo ullamcorper. Sed iaculis orci id nunc porta tristique. Morbi auctor neque vitae suscipit pellentesque. Maecenas id lacinia leo, nec dictum leo. Aliquam cursus semper quam, vel bibendum tellus commodo sit amet. Vestibulum et iaculis justo, nec tempor nibh. Integer eu felis neque.
</p>
<h4>
Le Bon, la Brute et le Poulet
</h4>
<p>
Nullam iaculis viverra tristique. Proin nibh eros, eleifend euismod quam sit amet, auctor scelerisque libero. Suspendisse consequat porttitor leo id feugiat. Suspendisse pretium, erat nec vulputate scelerisque, lectus libero ultrices arcu, sed sagittis magna lectus vitae purus. Aliquam pharetra tincidunt nibh nec rutrum. Maecenas fringilla ultrices suscipit. Praesent mattis risus non orci vestibulum, vulputate dapibus velit mollis. Quisque sagittis odio velit, vel dapibus turpis commodo nec. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer sit amet posuere ligula. Vestibulum commodo nulla eget nibh luctus, a interdum leo lacinia. Nullam mattis aliquet mauris sed tincidunt. Mauris et velit elementum, facilisis turpis in, viverra orci. Aenean ac lorem ullamcorper, bibendum ipsum sit amet, volutpat magna. Nam pellentesque venenatis ligula sed sagittis. Maecenas porttitor blandit magna sed posuere.
</p>
<h3>
Les Cocotes : Etude de leur Violence
</h3>
<p>
Mauris a cursus sem, in tempus odio. Curabitur ut ullamcorper enim. In faucibus odio ac arcu pharetra, ac condimentum ex ultricies. Aenean vestibulum eu lacus ac luctus. In in metus libero. Aliquam erat volutpat. Suspendisse quis ultrices odio. Nulla maximus faucibus lobortis.
</p>
<pre><code>Vivamus tincidunt dolor quis consectetur dapibus.
Ut metus risus, lobortis non venenatis in, ultricies a orci.
In suscipit ante et aliquet pretium.
Integer diam dui, rutrum vitae risus ultricies, varius vulputate magna.
In id suscipit elit.
</code></pre>
<hr/>
<p>
[1] : Sed et odio volutpat, convallis est et, interdum sapien.
</p>
</body>
</html>

View file

@ -1,30 +0,0 @@
{
"name": "moineau.css",
"version": "2.99.0",
"description": "A minimal and simple css stylesheet, inspired by motherfuckingwebsite",
"main": "scss/moineau.scss",
"scripts": {
"scss": "sass --watch scss/moineau.scss dist/css/moineau.css",
"scss-no-source-map": "sass --watch --no-source-map scss/moineau.scss dist/css/moineau.css",
"minify": "sass --watch scss/moineau.scss --style compressed dist/css/moineau.min.css",
"minify-no-source-map": "sass --watch --no-source-map scss/moineau.scss --style compressed dist/css/moineau.min.css",
"build": "sass scss/moineau.scss dist/css/moineau.css && sass scss/moineau.scss --style compressed dist/css/moineau.min.css",
"serve": "http-server ./dist & npm run site & npm run minify",
"site": "node generate.js"
},
"repository": {
"type": "git",
"url": "https://git.kobold.cafe/kazhnuz/clear-typograhy.css"
},
"keywords": [
"css",
"scss"
],
"author": "Kazhnuz",
"license": "GPL-3.0-or-later",
"dependencies": {
"http-server": "^14.1.1",
"marked": "^14.1.2",
"sass": "^1.78.0"
}
}

121
scss/_font-face.scss Normal file
View file

@ -0,0 +1,121 @@
/* ------------------ FONT LOADING ------------------- */
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-Light-webfont.eot');
src: url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-Light-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-Light-webfont.woff') format('woff'),
url('../fonts/OpenSans-Light-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-Light-webfont.svg#open_sansbold') format('svg');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-LightItalic-webfont.eot');
src: url('../fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-LightItalic-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
url('../fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-LightItalic-webfont.svg#open_sansbold') format('svg');
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-Regular-webfont.eot');
src: url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-Regular-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),
url('../fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-Regular-webfont.svg#open_sansbold') format('svg');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-Italic-webfont.eot');
src: url('../fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-Italic-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-Italic-webfont.woff') format('woff'),
url('../fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-Italic-webfont.svg#open_sansbold') format('svg');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-Semibold-webfont.eot');
src: url('../fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-Semibold-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-Semibold-webfont.woff') format('woff'),
url('../fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-Semibold-webfont.svg#open_sansbold') format('svg');
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-SemiboldItalic-webfont.eot');
src: url('../fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-SemiboldItalic-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
url('../fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-SemiboldItalic-webfont.svg#open_sansbold') format('svg');
font-weight: 600;
font-style: italic;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-Bold-webfont.eot');
src: url('../fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-Bold-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-Bold-webfont.woff') format('woff'),
url('../fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-Bold-webfont.svg#open_sansbold') format('svg');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-BoldItalic-webfont.eot');
src: url('../fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-BoldItalic-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
url('../fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-BoldItalic-webfont.svg#open_sansbold') format('svg');
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-ExtraBold-webfont.eot');
src: url('../fonts/OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-ExtraBold-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-ExtraBold-webfont.woff') format('woff'),
url('../fonts/OpenSans-ExtraBold-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-ExtraBold-webfont.svg#open_sansbold') format('svg');
font-weight: 800;
font-style: normal;
}
@font-face {
font-family: 'OpenSans';
src: url('../fonts/OpenSans-ExtraBoldItalic-webfont.eot');
src: url('../fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/OpenSans-ExtraBoldItalic-webfont.woff2') format('woff2'),
url('../fonts/OpenSans-ExtraBoldItalic-webfont.woff') format('woff'),
url('../fonts/OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype'),
url('../fonts/OpenSans-ExtraBoldItalic-webfont.svg#open_sansbold') format('svg');
font-weight: 800;
font-style: italic;
}

215
scss/clear-typography.scss Normal file
View file

@ -0,0 +1,215 @@
@import 'font-face';
// Change these two variables for styling
$baseheight: 18px;
$baseline: 1.75;
// Don't change this one, it's just to
// make code more readable
$lineheight: $baseline * 1rem;
@mixin paragraph() {
padding:0;
margin:0;
margin-bottom: $lineheight;
}
html {
font-family: OpenSans, sans-serif;
text-align: left;
font-size: $baseheight;
}
body {
line-height: $lineheight;
color: #444;
font-weight: 400;
}
.debug {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0, rgba(255, 255, 255, 0) 1px);
background-repeat: repeat-y;
background-size: 100% $lineheight;
}
.night-mode {
color:#BBB;
}
strong {
font-weight: 600;
}
em {
font-style: italic;
}
a {
color:#2484c1;
text-decoration:none;
}
p, time {
@include paragraph();
&:last-child {
margin-bottom:0;
}
}
ul, ol {
@include paragraph();
ul {
margin-bottom:0;
}
li {
margin-left: $lineheight;
}
}
/* sup, sub */
sup, sub {
margin:0;
padding:0;
line-height:$lineheight;
font-size: 0.8rem;
vertical-align:baseline;
position:relative;
}
sup {
top: -$lineheight/4;
}
sub {
top: $lineheight/4;
}
::selection { background: #2484c1; color: #fff; }
::-moz-selection { background: #2484c1; color: #fff; }
/* ------------------ WRAPPERS ------------------- */
.text-wrapper {
width:$baseheight*40;
margin: auto;
}
/* ------------------ TITLES ------------------- */
@mixin title($size, $weight) {
$height: ceil($size / $baseline) * $baseline;
font-size: $size * 1rem;
line-height: $height * 1rem;
margin-bottom: $lineheight;
font-weight: $weight;
}
h1, h2, h3, h4, h5, h6, h7 {
text-align: left;
font-size: $baseheight;
line-height: $lineheight;
padding:0;
margin:0;
font-weight:400;
}
h1 {
@include title(2.3333333, 700);
}
h2 {
@include title(2, 700);
}
h3 {
@include title(1.5, 700);
}
h4 {
@include title(1.5, 600);
}
h5 {
@include title(1.333333, 600);
}
h6 {
@include title(1.1, 600);
}
/* ------------------ HR ------------------- */
hr {
border-top: 0px;
border-left: 0px;
border-right: 0px;
border-bottom: 1px;
border-color: rgba(1,1,1,0.15);
border-style: solid;
padding:0;
margin:0;
margin-bottom: $lineheight;
}
/* ------------------ QUOTE ------------------- */
@mixin well() {
border-width: 0 0 0 $lineheight/4;
border-style: solid;
border-radius: $lineheight/8;
margin:0;
margin-bottom: $lineheight;
padding: $lineheight;
font-size:1.1rem;
max-width: 100%;
overflow: auto;
}
blockquote {
@include well();
border-color: rgba(1, 1, 1, 0.15);
.night-mode & {
border-color: rgba(255, 255, 255, 0.15)
}
}
pre {
@include well();
border-color: rgba(1,1,1,0.20);
background-color:#EEE;
.night-mode & {
background-color:#222;
border-color:rgba(255,255,255,0.20);
}
}
/* ------------------ SPECIAL STYLING ------------------- */
mark {
border-radius: 0.2em;
padding:0 $lineheight/4 0 $lineheight/4;
background-color:rgba(255,255,0,0.33);
color: inherit;
}
.night-mode mark {
background-color:rgba(128,128,0,0.66);
}
/* ------------------ SPECIAL STYLING ------------------- */
.time {
font-style: italic;
text-align: right;
width: 100%;
display: block;
font-size: 0.9rem;
}

View file

@ -1,210 +0,0 @@
:root {
--font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Cantarell, Roboto, Oxygen, Ubuntu, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
--font-family-monospace: Consolas, Menlo, Monaco, Andale Mono WT, Andale Mono, Lucida Console, Lucida Sans Typewriter, DejaVu Sans Mono, Bitstream Vera Sans Mono, Liberation Mono, Nimbus Mono L, Courier New, Courier, monospace;
--accent-color-dark: #1971c2;
--accent-color-light: #d0ebff;
--text-color: #212529;
--border-color: rgba(0,0,0,0.1);
--hover-color: rgba(0,0,0,0.05);
--background-color: #f8f9fa;
--well-color: #e9ecef;
--accent-color: var(--accent-color-dark);
--accent-color-back: var(--accent-color-light);
}
@media (prefers-color-scheme: dark) {
:root {
--text-color: #e9ecef;
--background-color: #212529;
--well-color: #343a40;
--accent-color: var(--accent-color-light);
--accent-color-back: var(--accent-color-dark);
--border-color: rgba(255,255,255,0.2);
--hover-color: rgba(255,255,255,0.1);
}
}
html {
font-family: var(--font-family);
text-align: left;
font-size: 17px;
background-color: var(--background-color);
accent-color: var(--accent-color);
line-height: 1.6rem;
}
body {
color: var(--text-color);
font-weight: 400;
max-width: 800px;
padding:1rem;
margin: auto;
}
nav ul {
display: flex;
flex-wrap: wrap;
padding: .5rem 0;
border-top: 1px solid var(--border-color);
border-bottom: 1px solid var(--border-color);
li {
list-style-type: none;
margin:0;
a, span {
padding: .5rem;
}
}
}
// Typography
p,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
hr,
table,
details
main,
.p,
article {
padding: 0;
margin: 0 0 1rem 0;
}
p {
&:last-child {
margin-bottom:0;
}
}
a {
color: var(--accent-color);
text-decoration:none;
border-radius: 3px;
padding: 1px;
&:hover {
background-color: var(--hover-color);
}
}
:is(ul, ol) > :is(ul, ol) {
margin-bottom:0;
}
li {
margin-left: 1rem;
}
::selection, ::-moz-selection {
background: var(--accent-color-back);
color: var(--text-color);
}
hr {
border:0;
border-bottom: 1px solid var(--border-color);
}
code,
mark {
background-color:var(--well-color);
padding: 5px;
border-radius: 3px;
}
mark {
background-color: var(--accent-color-back);
color:currentColor;
}
pre, code {
font-family: var(--font-family-monospace);
}
/* ------------------ TITLES ------------------- */
h1, h2, h3, h4, h5, h6 {
text-align: left;
line-height: 1;
font-weight:700;
}
h1 {
font-size: 3rem;
}
h2 {
font-size: 2.33rem;
}
h3 {
font-size: 1.75rem;
}
h4 {
font-size: 1.5rem;
}
h5 {
font-size: 1.25rem;
}
h6 {
font-size: 1rem;
font-weight: 800;
}
/* ------------------ HR ------------------- */
/* ------------------ blocks ------------------- */
blockquote,
pre,
details {
border: 0;
border-radius: 6px;
margin: 0 0 1rem 0;
padding: .75rem;
max-width: 100%;
background-color: var(--well-color);
border: 0;
border-left: 6px solid var(--accent-color);
}
pre code {
padding: 0;
}
summary {
font-weight: 700;
font-size: 0.9em;
&:hover {
background-color: var(--hover-color);
}
}
.toolbar-end {
margin-left: auto;
}
/* ------------------ SPECIAL STYLING ------------------- */
.flex {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}