Ce plugin est en plein développement. Il s'agit d'une expérimentation qui débouchera peut-être sur quelque chose d'utilisable, ou peut-être pas. Peu importe, il s'agit avant tout de tester des idées.
Il a été commencé en catimini dans un coin, mais toutes les contributions sont les bienvenues :)
Griseus 2000 est un thème pour l'espace privé de SPIP 3.1+
Quelques objectifs parmis d'autres :
- Repartir de zéro
- Avoir une interface sobre et lisible, simplifier des choses
- Exploiter toute la largeur disponible
- Un graphisme moderne mais pas trop générique, avoir une touche personnelle à la SPIP
- Reprendre les bonnes idées des autres interfaces (de CMS, mais pas que)
- S'autoriser à expérimenter des choses modernes (svg, flex, grid, variables CSS, etc.)
- Être utilisable sur tablettes et mobiles
Le thème est développé en SCSS et se compile au moyen de Gulp, un automatiseur de tâches.
Les sources se trouvent dans prive/themes/griseus2000/scss
, et la CSS est compilée dans prive/themes/griseus2000/css
.
La compilation s'effectue depuis le dossier prive/themes/griseus2000
.
La première fois, installer les dépendances localement avec la commande npm install
.
Pour surveiller les changements des fichiers sources et lancer la compilation automatiquement, utiliser la commande gulp watch
.
La compilation lance les tâches suivantes, qu'on peut également lancer individuellement si besoin :
gulp sass
: compiler la CSSgulp css
: traiter la CSS compilée -> ajouter les préfixes navigateurs, retirer les commentaires, embarquer certaines ressources en base64, formater le codegulp minify
: minifier la CSS compiléegulp fontello
: télécharger les sources de la police d'icônes dans un dossier temporairescss/fontello_tmp
La feuille de style principale est un squelette CSS : style_prive_css.html
D'autres fichiers y sont inclus dans un ordre précis :
- Quelques CSS nécessaires :
picker.css
,jquery-ui.css
,exceptions.css
- Les icônes des bandeaux : code généré via une fonction
- Les variables de couleurs :
css/variables.css.hml
- La CSS principale du thème :
css/theme.css
- Les styles nécessitant un chemin vers une ressource (images, polices, etc.) :
css/ressources.css.html
- Les squelettes CSS des plugins :
style_prive_plugin_[plugin].css.html
Une page dans l'espace privé présente les généralités du thème ?exec=griseus2000
(ou via le menu de développement).
L'unité de base est la variable $bs
, raccourci pour « base spacing ». Elle correspond à une hauteur de ligne. Pour définir des marges, des paddings, ou même des dimensions il est très recommander de s'en servir.
L'utiliser pour des marges inférieures ou des hauteurs permet d'avoir un rythme vertical harmonieux par exemple.
.truc { margin-bottom: $bs*2 } <!-- oui -->
.truc { margin-bottom: 2em } : <!-- non ! -->
Tous les styles qui ont besoin d'un chemin vers une ressource avec url()
et src()
doivent être placés dans css/ressources.css.html
, puisqu'on doit utiliser la balise #CHEMIN
.
Les icônes génériques sont issues pour la plupart d'une police de Fontello.
La liste est consultable dans la charte et dans scss/modules/icons-codes.scss
.
Pour afficher une icône devant un item par exemple :
.item {
@extend .icon;
@extend .icon-truc;
}
Pour ajouter des icônes dans la police :
- se rendre sur fontello.com
- importer
fontello-config.json
- sélectionner les icônes supplémentaires
- télécharger
fontello-config.json
- télécharger la police avec la commande
gulp fontello
- renommer et déplacer les fichiers de la police et le code des icones depuis
scss/fontello-tmp
versscss/modules/icons-codes.scss
etpolices/icons/icons.woff
(ce n'est pas encore automatisé)
Dans les cas où il n'est pas possible d'utiliser cette police, il y a quelques svg dans /images
.
Certaines classes préfixées par gr-
sont des classes « virtuelles » qui servent uniquement à étendre les vraies classes de SPIP, elles ne sont pas utilisées directement dans les squelettes.
Par exemple, la classe .gr-card
est utilisée pour étendre les listes d'objets, les boîtes, les formulaires... (et obtenir donc des choses uniformes).
.formulaire_spip {
@extend .gr-card;
}