diff --git a/.gitignore b/.gitignore
index 7268a5f..883e35f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,7 +5,7 @@
# SASS
# -----------------------------------------------------------------------------
-# Ignorer le cache de Sass
+# Ignorer le cache de Sass/Compass
.sass-cache
# Ignorer la configuration interne de Bunler
diff --git a/.gsk/conf/.editorconfig b/.gsk/conf/.editorconfig
new file mode 100644
index 0000000..e6414e9
--- /dev/null
+++ b/.gsk/conf/.editorconfig
@@ -0,0 +1,15 @@
+# EditorConfig is awesome: http://EditorConfig.org
+
+# top-most EditorConfig file
+root = true
+
+# Unix-style newlines with a newline ending every file
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.{js,scss,css,html,hbs,twig,json}]
+indent_style = space
+indent_size = 2
diff --git a/.gsk/conf/.sass-lint.yml b/.gsk/conf/.sass-lint.yml
new file mode 100644
index 0000000..6136971
--- /dev/null
+++ b/.gsk/conf/.sass-lint.yml
@@ -0,0 +1,104 @@
+# sass-lint config generated by make-sass-lint-config v0.1.2
+#
+# The following scss-lint Linters are not yet supported by sass-lint:
+# Compass::PropertyWithMixin, ElsePlacement, PropertyCount, SelectorDepth
+# UnnecessaryParentReference, VendorPrefixes
+#
+# The following settings/values are unsupported by sass-lint:
+# Linter Indentation, option "allow_non_nested_indentation"
+# Linter Indentation, option "character"
+# Linter SpaceAfterPropertyColon, option "style" with value "at_least_one_space"
+# Linter SpaceBeforeBrace, option "allow_single_line_padding"
+
+files:
+ include: '**/*.scss'
+options:
+ formatter: stylish
+ merge-default-rules: false
+rules:
+ border-zero: 0
+ brace-style:
+ - 1
+ - allow-single-line: true
+ class-name-format: 0
+ clean-import-paths:
+ - 1
+ - filename-extension: false
+ leading-underscore: false
+ empty-line-between-blocks:
+ - 1
+ - ignore-single-line-rulesets: true
+ extends-before-declarations: 1
+ extends-before-mixins: 1
+ final-newline:
+ - 1
+ - include: true
+ force-attribute-nesting: 0
+ force-element-nesting: 0
+ force-pseudo-nesting: 0
+ function-name-format:
+ - 1
+ - allow-leading-underscore: false
+ convention: hyphenatedlowercase
+ hex-length: 0
+ hex-notation: 0
+ id-name-format: 0
+ indentation:
+ - 1
+ - size: 2
+ leading-zero: 0
+ mixin-name-format:
+ - 1
+ - allow-leading-underscore: false
+ convention: hyphenatedlowercase
+ mixins-before-declarations: 1
+ nesting-depth:
+ - 1
+ - max-depth: 5
+ no-color-keywords: 1
+ no-color-literals: 1
+ no-css-comments: 1
+ no-debug: 1
+ no-duplicate-properties: 0
+ no-empty-rulesets: 1
+ no-ids: 0
+ no-important: 0
+ no-invalid-hex: 1
+ no-mergeable-selectors: 1
+ no-misspelled-properties: 0
+ no-qualifying-elements:
+ - 1
+ - allow-element-with-attribute: true
+ allow-element-with-class: false
+ allow-element-with-id: false
+ no-trailing-zero: 1
+ no-url-protocols: 0
+ placeholder-in-extend: 0
+ placeholder-name-format: 0
+ property-sort-order: 0
+ quotes: 0
+ shorthand-values: 1
+ single-line-per-selector: 1
+ space-after-bang:
+ - 1
+ - include: false
+ space-after-colon: 1
+ space-after-comma: 1
+ space-before-bang:
+ - 1
+ - include: true
+ space-before-brace:
+ - 1
+ - include: true
+ space-before-colon: 1
+ space-between-parens:
+ - 1
+ - include: false
+ trailing-semicolon: 1
+ url-quotes: 1
+ variable-for-property: 0
+ variable-name-format:
+ - 1
+ - allow-leading-underscore: false
+ convention: hyphenatedlowercase
+ zero-unit: 1
diff --git a/.gsk/conf/config.rb b/.gsk/conf/config.rb
index d6863d2..7df6227 100644
--- a/.gsk/conf/config.rb
+++ b/.gsk/conf/config.rb
@@ -2,11 +2,11 @@
Sass::Script::Number.precision = 8
# Configuration des chemins des ressources:
-sass_dir = 'src/css'
-images_dir = 'src/assets/img'
-javascripts_dir = 'src/js'
-fonts_dir = 'src/assets/fonts'
-css_dir = 'build/css'
+sass_dir = './src/css'
+images_dir = './src/assets/img'
+javascripts_dir = './src/js'
+fonts_dir = './src/assets/fonts'
+css_dir = './build/css'
# Configuration des chemins HTTP
http_path = ''
diff --git a/.gsk/conf/readme.md b/.gsk/conf/readme.md
index 44202eb..b26e196 100644
--- a/.gsk/conf/readme.md
+++ b/.gsk/conf/readme.md
@@ -11,9 +11,12 @@ de votre projet. Cependant, si vous modifiez systématiquement les
configurations par défaut, n'hésitez pas à proposer une merge request au
starter kit pour que l'on en discute.
+* `.editorconfig` Configuration commune pour le [format des fichier pour les IDE](http://editorconfig.org/)
* `.jsbeautifyrc` Configuration pour le [formatage automatique du code HTML](https://github.com/beautify-web/js-beautify)
* `.eslint.json` Configuration pour [le linting et la vérification de syntaxe des fichiers JS](http://eslint.org)
* `.lesshintrc` Configuration pour le [linting des fichiers LESS](https://github.com/lesshint/lesshint)
-* `.scss-lint.yml` Configuration pour le [linting des fichiers SCSS](https://github.com/brigade/scss-lint/)
+* `.scss-lint.yml` Configuration pour le [linting des fichiers SCSS (pour compass)](https://github.com/brigade/scss-lint/)
+* `.sass-lint.yml` Configuration pour le [linting des fichiers SCSS (pour eyeglass)](https://github.com/sasstools/sass-lint)
* `.stylintrc` Configuration pour le [linting des fichiers Stylus](https://rosspatton.github.io/stylint/)
* `config.rb` Configuration pour la [compilation Compass](http://compass-style.org/)
+* `Gemfile` [Config pour dependances ruby (si on utilise Compass)](http://bundler.io/gemfile.html)
diff --git a/.gsk/docs/css/compass.md b/.gsk/docs/css/compass.md
new file mode 100644
index 0000000..9d4957b
--- /dev/null
+++ b/.gsk/docs/css/compass.md
@@ -0,0 +1,104 @@
+
+Sass & Compass
+===============================================================================
+
+Nous utilisions [Sass](http://sass-lang.com) et [Compass](http://compass-style.org) dans de nombreux projets historiques.
+
+Configuration:
+```json
+{
+ "css": {
+ "engine": "compass",
+ }
+}
+```
+
+Vérifiez votre environnement
+-------------------------------------------------------------------------------
+
+Sass et compass reposent sur [Ruby](https://www.ruby-lang.org/fr/), assurez-vous que vous l'avez bien installé sur votre environnement.
+
+Il est également nécessaire d'installer l'utilitaire
+[Bundler](http://bundler.io/) dans votre environnement global (cela permet
+d'avoir plusieurs versions de Sass en fonction de chaque projet).
+
+Puis exécutez simplement la commande suivante :
+
+```bash
+$ sudo gem install bundler
+```
+
+Copiez à la racine du projet les fichiers `config.rb` et `Gemfile` que vous trouverez dans le dossier `.gsk/conf`.
+
+Puis, pour être sûr que vous disposez de la dernière version de Sass et Compass
+pour le projet sur lequel vous travaillez, exécutez la commande suivante :
+
+```bash
+$ bundle install --path .gems
+```
+
+En cas de problème de compilation Sass sur un projet existant commencez
+toujours par exécuter la commande suivante :
+
+```bash
+$ bundle update
+```
+
+
+Configuration standard
+-------------------------------------------------------------------------------
+
+Vous pouvez utiliser Sass/Compass de manière traditionnelle, toute la
+configuration de l’environnement est centralisé dans le ficher `config.rb`.
+Un fichier de configuration près à l’emploi est disponible dans `.gsk/conf`
+
+Pour compiler les styles du projet vers l'environnement de développement,
+exécuter simplement la commande suivante :
+
+```bash
+$ gulp css
+```
+
+Ou bien pour une compilation standalone:
+
+```bash
+$ bundle exec compass compile
+```
+
+Pour compiler les styles du projet vers l’environnement de production il suffit
+de rajouter le paramètre adéquat :
+
+```bash
+$ gulp css --optimize
+```
+
+Ou bien en standalone
+
+```bash
+$ bundle exec compass compile -e production
+```
+
+
+Configuration avancée
+-------------------------------------------------------------------------------
+
+### Installer un module via NPM (à préférer autant que possible)
+
+Exemple avec sass-mq:
+
+Installer le module NPM `npm install sass-mq --save`
+
+Puis importez le module dans vos scss `@import 'sass-mq/mq';`.
+
+### Installer un module via bundler
+
+Exemple avec Sass-globing :
+
+Ajouter cette ligne au fichier Gemfile `gem 'sass-globbing'`
+
+Lancer un `bundle install` en ligne de commande pour que ce nouveau module soit bien installé.
+
+Puis ajouter la ligne suivante `require 'sass-globbing'` dans le fichier `config.rb`.
+
+Si votre gem expose des mixins vous devez l’importer dans votre css comme dans cet exemple avec bourbon `@import 'bourbon';`.
+
diff --git a/.gsk/docs/css/sass.md b/.gsk/docs/css/sass.md
index c13d14a..a475a7b 100644
--- a/.gsk/docs/css/sass.md
+++ b/.gsk/docs/css/sass.md
@@ -1,9 +1,8 @@
-Sass & Compass
+Sass (node-sass)
===============================================================================
-Pour tous nos projets, nous utilisons [Sass](http://sass-lang.com) et
-[Compass](http://compass-style.org) par défaut.
+Default css engine.
Configuration:
```json
@@ -14,91 +13,30 @@ Configuration:
}
```
-Vérifier votre environnement
+Add a Sass module
-------------------------------------------------------------------------------
-Sass repose sur [Ruby](https://www.ruby-lang.org/fr/), assurez-vous que vous
-l'avez bien installé sur votre environnement.
-
-Il est également nécessaire d'installer l'utilitaire
-[Bundler](http://bundler.io/) dans votre environnement global (cela permet
-d'avoir plusieurs versions de Sass en fonction de chaque projets).
-
-Si ce n'est pas déjà le cas, exécutez simplement la commande suivante :
-
+Install it as dependency with npm:
```bash
-$ sudo gem install bundler
+npm install sass-moduleName --save
```
-Puis, pour être sûr que vous disposer de la dernière version de Sass et Compass
-pour le projet sur lequel vous travaillez, exécutez la commande suivante :
-
-```bash
-$ bundle install --path .gems
-```
-
-En cas de problème de compilation Sass sur un projet existant commencez
-toujours par exécuter la commande suivante:
-
-```bash
-$ bundle update
-```
-
-
-Configuration standard
--------------------------------------------------------------------------------
-
-Vous pouvez utiliser Sass/Compass de manière traditionnelle, toute la
-configuration de l'environnement est centralisé dans le ficher `config.rb`.
-Un fichier de configuration près à l'emploie est disponible dans `.gsk/conf`
-
-Pour compiler les styles du projet vers l'environnement de développement,
-exécuter simplement la commande suivante :
-
-```bash
-$ gulp css
+And import the module in your scss:
+```scss
+@import 'moduleName';
```
-Ou bien pour une compilation standalone:
-```bash
-$ bundle exec compass compile
-```
-
-Pour compiler les styles du projet vers l'environnement de production il suffit
-de rajouter le paramètre adéquat :
+### Normalize example
+Install it as dependency with npm:
```bash
-$ gulp css --optimize
+npm install normalize-scss --save
```
-Ou bien en standalone
-
-```bash
-$ bundle exec compass compile -e production
+And import the module in your scss:
+```scss
+@import 'normalize.scss/normalize';
```
-Configuration avancée
--------------------------------------------------------------------------------
-
-### Installer un module via NPM (à préférer autant que possible)
-
-Exemple avec sass-mq:
-
-Installer le module NPM `npm install sass-mq --save`
-
-Puis importez le modules dans vos scss `@import 'sass-mq/mq';`.
-
-### Installer un module via bundler
-
-Exemple avec Sass-globing :
-
-Ajouter cette ligne au fichier Gemfile `gem 'sass-globbing'`
-
-Lancer un `bundle install` en ligne de comande pour que ce nouveau module soit bien installé.
-
-Puis ajouter la ligne suivante `require 'sass-globbing'` dans le fichier `config.rb`.
-
-Si votre gem expose des mixins vous devez l’importer dans votre css comme dans cet exemple avec bourbon `@import 'bourbon';`.
-
diff --git a/.gsk/pipe/css/compass.js b/.gsk/pipe/css/compass.js
new file mode 100644
index 0000000..79a1cee
--- /dev/null
+++ b/.gsk/pipe/css/compass.js
@@ -0,0 +1,30 @@
+// Définition du LazyPipe pour utiliser compass
+'use strict';
+
+// MODULES
+// ----------------------------------------------------------------------------
+var lazypipe = require('lazypipe');
+var compass = require('gulp-compass');
+var ENV = require('../../tools/env');
+
+// SASS CONFIGURATION
+// ----------------------------------------------------------------------------
+var SASS = {
+ bundle_exec: true,
+ config_file: './config.rb',
+ environment: ENV.all.optimize ? 'production' : 'development',
+ sass : ENV.css['src-dir'],
+ css : ENV.css['dest-dir'],
+ relative : false,
+ // Force only if task is called via `gulp css`.
+ // That fixes the following bug: `--optimized` option was ignored if built
+ // files were already cached.
+ force : require('yargs').argv._[0] === 'css'
+};
+
+module.exports = function () {
+ var lazystream = lazypipe()
+ .pipe(compass, SASS);
+
+ return lazystream();
+};
diff --git a/.gsk/pipe/css/compass.linter.js b/.gsk/pipe/css/compass.linter.js
new file mode 100644
index 0000000..212f9ce
--- /dev/null
+++ b/.gsk/pipe/css/compass.linter.js
@@ -0,0 +1,23 @@
+// Définition du LazyPipe pour linter sass
+'use strict';
+
+// MODULES
+// ----------------------------------------------------------------------------
+var lazypipe = require('lazypipe');
+var scsslint = require('gulp-scss-lint');
+
+
+// LINTER CONFIGURATION
+// ----------------------------------------------------------------------------
+var LINT = {
+ bundleExec: true,
+ config: './.scss-lint.yml'
+};
+
+module.exports = function () {
+ var lazystream = lazypipe()
+ .pipe(scsslint, LINT)
+ .pipe(scsslint.failReporter);
+
+ return lazystream();
+};
diff --git a/.gsk/pipe/css/sass.js b/.gsk/pipe/css/sass.js
index 79a1cee..805c56e 100644
--- a/.gsk/pipe/css/sass.js
+++ b/.gsk/pipe/css/sass.js
@@ -1,30 +1,25 @@
-// Définition du LazyPipe pour utiliser compass
+// Define the LazyPipe to use eyeglass
'use strict';
// MODULES
// ----------------------------------------------------------------------------
var lazypipe = require('lazypipe');
-var compass = require('gulp-compass');
-var ENV = require('../../tools/env');
+var sass = require('gulp-sass');
+var importer = require('node-sass-import');
+var ENV = require('../../tools/env');
// SASS CONFIGURATION
// ----------------------------------------------------------------------------
var SASS = {
- bundle_exec: true,
- config_file: './config.rb',
- environment: ENV.all.optimize ? 'production' : 'development',
- sass : ENV.css['src-dir'],
- css : ENV.css['dest-dir'],
- relative : false,
- // Force only if task is called via `gulp css`.
- // That fixes the following bug: `--optimized` option was ignored if built
- // files were already cached.
- force : require('yargs').argv._[0] === 'css'
+ sass: ENV.css['src-dir'],
+ css: ENV.css['dest-dir'],
+ importer: importer,
+ precision: 8
};
module.exports = function () {
var lazystream = lazypipe()
- .pipe(compass, SASS);
+ .pipe(sass, SASS);
return lazystream();
};
diff --git a/.gsk/pipe/css/sass.linter.js b/.gsk/pipe/css/sass.linter.js
index 212f9ce..e9bc116 100644
--- a/.gsk/pipe/css/sass.linter.js
+++ b/.gsk/pipe/css/sass.linter.js
@@ -4,20 +4,20 @@
// MODULES
// ----------------------------------------------------------------------------
var lazypipe = require('lazypipe');
-var scsslint = require('gulp-scss-lint');
+var sasslint = require('gulp-sass-lint');
// LINTER CONFIGURATION
// ----------------------------------------------------------------------------
var LINT = {
- bundleExec: true,
- config: './.scss-lint.yml'
+ configFile: './.sass-lint.yml'
};
module.exports = function () {
var lazystream = lazypipe()
- .pipe(scsslint, LINT)
- .pipe(scsslint.failReporter);
+ .pipe(sasslint, LINT)
+ .pipe(sasslint.format)
+ .pipe(sasslint.failOnError);
return lazystream();
};
diff --git a/.sass-lint.yml b/.sass-lint.yml
new file mode 100644
index 0000000..6136971
--- /dev/null
+++ b/.sass-lint.yml
@@ -0,0 +1,104 @@
+# sass-lint config generated by make-sass-lint-config v0.1.2
+#
+# The following scss-lint Linters are not yet supported by sass-lint:
+# Compass::PropertyWithMixin, ElsePlacement, PropertyCount, SelectorDepth
+# UnnecessaryParentReference, VendorPrefixes
+#
+# The following settings/values are unsupported by sass-lint:
+# Linter Indentation, option "allow_non_nested_indentation"
+# Linter Indentation, option "character"
+# Linter SpaceAfterPropertyColon, option "style" with value "at_least_one_space"
+# Linter SpaceBeforeBrace, option "allow_single_line_padding"
+
+files:
+ include: '**/*.scss'
+options:
+ formatter: stylish
+ merge-default-rules: false
+rules:
+ border-zero: 0
+ brace-style:
+ - 1
+ - allow-single-line: true
+ class-name-format: 0
+ clean-import-paths:
+ - 1
+ - filename-extension: false
+ leading-underscore: false
+ empty-line-between-blocks:
+ - 1
+ - ignore-single-line-rulesets: true
+ extends-before-declarations: 1
+ extends-before-mixins: 1
+ final-newline:
+ - 1
+ - include: true
+ force-attribute-nesting: 0
+ force-element-nesting: 0
+ force-pseudo-nesting: 0
+ function-name-format:
+ - 1
+ - allow-leading-underscore: false
+ convention: hyphenatedlowercase
+ hex-length: 0
+ hex-notation: 0
+ id-name-format: 0
+ indentation:
+ - 1
+ - size: 2
+ leading-zero: 0
+ mixin-name-format:
+ - 1
+ - allow-leading-underscore: false
+ convention: hyphenatedlowercase
+ mixins-before-declarations: 1
+ nesting-depth:
+ - 1
+ - max-depth: 5
+ no-color-keywords: 1
+ no-color-literals: 1
+ no-css-comments: 1
+ no-debug: 1
+ no-duplicate-properties: 0
+ no-empty-rulesets: 1
+ no-ids: 0
+ no-important: 0
+ no-invalid-hex: 1
+ no-mergeable-selectors: 1
+ no-misspelled-properties: 0
+ no-qualifying-elements:
+ - 1
+ - allow-element-with-attribute: true
+ allow-element-with-class: false
+ allow-element-with-id: false
+ no-trailing-zero: 1
+ no-url-protocols: 0
+ placeholder-in-extend: 0
+ placeholder-name-format: 0
+ property-sort-order: 0
+ quotes: 0
+ shorthand-values: 1
+ single-line-per-selector: 1
+ space-after-bang:
+ - 1
+ - include: false
+ space-after-colon: 1
+ space-after-comma: 1
+ space-before-bang:
+ - 1
+ - include: true
+ space-before-brace:
+ - 1
+ - include: true
+ space-before-colon: 1
+ space-between-parens:
+ - 1
+ - include: false
+ trailing-semicolon: 1
+ url-quotes: 1
+ variable-for-property: 0
+ variable-name-format:
+ - 1
+ - allow-leading-underscore: false
+ convention: hyphenatedlowercase
+ zero-unit: 1
diff --git a/.scss-lint.yml b/.scss-lint.yml
deleted file mode 100644
index ce7dd4f..0000000
--- a/.scss-lint.yml
+++ /dev/null
@@ -1,394 +0,0 @@
-# Configuration inspirée par https://github.com/kaelig/scss-lint-w3c
-# adapté pour Clever Age
-
-# Cette configuration reprend tous les settings, même ceux par défaut définis
-# ici : https://github.com/causes/scss-lint/blob/master/config/default.yml
-
-scss_files: "**/*.scss"
-
-linters:
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#bangformat
- # La spec mentionne rarement !important mais semble favoriser un espace avant
- # le point d'exclamation : http://www.w3.org/TR/CSS21/cascade.html#important-rules
- BangFormat:
- enabled: true
- space_before_bang: true
- space_after_bang: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#borderzero
- # Dans la mesure ou nous utilisons indifféremment "border: none" et
- # "border: 0" on ne force pas les choses à ce niveau (ça n'aurait d’intérêt
- # que si l'on souhaite forcer un cohérence pour faire des recherches)
- BorderZero:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#colorkeyword
- # Nous nous interdisons les mots clé pour les couleurs. On utilisera toujours
- # Les notation plus complètes (hex, rgb, hsl et variable).
- ColorKeyword:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#colorvariable
- # L'utilisation des variables pour définir les couleurs est obligatoire. Cela
- # nous permet de garantir la modularité de notre code Sass.
- ColorVariable:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#comment
- # On ne veux pas garder de commentaires (`/* */`) dans nos CSS générés,
- # Pour garantir ça, on force l'usage des commentaire Sass (`//`)
- Comment:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/compass/README.md
- # Même si l'on utilise compass, dans la mesure ou nous utilisons autoprefixer
- # il n'est pas utile de forcer l'usage des mixin Compass.
- Compass::PropertyWithMixin:
- enabled: false
- # ignore:
- # - 'align-content'
- # - 'align-items'
- # - 'align-self'
- # - 'animation'
- # - 'animation-delay'
- # - 'animation-direction'
- # - 'animation-duration'
- # - 'animation-fill-mode'
- # - 'animation-iteration-count'
- # - 'animation-name'
- # - 'animation-play-state'
- # - 'animation-timing-function'
- # - 'appearance'
- # - 'apply-origin'
- # - 'background'
- # - 'background-clip'
- # - 'background-image'
- # - 'background-origin'
- # - 'background-size'
- # - 'border-bottom-left-radius'
- # - 'border-bottom-radius'
- # - 'border-bottom-right-radius'
- # - 'border-image'
- # - 'border-left-radius'
- # - 'border-radius'
- # - 'border-right-radius'
- # - 'border-top-left-radius'
- # - 'border-top-radius'
- # - 'border-top-right-radius'
- # - 'box-shadow'
- # - 'box-sizing'
- # - 'break-after'
- # - 'break-before'
- # - 'break-inside'
- # - 'column-break'
- # - 'column-break-after'
- # - 'column-break-before'
- # - 'column-break-inside'
- # - 'column-count'
- # - 'column-fill'
- # - 'column-gap'
- # - 'column-rule'
- # - 'column-rule-color'
- # - 'column-rule-style'
- # - 'column-rule-width'
- # - 'column-span'
- # - 'column-width'
- # - 'columns'
- # - 'content'
- # - 'display-flex'
- # - 'filter'
- # - 'flex'
- # - 'flex-basis'
- # - 'flex-direction'
- # - 'flex-flow'
- # - 'flex-grow'
- # - 'flex-shrink'
- # - 'flex-wrap'
- # - 'flexbox'
- # - 'flow-from'
- # - 'flow-into'
- # - 'font-face'
- # - 'hyphens'
- # - 'inline-block'
- # - 'justify-content'
- # - 'keyframes'
- # - 'list-style'
- # - 'list-style-image'
- # - 'opacity'
- # - 'order'
- # - 'selection'
- # - 'text-shadow'
- # - 'transform'
- # - 'transform-origin'
- # - 'transition'
- # - 'transition-delay'
- # - 'transition-duration'
- # - 'transition-property'
- # - 'transition-timing-function'
- # - 'word-break'
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#debugstatement
- # Ça nous permet d'être sure qu'on ne laisse pas trainer de @debug inutile
- DebugStatement:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#declarationorder
- # Ça permet de garantir un cohérence de lisibilité du code d'un projet à
- # l'autre et d'une personne à l'autre.
- DeclarationOrder:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#duplicateproperty
- # Dans la mesure ou ça ne gère pas les exceptions acceptables (background
- # avec couleur hexa et rgba par exemple) on le désactive.
- DuplicateProperty:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#elseplacement
- # Ça permet de garantir la cohérence d'écriture de code. le parti pris et de
- # mettre les `@else` sur un e nouvelle ligne.
- ElsePlacement:
- enabled: true
- style: new_line
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#emptylinebetweenblocks
- # Encore une fois, c'est uniquement pour garantir la cohérence de code
- EmptyLineBetweenBlocks:
- enabled: true
- ignore_single_line_blocks: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#emptyrule
- # C'est pour éviter de laisser traîner des trucs qui servent à rien dans le code
- EmptyRule:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#emptyrule
- # C'est pour donner de la cohérence avec les autres fichier (en particulier JS)
- # Le plus simple est de configurer votre éditeur pour qu'il rajoute automatiquement
- # cette ligne vide (c'est la configuration recommandé dans notre fichier .editorconfig)
- FinalNewline:
- enabled: true
- present: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#hexlength
- # On n'impose pas la longueur des couleurs hexadécimal car ça n'a pas d'impact sur la lisibilité
- HexLength:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#hexnotation
- # On n'impose pas la longueur des couleurs hexadécimal car ça n'a pas d'impact sur la lisibilité
- HexNotation:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#hexvalidation
- # Si on écrit des couleurs hexadécimal, on s'assure qu'elle le sont correctement.
- HexValidation:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#idselector
- # En théorie oui, dans la pratique non.
- IdSelector:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#importantrule
- # En théorie oui, dans la pretique non.
- ImportantRule:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#importpath
- # Permet de garantir que les chemin d'import sont toujours écrit de manière normé et compact
- ImportPath:
- enabled: true
- leading_underscore: false
- filename_extension: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#indentation
- # La encore c'est pour assurer un cohérence avec ce qu'on fait dans d'autre langage.
- Indentation:
- enabled: true
- allow_non_nested_indentation: false
- width: 2
- character: space
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#leadingzero
- # Ça ne change pas fondamentalement la lisibilité, on laisse donc chacun faire comme il veut.
- LeadingZero:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#mergeableselector
- # Permet de garantir qu'on ne définie pas deux fois le même sélecteur et qu'à chaque
- # fois qu'on peut faire une imbrication de sélecteur, celle-ci est faite.
- MergeableSelector:
- enabled: true
- force_nesting: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#nameformat
- # Notre convention de nommage pour les mixins et fonctions est
- # "tout en minuscule avec traits d'union comme séparateur".
- NameFormat:
- enabled: true
- allow_leading_underscore: false
- convention: hyphenated_lowercase
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#nestingdepth
- # On limite l'imbrication des sélecteurs pour éviter d'avoir des sélecteurs trop lourds.
- NestingDepth:
- enabled: true
- max_depth: 5
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#placeholderinextend
- # Even if it's a good idea, we sometimes extend classes
- PlaceholderInExtend:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#propertycount
- # Nous n'avons pas de règles spécifique sur cette question.
- PropertyCount:
- enabled: false
- # include_nested: false
- # max_properties: 5
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#propertysortorder
- # Beaucoup trop lourd et sujet à controverse dans notre contexte.
- PropertySortOrder:
- enabled: false
- # ignore_unspecified: false
- # order: nil # Ordre alphabétique
- # separate_groups: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#propertyspelling
- # On ne vérifie pas l'usage de propriété inconnus
- PropertySpelling:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#qualifyingelement
- # Seul les sélecteurs d'attribut peuvent être spécialisé à l'aide d'un sélecteur d'élément.
- QualifyingElement:
- enabled: true
- allow_element_with_attribute: true
- allow_element_with_class: false
- allow_element_with_id: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#selectordepth
- # On s'assure qu'on est cohérent avec la règle NestingDepth
- SelectorDepth:
- enabled: true
- max_depth: 5
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#selectorformat
- # Clever Age utilise la convention BEM
- SelectorFormat:
- enabled: false
- # convention: BEM
- # ignored_types:
- # ignored_names:
- # attribute_convention: hyphenated_lowercase
- # class_convention: hyphenated_lowercase
- # id_convention: hyphenated_lowercase
- # placeholder_convention: hyphenated_lowercase
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#shorthand
- # A chaque fois que c'est possible on préférera les notations compact
- Shorthand:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#singlelineperproperty
- # Cette propriété garantie un code plus lisible
- SingleLinePerProperty:
- enabled: true
- allow_single_line_rule_sets: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#singlelineperselector
- # Le principale intéret de forcer un selecteur par ligne c'est d'avoir
- # des diff de version GIT plus facile à lire
- SingleLinePerSelector:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#spaceaftercomma
- # Là encore il s'agit d'améliorer la lisibilité
- SpaceAfterComma:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#spaceafterpropertycolon
- # Améliore la lisibilité mais sans être trop contraignant
- SpaceAfterPropertyColon:
- enabled: true
- style: at_least_one_space
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#spaceafterpropertyname
- # Améliore la lisibilité an garantissant que ":" est toujours collé au nom de propriété CSS
- SpaceAfterPropertyName:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#spacebeforebrace
- # La convention est de toujours mettre un espace entre un sélecteur est une accolade
- # On demande a ce que l'accolage soit sur la même ligne que le sélecteur pour que les
- # éditeur de code puisse proposer du folding le plus compact possible.
- SpaceBeforeBrace:
- enabled: true
- style: space
- allow_single_line_padding: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#spacebetweenparens
- # La convention est de ne pas avoir d'espace entre les parenthèses.
- # Ainsi, hsl(0, 100%, 50%) ne sera jamais écris hsl( 0, 100%, 50% )
- SpaceBetweenParens:
- enabled: true
- spaces: 0
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#stringquotes
- # Il n'y a pas de consensus claire sur la question
- StringQuotes:
- enabled: false
- # style: single_quotes # ou double_quotes
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#trailingsemicolon
- # On garantis que les règles se termine toujours bien par un point-virgule
- TrailingSemicolon:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#trailingzero
- # On garantis qu'on ne laisse pas traîner de zéro inutiles
- TrailingZero:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#unnecessarymantissa
- # Même chose que pour la propriété précédente, on ne laisse pas traîner de zéro inutile
- UnnecessaryMantissa:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#unnecessaryparentreference
- # On s'assure qu'on ne met pas de référence & qui ne servent à rien
- UnnecessaryParentReference:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#urlformat
- # On ne force pas de règle particulière sur les URL
- UrlFormat:
- enabled: false
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#urlquotes
- # Cohérence avec d'autre notation Sass
- UrlQuotes:
- enabled: true
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#variableforproperty
- # L'usage de variables n'est pas obligatoire
- VariableForProperty:
- enabled: false
- # properties:
- # - color
- # - font
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#vendorprefix
- # Pas de préfixe vendeur dans notre code. On utilise Autoprefixer pour ça.
- VendorPrefixes:
- enabled: true
- identifier_list: base # ou bourbon si on utilise cette bibliothèque
- additional_identifiers: []
- excluded_identifiers: []
-
- # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md#zerounit
- # On ne met pas d'unité sur la valeur zéro
- ZeroUnit:
- enabled: true
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index 5637b26..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,6 +0,0 @@
-source 'https://rubygems.org'
-
-gem 'compass', '1.0.3' # Compass
-gem 'sass', '3.4.18' # Sass, évite les mauvaises surprises
-gem 'oily_png', '1.2.0' # OilyPNG, accélère la création des sprites
-gem 'scss_lint', '0.42.2' # Linting des fichiers de style
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index eeda174..0000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,37 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- chunky_png (1.3.4)
- compass (1.0.3)
- chunky_png (~> 1.2)
- compass-core (~> 1.0.2)
- compass-import-once (~> 1.0.5)
- rb-fsevent (>= 0.9.3)
- rb-inotify (>= 0.9)
- sass (>= 3.3.13, < 3.5)
- compass-core (1.0.3)
- multi_json (~> 1.0)
- sass (>= 3.3.0, < 3.5)
- compass-import-once (1.0.5)
- sass (>= 3.2, < 3.5)
- ffi (1.9.10)
- multi_json (1.11.2)
- oily_png (1.2.0)
- chunky_png (~> 1.3.1)
- rainbow (2.0.0)
- rb-fsevent (0.9.6)
- rb-inotify (0.9.5)
- ffi (>= 0.5.0)
- sass (3.4.18)
- scss_lint (0.42.2)
- rainbow (~> 2.0)
- sass (~> 3.4.15)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- compass (= 1.0.3)
- oily_png (= 1.2.0)
- sass (= 3.4.18)
- scss_lint (= 0.42.2)
diff --git a/config.rb b/config.rb
deleted file mode 100644
index ccbb92c..0000000
--- a/config.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-# Nombre de décimal après la virgule, utile pour la précision des em
-Sass::Script::Number.precision = 8
-
-# Add node_modules directory as path to resolve import
-additional_import_paths = ['node_modules']
-
-# Load compass plugin by gems :
-# require 'sass-globbing'
-
-# Configuration des chemins des ressources:
-sass_dir = './src/css'
-images_dir = './src/assets/img'
-javascripts_dir = './src/js'
-fonts_dir = './src/assets/fonts'
-css_dir = './build/css'
-
-# Configuration des chemins HTTP
-http_path = ''
-http_stylesheets_path = ''
-http_images_path = '../img'
-http_javascripts_path = '../js'
-http_fonts_path = '../fonts'
-
-# Configuration spécifique à chaque environement
-if environment == :production
- # options de sortie
- output_style = :compressed
-else
- # options de sortie
- output_style = :expanded
-end
-
-
-# Supprimer le hash générer par compass sur le nom des sprites
-on_sprite_saved do |filename|
- if File.exists?(filename)
- FileUtils.cp filename, filename.gsub(%r{-s[a-z0-9]{10}\.png$}, '.png')
- end
-end
-
-# Remplacer les reférence au sprite avec hash dans la CSS par ceux sans hash
-on_stylesheet_saved do |filename|
- if File.exists?(filename)
- css = File.read filename
- File.open(filename, 'w+') do |f|
- f << css.gsub(%r{-s[a-z0-9]{10}\.png}, '.png')
- end
- end
-end
diff --git a/package.json b/package.json
index 49e1cef..cc52c60 100644
--- a/package.json
+++ b/package.json
@@ -3,11 +3,7 @@
"homepage": "https://github.com/cleverage/garden-starter-kit",
"title": "Garden Starter Kit",
"description": "Set de base pour les projets Garden statiques.",
-<<<<<<< d464be779a04eb7d45f44b437c2a220e248805df
- "version": "2.0.0-beta7",
-=======
- "version": "2.0.0-beta6",
->>>>>>> Replace jshint and jscs by eslint #81
+ "version": "2.0.0-beta8",
"license": "MIT",
"repository": {
"type": "git",
@@ -32,6 +28,7 @@
"gulp-less": "3.3.0",
"gulp-plumber": "1.1.0",
"gulp-postcss": "6.4.0",
+ "gulp-sass": "3.1.0",
"gulp-sourcemaps": "2.4.1",
"gulp-stylus": "2.6.0",
"gulp-svgstore": "6.1.0",
@@ -39,6 +36,8 @@
"gulp-util": "3.0.8",
"jquery": "3.2.1",
"lazypipe": "1.0.1",
+ "node-sass": "4.5.0",
+ "node-sass-import": "1.1.1",
"merge-stream": "1.0.1",
"require-dir": "0.3.1",
"run-sequence": "1.2.2",
@@ -48,7 +47,7 @@
"vinyl-source-stream": "1.1.0",
"webpack": "2.3.1",
"webpack-stream": "3.2.0",
- "yargs": "6.6.0"
+ "yargs": "7.0.2"
},
"devDependencies": {
"browser-sync": "2.18.8",
@@ -60,20 +59,20 @@
"gulp-hb": "6.0.2",
"gulp-hbs": "0.2.0",
"gulp-help": "1.6.1",
- "gulp-lesshint": "2.1.0",
+ "gulp-lesshint": "3.0.0",
"gulp-markdown": "1.2.0",
"gulp-newer": "1.3.0",
"gulp-prompt": "0.2.0",
"gulp-rename": "1.2.2",
+ "gulp-sass-lint": "1.3.2",
"gulp-scss-lint": "0.4.0",
"gulp-sftp": "0.1.5",
"gulp-stylint": "4.0.0",
+ "gulp-svgstore": "6.0.0",
"gulp-twig": "0.7.0",
"kss": "3.0.0-beta.18",
- "nproxy": "stephane-tessier/nproxy#1.7.1"
- },
- "scripts": {
- "install": "bundle install --path .gems"
+ "nproxy": "stephane-tessier/nproxy#1.7.1",
+ "sass-lint": "1.10.2"
},
"engines": {
"node": ">= 5.0.3",
diff --git a/readme.dist.md b/readme.dist.md
index 27ee82a..53044cb 100644
--- a/readme.dist.md
+++ b/readme.dist.md
@@ -179,8 +179,7 @@ $ gulp live --relax
$ gulp live --doc
```
-**build** : Contruit la version statique du projet (compile les fichiers Sass,
-assemble les fichiers HTML, etc.)
+**build** : Contruit la version statique du projet (compile les fichiers Sass, assemble les fichiers HTML, etc.)
```bash
$ gulp build
@@ -235,17 +234,17 @@ $ gulp sftp-deploy
Outils utilisés
-------------------------------------------------------------------------------
-Les outils listés ici doivent êtres utilisés obligatoirement lorsqu'on démarre
-un nouveau projet d'intégration. Ils garantissent un _workflow_ de travail optimal.
+Les outils listés ici doivent êtres utilisés obligatoirement lorsqu’on démarre un nouveau projet d’intégration. Ils garantissent un _workflow_ de travail optimal.
* [Gulp](http://gulpjs.com/)
* [Linter](.gsk/docs/linter.md)
Les outils listés ci-après sont à utiliser et à configurer pour votre projet.
-Ils sont tous utilisables tel quel, mais le _starter kit_ est suffisamment flexible pour s'adapter à vos besoins. Le choix d'utilisation de ces outils se fait via le fichier `.gsk/config.json`, voir les instructions de configuration ci-après :
+Ils sont tous utilisables tels quels, mais le _starter kit_ est suffisamment flexible pour s’adapter à vos besoins. Le choix d'utilisation de ces outils se fait via le fichier `.gsk/config.json`, voir les instructions de configuration ci-après :
### CSS
-* [Sass/Compass](.gsk/docs/css/sass.md) [Recommandé]
+* [Sass](.gsk/docs/css/sass.md) [Recommandé]
+* ~~[Sass/Compass](.gsk/docs/css/compass.md)~~
* ~~[Stylus](.gsk/docs/css/stylus.md)~~
* ~~[LESS](.gsk/docs/css/less.md)~~
diff --git a/readme.md b/readme.md
index 870474e..437264b 100644
--- a/readme.md
+++ b/readme.md
@@ -59,7 +59,8 @@ Les outils listés ci-après sont à configurer via le fichier `.gsk/config.json
Voir les instructions de configuration ci-après :
#### CSS
-* [Sass/Compass](.gsk/docs/css/sass.md) [Recommandé]
+* [Sass](.gsk/docs/css/sass.md) [Recommandé]
+* [Sass/Compass](.gsk/docs/css/compass.md)
* [Stylus](.gsk/docs/css/stylus.md)
* [LESS](.gsk/docs/css/less.md)
* Si vous ne choisissez pas de préprocesseur, le projet n’utilisera que PostCss
diff --git a/src/css/doc.scss b/src/css/doc.scss
index fce898e..3403786 100644
--- a/src/css/doc.scss
+++ b/src/css/doc.scss
@@ -17,7 +17,6 @@ $color-fg-dark-cell: #FFFFFF;
$color-fg-light-cell: $darker-grey;
$color-bg-light-cell: #FFFFFF;
-
// Grid
$column: 4rem;
$gap: 1rem;
diff --git a/src/css/styleguide.md b/src/css/styleguide.md
index d19aaac..526761d 100644
--- a/src/css/styleguide.md
+++ b/src/css/styleguide.md
@@ -1,4 +1,4 @@
Guide des styles
===============================================================================
-Page d'accueil du guide des styles en markdown.
+Page d’accueil du guide des styles en markdown.
diff --git a/src/css/styles.scss b/src/css/styles.scss
index ef94bdc..c2b2bf5 100644
--- a/src/css/styles.scss
+++ b/src/css/styles.scss
@@ -3,61 +3,60 @@
// --------------------------
/// Générez un guide des styles
- //
- // Si vous commentez votre code en utilisant la syntaxe
- // [KSS](https://github.com/kss-node/kss/blob/spec/SPEC.md),
- // le Starter Kit generera un guide des styles dans la
- // documentation a chaque build du projet.
- //
- // Styleguide Introduction
-
+//
+// Si vous commentez votre code en utilisant la syntaxe
+// [KSS](https://github.com/kss-node/kss/blob/spec/SPEC.md),
+// le Starter Kit generera un guide des styles dans la
+// documentation a chaque build du projet.
+//
+// Styleguide Introduction
/// Une palette de couleur
- //
- // Si vous voulez documenter des couleurs, vous pouvez
- // le faire de cette manière grace au block Colors.
- //
- // Colors:
- // denim : #1e5bc6
- // flamingo : #f15145
- // alert : #f33121 - red for error
- // $color-black : #000 - real black
- //
- // Styleguide Introduction.Couleur
+//
+// Si vous voulez documenter des couleurs, vous pouvez
+// le faire de cette manière grace au block Colors.
+//
+// Colors:
+// denim : #1e5bc6
+// flamingo : #f15145
+// alert : #f33121 - red for error
+// $color-black : #000 - real black
+//
+// Styleguide Introduction.Couleur
/// Font d’icon Fontello
- //
- // De la même façon que pour les fonts grace au block
- // Icons vous pouvez documenter les icons de la font.
- //
- // Implique que la font d'icon se nomme fontello
- // Sinon il faut changer celle-ci dans doc.scss
- //
- // Icons:
- // left : ←
- // up : ↑
- // right : →
- // down : ↓
- // comment : 💬 - bulle
- //
- // Styleguide Introduction.Icons
-
+//
+// De la même façon que pour les fonts grâce au block
+// Icons vous pouvez documenter les icons de la font.
+//
+// Implique que la font d’icon se nomme fontello
+// Sinon il faut changer celle-ci dans doc.scss
+//
+// Icons:
+// left : ←
+// up : ↑
+// right : →
+// down : ↓
+// comment : 💬 - bulle
+//
+// Styleguide Introduction.Icons
/// Exemple UI
- //
- // Markup: ../html/partials/_exemple.twig
- //
- // Styleguide Introduction.UI
+//
+// Markup: ../html/partials/_exemple.twig
+//
+// Styleguide Introduction.UI
/// SVG
- //
- // Markup:
- //
- //
- // Styleguide Introduction.Svg
+//
+// Markup:
+//
+//
+// Styleguide Introduction.Svg
body {
font: 1em sans-serif;
+ background: url('../img/clever-age-logo.png') no-repeat top right;
}