Compare commits
38 commits
Author | SHA1 | Date | |
---|---|---|---|
|
222dbd6da1 | ||
|
6023f8a7cc | ||
|
155849deb0 | ||
|
8a343855f1 | ||
|
d11d41f082 | ||
|
3a0801c8fe | ||
|
b6ad130f0f | ||
|
78b9f5d65b | ||
|
9548c0dcdb | ||
|
2aa2555b26 | ||
|
dd6b841440 | ||
|
950c395a19 | ||
|
6874f444b4 | ||
|
6de0c5f595 | ||
|
e18379dd39 | ||
|
30e7fadd7c | ||
|
46f510dab3 | ||
|
b6ca9590e1 | ||
|
81e467a856 | ||
|
db175d148d | ||
|
961ea75e13 | ||
|
a5f0de5ae0 | ||
|
726e855315 | ||
|
20a9b1cbaf | ||
|
e304563ca4 | ||
|
f8f918279c | ||
|
eeb6b298c4 | ||
|
fe54b8668e | ||
|
3d009750d0 | ||
|
2763e099b3 | ||
|
84fd7b6793 | ||
|
8ff3ea2933 | ||
|
821251447f | ||
|
db444b5fe7 | ||
|
0782136eb7 | ||
|
4dfaa842bb | ||
|
a95fe8b83c | ||
|
59d1f36e75 |
24 changed files with 751 additions and 763 deletions
32
.drone.yml
Normal file
32
.drone.yml
Normal file
|
@ -0,0 +1,32 @@
|
|||
kind: pipeline
|
||||
name: production
|
||||
when:
|
||||
event: [ push ]
|
||||
branch: [ master ]
|
||||
|
||||
clone:
|
||||
git:
|
||||
image: plugins/git
|
||||
pull: true
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: node:latest
|
||||
commands:
|
||||
- npm i
|
||||
- npm run compile
|
||||
|
||||
- name: deploy
|
||||
image: drillster/drone-rsync
|
||||
settings:
|
||||
hosts:
|
||||
from_secret: deploy_host
|
||||
target: /var/www/moineau.kazhnuz.space
|
||||
source: dist/*
|
||||
user:
|
||||
from_secret: deploy_user
|
||||
key:
|
||||
from_secret: deploy_key
|
||||
when:
|
||||
branch: master
|
||||
delete: true
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
dist/
|
||||
package-lock.json
|
||||
node_modules/
|
15
CHANGELOG.md
15
CHANGELOG.md
|
@ -5,6 +5,21 @@ 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-10-05
|
||||
|
||||
- Rebrand du projet en moineau.css
|
||||
- Simplification du code pour le rendre plus léger
|
||||
- Ajout de la customisation de couleurs
|
||||
- Support du mode sombre
|
||||
- Support des éléments HTML suivants :
|
||||
- Balise `<details>`
|
||||
- Support des éléments de formulaires
|
||||
- Support des hgroups
|
||||
- Support des tableaux
|
||||
- Ajout de classes utilitaires
|
||||
- `.flex` afin d'aligner simplement horizontalement des éléments
|
||||
- Ajout d'une navbar avec un outil pour séparer en bloc
|
||||
|
||||
## [2.0.0] - 2019-11-07
|
||||
|
||||
### Added
|
||||
|
|
74
README.md
74
README.md
|
@ -1,4 +1,72 @@
|
|||
clear-typography
|
||||
================
|
||||
# Moineau
|
||||
|
||||
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.
|
||||
**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.
|
||||
|
||||
<center><a class="button" href="https://git.kobold.cafe/kazhnuz/moineau/releases">Télécharger</a></center>
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
Moineau supporte les fonctionnalités suivantes de base :
|
||||
|
||||
- Feuille de style simple et légère (<7 ko minifié)
|
||||
- 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 quatre variables :
|
||||
|
||||
```css
|
||||
:root {
|
||||
--accent-color-dark: #1971c2;
|
||||
--accent-color-light: #d0ebff;
|
||||
--accent-color-dark-hover: #1864ab;
|
||||
--accent-color-light-hover: #e7f5ff;
|
||||
}
|
||||
```
|
||||
|
||||
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). Les deux suivantes sont les mêmes, mais avec cette fois en variante pour le survol de la souris.
|
||||
|
||||
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/)
|
||||
- La photo de chat utilisé dans les exemples a été publiée sur Wikimedia.
|
|
@ -1,283 +0,0 @@
|
|||
/* ------------------ 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 */
|
|
@ -1 +0,0 @@
|
|||
{"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"}
|
BIN
data/cat.jpg
Normal file
BIN
data/cat.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
177
exemples/exemples.md
Normal file
177
exemples/exemples.md
Normal file
|
@ -0,0 +1,177 @@
|
|||
# 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.
|
||||
|
||||
# Image
|
||||
|
||||
Une image dans un paragraphe seul sera automatiquement en bloc, centrée et responsive
|
||||
|
||||
![Une photo de chat, bien sûr](/cat.jpg)
|
||||
|
||||
# Table
|
||||
|
||||
Le style des tableaux
|
||||
|
||||
<div class="responsive-table">
|
||||
<table>
|
||||
<caption>
|
||||
Exemple de tableau
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Animal</th>
|
||||
<th scope="col">En liberté</th>
|
||||
<th scope="col">Nombre</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">Canard</th>
|
||||
<td>Oui</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Poules</th>
|
||||
<td>Non</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Oies</th>
|
||||
<td>Plus ou moins</td>
|
||||
<td>6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Chiens</th>
|
||||
<td>Oui</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Chats</th>
|
||||
<td>Oui</td>
|
||||
<td>5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Perroquet (gris du gabon et deux verts)</th>
|
||||
<td>Non</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Iguane</th>
|
||||
<td>Non</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th scope="row" colspan="2">Nombre total</th>
|
||||
<td>24</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
## 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
|
||||
- `.separator` 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 "Changelog" de la navbar pour pousser les suivants.
|
||||
- `.p` est utlisé pour se faire comporter une balise comme un paragraphe, se combine bien avec .flex dans les articles
|
||||
- `.responsive-table` est utilisé dans un dev pour entourer un tableau et le rendre plus ou moins responsive
|
||||
|
||||
## 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.
|
||||
|
||||
## Hgroup
|
||||
|
||||
Les hgroup sont supporté. Tout texte dedans sera en gras, et les titres n'auront pas leur margin-bottom habituel :
|
||||
|
||||
```html
|
||||
<hgroup>
|
||||
<h1>Titre</h1>
|
||||
<p>Sous-titre géré dans le hgroup</p>
|
||||
</hgroup>
|
||||
```
|
||||
|
||||
donne le résultat suivant :
|
||||
|
||||
<hgroup>
|
||||
<h1>Titre</h1>
|
||||
<p>Sous-titre géré dans le hgroup</p>
|
||||
</hgroup>
|
||||
|
||||
## Input
|
||||
|
||||
Les différents types d'input ont des styles
|
||||
|
||||
<form>
|
||||
<label for="text">Champ de texte :</label>
|
||||
<input type="text" id="text" name="text" />
|
||||
<div class="p"><label for="checkbox">Champ de checkbox :</label>
|
||||
<input type="checkbox" id="checkbox" name="checkbox" /></div>
|
||||
<label for="color">Champ de couleur :</label>
|
||||
<input type="color" id="color" name="color" />
|
||||
<label for="date">Champ de date :</label>
|
||||
<input type="date" id="date" name="date" />
|
||||
<label for="time">Champ d'heure :</label>
|
||||
<input type="time" id="time" name="time" />
|
||||
<label for="datetime-local">Champ de date et heure :</label>
|
||||
<input type="datetime-local" id="datetime-local" name="datetime-local" />
|
||||
<label for="email">Champ de mail :</label>
|
||||
<input type="email" id="email" name="email" />
|
||||
<label for="tel">Champ de tel :</label>
|
||||
<input type="tel" id="tel" name="tel" />
|
||||
<label for="file">Champ de fichier :</label>
|
||||
<input type="file" id="file" name="file" />
|
||||
<label for="number">Champ de nombre :</label>
|
||||
<input type="number" id="number" name="number" />
|
||||
<div class="p"><label for="radio">Champ radio :</label>
|
||||
<input type="radio" id="radio" name="radio" /></div>
|
||||
<label for="select">Champ select:</label>
|
||||
<select name="select" id="select">
|
||||
<option value="">--Choix d'option--</option>
|
||||
<option value="canard">Canard</option>
|
||||
<option value="oie">Oie</option>
|
||||
<option value="poule">Poule</option>
|
||||
<option value="faisan">Faisant</option>
|
||||
<option value="dindon">Dindon</option>
|
||||
</select>
|
||||
<div>
|
||||
<input type="submit" id="submit" name="submit" />
|
||||
<input type="reset" id="reset" name="reset" />
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<div><textarea>uwu</textarea></div>
|
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.
51
generate.js
Normal file
51
generate.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
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 class="separator"><a href="/changelog.html">📋 Changelog</a></li>
|
||||
<li><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
140
index.html
|
@ -1,140 +0,0 @@
|
|||
<!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>
|
31
package.json
Normal file
31
package.json
Normal file
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"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": "cp data/cat.jpg dist/cat.jpg & node generate.js",
|
||||
"compile": "sass scss/moineau.scss --style compressed dist/css/moineau.min.css && npm run site"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
|
@ -1,121 +0,0 @@
|
|||
/* ------------------ 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;
|
||||
}
|
|
@ -1,215 +0,0 @@
|
|||
@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;
|
||||
}
|
371
scss/moineau.scss
Normal file
371
scss/moineau.scss
Normal file
|
@ -0,0 +1,371 @@
|
|||
: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-dark-hover: #1864ab;
|
||||
--accent-color-light: #d0ebff;
|
||||
--accent-color-light-hover: #e7f5ff;
|
||||
|
||||
--text-color: #212529;
|
||||
--border-color: rgba(0,0,0,0.15);
|
||||
--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);
|
||||
--accent-color-hover: var(--accent-color-dark-hover);
|
||||
|
||||
--border-radius: 6px;
|
||||
}
|
||||
|
||||
@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);
|
||||
--accent-color-hover: var(--accent-color-light-hover);
|
||||
|
||||
--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;
|
||||
}
|
||||
|
||||
&.separator {
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Typography
|
||||
|
||||
p,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
ul,
|
||||
ol,
|
||||
hr,
|
||||
table,
|
||||
details
|
||||
main,
|
||||
.p,
|
||||
input,
|
||||
textarea,
|
||||
select,
|
||||
hgroup,
|
||||
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);
|
||||
}
|
||||
|
||||
p > img:only-child {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
margin:auto;
|
||||
}
|
||||
|
||||
/* ------------------ TITLES ------------------- */
|
||||
|
||||
hgroup > :is(h1, h2, h3, h4, h5, h6) {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
hgroup {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
pre {
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
summary {
|
||||
font-weight: 700;
|
||||
font-size: 0.9em;
|
||||
&:hover {
|
||||
background-color: var(--hover-color);
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------ INPUT ------------------- */
|
||||
|
||||
a, button, input {
|
||||
outline-color: var(--accent-color);
|
||||
outline-style: none;
|
||||
outline-width: 2px;
|
||||
&:focus-visible {
|
||||
outline-style: dashed;
|
||||
}
|
||||
}
|
||||
|
||||
input, textarea, select {
|
||||
display:block;
|
||||
background-color: var(--background-color);
|
||||
border-radius: var(--border-radius);
|
||||
border: 1px solid var(--border-color);
|
||||
outline-offset: 2px;
|
||||
padding: .5rem;
|
||||
color: var(--text-color);
|
||||
&:hover {
|
||||
background-color: var(--hover-color);
|
||||
}
|
||||
|
||||
max-width: 100%;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: .9rem;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
textarea {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
input[type=checkbox], input[type=radio] {
|
||||
display: inline-block;
|
||||
appearance: none;
|
||||
aspect-ratio: 1;
|
||||
font-size: 1rem;
|
||||
height:1em;
|
||||
width:1em;
|
||||
box-sizing: border-box;
|
||||
line-height: 1;
|
||||
padding:0;
|
||||
margin: 0 .25em;
|
||||
border-radius: 3px;
|
||||
border: 1px solid var(--border-color);
|
||||
content: "";
|
||||
position: relative;
|
||||
top: .2rem;
|
||||
|
||||
&:checked {
|
||||
background-color: var(--accent-color);
|
||||
box-shadow:inset 0px 0px 0px 3px var(--background-color);
|
||||
|
||||
&:hover {
|
||||
background-color: var(--accent-color-hover);
|
||||
box-shadow:inset 0px 0px 0px 3px color-mix(in srgb, var(--background-color) 90%, currentColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input[type=radio] {
|
||||
border-radius: 9999px;
|
||||
}
|
||||
|
||||
|
||||
button, .button, input[type=submit], input[type=reset], input[type=button] {
|
||||
background-color: var(--accent-color);
|
||||
color: var(--background-color);
|
||||
border: none;
|
||||
padding: .5rem 1rem;
|
||||
border-radius: var(--border-radius);
|
||||
outline-offset: 2px;
|
||||
display: inline-block;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--accent-color-hover);
|
||||
}
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
|
||||
.responsive-table {
|
||||
width:100%;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: separate;
|
||||
width:100%;
|
||||
border:0;
|
||||
border-spacing: 3px;
|
||||
}
|
||||
|
||||
caption {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
table.centered th, table.centered td {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
tr, th, td {
|
||||
border:0;
|
||||
}
|
||||
|
||||
th, td {
|
||||
background-color: var(--well-color);
|
||||
padding:.33rem .66rem;
|
||||
}
|
||||
|
||||
table:not(:has(thead)) tr:first-child, table > tr:first-child, table thead tr:first-child {
|
||||
td:first-child, th:first-child {
|
||||
border-top-left-radius: var(--border-radius);
|
||||
}
|
||||
td:last-child, th:last-child {
|
||||
border-top-right-radius: var(--border-radius);
|
||||
}
|
||||
}
|
||||
|
||||
table > tr:last-child, table tbody tr:last-child {
|
||||
td:first-child, th:first-child {
|
||||
border-bottom-left-radius: var(--border-radius);
|
||||
}
|
||||
td:last-child, th:last-child {
|
||||
border-bottom-right-radius: var(--border-radius);
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------ SPECIAL STYLING ------------------- */
|
||||
|
||||
.flex {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
}
|
Loading…
Reference in a new issue