From 35298b42f7f380b2df98f4e93e3764adf71ab902 Mon Sep 17 00:00:00 2001 From: CreativeJuiz Date: Thu, 2 Apr 2015 16:26:55 +0200 Subject: [PATCH] =?UTF-8?q?passage=20=C3=A0=20la=20v4.x.x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 10 + .gitignore | 4 + README.md | 78 +- bower.json | 2 +- changelog.md | 35 + css/knacss-unminified.css | 1793 ++++++++++++++++++------------ css/knacss-unminified.css.map | 1 + css/knacss.css | 5 +- css/knacss.css.map | 1 + doc/00-commencer.md | 70 ++ doc/01-typo-et-reset.md | 34 + doc/02a-layout-alignements.md | 64 ++ doc/02b-layout-positionnement.md | 172 +++ doc/03-grilles.md | 222 ++++ doc/04-tableaux.md | 38 + doc/05-formulaires.md | 12 + doc/06-helpers.md | 148 +++ doc/07-responsive.md | 118 ++ doc/08-print.md | 77 ++ doc/09-misc.md | 71 ++ doc/10-styling.md | 11 + doc/11-wordpress.md | 5 + doc/illust/02-layout.png | Bin 0 -> 26057 bytes doc/illust/03-double.PNG | Bin 0 -> 32303 bytes doc/illust/03-first.PNG | Bin 0 -> 35068 bytes doc/illust/03-grid-even.png | Bin 0 -> 42700 bytes doc/illust/03-grid-uneven.png | Bin 0 -> 29966 bytes doc/illust/03-layout1.png | Bin 0 -> 46614 bytes doc/illust/03-layout2.png | Bin 0 -> 60329 bytes doc/illust/03-layout3.png | Bin 0 -> 42890 bytes doc/illust/03-layout4.png | Bin 0 -> 95516 bytes doc/illust/03-offset.png | Bin 0 -> 16200 bytes doc/illust/schnapsit.png | Bin 0 -> 40898 bytes less/_00-config.less | 96 +- less/_01a-normalize.less | 427 +++++++ less/_01b-base.less | 255 +++++ less/_02-layout.less | 135 +++ less/_03-grids.less | 234 ++-- less/_04-tables.less | 2 +- less/_05-forms.less | 32 +- less/_06-helpers.less | 297 +++++ less/_07-responsive.less | 372 +++++++ less/_08-print.less | 94 ++ less/_09-misc.less | 55 + less/_10-styling.less | 141 +++ less/_11-wordpress.less | 302 +++++ less/knacss.less | 33 +- package.json | 24 + sass/_00-config.scss | 111 +- sass/_01a-normalize.scss | 427 +++++++ sass/_01b-base.scss | 248 +++++ sass/_02-layout.scss | 135 +++ sass/_03-grids.scss | 234 ++-- sass/_04-tables.scss | 2 +- sass/_05-forms.scss | 32 +- sass/_06-helpers.scss | 296 +++++ sass/_07-responsive.scss | 371 +++++++ sass/_08-print.scss | 93 ++ sass/_09-misc.scss | 55 + sass/_10-styling.scss | 139 +++ sass/_11-wordpress.scss | 302 +++++ sass/knacss.scss | 33 +- 62 files changed, 6786 insertions(+), 1162 deletions(-) create mode 100644 .editorconfig create mode 100644 changelog.md create mode 100644 css/knacss-unminified.css.map create mode 100644 css/knacss.css.map create mode 100644 doc/00-commencer.md create mode 100644 doc/01-typo-et-reset.md create mode 100644 doc/02a-layout-alignements.md create mode 100644 doc/02b-layout-positionnement.md create mode 100644 doc/03-grilles.md create mode 100644 doc/04-tableaux.md create mode 100644 doc/05-formulaires.md create mode 100644 doc/06-helpers.md create mode 100644 doc/07-responsive.md create mode 100644 doc/08-print.md create mode 100644 doc/09-misc.md create mode 100644 doc/10-styling.md create mode 100644 doc/11-wordpress.md create mode 100644 doc/illust/02-layout.png create mode 100644 doc/illust/03-double.PNG create mode 100644 doc/illust/03-first.PNG create mode 100644 doc/illust/03-grid-even.png create mode 100644 doc/illust/03-grid-uneven.png create mode 100644 doc/illust/03-layout1.png create mode 100644 doc/illust/03-layout2.png create mode 100644 doc/illust/03-layout3.png create mode 100644 doc/illust/03-layout4.png create mode 100644 doc/illust/03-offset.png create mode 100644 doc/illust/schnapsit.png create mode 100644 less/_01a-normalize.less create mode 100644 less/_01b-base.less create mode 100644 less/_02-layout.less create mode 100644 less/_06-helpers.less create mode 100644 less/_07-responsive.less create mode 100644 less/_08-print.less create mode 100644 less/_09-misc.less create mode 100644 less/_10-styling.less create mode 100644 less/_11-wordpress.less create mode 100644 package.json create mode 100644 sass/_01a-normalize.scss create mode 100644 sass/_01b-base.scss create mode 100644 sass/_02-layout.scss create mode 100644 sass/_06-helpers.scss create mode 100644 sass/_07-responsive.scss create mode 100644 sass/_08-print.scss create mode 100644 sass/_09-misc.scss create mode 100644 sass/_10-styling.scss create mode 100644 sass/_11-wordpress.scss diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..e3cdfbd --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# editorconfig.org +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true \ No newline at end of file diff --git a/.gitignore b/.gitignore index c1bb859..5700861 100644 --- a/.gitignore +++ b/.gitignore @@ -162,3 +162,7 @@ pip-log.txt # Mac crap .DS_Store /README 1.md +*.cfg + +# parce qu'on s'en fout +*.log \ No newline at end of file diff --git a/README.md b/README.md index 9a48168..e2f29dd 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,69 @@ -KNACSS -====== +# KNACSS + http://www.knacss.com -KNACSS is a minimalist, responsive and extensible style sheet to kick-start your HTML / CSS projects. +KNACSS, c'est un peu comme une feuille de style CSS "reset" sur-vitaminée qui permet de commencer un projet à partir de zéro tout en tenant compte de bonnes pratiques générales (accessibilité, performance, responsive webdesign). -Designed by [Alsacreations agency](http://alsacreations.fr) and used on a daily basis in production, KNACSS is not only a lightweight documented framework but also a CSS reset, adapted to every project no matter its size. +
-It handles basic elements, box sizing, margins, floats, simple and complex aligns, positioning, layout grids, gutters, old IE fallbacks and last but not least responsiveness, everything automagically! +**KNACSS 4 est sorti, voir toutes les modifications dans le [Changelog](https://github.com/raphaelgoetter/KNACSS/blob/master/changelog.md)** -Installation ------------ -There is nothing to install. It is only a CSS file you can call as usual in the head of your document with a link element: +
- +KNACSS prend en charge les styles de base, mais également la typographie, les modèles de boîte, les alignements et positionnements d'éléments, les grilles de mise en page, dans l'esprit d'être adapté à toutes les tailles d'écran (reponsive). Le tout automatiquement ! -You can also install KNACSS with [Bower](http://bower.io/) : ```bower install knacss``` +Conçu par l'agence web [Alsacreations.fr](http://alsacreations.fr) et pensé pour être couplé avec des préprocesseurs tels que LESS ou Sass, le micro-framework KNACSS est employé quotidiennement sur toute sorte de projets web quel que soit son type ou son envergure. -… Or you can also choose the KNACSS Builder : http://knacss.com/builder/ +## Installation + +La version courte est "il n'y a rien à installer". + +Selon votre environnement de travail vous suffit de récupérer la feuille de styles : + +- en version [CSS classique](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/css/knacss-unminified.css) (ou [minifié](vhttps://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/css/knacss.css)) +- en version [LESS](https://github.com/raphaelgoetter/KNACSS/tree/master/less) +- en version [Sass](https://github.com/raphaelgoetter/KNACSS/tree/master/sass) + +_Les versions LESS et Sass seront bien évidemment plus malléables grâce à l'apport de variables et fonctions._ + +À noter que KNACSS est basé sur un socle [Normalize.css](http://necolas.github.io/normalize.css/), célèbre - et éprouvé - reset CSS employé par Twitter, Github, Bootstrap, Guardian, etc. + +## Usage + +KNACSS n'est constitué que d'un seul fichier CSS (minifié ou non selon vos goûts), qu'il vous suffit d'ajouter à votre page HTML : + + + +Il est également possible de l'installer (toutes versions) via [Bower](http://bower.io/) : ```bower install knacss``` + +## RTFM! + +KNACSS se veut être un outil simple (contrairement aux usines à gaz que sont Bootstrap ou Foundation), mais évolutif. +La contrepartie est que cela nécessite de votre part de bonnes connaissances en CSS et un petit effort de compréhension et de d'apprentissage des mécanismes de l'outil. + +Une [**documentation**](https://github.com/raphaelgoetter/KNACSS/tree/master/doc) détaillée et illustrée est en cours de rédaction. Je vous invite vivement à la parcourir avant de vous jeter sur KNACSS. -Usage ------ -KNACSS is a collection of ready to use styles and snippets to kick-start your project. Feel free to use it as a “reset”, then make it grow to suit your needs. -Take the time to read the documentation before jumping in. Indeed, KNACSS doesn’t always suit beginners’ needs since a little thing can have big consequences. +## Préprocesseurs -## Vendor Prefixes +KNACSS est conçu et pensé pour être adapté aux préprocesseurs que sont LESS et Sass. Nous employons LESS en interne, nos fichiers de travail sont donc des `.less` et non des `.css` (cela fonctionne aussi avec Sass). -If you use one of the pre-processed version of KNACSS (LESS / Sass), beware that all the properties are declared **without vendor prefixes** (-webkit-,-moz-,-ms-,…), to gain clarity, and length of initial code. +Si, comme nous, vous intégrez à l'aide de préprocesseurs, KNACSS va vous faciliter la vie dès le début du projet puisqu'un [fichier de configuration](https://github.com/raphaelgoetter/KNACSS/blob/master/less/_00-config.less) contenant toutes les variables du projet est intégré. +Libre à vous de le modifier selon les contraintes de votre projet. -You will certainly need to add these vendor prefixes yourself (this is usually done automatically today with Autoprefixer, [Mixture](http://mixture.io), [Prepros](http://alphapixels.com/prepros/), [Grunt](http://gruntjs.com), etc.). +**Attention**, si vous importez KNACSS automatiquement via Bower par exemple (dans un dossier `vendor`), ce fichier de configuration risque d'être écrasé à chaque mise à jour de KNACSS. Nous vous invitons à en faire une copie dans votre dossier de travail et à commenter l'appel au fichier de config de `vendor`. -Useful links ------------- -* Website and download : http://knacss.com -* Documentation : http://knacss.com/doc.html -* Commented code : http://knacss.com/knacss.html +### Préfixes navigateurs + +Certaines fonctionnalités avancées de KNACSS nécessitent d'employer toute une panoplie de préfixes CSS (`-webkit-`, `-moz-`, `-ms-`, ...) pour être certain que les propriétés CSS fonctionneront partout. + +Au sein de la version classique CSS de KNACSS, l'ensemble des préfixes est présent, **vous n'avez donc pas à vous en soucier** (paramètres de Autoprefixer : "last 2 versions"). + +**Par contre, dans les versions LESS et Sass de KNACSS, les préfixes n'apparaissent pas** pour ne pas polluer la lecture du fichier de travail. **Il vous sera donc nécessaire de les ajouter**, de préférence automatiquement grâce à un plugin ou aux excellents outils que sont [autoprefixer](https://github.com/postcss/autoprefixer) ou [pleeease](http://pleeease.io/). + +## Liens utiles + +* Site web de KNACSS : http://knacss.com +* [**Documentation détaillée**](https://github.com/raphaelgoetter/KNACSS/tree/master/doc) +* Sur Alsacreations.com : ["découverte du framework KNACSS"](http://www.alsacreations.com/tuto/lire/1577-decouverte-du-framework-css-KNACSS.html) +* Générateur de gabarits HTML/CSS : ["Schnaps.it"](http://schnaps.it/) diff --git a/bower.json b/bower.json index 3e17d35..790fd3a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "KNACSS", - "version": "3.1.0", + "version": "4.1.1", "homepage": "http://www.knacss.com/", "authors": [ "Raphaël GOETTER, Alsacreations" diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..5d05982 --- /dev/null +++ b/changelog.md @@ -0,0 +1,35 @@ +# changelog v4.1.1 (30 mars 2015) + +## Vite fait + +* grosse remise à jour, orientée vers les technos modernes (flexbox, rem, calc, ...) et moins de "bidouille" +* fin du support d'IE6-IE8 Si vous souhaitez utiliser KNACSS sur d'anciens navigateurs, préférez la [Version 3](https://github.com/raphaelgoetter/KNACSS/tree/3.1.0) +* ajout du reset [normalize.css](http://necolas.github.io/normalize.css/) +* un grand merci à @7studio pour ses conseils et observations sur la version beta de KNACSS 4.0 +* attention : rétrocompatibilité non préservée pour certaines classes ( .left, .start, .txtleft, .fl, .table-, .flex-start, .flex-end) +* attention : rétrocompatibilité non préservée pour les grilles de mise en page (passage à flexbox et simplification de la structure) + +## done + +* documentation en français +* gros ménage de printemps (gros nettoyage de tous les espaces et tabulations disgrâcieux) +* dans la section "quick print reset", ajout des classes .p-like, h1-like, h2-like etc. +* mise en commun globale de tous les styles p avec .p-like (h1 et h1-like, etc.). +* déplacement et commentaire sur la règle body > script +* correction du bug des height: auto sur les images au format SVG +* meilleure intégration de box-sizing +* suppression du fichier dédié aux réglages des bugs des anciennes versions d'IE6-IE8 +* fin du support d'IE9 pour les grilles : KNACSS v4 compatible IE10+ pour ce qui concerne les mises en page en grilles (flexbox FTW!) +* réorganisation des fichiers (le fichier dédié "IE.css" disparait, le fichier "booleans" devient "misc" (plus cohérent), le fichier "gmaps" est désormais inclus dans "misc") +* ajout des préfixes ".table-" devant les styles de décoration des tableaux +* suppression du fichier icons.css, statistiquement inutile en pratique +* meilleure cohérence de nommage entre .left, .start, .txtleft, .fl +* ajout d'un fichier de reset dédié à WordPress +* refonte intégrale des grilles en Flexbox (et en plus ça marche sur IE10 !) +* ajout d'un fichier .editorconfig (http://editorconfig.org/) +* passage des :before/:after en ::before/::after +* ajout de sourcemaps CSS +* suppression des images noir et blanc forcées en media print +* correction de la formule LESS `{calc(1em * .625);` +* ajout du reset [normalize.css](http://necolas.github.io/normalize.css/) +* mise à jour du générateur de gabarits [Schnaps.it](http://schnaps.it/) diff --git a/css/knacss-unminified.css b/css/knacss-unminified.css index 59cc4a5..dd5ac0f 100644 --- a/css/knacss-unminified.css +++ b/css/knacss-unminified.css @@ -1,21 +1,371 @@ /*! -* www.KNACSS.com V3.1.0 (2014-10-20) @author: Raphael Goetter, Alsacreations +* www.KNACSS.com V4.1.1 (2015-03-30) @author: Raphael Goetter, Alsacreations * Licence WTFPL http://www.wtfpl.net/ */ +/*! normalize.css v3.0.2 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100% + /* 2 */ +} +/** + * Remove default margin. + */ +body { + margin: 0; +} +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline + /* 2 */ +} +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; +} +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; +} +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ +a:active, +a:hover { + outline: 0; +} +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; +} +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; +} +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; +} +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; +} +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; +} +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; +} +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; +} +/** + * Address differences between Firefox and other browsers. + */ +hr { + box-sizing: content-box; + height: 0; +} +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; +} +/** + * Address odd `em`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0 + /* 3 */ +} +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; +} +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; +} +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer + /* 3 */ +} +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; +} +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; +} +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0 + /* 2 */ +} +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + /* 2 */ + box-sizing: content-box; +} +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0 + /* 2 */ +} +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; +} +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; +} +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} /* ----------------------------- */ /* == soft reset */ /* ----------------------------- */ -/* switching box model for all elements */ -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; +/* switching to border-box model for all elements */ +html { box-sizing: border-box; } -/* soft reset */ -html, -body { - margin: 0; - padding: 0; +* { + box-sizing: inherit; } ul, ol { @@ -25,23 +375,17 @@ ul.unstyled { list-style: none; } img { - height: auto; vertical-align: middle; - border: 0; +} +/* height auto only for non SVG images */ +img:not([src$=".svg"]) { + height: auto; } blockquote, figure { margin-left: 0; margin-right: 0; } -audio, -canvas, -video { - display: inline-block; -} -svg:not(:root) { - overflow: hidden; -} /* ----------------------------- */ /* == typography */ /* ----------------------------- */ @@ -50,8 +394,7 @@ html { font-size: 62.5%; /* IE9-IE11 math fixing. See http://bit.ly/1g4X0bX */ /* thanks to @guardian, @victorbritopro and @eQRoeil */ - font-size: -webkit-calc(0.625em); - font-size: calc(0.625em); + font-size: calc(1em * .625); /* disallow text zooming on orientation change (non standard property) */ -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; @@ -119,19 +462,19 @@ h6, } /* alternate font-sizing */ .smaller { - font-size: 0.71em; + font-size: 0.6em; } .small { - font-size: 0.86em; + font-size: 0.8em; } .big { - font-size: 1.14em; + font-size: 1.2em; } .bigger { - font-size: 1.29em; + font-size: 1.5em; } .biggest { - font-size: 1.43em; + font-size: 2em; } code, pre, @@ -140,22 +483,17 @@ kbd { /* IE fix */ white-space: pre-line; white-space: pre-wrap; - font-family: Consolas, 'DejaVu Sans Mono', Courier, monospace; + font-family: Consolas, "DejaVu Sans Mono", Courier, monospace; line-height: normal; } em, .italic, address, cite, -dfn, i, var { font-style: italic; } -strong, -.bold { - font-weight: bold; -} small, sub, sup { @@ -174,9 +512,6 @@ sup { overflow: hidden !important; clip: rect(1px, 1px, 1px, 1px) !important; } -body > script { - display: none !important; -} @media (max-width: 768px) { .no-small-screen { display: none; @@ -199,11 +534,17 @@ dl:first-child, blockquote:first-child, pre:first-child, h1:first-child, +.h1-like:first-child, h2:first-child, +.h2-like:first-child, h3:first-child, +.h3-like:first-child, h4:first-child, +.h4-like:first-child, h5:first-child, -h6:first-child { +.h5-like:first-child, +h6:first-child, +.h6-like:first-child { margin-top: 0; } /* avoid margins on nested elements */ @@ -233,7 +574,6 @@ table { /* ----------------------------- */ /* ==layout and modules */ /* ----------------------------- */ -/* float layout */ /* module, gains superpower "BFC" Block Formating Context */ .mod { overflow: hidden; @@ -245,13 +585,51 @@ table { clear: both; } /* blocks that must contain floats */ -.clearfix:after, -.line:after { +.clearfix::after, +.line::after { content: ""; display: table; clear: both; border-collapse: collapse; } +/* simple blocks alignment */ +.left { + margin-right: auto; +} +.right { + margin-left: auto; +} +.center { + margin-left: auto; + margin-right: auto; +} +/* text and contents alignment */ +.txtleft { + text-align: left; +} +.txtright { + text-align: right; +} +.txtcenter { + text-align: center; +} +/* floating elements */ +.fl { + float: left; +} +img.fl { + margin-right: 10px; +} +.fr { + float: right; +} +img.fr { + margin-left: 10px; +} +img.fl, +img.fr { + margin-bottom: 5px; +} /* table layout */ .row { display: table; @@ -263,49 +641,471 @@ table { display: table-cell; vertical-align: top; } +/* no table-cell for script tag when body is a .row */ +body > script { + display: none !important; +} /* inline-block */ .inbl { display: inline-block; vertical-align: top; } -/* alignments (blocks and inline) */ -/* ------------------------------ */ -/* left (or starting) elements */ -.left, -.start { - float: left; +/* flexbox layout +http://www.alsacreations.com/tuto/lire/1493-css3-flexbox-layout-module.html +*/ +.flexbox, +.flexbox-h, +.flexbox-v { + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } -img.left, -img.start { - margin-right: 10px; +.flexbox-v { + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } -/* right (or ending) elements */ -.right, -.end { - float: right; +.flexitem-fluid { + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; } -img.right, -img.end { - margin-left: 10px; +.flexitem-first { + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; } -img.left, -img.right, -img.start, -img.end { - margin-bottom: 5px; +.flexitem-medium { + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } -.center { - margin-left: auto; - margin-right: auto; +.flexitem-last { + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } -.txtleft { +.flexitem-center { + margin: auto; +} +/* ---------------------------------- */ +/* ==Grids */ +/* ---------------------------------- */ +[class*="grid-"] { + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + margin-left: -1em; +} +[class*="grid-"] > * { + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + display: block; + /* IE fix */ + width: calc(100% * 1 / 4 - 1em); + margin-left: 1em; +} +.grid-2 > * { + width: calc(100% * 1 / 2 - 1em); +} +.grid-2 > .flexitem-double { + width: calc(100% * 2 / 2 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-2 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-2 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-2 > * { + width: calc(100% - 1em); + } + .grid-2 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-3 > * { + width: calc(100% * 1 / 3 - 1em); +} +.grid-3 > .flexitem-double { + width: calc(100% * 2 / 3 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-3 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-3 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-3 > * { + width: calc(100% - 1em); + } + .grid-3 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-4 > * { + width: calc(100% * 1 / 4 - 1em); +} +.grid-4 > .flexitem-double { + width: calc(100% * 2 / 4 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-4 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-4 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-4 > * { + width: calc(100% - 1em); + } + .grid-4 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-5 > * { + width: calc(100% * 1 / 5 - 1em); +} +.grid-5 > .flexitem-double { + width: calc(100% * 2 / 5 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-5 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-5 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-5 > * { + width: calc(100% - 1em); + } + .grid-5 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-6 > * { + width: calc(100% * 1 / 6 - 1em); +} +.grid-6 > .flexitem-double { + width: calc(100% * 2 / 6 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-6 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-6 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-6 > * { + width: calc(100% - 1em); + } + .grid-6 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-7 > * { + width: calc(100% * 1 / 7 - 1em); +} +.grid-7 > .flexitem-double { + width: calc(100% * 2 / 7 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-7 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-7 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-7 > * { + width: calc(100% - 1em); + } + .grid-7 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-8 > * { + width: calc(100% * 1 / 8 - 1em); +} +.grid-8 > .flexitem-double { + width: calc(100% * 2 / 8 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-8 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-8 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-8 > * { + width: calc(100% - 1em); + } + .grid-8 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-10 > * { + width: calc(100% * 1 / 10 - 1em); +} +.grid-10 > .flexitem-double { + width: calc(100% * 2 / 10 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-10 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-10 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-10 > * { + width: calc(100% - 1em); + } + .grid-10 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-12 > * { + width: calc(100% * 1 / 12 - 1em); +} +.grid-12 > .flexitem-double { + width: calc(100% * 2 / 12 - 1em); +} +@media (min-width: 481px) and (max-width: 768px) { + .grid-12 > * { + width: calc(100% * 1 / 2 - 1em); + } + .grid-12 > .flexitem-double { + width: calc(100% - 1em); + } +} +@media (max-width: 480px) { + .grid-12 > * { + width: calc(100% - 1em); + } + .grid-12 > .flexitem-double { + width: calc(100% - 1em); + } +} +.grid-2-1 > *:nth-child(odd) { + width: calc(66.66666666666666% - 1em); +} +.grid-2-1 > *:nth-child(even) { + width: calc(33.33333333333333% - 1em); +} +@media (max-width: 480px) { + .grid-2-1 > *:nth-child(n) { + width: calc(100% - 1em); + } +} +.grid-1-2 > *:nth-child(odd) { + width: calc(33.33333333333333% - 1em); +} +.grid-1-2 > *:nth-child(even) { + width: calc(66.66666666666666% - 1em); +} +@media (max-width: 480px) { + .grid-1-2 > *:nth-child(n) { + width: calc(100% - 1em); + } +} +.grid-3-1 > *:nth-child(odd) { + width: calc(75% - 1em); +} +.grid-3-1 > *:nth-child(even) { + width: calc(25% - 1em); +} +@media (max-width: 480px) { + .grid-3-1 > *:nth-child(n) { + width: calc(100% - 1em); + } +} +.grid-1-3 > *:nth-child(odd) { + width: calc(25% - 1em); +} +.grid-1-3 > *:nth-child(even) { + width: calc(75% - 1em); +} +@media (max-width: 480px) { + .grid-1-3 > *:nth-child(n) { + width: calc(100% - 1em); + } +} +.grid-3-2 > *:nth-child(odd) { + width: calc(60% - 1em); +} +.grid-3-2 > *:nth-child(even) { + width: calc(40% - 1em); +} +@media (max-width: 480px) { + .grid-3-2 > *:nth-child(n) { + width: calc(100% - 1em); + } +} +.grid-2-3 > *:nth-child(odd) { + width: calc(40% - 1em); +} +.grid-2-3 > *:nth-child(even) { + width: calc(60% - 1em); +} +@media (max-width: 480px) { + .grid-2-3 > *:nth-child(n) { + width: calc(100% - 1em); + } +} +.grid-4-1 > *:nth-child(odd) { + width: calc(80% - 1em); +} +.grid-4-1 > *:nth-child(even) { + width: calc(20% - 1em); +} +@media (max-width: 480px) { + .grid-4-1 > *:nth-child(n) { + width: calc(100% - 1em); + } +} +.grid-1-4 > *:nth-child(odd) { + width: calc(20% - 1em); +} +.grid-1-4 > *:nth-child(even) { + width: calc(80% - 1em); +} +@media (max-width: 480px) { + .grid-1-4 > *:nth-child(n) { + width: calc(100% - 1em); + } +} +/* ----------------------------- */ +/* ==tables */ +/* ----------------------------- */ +table, +.table { + width: 100%; + max-width: 100%; + table-layout: fixed; + border-collapse: collapse; + vertical-align: top; + border: 1px solid #ccc; +} +.table { + display: table; +} +table#recaptcha_table, +table.table-auto { + table-layout: auto; +} +caption { + padding: 10px; + color: #555; + font-style: italic; +} +td, +th { + padding: 0.3em 0.8em; + border: 1px #aaa dotted; + vertical-align: top; + min-width: 20px; + cursor: default; text-align: left; } -.txtright { - text-align: right; +/* ----------------------------- */ +/* ==forms */ +/* ----------------------------- */ +/* thanks to HTML5boilerplate, +* github.com/nathansmith/formalize and www.sitepen.com +*/ +/* buttons */ +.btn { + display: inline-block; } -.txtcenter { - text-align: center; +/* forms items */ +form, +fieldset { + border: none; +} +input, +button, +select, +label, +.btn { + vertical-align: middle; + font-family: inherit; + font-size: inherit; +} +label { + display: inline-block; + vertical-align: middle; + cursor: pointer; +} +legend { + border: 0; + white-space: normal; +} +textarea { + min-height: 5em; + vertical-align: top; + font-family: inherit; + font-size: inherit; + resize: vertical; +} +/* if select styling bugs on WebKit */ +/* select { -webkit-appearance: none; } */ +/* 'x' appears on right of search input when text is entered. This removes it */ +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-results-button, +input[type="search"]::-webkit-search-results-decoration { + display: none; +} +::-webkit-input-placeholder { + color: #777; +} +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #777; +} +.btn:focus, +input:focus, +button:focus { + outline: 0; + -webkit-tap-highlight-color: transparent; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; } /* ---------------------------------- */ /* ==visual helpers */ @@ -404,10 +1204,12 @@ p,m = padding,margin a,t,r,b,l = all,top,right,bottom,left s,m,l,n = small, medium, large, none */ -.man { +.man, +.ma0 { margin: 0; } -.pan { +.pan, +.pa0 { padding: 0; } .mas { @@ -428,7 +1230,8 @@ s,m,l,n = small, medium, large, none .pal { padding: 40px; } -.mtn { +.mtn, +.mt0 { margin-top: 0; } .mts { @@ -440,7 +1243,8 @@ s,m,l,n = small, medium, large, none .mtl { margin-top: 40px; } -.mrn { +.mrn, +.mr0 { margin-right: 0; } .mrs { @@ -452,7 +1256,8 @@ s,m,l,n = small, medium, large, none .mrl { margin-right: 40px; } -.mbn { +.mbn, +.mb0 { margin-bottom: 0; } .mbs { @@ -464,7 +1269,8 @@ s,m,l,n = small, medium, large, none .mbl { margin-bottom: 40px; } -.mln { +.mln, +.ml0 { margin-left: 0; } .mls { @@ -476,7 +1282,8 @@ s,m,l,n = small, medium, large, none .mll { margin-left: 40px; } -.ptn { +.ptn, +.pt0 { padding-top: 0; } .pts { @@ -488,7 +1295,8 @@ s,m,l,n = small, medium, large, none .ptl { padding-top: 40px; } -.prn { +.prn, +.pr0 { padding-right: 0; } .prs { @@ -500,7 +1308,8 @@ s,m,l,n = small, medium, large, none .prl { padding-right: 40px; } -.pbn { +.pbn, +.pb0 { padding-bottom: 0; } .pbs { @@ -512,7 +1321,8 @@ s,m,l,n = small, medium, large, none .pbl { padding-bottom: 40px; } -.pln { +.pln, +.pl0 { padding-left: 0; } .pls { @@ -524,437 +1334,6 @@ s,m,l,n = small, medium, large, none .pll { padding-left: 40px; } -/* ---------------------------------- */ -/* ==classic grids */ -/* .. use it when gutter size matters */ -/* ---------------------------------- */ -/* grids inspired from SUIT https://github.com/suitcss/suit */ -/* overall container of grids */ -.grid { - overflow: hidden; -} -/* global styles for direct child ex. .grid3 */ -.grid > * { - display: block; - padding: 0; - /* gutter value */ - margin-left: -20px; - text-align: left; -} -/* global styles for each "cell" */ -.grid > * > * { - display: inline-block; - /* gutter value */ - padding-left: 20px; - margin-left: 0; - vertical-align: top; -} -/* whitespace fixing for modern browsers including IE9+ */ -:root .grid { - font-size: 0; - /* fallback for IE9+ */ - text-justify: distribute-all-lines; -} -:root .grid > * > * { - /* fallback for Opera Mini */ - font-size: 14px; - font-size: 1.4rem; -} -/* Opera hack */ -.opera:-o-prefocus, -.grid > * { - word-spacing: -0.43em; -} -.grid2 > * { - width: 50%; -} -.grid3 > * { - width: 33.333%; -} -.grid4 > * { - width: 25%; -} -.grid5 > * { - width: 20%; -} -.grid6 > * { - width: 16.667%; -} -.grid8 > * { - width: 12.5%; -} -.grid10 > * { - width: 10%; -} -.grid12 > * { - width: 8.333%; -} -/* unequal grids (1-2, 2-1, 1-3 and 3-1) for 2 blocks */ -.grid2-1 > *:first-child, -.grid1-2 > * + * { - width: 66.666%; -} -.grid1-2 > *:first-child, -.grid2-1 > * + * { - width: 33.333%; -} -.grid1-3 > *:first-child, -.grid3-1 > * + * { - width: 25%; -} -.grid3-1 > *:first-child, -.grid1-3 > * + * { - width: 75%; -} -/* ---------------------------------- */ -/* ==autogrids */ -/* .. to automatically justify blocs */ -/* ---------------------------------- */ -/* Demo : http://codepen.io/raphaelgoetter/pen/Kqehf */ -/* container of autogrids */ -[class*="autogrid"] { - text-align: justify; -} -[class*="autogrid"]:after { - content: ""; - display: inline-block; - width: 100%; -} -[class*="autogrid"] > * { - display: inline-block; - vertical-align: top; - text-align: left; -} -/* whitespace fixing for modern browsers including IE9+ */ -:root [class*="autogrid"] { - font-size: 0; - /* fallback for IE9+ */ - text-justify: distribute-all-lines; -} -:root [class*="autogrid"] > * { - /* fallback for Opera Mini */ - font-size: 14px; - font-size: 1.4rem; -} -/* Opera hack */ -[class*="autogrid"]:-o-prefocus { - word-spacing: -0.43em; -} -.autogrid2 > * { - width: 49%; -} -.autogrid3 > * { - width: 32%; -} -.autogrid4 > * { - width: 23.6%; -} -.autogrid5 > * { - width: 19%; -} -.autogrid6 > * { - width: 15%; -} -.autogrid8 > * { - width: 10.8%; -} -.autogrid10 > * { - width: 9%; -} -.autogrid12 > * { - width: 6.4%; -} -/* ----------------------------- */ -/* ==tables */ -/* ----------------------------- */ -table, -.table { - width: 100%; - max-width: 100%; - table-layout: fixed; - border-collapse: collapse; - vertical-align: top; - border: 1px solid #ccc; -} -.table { - display: table; -} -table#recaptcha_table, -table.table-auto { - table-layout: auto; -} -caption { - padding: 10px; - color: #555; - font-style: italic; -} -td, -th { - padding: 0.3em 0.8em; - border: 1px #aaa dotted; - vertical-align: top; - min-width: 20px; - cursor: default; - text-align: left; -} -/* ----------------------------- */ -/* ==forms */ -/* ----------------------------- */ -/* thanks to HTML5boilerplate, -* github.com/nathansmith/formalize and www.sitepen.com -*/ -/* buttons */ -.btn { - display: inline-block; -} -/* forms items */ -form, -fieldset { - border: none; -} -input, -button, -select, -label, -.btn { - vertical-align: middle; - font-family: inherit; - font-size: inherit; -} -label { - display: inline-block; - vertical-align: middle; - cursor: pointer; -} -legend { - border: 0; - white-space: normal; -} -textarea { - min-height: 5em; - vertical-align: top; - font-family: inherit; - font-size: inherit; - resize: vertical; -} -/* clickable input types in iOS */ -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} -input[type="search"] { - -webkit-appearance: textfield; -} -/* if select styling bugs on WebKit */ -/* select { -webkit-appearance: none; } */ -/* 'x' appears on right of search input when text is entered. This removes it */ -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-results-button, -input[type="search"]::-webkit-search-results-decoration { - display: none; -} -::-webkit-input-placeholder { - color: #777; -} -input:-moz-placeholder, -textarea:-moz-placeholder { - color: #777; -} -/* Removes inner padding and border in FF3+ */ -button::-moz-focus-inner, -input[type='button']::-moz-focus-inner, -input[type='reset']::-moz-focus-inner, -input[type='submit']::-moz-focus-inner { - border: 0; - padding: 0; -} -/* ----------------------------- */ -/* ==icons and bullets */ -/* ----------------------------- */ -.icon { - display: inline-block; -} -.icon:before, -.icon.after:after { - content: ""; - display: inline-block; - vertical-align: middle; - position: relative; - top: -0.1em; - margin: 0 0.3em 0 0; - font: 1.4em/1 sans-serif; - color: #000; - text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.1); - speak: none; -} -@media (min-device-width: 768px) { - .icon:before, - .icon.after:after { - font: 1em/0.6 sans-serif; - -webkit-transform: rotateZ(0.05deg); - } -} -.icon.after:after { - margin: 0 0 0 8px; -} -.icon.after:before { - content: "" !important; -} -.icon-rate:before, -.icon-rate.after:after { - content: "\2605"; -} -.icon-unrate:before, -.icon-unrate.after:after { - content: "\2606"; -} -.icon-check:before, -.icon-check.after:after { - content: "\2713"; -} -.icon-uncheck:before, -.icon-uncheck.after:after { - content: "\2717"; -} -.icon-cloud:before, -.icon-cloud.after:after { - content: "\2601"; -} -.icon-dl:before, -.icon-dl.after:after { - content: "\21E3"; - font-weight: bold; -} -.icon-cross:before, -.icon-cross.after:after { - content: "\2716"; - font-weight: bold; -} -.icon-arrow1:before, -.icon-arrow1.after:after { - content: "\2192"; - position: relative; - top: -0.15em; -} -.icon-arrow2:before, -.icon-arrow2.after:after { - content: "\279E"; -} -.icon-arrow3:before, -.icon-arrow3.after:after { - content: "\279A"; -} -.icon-bracket1:before, -.icon-bracket1.after:after { - content: "\2039"; - font-weight: bold; - font-size: 1.6em; - position: relative; - top: -0.15em; -} -.icon-bracket2:before, -.icon-bracket2.after:after { - content: "\203A"; - font-weight: bold; - font-size: 1.6em; - position: relative; - top: -0.15em; -} -.icon-up:before, -.icon-up.after:after { - content: "\25B2"; -} -.icon-down:before, -.icon-down.after:after { - content: "\25BC"; -} -.icon-bull:before, -.icon-bull.after:after { - content: "\2022"; - font-size: 1.2em; - top: -0.05em; -} -.icon-bull2:before, -.icon-bull2.after:after { - content: "\25E6"; - top: -0.05em; -} -.icon-bull3:before, -.icon-bull3.after:after { - content: "\2023"; - font-size: 1.6em; - top: -0.05em; -} -.icon-nav:before, -.icon-nav.after:after { - content: "\2261"; - font-weight: bold; -} -.icon-losange:before, -.icon-losange.after:after { - content: "\25C6"; -} -.icon-asteri:before, -.icon-asteri.after:after { - content: "\2731"; - font-weight: bold; -} -.icon-mail:before, -.icon-mail.after:after { - content: "\2709"; - font-size: 1.6em; - top: -0.05em; -} -/* flexbox layout -Tutorial: http://knacss.com/demos/tutoriel.html#flex */ -.flex { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} -.flex-h { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; -} -.flex-v { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; -} -.flex-fluid { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; -} -.flex-start { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; -} -.flex-mid { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; -} -.flex-end { - -webkit-box-ordinal-group: 43; - -webkit-order: 42; - -ms-flex-order: 42; - order: 42; -} /* ----------------------------- */ /* ==desktop and HD devices */ /* ----------------------------- */ @@ -1022,22 +1401,6 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ .large-man { margin: 0 !important; } - /* grid rwd for large screens */ - .grid5 > *, - .grid6 > *, - .grid8 > *, - .grid10 > *, - .grid12 > * { - width: 33.333%; - } - /* autogrid rwd for large screens */ - .autogrid5 > *, - .autogrid6 > *, - .autogrid8 > *, - .autogrid10 > *, - .autogrid12 > * { - width: 32%; - } } /* ---------------------------------- */ /* ==Responsive medium */ @@ -1094,7 +1457,8 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ border: 0; } /* margins for medium screens */ - .medium-man { + .medium-man, + .medium-ma0 { margin: 0 !important; } } @@ -1102,18 +1466,6 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ /* ==Responsive small */ /* ---------------------------------- */ @media (min-width: 481px) and (max-width: 768px) { - /* quick small resolution reset */ - .mod, - .col, - fieldset { - display: block !important; - float: none !important; - clear: none !important; - width: auto !important; - margin-left: 0 !important; - margin-right: 0 !important; - border: 0; - } /* quick reset in small resolution and less */ .w600p, .w700p, @@ -1174,35 +1526,36 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ border: 0; } /* margins for small screens */ - .small-man { + .small-man, + .small-ma0 { margin: 0 !important; } - .small-pan { + .small-pan, + .small-pa0 { padding: 0 !important; } - /* grid rwd for small screens */ - .grid3 > *, - .grid4 > *, - .grid5 > *, - .grid6 > *, - .grid8 > *, - .grid10 > *, - .grid12 > * { - width: 50%; - } - /* autogrid rwd for small screens */ - .autogrid5 > *, - .autogrid6 > *, - .autogrid8 > *, - .autogrid10 > *, - .autogrid12 > * { - width: 49% !important; - } } /* ---------------------------------- */ /* ==Responsive tiny */ /* ---------------------------------- */ @media (max-width: 480px) { + /* quick tiny resolution reset */ + .mod, + .col, + fieldset { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + .flexbox { + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + } .w300p, .w400p, .w500p { @@ -1273,26 +1626,19 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ border: 0; } /* margins for tiny screens */ - .tiny-man { + .tiny-man, + .tiny-ma0 { margin: 0 !important; } - .tiny-pan { + .tiny-pan, + .tiny-pa0 { padding: 0 !important; } - /* grid rwd for tiny screens */ - .grid > * > * { - width: 100% !important; - } - /* autogrid rwd for tiny screens */ - [class*="autogrid"] > * { - width: 100% !important; - } } /* quick print reset */ @media print { * { background: transparent !important; - -webkit-box-shadow: none !important; box-shadow: none !important; text-shadow: none !important; } @@ -1305,12 +1651,19 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ color: #333 !important; } p, + .p-like, h1, + .h1-like, h2, + .h2-like, h3, + .h3-like, h4, + .h4-like, h5, + .h5-like, h6, + .h6-like, blockquote, ul, ol { @@ -1323,12 +1676,9 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ .no-print { display: none; } - img { - -webkit-filter: grayscale(100%); - filter: grayscale(100%); - } /* no orphans, no widows */ p, + .p-like, blockquote { orphans: 3; widows: 3; @@ -1340,13 +1690,17 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ page-break-inside: avoid; } /* page break before main headers */ - h1 { + h1, + .h1-like { page-break-before: always; } /* no breaks after these elements */ h1, + .h1-like, h2, + .h2-like, h3, + .h3-like, caption { page-break-after: avoid; } @@ -1355,16 +1709,16 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ text-decoration: underline !important; } /* displaying URLs */ - a[href]:after { + a[href]::after { content: " (" attr(href) ")"; } - a[href^="javascript:"]:after, - a[href^="#"]:after { + a[href^="javascript:"]::after, + a[href^="#"]::after { content: ""; } } /* ----------------------------- */ -/* ==skip-hyphens */ +/* ==misc rules */ /* ----------------------------- */ /* styling skip links */ .skip-links { @@ -1396,14 +1750,11 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ samp { word-wrap: break-word; -webkit-hyphens: auto; - -moz-hyphens: auto; - -ms-hyphens: auto; - hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; } } -/* ----------------------------- */ -/* ==gmaps support */ -/* ----------------------------- */ /* Google Gmap3 bug fix on images */ .gm-style img { height: 100%; @@ -1417,93 +1768,6 @@ Tutorial: http://knacss.com/demos/tutoriel.html#flex */ max-width: none !important; } /* ----------------------------- */ -/* ==IE6, IE7, IE8 support */ -/* ----------------------------- */ -/* Active box-sizing for IE6/IE7 */ -/* @source https://github.com/Schepp/box-sizing-polyfill */ -.ie67 * { - behavior: url(/js/boxsizing.htc); -} -.ie678 h1, -.ie678 .h1-like { - font-size: 2.29em; -} -.ie678 h2, -.ie678 .h2-like { - font-size: 2em; -} -.ie678 h3, -.ie678 .h3-like { - font-size: 1.71em; -} -.ie678 h4, -.ie678 .h4-like { - font-size: 1.43em; -} -.ie678 h5, -.ie678 .h5-like { - font-size: 1.29em; -} -.ie678 h6, -.ie678 .h6-like { - font-size: 1.14em; -} -/* @bugfix for IE8 */ -.ie678 img { - width: auto; -} -.ie678 .gm-style img { - height: 100%; -} -/* hasLayout for IE6/IE7 */ -.clearfix, -.line, -.mod, -.row, -.col { - *zoom: 1; -} -/*! inline-block and table-cell for IE6/IE7 */ -/*! warning: .col needs width on IE6/IE7 */ -.btn, -.col, -.inbl { - *display: inline; - *zoom: 1; -} -/* old syntax of clip for IE6/IE7 */ -.visually-hidden { - *clip: rect(1px 1px 1px 1px); -} -/* IE8 grid hack */ -.ie8 .grid > *, -.ie8 [class*="autogrid"] > * { - letter-spacing: -0.31em; - text-rendering: optimizespeed; -} -.ie8 .grid > * > *, -.ie8 [class*="autogrid"] > * > * { - letter-spacing: normal; - word-spacing: normal; - text-rendering: auto; -} -/* IE7 grid hack */ -.grid > * > *, -[class*="autogrid"] > * > * { - *display: inline; - *zoom: 1; -} -/* forms */ -/* Corrects excess space around these inputs in IE8/9 */ -.ie678 input[type="checkbox"], -.ie678 input[type="radio"] { - padding: 0; -} -/* Removes default vertical scrollbar on empty textarea in IE6/7/8/9 */ -.ie678 textarea { - overflow: auto; -} -/* ----------------------------- */ /* ==minor stylings */ /* ----------------------------- */ /* styling elements */ @@ -1546,7 +1810,7 @@ blockquote { position: relative; padding-left: 3em; } -blockquote:before { +blockquote::before { content: "\201C"; position: absolute; left: 0; @@ -1561,7 +1825,7 @@ blockquote > footer { font-size: 0.9em; color: rgba(0, 0, 0, 0.7); } -blockquote > footer:before { +blockquote > footer::before { content: "\2014 \0020"; } q { @@ -1586,42 +1850,197 @@ hr { background-color: #ccc; } /* alternate tables */ -.alternate { +.table-alternate { border: 0; } -.alternate tbody { +.table-alternate tbody { border: 1px solid #ccc; } -.alternate thead tr > * + * { +.table-alternate thead tr > * + * { border-left: 0; } -.alternate tbody tr > * + * { +.table-alternate tbody tr > * + * { border-left: 1px solid #ccc; } /* alternate-vert tables */ -.alternate-vert { +.table-alternate-v { border: 0; border-right: 1px solid #ccc; } -.alternate-vert tr > :first-child { +.table-alternate-v tr > :first-child { border-bottom: 0; } -.alternate-vert tr > * + * { +.table-alternate-v tr > * + * { border-top: 1px solid #ccc; } /* striped tables */ -.striped tbody tr:nth-child(odd) { +.table-striped tbody tr:nth-child(odd) { background: #eee; background: rgba(0, 0, 0, 0.05); } /* striped-vert tables */ -.striped-vert tr > :first-child { +.table-striped-v tr > :first-child { background: #eee; background: rgba(0, 0, 0, 0.05); } /* ----------------------------- */ -/* ==own stylesheet */ +/* ==WordPress reset */ /* ----------------------------- */ -/* Here should go your own CSS styles */ -/* You can also link them with a LESS @import */ -/* @import "my-styles.less"; */ +/* +Author: Geoffrey Crofte, Alsacréations +Contributors: Automattic, Geoffrey Crofte +Description: Reset styles for WordPress usage of KNACSS +*/ +/* ----------------------------- */ +/* ==Menus */ +/* ----------------------------- */ +.comment-navigation, +.paging-navigation, +.post-navigation { + margin: 0 0 1.5em; + overflow: hidden; +} +.comment-navigation .nav-previous, +.paging-navigation .nav-previous, +.post-navigation .nav-previous { + float: left; + width: 50%; +} +.comment-navigation .nav-next, +.paging-navigation .nav-next, +.post-navigation .nav-next { + float: right; + text-align: right; + width: 50%; +} +/* ----------------------------- */ +/* ==Alignments */ +/* ----------------------------- */ +.alignnone { + margin: .25em 1.5em 1.5em 0; +} +.aligncenter { + clear: both; + display: block; + margin: 1.5em auto; +} +.alignleft { + float: left; + margin: 0 1.5em .25em 0; +} +.alignright { + float: right; + margin: 0 0 .25em 1.5em; +} +/* ----------------------------- */ +/* ==Clearings */ +/* ----------------------------- */ +.entry-content, +.comment-content { + clear: both; +} +.entry-content::after, +.comment-content::after, +.entry-content::before, +.comment-content::before { + content: ""; + display: table; +} +/* ----------------------------- */ +/* ==Widgets */ +/* ----------------------------- */ +.widget + .widget { + margin: 1.5em 0 0; +} +.widget select { + max-width: 100%; +} +/* ----------------------------- */ +/* ==Posts and pages */ +/* ----------------------------- */ +/* === 5.1 Posts - post_class === */ +/* === 5.2 Pages - body_class === */ +/* === 5.3 Posts and Pages - Contents === */ +.hentry { + margin: 0 0 1.5em; +} +.page-content, +.entry-content, +.entry-summary { + margin: 1.5em 0 0; +} +.page-links { + clear: both; + margin: 0 0 1.5em; +} +/* ----------------------------- */ +/* ==Comments */ +/* ----------------------------- */ +.comment-content a { + word-wrap: break-word; +} +/* ----------------------------- */ +/* ==Media */ +/* ----------------------------- */ +img.wp-smiley { + margin-bottom: 0; + margin-top: 0; + padding: 0; + border: none; +} +/* ----------------------------- */ +/* ==Captions */ +/* ----------------------------- */ +.wp-caption { + max-width: 100%; + margin-bottom: 1.5em; +} +.wp-caption img { + display: block; + margin: 0 auto; +} +.wp-caption-text { + margin: 1em 0; + text-align: center; +} +/* ----------------------------- */ +/* ==Galleries */ +/* ----------------------------- */ +.gallery { + margin-bottom: 1.5em; +} +.gallery-item { + display: inline-block; + width: 100%; + text-align: center; + vertical-align: top; +} +.gallery-columns-2 .gallery-item { + max-width: 50%; +} +.gallery-columns-3 .gallery-item { + max-width: 33.33%; +} +.gallery-columns-4 .gallery-item { + max-width: 25%; +} +.gallery-columns-5 .gallery-item { + max-width: 20%; +} +.gallery-columns-6 .gallery-item { + max-width: 16.66%; +} +.gallery-columns-7 .gallery-item { + max-width: 14.28%; +} +.gallery-columns-8 .gallery-item { + max-width: 12.5%; +} +.gallery-columns-9 .gallery-item { + max-width: 11.11%; +} +.gallery-caption { + display: block; +} + +/*# sourceMappingURL=knacss-unminified.css.map */ \ No newline at end of file diff --git a/css/knacss-unminified.css.map b/css/knacss-unminified.css.map new file mode 100644 index 0000000..9eb256f --- /dev/null +++ b/css/knacss-unminified.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../less/knacss.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_01a-normalize.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_01b-base.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_02-layout.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_03-grids.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_04-tables.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_05-forms.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_06-helpers.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_07-responsive.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_08-print.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_09-misc.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_10-styling.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_11-wordpress.less"],"names":[],"mappings":"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EAPE;IACC,yBAAA;IJwpBA;EItpBD;IACC,yBAAA;IJwpBA;EACF;AI5qBA;EACE,iCAAA;EJ8qBF;AI5qBA;EACC,iCAAA;EJ8qBD;AIpqBA;EAPC;IACC,iCAAA;IJ8qBA;EI5qBD;IACC,yBAAA;IJ8qBA;EACF;AIpqBD;EAPE;IACC,yBAAA;IJ8qBA;EI5qBD;IACC,yBAAA;IJ8qBA;EACF;AIlsBA;EACE,iCAAA;EJosBF;AIlsBA;EACC,iCAAA;EJosBD;AI1rBA;EAPC;IACC,iCAAA;IJosBA;EIlsBD;IACC,yBAAA;IJosBA;EACF;AI1rBD;EAPE;IACC,yBAAA;IJosBA;EIlsBD;IACC,yBAAA;IJosBA;EACF;AIxtBA;EACE,iCAAA;EJ0tBF;AIxtBA;EACC,iCAAA;EJ0tBD;AIhtBA;EAPC;IACC,iCAAA;IJ0tBA;EIxtBD;IACC,yBAAA;IJ0tBA;EACF;AIhtBD;EAPE;IACC,yBAAA;IJ0tBA;EIxtBD;IACC,yBAAA;IJ0tBA;EACF;AI9uBA;EACE,iCAAA;EJgvBF;AI9uBA;EACC,iCAAA;EJgvBD;AItuBA;EAPC;IACC,iCAAA;IJgvBA;EI9uBD;IACC,yBAAA;IJgvBA;EACF;AItuBD;EAPE;IACC,yBAAA;IJgvBA;EI9uBD;IACC,yBAAA;IJgvBA;EACF;AIpwBA;EACE,iCAAA;EJswBF;AIpwBA;EACC,iCAAA;EJswBD;AI5vBA;EAPC;IACC,iCAAA;IJswBA;EIpwBD;IACC,yBAAA;IJswBA;EACF;AI5vBD;EAPE;IACC,yBAAA;IJswBA;EIpwBD;IACC,yBAAA;IJswBA;EACF;AI1xBA;EACE,iCAAA;EJ4xBF;AI1xBA;EACC,iCAAA;EJ4xBD;AIlxBA;EAPC;IACC,iCAAA;IJ4xBA;EI1xBD;IACC,yBAAA;IJ4xBA;EACF;AIlxBD;EAPE;IACC,yBAAA;IJ4xBA;EI1xBD;IACC,yBAAA;IJ4xBA;EACF;AIhzBA;EACE,kCAAA;EJkzBF;AIhzBA;EACC,kCAAA;EJkzBD;AIxyBA;EAPC;IACC,iCAAA;IJkzBA;EIhzBD;IACC,yBAAA;IJkzBA;EACF;AIxyBD;EAPE;IACC,yBAAA;IJkzBA;EIhzBD;IACC,yBAAA;IJkzBA;EACF;AIt0BA;EACE,kCAAA;EJw0BF;AIt0BA;EACC,kCAAA;EJw0BD;AI9zBA;EAPC;IACC,iCAAA;IJw0BA;EIt0BD;IACC,yBAAA;IJw0BA;EACF;AI9zBD;EAPE;IACC,yBAAA;IJw0BA;EIt0BD;IACC,yBAAA;IJw0BA;EACF;AI3xBA;EAEC,uCAAA;EJ4xBD;AI1xBA;EAEC,uCAAA;EJ2xBD;AIpxBD;EAJE;IACC,yBAAA;IJ2xBA;EACF;AItyBA;EAEC,uCAAA;EJuyBD;AIryBA;EAEC,uCAAA;EJsyBD;AI/xBD;EAJE;IACC,yBAAA;IJsyBA;EACF;AIjzBA;EAEC,wBAAA;EJkzBD;AIhzBA;EAEC,wBAAA;EJizBD;AI1yBD;EAJE;IACC,yBAAA;IJizBA;EACF;AI5zBA;EAEC,wBAAA;EJ6zBD;AI3zBA;EAEC,wBAAA;EJ4zBD;AIrzBD;EAJE;IACC,yBAAA;IJ4zBA;EACF;AIv0BA;EAEC,wBAAA;EJw0BD;AIt0BA;EAEC,wBAAA;EJu0BD;AIh0BD;EAJE;IACC,yBAAA;IJu0BA;EACF;AIl1BA;EAEC,wBAAA;EJm1BD;AIj1BA;EAEC,wBAAA;EJk1BD;AI30BD;EAJE;IACC,yBAAA;IJk1BA;EACF;AI71BA;EAEC,wBAAA;EJ81BD;AI51BA;EAEC,wBAAA;EJ61BD;AIt1BD;EAJE;IACC,yBAAA;IJ61BA;EACF;AIx2BA;EAEC,wBAAA;EJy2BD;AIv2BA;EAEC,wBAAA;EJw2BD;AIj2BD;EAJE;IACC,yBAAA;IJw2BA;EACF;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AKx9BnC;;EAEC,aAAA;EACA,iBAAA;EACA,qBAAA;EACA,2BAAA;EACA,qBAAA;EACA,wBAAA;EL09BA;AKv9BD;EACC,gBAAA;ELy9BA;AKt9BD;;EAEC,oBAAA;ELw9BA;AKr9BD;EACC,eAAA;EACA,aAAA;EACA,oBAAA;ELu9BA;AKp9BD;;EAEC,sBAAA;EACA,yBAAA;EACA,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,kBAAA;ELs9BA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AACnC;;GAEE;AACF,cAAa;AMx/Bb;EACC,uBAAA;EN0/BA;AACD,kBAAiB;AMv/BjB;;EAEC,cAAA;ENy/BA;AMt/BD;;;;;EAKC,wBAAA;EACA,sBAAA;EACA,oBAAA;ENw/BA;AMr/BD;EACC,uBAAA;EACA,wBAAA;EACA,iBAAA;ENu/BA;AMp/BD;EACC,WAAA;EACA,qBAAA;ENs/BA;AMn/BD;EACC,iBAAA;EACA,qBAAA;EACA,sBAAA;EACA,oBAAA;EACA,kBAAA;ENq/BA;AACD,uCAAsC;AACtC,2CAA0C;AAC1C,iFAAgF;AMj/BhF;;;;EAIC,eAAA;ENm/BA;AMh/BD;EACC,aAAA;ENk/BA;AM/+BD;;EAEC,aAAA;ENi/BA;AM9+BD;;;EAGC,YAAA;EACA,0CAAA;EACA,2BAAA;EACG,wBAAA;EACC,uBAAA;EACI,mBAAA;EACR,wBAAA;ENg/BA;AACD,yCAAwC;AACxC,yCAAwC;AACxC,yCAAwC;AACxC,yCAAwC;AACxC,4CAA2C;AO5jC3C;EACC,YAAA;EP8jCA;AO3jCD;EACC,YAAA;EP6jCA;AO1jCD;EACC,YAAA;EP4jCA;AOzjCD;EACC,YAAA;EP2jCA;AOxjCD;EACC,iBAAA;EP0jCA;AOvjCD;EACC,YAAA;EPyjCA;AOtjCD;EACC,YAAA;EPwjCA;AOrjCD;EACC,YAAA;EPujCA;AOpjCD;EACC,iBAAA;EPsjCA;AOnjCD;EACC,YAAA;EPqjCA;AOljCD;EACC,YAAA;EPojCA;AOjjCD;EACC,YAAA;EPmjCA;AOhjCD;EACC,YAAA;EPkjCA;AO/iCD;EACC,aAAA;EPijCA;AO7iCD;EACC,aAAA;EP+iCA;AO5iCD;EACC,cAAA;EP8iCA;AO3iCD;EACC,cAAA;EP6iCA;AO1iCD;EACC,cAAA;EP4iCA;AOziCD;EACC,cAAA;EP2iCA;AOxiCD;EACC,cAAA;EP0iCA;AOviCD;EACC,cAAA;EPyiCA;AOtiCD;EACC,cAAA;EPwiCA;AOriCD;EACC,cAAA;EPuiCA;AOpiCD;EACC,cAAA;EPsiCA;AOniCD;EACC,cAAA;EPqiCA;AOliCD;EACC,kBAAA;EPoiCA;AOjiCD;EACC,eAAA;EPmiCA;AOhiCD;EACC,mBAAA;EPkiCA;AO/hCD;EACC,aAAA;EPiiCA;AACD;;;;GAIE;AO9hCF;;EAEC,WAAA;EPgiCA;AO7hCD;;EAEC,YAAA;EP+hCA;AO5hCD;EACC,cAAA;EP8hCA;AO3hCD;EACC,cAAA;EP6hCA;AO1hCD;EACC,cAAA;EP4hCA;AOzhCD;EACC,eAAA;EP2hCA;AOxhCD;EACC,eAAA;EP0hCA;AOvhCD;EACC,eAAA;EPyhCA;AOthCD;;EAEC,eAAA;EPwhCA;AOrhCD;EACC,kBAAA;EPuhCA;AOphCD;EACC,kBAAA;EPshCA;AOnhCD;EACC,kBAAA;EPqhCA;AOlhCD;;EAEC,iBAAA;EPohCA;AOjhCD;EACC,oBAAA;EPmhCA;AOhhCD;EACC,oBAAA;EPkhCA;AO/gCD;EACC,oBAAA;EPihCA;AO9gCD;;EAEC,kBAAA;EPghCA;AO7gCD;EACC,qBAAA;EP+gCA;AO5gCD;EACC,qBAAA;EP8gCA;AO3gCD;EACC,qBAAA;EP6gCA;AO1gCD;;EAEC,gBAAA;EP4gCA;AOzgCD;EACC,mBAAA;EP2gCA;AOxgCD;EACC,mBAAA;EP0gCA;AOvgCD;EACC,mBAAA;EPygCA;AOtgCD;;EAEC,gBAAA;EPwgCA;AOrgCD;EACC,mBAAA;EPugCA;AOpgCD;EACC,mBAAA;EPsgCA;AOngCD;EACC,mBAAA;EPqgCA;AOlgCD;;EAEC,kBAAA;EPogCA;AOjgCD;EACC,qBAAA;EPmgCA;AOhgCD;EACC,qBAAA;EPkgCA;AO//BD;EACC,qBAAA;EPigCA;AO9/BD;;EAEC,mBAAA;EPggCA;AO7/BD;EACC,sBAAA;EP+/BA;AO5/BD;EACC,sBAAA;EP8/BA;AO3/BD;EACC,sBAAA;EP6/BA;AO1/BD;;EAEC,iBAAA;EP4/BA;AOz/BD;EACC,oBAAA;EP2/BA;AOx/BD;EACC,oBAAA;EP0/BA;AOv/BD;EACC,oBAAA;EPy/BA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AQ3xCnC;ER6xCE,wFAAuF;EACxF;AQtxCD;ERwxCE,iDAAgD;EACjD;AACD,yCAAwC;AACxC,yCAAwC;AACxC,yCAAwC;AQltCxC;ERotCE,gCAA+B;EQ3xChC;IACC,0BAAA;IR6xCC;EQ1xCF;IACC,2BAAA;IR4xCC;EQzxCF;IACC,aAAA;IR2xCC;EQxxCF;IACC,uBAAA;IACA,aAAA;IACA,qBAAA;IR0xCC;EQvxCF;IACC,gBAAA;IACA,qBAAA;IACA,wBAAA;IRyxCC;EQtxCF;IACC,qBAAA;IACA,qBAAA;IRwxCC;EACD,+BAA8B;EQrxC/B;IACC,uBAAA;IRuxCC;EQpxCF;IACC,4BAAA;IRsxCC;EQnxCF;IACC,uBAAA;IRqxCC;EQlxCF;IACC,4BAAA;IRoxCC;EQjxCF;IACC,uBAAA;IRmxCC;EQhxCF;;IAEC,2BAAA;IACA,wBAAA;IACA,wBAAA;IACA,wBAAA;IACA,2BAAA;IACA,4BAAA;IACA,WAAA;IRkxCC;EACD,gCAA+B;EQ/wChC;IACC,sBAAA;IRixCC;EACF;AACD,yCAAwC;AACxC,yCAAwC;AACxC,yCAAwC;AQlsCxC;ERosCE,iCAAgC;EQ5wCjC;IACC,0BAAA;IR8wCC;EQ3wCF;IACC,2BAAA;IR6wCC;EQ1wCF;IACC,aAAA;IR4wCC;EQzwCF;IACC,uBAAA;IACA,aAAA;IACA,qBAAA;IR2wCC;EQxwCF;IACC,gBAAA;IACA,qBAAA;IACA,wBAAA;IR0wCC;EQvwCF;IACC,qBAAA;IACA,qBAAA;IRywCC;EACD,gCAA+B;EQtwChC;IACC,uBAAA;IRwwCC;EQrwCF;IACC,4BAAA;IRuwCC;EQpwCF;IACC,uBAAA;IRswCC;EQnwCF;IACC,4BAAA;IRqwCC;EQlwCF;IACC,uBAAA;IRowCC;EQjwCF;;IAEC,2BAAA;IACA,wBAAA;IACA,wBAAA;IACA,wBAAA;IACA,2BAAA;IACA,4BAAA;IACA,WAAA;IRmwCC;EACD,iCAAgC;EQhwCjC;;IAEC,sBAAA;IRkwCC;EACF;AACD,yCAAwC;AACxC,yCAAwC;AACxC,yCAAwC;AQnqCxC;ERqqCE,+CAA8C;EQ7vC/C;;;;;IAKC,aAAA;IACA,aAAA;IR+vCC;EACD,gCAA+B;EQ5vChC;IACC,0BAAA;IR8vCC;EQ3vCF;IACC,2BAAA;IR6vCC;EQ1vCF;IACC,aAAA;IR4vCC;EQzvCF;IACC,uBAAA;IACA,aAAA;IACA,qBAAA;IR2vCC;EQxvCF;IACC,2BAAA;IACA,gCAAA;IACA,wBAAA;IR0vCC;EQvvCF;IACC,gCAAA;IACA,gCAAA;IRyvCC;EACD,+BAA8B;EQtvC/B;IACC,uBAAA;IRwvCC;EQrvCF;IACC,4BAAA;IRuvCC;EQpvCF;IACC,uBAAA;IRsvCC;EQnvCF;IACC,4BAAA;IRqvCC;EQlvCF;IACC,uBAAA;IRovCC;EQjvCF;;IAEC,2BAAA;IACA,wBAAA;IACA,wBAAA;IACA,wBAAA;IACA,2BAAA;IACA,4BAAA;IACA,WAAA;IRmvCC;EACD,gCAA+B;EQhvChC;;IAEC,sBAAA;IRkvCC;EQ/uCF;;IAEC,uBAAA;IRivCC;EACF;AACD,yCAAwC;AACxC,yCAAwC;AACxC,yCAAwC;AQxnCxC;ER0nCE,kCAAiC;EQ3uClC;;;IAGC,2BAAA;IACA,wBAAA;IACA,wBAAA;IACA,wBAAA;IACA,2BAAA;IACA,4BAAA;IACA,WAAA;IR6uCC;EQ1uCF;IACC,gCAAA;QAAA,4BAAA;YAAA,wBAAA;IR4uCC;EQzuCF;;;IAGC,aAAA;IACA,aAAA;IR2uCC;EQxuCF;IACC,2BAAA;IACA,wBAAA;IR0uCC;EACD,+BAA8B;EQvuC/B;IACC,0BAAA;IRyuCC;EQtuCF;IACC,2BAAA;IRwuCC;EQruCF;IACC,aAAA;IRuuCC;EQpuCF;IACC,uBAAA;IACA,aAAA;IACA,qBAAA;IRsuCC;EQnuCF;IACC,2BAAA;IACA,gCAAA;IACA,wBAAA;IRquCC;EQluCF;IACC,gCAAA;IACA,gCAAA;IRouCC;EQjuCF;;IAEC,2BAAA;IACA,wBAAA;IACA,6BAAA;IRmuCC;EQhuCF;IACC,eAAA;IRkuCC;EACD,8BAA6B;EQ/tC9B;IACC,uBAAA;IRiuCC;EQ9tCF;IACC,4BAAA;IRguCC;EQ7tCF;IACC,uBAAA;IR+tCC;EQ5tCF;IACC,4BAAA;IR8tCC;EQ3tCF;IACC,uBAAA;IR6tCC;EQ1tCF;;IAEC,2BAAA;IACA,wBAAA;IACA,wBAAA;IACA,wBAAA;IACA,2BAAA;IACA,4BAAA;IACA,WAAA;IR4tCC;EACD,+BAA8B;EQztC/B;;IAEC,sBAAA;IR2tCC;EQxtCF;;IAEC,uBAAA;IR0tCC;EACF;AACD,wBAAuB;AS9+CvB;EA3FC;IACC,oCAAA;IACA,6BAAA;IACA,8BAAA;IT4kDC;ESzkDF;IACC,wBAAA;IACA,yBAAA;IACA,oBAAA;IACA,iBAAA;IACA,mCAAA;IACA,wBAAA;IT2kDC;ESxkDF;;;;;;;;;;;;;;;;;IAiBC,wBAAA;IACA,yBAAA;IT0kDC;ESvkDF;IACC,gBAAA;ITykDC;EStkDF;IACC,eAAA;ITwkDC;EACD,4BAA2B;ESrkD5B;;;IAGC,YAAA;IACA,WAAA;ITukDC;EACD,sCAAqC;ESpkDtC;;;IAGC,0BAAA;ITskDC;EACD,qCAAoC;ESnkDrC;;IAEC,2BAAA;ITqkDC;EACD,qCAAoC;ESlkDrC;;;;;;;IAOC,yBAAA;ITokDC;ESjkDF;IACC,wBAAA;IACA,uCAAA;ITmkDC;EACD,sBAAqB;EShkDtB;IACC,8BAAA;ITkkDC;ES/jDF;;IAEC,aAAA;ITikDC;EACF;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AACnC,yBAAwB;AU5pDxB;EACC,oBAAA;EV8pDA;AU5pDA;EACC,oBAAA;EACA,kBAAA;EACA,gCAAA;EACA,gBAAA;EACA,mBAAA;EACA,cAAA;EACA,uBAAA;EV8pDD;AU5pDC;EACC,kBAAA;EACA,mBAAA;EACA,YAAA;EV8pDF;AUxoDD;EV0oDE,yBAAwB;EUxpDzB;;;;;;;;IAQC,uBAAA;IACA,uBAAA;OAAA,oBAAA;QAAA,mBAAA;YAAA,eAAA;IV0pDC;EACF;AACD,qCAAoC;AUvpDpC;EACC,cAAA;EVypDA;AUtpDD;EACC,cAAA;EVwpDA;AUrpDD;;;EAGC,4BAAA;EVupDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AACnC,uBAAsB;AW3sDtB;;;EAGC,oBAAA;EX6sDA;AW1sDD;EACC,gBAAA;EACA,wBAAA;EX4sDA;AWzsDD;EACC,kBAAA;EACA,iCAAA;EACA,aAAA;EX2sDA;AWxsDD;EACC,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,kBAAA;EX0sDA;AWvsDD;EACC,kBAAA;EACA,kBAAA;EXysDA;AWtsDD;;EAEC,mBAAA;EACA,oBAAA;EXwsDA;AWrsDD;EACC,aAAA;EXusDA;AWpsDD;EACC,YAAA;EXssDA;AWnsDD;EACC,oBAAA;EACA,mBAAA;EXqsDA;AWlsDD;EACC,kBAAA;EACA,oBAAA;EACA,SAAA;EACA,QAAA;EACA,6BAAA;EACA,gBAAA;EACA,kBAAA;EACA,2BAAA;EXosDA;AWjsDD;EACC,mBAAA;EACA,kBAAA;EACA,2BAAA;EXmsDA;AWhsDD;EACC,wBAAA;EXksDA;AW/rDD;EACC,oBAAA;EXisDA;AW9rDD;;EAEC,2BAAA;EXgsDA;AW7rDD;;EAEC,2BAAA;EX+rDA;AW5rDD;EACC,gBAAA;EACA,aAAA;EACA,aAAA;EACA,mBAAA;EACA,YAAA;EACA,WAAA;EACA,aAAA;EACA,wBAAA;EX8rDA;AACD,uBAAsB;AW3rDtB;EACC,WAAA;EX6rDA;AW1rDD;EACC,wBAAA;EX4rDA;AWzrDD;EACC,gBAAA;EX2rDA;AWxrDD;EACC,6BAAA;EX0rDA;AACD,4BAA2B;AWvrD3B;EACC,WAAA;EACA,8BAAA;EXyrDA;AWtrDD;EACC,kBAAA;EXwrDA;AWrrDD;EACC,4BAAA;EXurDA;AACD,qBAAoB;AWprDpB;EACC,kBAAA;EACA,iCAAA;EXsrDA;AACD,0BAAyB;AWnrDzB;EACC,kBAAA;EACA,iCAAA;EXqrDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AACnC;;;;GAIE;AACF,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AYpzDnC;;;EAGC,mBAAA;EACA,kBAAA;EZszDA;AYnzDD;;;EAGC,aAAA;EACA,YAAA;EZqzDA;AYlzDD;;;EAGC,cAAA;EACA,mBAAA;EACA,YAAA;EZozDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AY/yDnC;EACC,6BAAA;EZizDA;AY9yDD;EACC,aAAA;EACA,gBAAA;EACA,oBAAA;EZgzDA;AY7yDD;EACC,aAAA;EACA,yBAAA;EZ+yDA;AY5yDD;EACC,cAAA;EACA,yBAAA;EZ8yDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AY1yDnC;;EAEC,aAAA;EZ4yDA;AY1yDA;;;;EACC,aAAA;EACA,gBAAA;EZ+yDD;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AY1yDnC;EACC,mBAAA;EZ4yDA;AYxyDD;EACC,iBAAA;EZ0yDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AACnC,qCAAoC;AACpC,qCAAoC;AACpC,6CAA4C;AYpsD5C;EACC,mBAAA;EZssDA;AYnsDD;;;EAGC,mBAAA;EZqsDA;AYlsDD;EACC,aAAA;EACA,mBAAA;EZosDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AYhsDnC;EACC,uBAAA;EZksDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AY1rDnC;EACC,kBAAA;EACA,eAAA;EACA,YAAA;EACA,cAAA;EZ4rDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AYxrDnC;EACC,iBAAA;EACA,sBAAA;EZ0rDA;AYvrDD;EACC,gBAAA;EACA,gBAAA;EZyrDA;AYtrDD;EACC,eAAA;EACA,oBAAA;EZwrDA;AACD,oCAAmC;AACnC,oCAAmC;AACnC,oCAAmC;AYprDnC;EACC,sBAAA;EZsrDA;AYnrDD;EACC,uBAAA;EACA,aAAA;EACA,oBAAA;EACA,qBAAA;EZqrDA;AYnrDA;EACC,gBAAA;EZqrDD;AYnrDA;EACC,mBAAA;EZqrDD;AYnrDA;EACC,gBAAA;EZqrDD;AYnrDA;EACC,gBAAA;EZqrDD;AYnrDA;EACC,mBAAA;EZqrDD;AYnrDA;EACC,mBAAA;EZqrDD;AYnrDA;EACC,kBAAA;EZqrDD;AYnrDA;EACC,mBAAA;EZqrDD;AYjrDD;EACC,gBAAA;EZmrDA","file":"knacss-unminified.css"} \ No newline at end of file diff --git a/css/knacss.css b/css/knacss.css index 70c9028..e92a50c 100644 --- a/css/knacss.css +++ b/css/knacss.css @@ -1,4 +1,5 @@ /*! -* www.KNACSS.com V3.1.0 (2014-10-20) @author: Raphael Goetter, Alsacreations +* www.KNACSS.com V4.1.1 (2015-03-30) @author: Raphael Goetter, Alsacreations * Licence WTFPL http://www.wtfpl.net/ -*/*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{margin:0;padding:0}ul,ol{padding-left:2em}ul.unstyled{list-style:none}img{height:auto;vertical-align:middle;border:0}blockquote,figure{margin-left:0;margin-right:0}audio,canvas,video{display:inline-block}svg:not(:root){overflow:hidden}html{font-size:62.5%;font-size:-webkit-calc(.625em);font-size:calc(.625em);-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-size:1.4em;background-color:#fff;color:#000;font-family:Helvetica,Arial,sans-serif;line-height:1.5}a{color:#333}a:hover,a:focus,a:active{color:#000}p,.p-like,ul,ol,dl,blockquote,pre,td,th,label,textarea,caption,details,figure{margin-top:0.75em;margin-bottom:0;line-height:1.5}h1,.h1-like{font-size:3.2rem;font-family:Helvetica,Arial,sans-serif}h2,.h2-like{font-size:2.8rem;font-family:Helvetica,Arial,sans-serif}h3,.h3-like{font-size:2.4rem}h4,.h4-like{font-size:2rem}h5,.h5-like{font-size:1.8rem}h6,.h6-like{font-size:1.6rem}.smaller{font-size:.71em}.small{font-size:.86em}.big{font-size:1.14em}.bigger{font-size:1.29em}.biggest{font-size:1.43em}code,pre,samp,kbd{white-space:pre-line;white-space:pre-wrap;font-family:Consolas,'DejaVu Sans Mono',Courier,monospace;line-height:normal}em,.italic,address,cite,dfn,i,var{font-style:italic}strong,.bold{font-weight:bold}small,sub,sup{font-size:smaller}.visually-hidden{position:absolute !important;border:0 !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important}body>script{display:none !important}@media (max-width:768px){.no-small-screen{display:none}}@media (min-width:1280px){.no-large-screen{display:none}}p:first-child,.p-like:first-child,ul:first-child,ol:first-child,dl:first-child,blockquote:first-child,pre:first-child,h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}li p,li .p-like,li ul,li ol{margin-top:0;margin-bottom:0}img,table,td,blockquote,code,pre,textarea,input,video{max-width:100%}table{margin-bottom:20px}.mod{overflow:hidden}.clear,.line,.row{clear:both}.clearfix:after,.line:after{content:"";display:table;clear:both;border-collapse:collapse}.row{display:table;table-layout:fixed;width:100%}.row>*,.col{display:table-cell;vertical-align:top}.inbl{display:inline-block;vertical-align:top}.left,.start{float:left}img.left,img.start{margin-right:10px}.right,.end{float:right}img.right,img.end{margin-left:10px}img.left,img.right,img.start,img.end{margin-bottom:5px}.center{margin-left:auto;margin-right:auto}.txtleft{text-align:left}.txtright{text-align:right}.txtcenter{text-align:center}.w10{width:10%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w33{width:33.3333%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w66{width:66.6666%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w90{width:90%}.w100{width:100%}.w50p{width:50px}.w100p{width:100px}.w150p{width:150px}.w200p{width:200px}.w300p{width:300px}.w400p{width:400px}.w500p{width:500px}.w600p{width:600px}.w700p{width:700px}.w800p{width:800px}.w960p{width:960px}.mw960p{max-width:960px}.w1140p{width:1140px}.mw1140p{max-width:1140px}.wauto{width:auto}.man{margin:0}.pan{padding:0}.mas{margin:10px}.mam{margin:20px}.mal{margin:40px}.pas{padding:10px}.pam{padding:20px}.pal{padding:40px}.mtn{margin-top:0}.mts{margin-top:10px}.mtm{margin-top:20px}.mtl{margin-top:40px}.mrn{margin-right:0}.mrs{margin-right:10px}.mrm{margin-right:20px}.mrl{margin-right:40px}.mbn{margin-bottom:0}.mbs{margin-bottom:10px}.mbm{margin-bottom:20px}.mbl{margin-bottom:40px}.mln{margin-left:0}.mls{margin-left:10px}.mlm{margin-left:20px}.mll{margin-left:40px}.ptn{padding-top:0}.pts{padding-top:10px}.ptm{padding-top:20px}.ptl{padding-top:40px}.prn{padding-right:0}.prs{padding-right:10px}.prm{padding-right:20px}.prl{padding-right:40px}.pbn{padding-bottom:0}.pbs{padding-bottom:10px}.pbm{padding-bottom:20px}.pbl{padding-bottom:40px}.pln{padding-left:0}.pls{padding-left:10px}.plm{padding-left:20px}.pll{padding-left:40px}.grid{overflow:hidden}.grid>*{display:block;padding:0;margin-left:-20px;text-align:left}.grid>*>*{display:inline-block;padding-left:20px;margin-left:0;vertical-align:top}:root .grid{font-size:0;text-justify:distribute-all-lines}:root .grid>*>*{font-size:14px;font-size:1.4rem}.opera:-o-prefocus,.grid>*{word-spacing:-0.43em}.grid2>*{width:50%}.grid3>*{width:33.333%}.grid4>*{width:25%}.grid5>*{width:20%}.grid6>*{width:16.667%}.grid8>*{width:12.5%}.grid10>*{width:10%}.grid12>*{width:8.333%}.grid2-1>*:first-child,.grid1-2>*+*{width:66.666%}.grid1-2>*:first-child,.grid2-1>*+*{width:33.333%}.grid1-3>*:first-child,.grid3-1>*+*{width:25%}.grid3-1>*:first-child,.grid1-3>*+*{width:75%}[class*="autogrid"]{text-align:justify}[class*="autogrid"]:after{content:"";display:inline-block;width:100%}[class*="autogrid"]>*{display:inline-block;vertical-align:top;text-align:left}:root [class*="autogrid"]{font-size:0;text-justify:distribute-all-lines}:root [class*="autogrid"]>*{font-size:14px;font-size:1.4rem}[class*="autogrid"]:-o-prefocus{word-spacing:-0.43em}.autogrid2>*{width:49%}.autogrid3>*{width:32%}.autogrid4>*{width:23.6%}.autogrid5>*{width:19%}.autogrid6>*{width:15%}.autogrid8>*{width:10.8%}.autogrid10>*{width:9%}.autogrid12>*{width:6.4%}table,.table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;vertical-align:top;border:1px solid #ccc}.table{display:table}table#recaptcha_table,table.table-auto{table-layout:auto}caption{padding:10px;color:#555;font-style:italic}td,th{padding:0.3em 0.8em;border:1px #aaa dotted;vertical-align:top;min-width:20px;cursor:default;text-align:left}.btn{display:inline-block}form,fieldset{border:none}input,button,select,label,.btn{vertical-align:middle;font-family:inherit;font-size:inherit}label{display:inline-block;vertical-align:middle;cursor:pointer}legend{border:0;white-space:normal}textarea{min-height:5em;vertical-align:top;font-family:inherit;font-size:inherit;resize:vertical}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}::-webkit-input-placeholder{color:#777}input:-moz-placeholder,textarea:-moz-placeholder{color:#777}button::-moz-focus-inner,input[type='button']::-moz-focus-inner,input[type='reset']::-moz-focus-inner,input[type='submit']::-moz-focus-inner{border:0;padding:0}.icon{display:inline-block}.icon:before,.icon.after:after{content:"";display:inline-block;vertical-align:middle;position:relative;top:-0.1em;margin:0 0.3em 0 0;font:1.4em/1 sans-serif;color:#000;text-shadow:1px 1px 0 rgba(0,0,0,0.1);speak:none}@media (min-device-width:768px){.icon:before,.icon.after:after{font:1em/.6 sans-serif;-webkit-transform:rotateZ(.05deg)}}.icon.after:after{margin:0 0 0 8px}.icon.after:before{content:"" !important}.icon-rate:before,.icon-rate.after:after{content:"\2605"}.icon-unrate:before,.icon-unrate.after:after{content:"\2606"}.icon-check:before,.icon-check.after:after{content:"\2713"}.icon-uncheck:before,.icon-uncheck.after:after{content:"\2717"}.icon-cloud:before,.icon-cloud.after:after{content:"\2601"}.icon-dl:before,.icon-dl.after:after{content:"\21E3";font-weight:bold}.icon-cross:before,.icon-cross.after:after{content:"\2716";font-weight:bold}.icon-arrow1:before,.icon-arrow1.after:after{content:"\2192";position:relative;top:-0.15em}.icon-arrow2:before,.icon-arrow2.after:after{content:"\279E"}.icon-arrow3:before,.icon-arrow3.after:after{content:"\279A"}.icon-bracket1:before,.icon-bracket1.after:after{content:"\2039";font-weight:bold;font-size:1.6em;position:relative;top:-0.15em}.icon-bracket2:before,.icon-bracket2.after:after{content:"\203A";font-weight:bold;font-size:1.6em;position:relative;top:-0.15em}.icon-up:before,.icon-up.after:after{content:"\25B2"}.icon-down:before,.icon-down.after:after{content:"\25BC"}.icon-bull:before,.icon-bull.after:after{content:"\2022";font-size:1.2em;top:-0.05em}.icon-bull2:before,.icon-bull2.after:after{content:"\25E6";top:-0.05em}.icon-bull3:before,.icon-bull3.after:after{content:"\2023";font-size:1.6em;top:-0.05em}.icon-nav:before,.icon-nav.after:after{content:"\2261";font-weight:bold}.icon-losange:before,.icon-losange.after:after{content:"\25C6"}.icon-asteri:before,.icon-asteri.after:after{content:"\2731";font-weight:bold}.icon-mail:before,.icon-mail.after:after{content:"\2709";font-size:1.6em;top:-0.05em}.flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-h{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-v{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-fluid{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flex-start{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.flex-mid{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.flex-end{-webkit-box-ordinal-group:43;-webkit-order:42;-ms-flex-order:42;order:42}@media (min-width:1025px){.large-hidden{display:none !important}.large-visible{display:block !important}.large-no-float{float:none}.large-inbl{display:inline-block;float:none;vertical-align:top}.large-row{display:table;table-layout:fixed;width:100% !important}.large-col{display:table-cell;vertical-align:top}.large-w25{width:25% !important}.large-w33{width:33.3333% !important}.large-w50{width:50% !important}.large-w66{width:66.6666% !important}.large-w75{width:75% !important}.large-w100,.large-wauto{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.large-man{margin:0 !important}.grid5>*,.grid6>*,.grid8>*,.grid10>*,.grid12>*{width:33.333%}.autogrid5>*,.autogrid6>*,.autogrid8>*,.autogrid10>*,.autogrid12>*{width:32%}}@media (min-width:769px) and (max-width:1024px){.medium-hidden{display:none !important}.medium-visible{display:block !important}.medium-no-float{float:none}.medium-inbl{display:inline-block;float:none;vertical-align:top}.medium-row{display:table;table-layout:fixed;width:100% !important}.medium-col{display:table-cell;vertical-align:top}.medium-w25{width:25% !important}.medium-w33{width:33.3333% !important}.medium-w50{width:50% !important}.medium-w66{width:66.6666% !important}.medium-w75{width:75% !important}.medium-w100,.medium-wauto{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.medium-man{margin:0 !important}}@media (min-width:481px) and (max-width:768px){.mod,.col,fieldset{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.w600p,.w700p,.w800p,.w960p,.mw960p{width:auto;float:none}.small-hidden{display:none !important}.small-visible{display:block !important}.small-no-float{float:none}.small-inbl{display:inline-block;float:none;vertical-align:top}.small-row{display:table !important;table-layout:fixed !important;width:100% !important}.small-col{display:table-cell !important;vertical-align:top !important}.small-w25{width:25% !important}.small-w33{width:33.3333% !important}.small-w50{width:50% !important}.small-w66{width:66.6666% !important}.small-w75{width:75% !important}.small-w100,.small-wauto{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.small-man{margin:0 !important}.small-pan{padding:0 !important}.grid3>*,.grid4>*,.grid5>*,.grid6>*,.grid8>*,.grid10>*,.grid12>*{width:50%}.autogrid5>*,.autogrid6>*,.autogrid8>*,.autogrid10>*,.autogrid12>*{width:49% !important}}@media (max-width:480px){.w300p,.w400p,.w500p{width:auto;float:none}.row{display:block !important;width:100% !important}.tiny-hidden{display:none !important}.tiny-visible{display:block !important}.tiny-no-float{float:none}.tiny-inbl{display:inline-block;float:none;vertical-align:top}.tiny-row{display:table !important;table-layout:fixed !important;width:100% !important}.tiny-col{display:table-cell !important;vertical-align:top !important}th,td{display:block !important;width:auto !important;text-align:left !important}thead{display:none}.tiny-w25{width:25% !important}.tiny-w33{width:33.3333% !important}.tiny-w50{width:50% !important}.tiny-w66{width:66.6666% !important}.tiny-w75{width:75% !important}.tiny-w100,.tiny-wauto{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.tiny-man{margin:0 !important}.tiny-pan{padding:0 !important}.grid>*>*{width:100% !important}[class*="autogrid"]>*{width:100% !important}}@media print{*{background:transparent !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}body{width:auto !important;margin:auto !important;font-family:serif;font-size:12pt;background-color:#fff !important;color:#333 !important}p,h1,h2,h3,h4,h5,h6,blockquote,ul,ol{color:#000 !important;margin:auto !important}.print{display:block}.no-print{display:none}img{-webkit-filter:grayscale(100%);filter:grayscale(100%)}p,blockquote{orphans:3;widows:3}blockquote,ul,ol{page-break-inside:avoid}h1{page-break-before:always}h1,h2,h3,caption{page-break-after:avoid}a{color:#000 !important;text-decoration:underline !important}a[href]:after{content:" (" attr(href) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}}.skip-links{position:absolute}.skip-links a{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);padding:0.5em;background:black;color:white;text-decoration:none}.skip-links a:focus{position:static;overflow:visible;clip:auto}@media (max-width:768px){div,textarea,table,td,th,code,pre,samp{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}}.gm-style img{height:100%}:not(.gm-style) img{height:auto}.gm-style img,.gmnoscreen img,.gmnoprint img{max-width:none !important}.ie67 *{behavior:url(/js/boxsizing.htc)}.ie678 h1,.ie678 .h1-like{font-size:2.29em}.ie678 h2,.ie678 .h2-like{font-size:2em}.ie678 h3,.ie678 .h3-like{font-size:1.71em}.ie678 h4,.ie678 .h4-like{font-size:1.43em}.ie678 h5,.ie678 .h5-like{font-size:1.29em}.ie678 h6,.ie678 .h6-like{font-size:1.14em}.ie678 img{width:auto}.ie678 .gm-style img{height:100%}.clearfix,.line,.mod,.row,.col{*zoom:1}/*! inline-block and table-cell for IE6/IE7 *//*! warning: .col needs width on IE6/IE7 */.btn,.col,.inbl{*display:inline;*zoom:1}.visually-hidden{*clip:rect(1px 1px 1px 1px)}.ie8 .grid>*,.ie8 [class*="autogrid"]>*{letter-spacing:-0.31em;text-rendering:optimizespeed}.ie8 .grid>*>*,.ie8 [class*="autogrid"]>*>*{letter-spacing:normal;word-spacing:normal;text-rendering:auto}.grid>*>*,[class*="autogrid"]>*>*{*display:inline;*zoom:1}.ie678 input[type="checkbox"],.ie678 input[type="radio"]{padding:0}.ie678 textarea{overflow:auto}code,kbd,mark{border-radius:2px}kbd{padding:0 2px;border:1px solid #999}code{padding:2px 4px;background:rgba(0,0,0,0.04);color:#b11}pre code{padding:none;background:none;color:inherit;border-radius:0}mark{padding:2px 4px;background:#ff0}sup,sub{vertical-align:0;position:relative}sup{bottom:1ex}sub{top:0.5ex}blockquote{position:relative;padding-left:3em}blockquote:before{content:"\201C";position:absolute;left:0;top:0;font-family:georgia, serif;font-size:5em;line-height:0.9;color:rgba(0,0,0,0.3)}blockquote>footer{margin-top:.75em;font-size:0.9em;color:rgba(0,0,0,0.7)}blockquote>footer:before{content:"\2014 \0020"}q{font-style:normal}q,.q{quotes:"“\00a0" "\00a0”"}q:lang(fr),.q:lang(fr){quotes:"«\00a0" "\00a0»"}hr{display:block;clear:both;height:1px;margin:1em 0 2em;padding:0;border:0;color:#ccc;background-color:#ccc}.alternate{border:0}.alternate tbody{border:1px solid #ccc}.alternate thead tr>*+*{border-left:0}.alternate tbody tr>*+*{border-left:1px solid #ccc}.alternate-vert{border:0;border-right:1px solid #ccc}.alternate-vert tr>:first-child{border-bottom:0}.alternate-vert tr>*+*{border-top:1px solid #ccc}.striped tbody tr:nth-child(odd){background:#eee;background:rgba(0,0,0,0.05)}.striped-vert tr>:first-child{background:#eee;background:rgba(0,0,0,0.05)} \ No newline at end of file +*//*! normalize.css v3.0.2 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*{box-sizing:inherit}ul,ol{padding-left:2em}ul.unstyled{list-style:none}img{vertical-align:middle}img:not([src$=".svg"]){height:auto}blockquote,figure{margin-left:0;margin-right:0}html{font-size:62.5%;font-size:calc(1em * .625);-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-size:1.4em;background-color:#fff;color:#000;font-family:Helvetica,Arial,sans-serif;line-height:1.5}a{color:#333}a:hover,a:focus,a:active{color:#000}p,.p-like,ul,ol,dl,blockquote,pre,td,th,label,textarea,caption,details,figure{margin-top:.75em;margin-bottom:0;line-height:1.5}h1,.h1-like{font-size:3.2rem;font-family:Helvetica,Arial,sans-serif}h2,.h2-like{font-size:2.8rem;font-family:Helvetica,Arial,sans-serif}h3,.h3-like{font-size:2.4rem}h4,.h4-like{font-size:2rem}h5,.h5-like{font-size:1.8rem}h6,.h6-like{font-size:1.6rem}.smaller{font-size:.6em}.small{font-size:.8em}.big{font-size:1.2em}.bigger{font-size:1.5em}.biggest{font-size:2em}code,pre,samp,kbd{white-space:pre-line;white-space:pre-wrap;font-family:Consolas,"DejaVu Sans Mono",Courier,monospace;line-height:normal}em,.italic,address,cite,i,var{font-style:italic}small,sub,sup{font-size:smaller}.visually-hidden{position:absolute !important;border:0 !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important}@media (max-width:768px){.no-small-screen{display:none}}@media (min-width:1280px){.no-large-screen{display:none}}p:first-child,.p-like:first-child,ul:first-child,ol:first-child,dl:first-child,blockquote:first-child,pre:first-child,h1:first-child,.h1-like:first-child,h2:first-child,.h2-like:first-child,h3:first-child,.h3-like:first-child,h4:first-child,.h4-like:first-child,h5:first-child,.h5-like:first-child,h6:first-child,.h6-like:first-child{margin-top:0}li p,li .p-like,li ul,li ol{margin-top:0;margin-bottom:0}img,table,td,blockquote,code,pre,textarea,input,video{max-width:100%}table{margin-bottom:20px}.mod{overflow:hidden}.clear,.line,.row{clear:both}.clearfix::after,.line::after{content:"";display:table;clear:both;border-collapse:collapse}.left{margin-right:auto}.right{margin-left:auto}.center{margin-left:auto;margin-right:auto}.txtleft{text-align:left}.txtright{text-align:right}.txtcenter{text-align:center}.fl{float:left}img.fl{margin-right:10px}.fr{float:right}img.fr{margin-left:10px}img.fl,img.fr{margin-bottom:5px}.row{display:table;table-layout:fixed;width:100%}.row>*,.col{display:table-cell;vertical-align:top}body>script{display:none !important}.inbl{display:inline-block;vertical-align:top}.flexbox,.flexbox-h,.flexbox-v{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flexbox-v{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flexitem-fluid{-webkit-flex:1;-ms-flex:1;flex:1}.flexitem-first{-webkit-order:-1;-ms-flex-order:-1;order:-1}.flexitem-medium{-webkit-order:0;-ms-flex-order:0;order:0}.flexitem-last{-webkit-order:1;-ms-flex-order:1;order:1}.flexitem-center{margin:auto}[class*="grid-"]{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-left:-1em}[class*="grid-"]>*{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;width:calc(100% * 1 / 4 - 1em);margin-left:1em}.grid-2>*{width:calc(100% * 1 / 2 - 1em)}.grid-2>.flexitem-double{width:calc(100% * 2 / 2 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-2>*{width:calc(100% * 1 / 2 - 1em)}.grid-2>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-2>*{width:calc(100% - 1em)}.grid-2>.flexitem-double{width:calc(100% - 1em)}}.grid-3>*{width:calc(100% * 1 / 3 - 1em)}.grid-3>.flexitem-double{width:calc(100% * 2 / 3 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-3>*{width:calc(100% * 1 / 2 - 1em)}.grid-3>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-3>*{width:calc(100% - 1em)}.grid-3>.flexitem-double{width:calc(100% - 1em)}}.grid-4>*{width:calc(100% * 1 / 4 - 1em)}.grid-4>.flexitem-double{width:calc(100% * 2 / 4 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-4>*{width:calc(100% * 1 / 2 - 1em)}.grid-4>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-4>*{width:calc(100% - 1em)}.grid-4>.flexitem-double{width:calc(100% - 1em)}}.grid-5>*{width:calc(100% * 1 / 5 - 1em)}.grid-5>.flexitem-double{width:calc(100% * 2 / 5 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-5>*{width:calc(100% * 1 / 2 - 1em)}.grid-5>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-5>*{width:calc(100% - 1em)}.grid-5>.flexitem-double{width:calc(100% - 1em)}}.grid-6>*{width:calc(100% * 1 / 6 - 1em)}.grid-6>.flexitem-double{width:calc(100% * 2 / 6 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-6>*{width:calc(100% * 1 / 2 - 1em)}.grid-6>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-6>*{width:calc(100% - 1em)}.grid-6>.flexitem-double{width:calc(100% - 1em)}}.grid-7>*{width:calc(100% * 1 / 7 - 1em)}.grid-7>.flexitem-double{width:calc(100% * 2 / 7 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-7>*{width:calc(100% * 1 / 2 - 1em)}.grid-7>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-7>*{width:calc(100% - 1em)}.grid-7>.flexitem-double{width:calc(100% - 1em)}}.grid-8>*{width:calc(100% * 1 / 8 - 1em)}.grid-8>.flexitem-double{width:calc(100% * 2 / 8 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-8>*{width:calc(100% * 1 / 2 - 1em)}.grid-8>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-8>*{width:calc(100% - 1em)}.grid-8>.flexitem-double{width:calc(100% - 1em)}}.grid-10>*{width:calc(100% * 1 / 10 - 1em)}.grid-10>.flexitem-double{width:calc(100% * 2 / 10 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-10>*{width:calc(100% * 1 / 2 - 1em)}.grid-10>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-10>*{width:calc(100% - 1em)}.grid-10>.flexitem-double{width:calc(100% - 1em)}}.grid-12>*{width:calc(100% * 1 / 12 - 1em)}.grid-12>.flexitem-double{width:calc(100% * 2 / 12 - 1em)}@media (min-width:481px) and (max-width:768px){.grid-12>*{width:calc(100% * 1 / 2 - 1em)}.grid-12>.flexitem-double{width:calc(100% - 1em)}}@media (max-width:480px){.grid-12>*{width:calc(100% - 1em)}.grid-12>.flexitem-double{width:calc(100% - 1em)}}.grid-2-1>*:nth-child(odd){width:calc(66.66666666666666% - 1em)}.grid-2-1>*:nth-child(even){width:calc(33.33333333333333% - 1em)}@media (max-width:480px){.grid-2-1>*:nth-child(n){width:calc(100% - 1em)}}.grid-1-2>*:nth-child(odd){width:calc(33.33333333333333% - 1em)}.grid-1-2>*:nth-child(even){width:calc(66.66666666666666% - 1em)}@media (max-width:480px){.grid-1-2>*:nth-child(n){width:calc(100% - 1em)}}.grid-3-1>*:nth-child(odd){width:calc(75% - 1em)}.grid-3-1>*:nth-child(even){width:calc(25% - 1em)}@media (max-width:480px){.grid-3-1>*:nth-child(n){width:calc(100% - 1em)}}.grid-1-3>*:nth-child(odd){width:calc(25% - 1em)}.grid-1-3>*:nth-child(even){width:calc(75% - 1em)}@media (max-width:480px){.grid-1-3>*:nth-child(n){width:calc(100% - 1em)}}.grid-3-2>*:nth-child(odd){width:calc(60% - 1em)}.grid-3-2>*:nth-child(even){width:calc(40% - 1em)}@media (max-width:480px){.grid-3-2>*:nth-child(n){width:calc(100% - 1em)}}.grid-2-3>*:nth-child(odd){width:calc(40% - 1em)}.grid-2-3>*:nth-child(even){width:calc(60% - 1em)}@media (max-width:480px){.grid-2-3>*:nth-child(n){width:calc(100% - 1em)}}.grid-4-1>*:nth-child(odd){width:calc(80% - 1em)}.grid-4-1>*:nth-child(even){width:calc(20% - 1em)}@media (max-width:480px){.grid-4-1>*:nth-child(n){width:calc(100% - 1em)}}.grid-1-4>*:nth-child(odd){width:calc(20% - 1em)}.grid-1-4>*:nth-child(even){width:calc(80% - 1em)}@media (max-width:480px){.grid-1-4>*:nth-child(n){width:calc(100% - 1em)}}table,.table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;vertical-align:top;border:1px solid #ccc}.table{display:table}table#recaptcha_table,table.table-auto{table-layout:auto}caption{padding:10px;color:#555;font-style:italic}td,th{padding:.3em .8em;border:1px #aaa dotted;vertical-align:top;min-width:20px;cursor:default;text-align:left}.btn{display:inline-block}form,fieldset{border:none}input,button,select,label,.btn{vertical-align:middle;font-family:inherit;font-size:inherit}label{display:inline-block;vertical-align:middle;cursor:pointer}legend{border:0;white-space:normal}textarea{min-height:5em;vertical-align:top;font-family:inherit;font-size:inherit;resize:vertical}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}::-webkit-input-placeholder{color:#777}input:-moz-placeholder,textarea:-moz-placeholder{color:#777}.btn:focus,input:focus,button:focus{outline:0;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none}.w10{width:10%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w33{width:33.3333%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w66{width:66.6666%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w90{width:90%}.w100{width:100%}.w50p{width:50px}.w100p{width:100px}.w150p{width:150px}.w200p{width:200px}.w300p{width:300px}.w400p{width:400px}.w500p{width:500px}.w600p{width:600px}.w700p{width:700px}.w800p{width:800px}.w960p{width:960px}.mw960p{max-width:960px}.w1140p{width:1140px}.mw1140p{max-width:1140px}.wauto{width:auto}.man,.ma0{margin:0}.pan,.pa0{padding:0}.mas{margin:10px}.mam{margin:20px}.mal{margin:40px}.pas{padding:10px}.pam{padding:20px}.pal{padding:40px}.mtn,.mt0{margin-top:0}.mts{margin-top:10px}.mtm{margin-top:20px}.mtl{margin-top:40px}.mrn,.mr0{margin-right:0}.mrs{margin-right:10px}.mrm{margin-right:20px}.mrl{margin-right:40px}.mbn,.mb0{margin-bottom:0}.mbs{margin-bottom:10px}.mbm{margin-bottom:20px}.mbl{margin-bottom:40px}.mln,.ml0{margin-left:0}.mls{margin-left:10px}.mlm{margin-left:20px}.mll{margin-left:40px}.ptn,.pt0{padding-top:0}.pts{padding-top:10px}.ptm{padding-top:20px}.ptl{padding-top:40px}.prn,.pr0{padding-right:0}.prs{padding-right:10px}.prm{padding-right:20px}.prl{padding-right:40px}.pbn,.pb0{padding-bottom:0}.pbs{padding-bottom:10px}.pbm{padding-bottom:20px}.pbl{padding-bottom:40px}.pln,.pl0{padding-left:0}.pls{padding-left:10px}.plm{padding-left:20px}.pll{padding-left:40px}@media (min-width:1025px){.large-hidden{display:none !important}.large-visible{display:block !important}.large-no-float{float:none}.large-inbl{display:inline-block;float:none;vertical-align:top}.large-row{display:table;table-layout:fixed;width:100% !important}.large-col{display:table-cell;vertical-align:top}.large-w25{width:25% !important}.large-w33{width:33.3333% !important}.large-w50{width:50% !important}.large-w66{width:66.6666% !important}.large-w75{width:75% !important}.large-w100,.large-wauto{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.large-man{margin:0 !important}}@media (min-width:769px) and (max-width:1024px){.medium-hidden{display:none !important}.medium-visible{display:block !important}.medium-no-float{float:none}.medium-inbl{display:inline-block;float:none;vertical-align:top}.medium-row{display:table;table-layout:fixed;width:100% !important}.medium-col{display:table-cell;vertical-align:top}.medium-w25{width:25% !important}.medium-w33{width:33.3333% !important}.medium-w50{width:50% !important}.medium-w66{width:66.6666% !important}.medium-w75{width:75% !important}.medium-w100,.medium-wauto{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.medium-man,.medium-ma0{margin:0 !important}}@media (min-width:481px) and (max-width:768px){.w600p,.w700p,.w800p,.w960p,.mw960p{width:auto;float:none}.small-hidden{display:none !important}.small-visible{display:block !important}.small-no-float{float:none}.small-inbl{display:inline-block;float:none;vertical-align:top}.small-row{display:table !important;table-layout:fixed !important;width:100% !important}.small-col{display:table-cell !important;vertical-align:top !important}.small-w25{width:25% !important}.small-w33{width:33.3333% !important}.small-w50{width:50% !important}.small-w66{width:66.6666% !important}.small-w75{width:75% !important}.small-w100,.small-wauto{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.small-man,.small-ma0{margin:0 !important}.small-pan,.small-pa0{padding:0 !important}}@media (max-width:480px){.mod,.col,fieldset{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.flexbox{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.w300p,.w400p,.w500p{width:auto;float:none}.row{display:block !important;width:100% !important}.tiny-hidden{display:none !important}.tiny-visible{display:block !important}.tiny-no-float{float:none}.tiny-inbl{display:inline-block;float:none;vertical-align:top}.tiny-row{display:table !important;table-layout:fixed !important;width:100% !important}.tiny-col{display:table-cell !important;vertical-align:top !important}th,td{display:block !important;width:auto !important;text-align:left !important}thead{display:none}.tiny-w25{width:25% !important}.tiny-w33{width:33.3333% !important}.tiny-w50{width:50% !important}.tiny-w66{width:66.6666% !important}.tiny-w75{width:75% !important}.tiny-w100,.tiny-wauto{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;border:0}.tiny-man,.tiny-ma0{margin:0 !important}.tiny-pan,.tiny-pa0{padding:0 !important}}@media print{*{background:transparent !important;box-shadow:none !important;text-shadow:none !important}body{width:auto !important;margin:auto !important;font-family:serif;font-size:12pt;background-color:#fff !important;color:#333 !important}p,.p-like,h1,.h1-like,h2,.h2-like,h3,.h3-like,h4,.h4-like,h5,.h5-like,h6,.h6-like,blockquote,ul,ol{color:#000 !important;margin:auto !important}.print{display:block}.no-print{display:none}p,.p-like,blockquote{orphans:3;widows:3}blockquote,ul,ol{page-break-inside:avoid}h1,.h1-like{page-break-before:always}h1,.h1-like,h2,.h2-like,h3,.h3-like,caption{page-break-after:avoid}a{color:#000 !important;text-decoration:underline !important}a[href]::after{content:" (" attr(href) ")"}a[href^="javascript:"]::after,a[href^="#"]::after{content:""}}.skip-links{position:absolute}.skip-links a{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);padding:.5em;background:black;color:white;text-decoration:none}.skip-links a:focus{position:static;overflow:visible;clip:auto}@media (max-width:768px){div,textarea,table,td,th,code,pre,samp{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}}.gm-style img{height:100%}:not(.gm-style) img{height:auto}.gm-style img,.gmnoscreen img,.gmnoprint img{max-width:none !important}code,kbd,mark{border-radius:2px}kbd{padding:0 2px;border:1px solid #999}code{padding:2px 4px;background:rgba(0,0,0,0.04);color:#b11}pre code{padding:none;background:none;color:inherit;border-radius:0}mark{padding:2px 4px;background:#ff0}sup,sub{vertical-align:0;position:relative}sup{bottom:1ex}sub{top:.5ex}blockquote{position:relative;padding-left:3em}blockquote::before{content:"\201C";position:absolute;left:0;top:0;font-family:georgia,serif;font-size:5em;line-height:.9;color:rgba(0,0,0,0.3)}blockquote>footer{margin-top:.75em;font-size:.9em;color:rgba(0,0,0,0.7)}blockquote>footer::before{content:"\2014 \0020"}q{font-style:normal}q,.q{quotes:"“\00a0" "\00a0”"}q:lang(fr),.q:lang(fr){quotes:"«\00a0" "\00a0»"}hr{display:block;clear:both;height:1px;margin:1em 0 2em;padding:0;border:0;color:#ccc;background-color:#ccc}.table-alternate{border:0}.table-alternate tbody{border:1px solid #ccc}.table-alternate thead tr>*+*{border-left:0}.table-alternate tbody tr>*+*{border-left:1px solid #ccc}.table-alternate-v{border:0;border-right:1px solid #ccc}.table-alternate-v tr>:first-child{border-bottom:0}.table-alternate-v tr>*+*{border-top:1px solid #ccc}.table-striped tbody tr:nth-child(odd){background:#eee;background:rgba(0,0,0,0.05)}.table-striped-v tr>:first-child{background:#eee;background:rgba(0,0,0,0.05)}.comment-navigation,.paging-navigation,.post-navigation{margin:0 0 1.5em;overflow:hidden}.comment-navigation .nav-previous,.paging-navigation .nav-previous,.post-navigation .nav-previous{float:left;width:50%}.comment-navigation .nav-next,.paging-navigation .nav-next,.post-navigation .nav-next{float:right;text-align:right;width:50%}.alignnone{margin:.25em 1.5em 1.5em 0}.aligncenter{clear:both;display:block;margin:1.5em auto}.alignleft{float:left;margin:0 1.5em .25em 0}.alignright{float:right;margin:0 0 .25em 1.5em}.entry-content,.comment-content{clear:both}.entry-content::after,.comment-content::after,.entry-content::before,.comment-content::before{content:"";display:table}.widget+.widget{margin:1.5em 0 0}.widget select{max-width:100%}.hentry{margin:0 0 1.5em}.page-content,.entry-content,.entry-summary{margin:1.5em 0 0}.page-links{clear:both;margin:0 0 1.5em}.comment-content a{word-wrap:break-word}img.wp-smiley{margin-bottom:0;margin-top:0;padding:0;border:none}.wp-caption{max-width:100%;margin-bottom:1.5em}.wp-caption img{display:block;margin:0 auto}.wp-caption-text{margin:1em 0;text-align:center}.gallery{margin-bottom:1.5em}.gallery-item{display:inline-block;width:100%;text-align:center;vertical-align:top}.gallery-columns-2 .gallery-item{max-width:50%}.gallery-columns-3 .gallery-item{max-width:33.33%}.gallery-columns-4 .gallery-item{max-width:25%}.gallery-columns-5 .gallery-item{max-width:20%}.gallery-columns-6 .gallery-item{max-width:16.66%}.gallery-columns-7 .gallery-item{max-width:14.28%}.gallery-columns-8 .gallery-item{max-width:12.5%}.gallery-columns-9 .gallery-item{max-width:11.11%}.gallery-caption{display:block} +/*# sourceMappingURL=knacss.css.map */ \ No newline at end of file diff --git a/css/knacss.css.map b/css/knacss.css.map new file mode 100644 index 0000000..64256e0 --- /dev/null +++ b/css/knacss.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../less/knacss.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_01a-normalize.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_01b-base.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_02-layout.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_03-grids.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_04-tables.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_05-forms.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_06-helpers.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_07-responsive.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_08-print.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_09-misc.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_10-styling.less","../less/c:/Users/Raphael/Dropbox/Documents/GitHub/KNACSS/less/_11-wordpress.less"],"names":[],"mappings":"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","file":"knacss.css"} \ No newline at end of file diff --git a/doc/00-commencer.md b/doc/00-commencer.md new file mode 100644 index 0000000..74abaaa --- /dev/null +++ b/doc/00-commencer.md @@ -0,0 +1,70 @@ +# KNACSS + +http://www.knacss.com + +KNACSS, c'est un peu comme une feuille de style CSS "reset" sur-vitaminée qui permet de commencer un projet à partir de zéro tout en tenant compte de bonnes pratiques générales (accessibilité, performance, responsive webdesign). + +KNACSS prend en charge les styles de base, mais également la typographie, les modèles de boîte, les alignements et positionnements d'éléments, les grilles de mise en page, dans l'esprit d'être adapté à toutes les tailles d'écran (reponsive). Le tout automatiquement ! + +Conçu par l'agence web [Alsacreations.fr](http://alsacreations.fr) et pensé pour être couplé avec des préprocesseurs tels que LESS ou Sass, le micro-framework KNACSS est employé quotidiennement sur toute sorte de projets web quel que soit son type ou son envergure. + +## Installation + +La version courte est "il n'y a rien à installer". + +Selon votre environnement de travail vous suffit de récupérer la feuille de styles : + +- en version [CSS classique](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/css/knacss-unminified.css) (ou [minifié](vhttps://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/css/knacss.css)) +- en version [LESS](https://github.com/raphaelgoetter/KNACSS/tree/master/less) +- en version [Sass](https://github.com/raphaelgoetter/KNACSS/tree/master/sass) + +_Les versions LESS et Sass seront bien évidemment plus malléables grâce à l'apport de variables et fonctions._ + +À noter que KNACSS est basé sur un socle [Normalize.css](http://necolas.github.io/normalize.css/), célèbre - et éprouvé - reset CSS employé par Twitter, Github, Bootstrap, Guardian, etc. + +## Usage + +KNACSS n'est constitué que d'un seul fichier CSS (minifié ou non selon vos goûts), qu'il vous suffit d'ajouter à votre page HTML : + + + +Il est également possible de l'installer (toutes versions) via [Bower](http://bower.io/) : ```bower install knacss``` + +## RTFM! + +KNACSS se veut être un outil simple (contrairement aux usines à gaz que sont Bootstrap ou Foundation), mais évolutif. +La contrepartie est que cela nécessite de votre part de bonnes connaissances en CSS et un petit effort de compréhension et de d'apprentissage des mécanismes de l'outil. + +Une [**documentation**](https://github.com/raphaelgoetter/KNACSS/tree/master/doc) détaillée et illustrée est en cours de rédaction. Je vous invite vivement à la parcourir avant de vous jeter sur KNACSS. + +Sachez qu'un [pense-bête en PDF](http://knacss.com/KNACSS-cheatsheet.pdf) est également disponible pour vous rappeler des classes utiles de KNACSS. + + +## Préprocesseurs + +KNACSS est conçu et pensé pour être adapté aux préprocesseurs que sont LESS et Sass. Nous employons LESS en interne, nos fichiers de travail sont donc des `.less` et non des `.css` (cela fonctionne aussi avec Sass). + +Si, comme nous, vous intégrez à l'aide de préprocesseurs, KNACSS va vous faciliter la vie dès le début du projet puisqu'un [fichier de configuration](https://github.com/raphaelgoetter/KNACSS/blob/master/less/_00-config.less) contenant toutes les variables du projet est intégré. +Libre à vous de le modifier selon les contraintes de votre projet. + +**Attention**, si vous importez KNACSS automatiquement via Bower (par exemple dans un dossier `vendor`), ce fichier de configuration risque d'être écrasé à chaque mise à jour de KNACSS. Nous vous invitons à en faire une copie dans votre dossier de travail et à commenter l'appel au fichier de config de `vendor`. + +Dans le cas d'un usage via préprocesseur, vos deux fichiers de travail principaux seront : +- le fichier `less/_00-config.less` contenant toutes les variables du projet à définir une fois pour toute au départ +- le fichier `less/knacss.less` qui importe tous les fichiers que vous risquez d'employez dans votre projet (`layout.css`, `responsive.css`, `forms.css`, `print.css`, etc.). + +En cours de développement, il vous suffit de compiler ce fichier `less/knacss.less` (ou `less/knacss.scss`) pour obtenir vos fichiers CSS utiles. + +### Préfixes navigateurs + +Certaines fonctionnalités avancées de KNACSS nécessitent d'employer toute une panoplie de préfixes CSS (`-webkit-`, `-moz-`, `-ms-`, ...) pour être certain que les propriétés CSS fonctionneront partout. + +Au sein de la version classique CSS de KNACSS, l'ensemble des préfixes est présent, **vous n'avez donc pas à vous en soucier** (Autoprefixer réglé à "last 2 versions"). + +**Par contre, dans les versions LESS et Sass de KNACSS, les préfixes n'apparaissent pas** pour ne pas polluer la lecture du fichier de travail. **Il vous sera donc nécessaire de les ajouter**, de préférence automatiquement grâce à un plugin ou aux excellents outils que sont [autoprefixer](https://github.com/postcss/autoprefixer) ou [pleeease](http://pleeease.io/). + +## Liens utiles + +* Site web de KNACSS : http://knacss.com +* [**Documentation détaillée**](https://github.com/raphaelgoetter/KNACSS/tree/master/doc) +* Sur Alsacreations.com : ["découverte du framework KNACSS"](http://www.alsacreations.com/tuto/lire/1577-decouverte-du-framework-css-KNACSS.html) diff --git a/doc/01-typo-et-reset.md b/doc/01-typo-et-reset.md new file mode 100644 index 0000000..af69d61 --- /dev/null +++ b/doc/01-typo-et-reset.md @@ -0,0 +1,34 @@ +# Typographie + +Accessible avant tout, KNACSS propose une gamme de tailles de polices d'unités fluides (`em`, `rem`) plutôt que le pixel, figé et non malléable, donc moins accessible. + +En résumé, voilà les bases typographiques de KNACSS : + +- choix d'unités fluides (`em`, `rem`) +- taille de police définie à 62.5% sur HTML (soit un équivalent de 10px, très pratique pour les conversions en rem) +- taille de base des contenus de 1.4em (soit un équivalent de 14px) modifiable dans la configuration LESS / Sass +- tailles de polices définies pour les niveaux de titres et des modificateurs tels que `.small`, `.smaller`, `.big`, `.bigger`, etc. + +## Reset "light" + +Le reset de KNACSS est volotairement minimal, le but n'étant pas de tout mettre à zéro pour le redéfinir par la suite. + +La feuille de style débute ainsi par une variante de l'incontournable `* {box-sizing: border-box}` afin d'imposer le très pratique modèle de boîte CSS3 à tous les éléments du document. + +S'en suivent quelques mises à zéro de marges, alignements par défaut des images, et quelques spécificités sur des élements tels que `blockquote`, `figure`, `canvas`, `video` ou autres `svg`. + +## Masquage + +À noter que KNACSS prévoit une classe dédiée aux éléments devant être masqués sur écrans graphiques tout en demeurant accessibles aux assistances techniques. Il s'agit de la classe `.visually-hidden`, où le choix des hideux mots-clés `!important` se justifie : + +```css +.visually-hidden { + position: absolute !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + padding: 0 !important; + overflow: hidden !important; + clip: rect(1px, 1px, 1px, 1px) !important; +} +``` diff --git a/doc/02a-layout-alignements.md b/doc/02a-layout-alignements.md new file mode 100644 index 0000000..68abcb4 --- /dev/null +++ b/doc/02a-layout-alignements.md @@ -0,0 +1,64 @@ +# Alignements + +Différentes classes utilitaires intégrées à KNACSS sont prévues pour gérer les alignements d'éléments. + +- les textes et contenus "inline" sont gérés via les classes `.txtleft`, `.txtright` et `.txtcenter` qui agiront sur la propriété CSS `text-align` +- les blocs sont alignés avec les classes `.left`, `.right` et `.center` qui affectent la valeur `auto` à la propriété `margin` +- les flottements sont gérés via les classes `.fl` (pour `float: left`) et `.fr` (pour `float: right`) + +## Cas des flottants et les .mod + +Le positionnement flottant compte parmi les plus employés mais n'est pas exempt d'inconvénients. Le principal étant d'être un positionnement hors du flux qui nécessitera des ajustements (clearfix et autres anti-débordements). + +KNACSS a prévu des classes spécifiques pour mieux vous en sortir avec les flottants : + +- **le super élément `.mod`**. Il a plein d'avantages: il contient les flottants (ils ne débordent pas) et il ne s'écoule pas autour d'un frère flottant (il s'affiche proprement à côté) et il crée un [contexte "BFC"](http://www.alsacreations.com/astuce/lire/1543-le-contexte-de-formatage-block-en-css.html) +- `.clearfix`. Les éléments disposant de cette classe contiennent les flottants, tel les `.mod` +- les éléments `.clear`, `.line` et `.row` bénéficient d'un autre pouvoir : celui de toujours se pousser sous un flottant précédent. Il sont dédiés aux empilements verticaux des contenus. + +## Concrètement : je veux faire quoi ? + +### Centrer horizontalement + +#### Du texte ou une image + +HTML : +```html +
+ aïe ça pique +
+``` + +#### Un bloc + +HTML : +```html +
+
centré horizontalement
+
+``` + +### Centrer verticalement + +![centrer verticalement](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/02-layout.png) + +Version table-cell (HTML) : +```html +
+
centré horizontalement et verticalement
+
+``` + +Version table-cell (CSS) : +```css +section { + vertical-align: middle; +} +``` + +Version flexbox (HTML): +```html +
+
centré horizontalement et verticalement
+
+``` diff --git a/doc/02b-layout-positionnement.md b/doc/02b-layout-positionnement.md new file mode 100644 index 0000000..b99330a --- /dev/null +++ b/doc/02b-layout-positionnement.md @@ -0,0 +1,172 @@ +# Positionnements avec KNACSS + +Au-delà des alignements d'éléments, KNACSS permet de positionner et d'architecturer vos gabarits à travers plusieurs solutions. + +Dans cette page de documentation, nous étudierons en détail chaque cas concret auquel vous risquez d'être confronté et proposerons une réponse adaptée. + +## Différents choix offerts + +Les types de positionnements inclus nativement dans KNACSS sont les suivants : + +- positionnement flottant +- positionnement avec `display: inline-block` +- positionnement avec `display: table-cell` +- positionnement avec Flexbox + +Il n'y a pas de mystère : chaque type de positionnement est capable de répondre à différents types de contraintes. Il n'y a pas de meilleur choix qu'un autre. + +Votre décision pourra être guidée par les indices suivants : +- il est généralement plus profitable de ne pas opter pour des positionnement hors-flux (`float`, `position: absolute`) +- Flexbox est certainement le modèle le plus polyvalent et propre, mais n'est compatible qu'à partir de IE10+. + +## Concrètement : je veux faire quoi ? + +### Deux blocs voisins de largeur fixe + +![Deux blocs voisins de largeur fixe](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-layout1.png) + +Les choix offerts avec KNACSS : + +#### flottant et flottant + +La classe `.fl` pour `float: left` permet à un élément d'être flottant à gauche. + +Il vous suffit de faire flotter vos deux éléments et de leur attribuer la largeur souhaitée pour qu'ils s'affichent l'un à côté de l'autre : + +HTML : +```html +
premier
+
deuxième
+``` + +- **Avantage :** simple, rapide, intuitif, hyper compatible +- **Inconvénient :** positionnement hors du flux, nécessitera des ajustements (clearfix et autres anti-débordements) + +#### inline-block et inline-block + +La propriété `display: inline-block` (sous forme de classe `.inbl` chez KNACSS) permet à un élément de s'afficher tel un "inline" tout en étant dimensionné. + +HTML : +```html +
premier
+
deuxième
+``` + +- **Avantage :** positionnement dans le flux, compatible dès IE8 +- **Inconvénient :** un espace "whitespace" apparaîtra entre les deux div et nécessitera de coller les balises ou de bidouiller en CSS pour être supprimé + +#### table-cell et table-cell + +HTML : +```html +
+
premier
+
deuxième
+
+``` + +- **Avantage :** positionnement dans le flux, compatible dès IE8 +- **Inconvénient :** Le positionnement tabulaire observe [des règles parfois complexes](http://www.alsacreations.com/tuto/lire/1522-le-modele-tabulaire-en-css.html) et surprenantes pour les non habitués. + +#### flexbox + +HTML : +```html +
+
premier
+
deuxième
+
+``` + +- **Avantage :** fluide, propre, simple +- **Inconvénient :** compatibilité IE10 minimum + +### Deux blocs voisins dont un fixe et un fluide + +![Deux blocs voisins de largeur fixe et fluide](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-layout2.png) + +Les choix offerts avec KNACSS : + +#### flottant et .mod + +HTML : +```html +
premier
+
deuxième
+``` + +#### inline-block et inline-block + +Pas possible [Résolu] + +#### table-cell et table-cell + +HTML : +```html +
+
premier
+
deuxième
+
+``` + +#### flexbox + +HTML : +```html +
+
premier
+
deuxième
+
+``` + +### Deux blocs voisins de même hauteur + +![Deux blocs voisins de même hauteur](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-layout3.png) + +Les choix offerts avec KNACSS : + +#### flottant et flottant + +Pas possible [Résolu] + +#### inline-block et inline-block + +Pas possible [Résolu] + +#### table-cell et table-cell + +Par défaut, les éléments constituant des "cellules de tableau", donc `table-cell` ont automatiquement la même hauteur entre frères. Il n'y a donc rien à faire si l'on opte pour ce positionnement : ça marche tout seul. + +HTML : +```html +
+
premier
+
deuxième
+
+``` + +#### flexbox + +Là aussi c'est automatique : les enfants d'un conteneur `flexbox` ont tous par défaut la même hauteur. + +HTML : +```html +
+
premier
+
deuxième
+
+``` + +### Plusieurs blocs voisins de même taille + +![grilles](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-layout4.png) + +Si vous souhaitez réaliser des constructions de plusieurs éléments de même taille (fixe ou fluide) avec ou sans espace entre les éléments (gouttière), je vous invite à prendre connaissance des possibilités de **grilles** offertes par KNACSS. + +Voir **[la Doc au point 03-grilles](https://github.com/raphaelgoetter/KNACSS/blob/master/doc/03-grilles.md)**. + +### Schnaps.it, générateur de templates KNACSS + +Alsacréations tient à jour un générateur de gabarits HTML/CSS basé sur le framework KNACSS, **[Schnaps.it](http://schnaps.it/)**, n'hésitez pas à en user et en abuser ! + +![grilles](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/schnapsit.png) diff --git a/doc/03-grilles.md b/doc/03-grilles.md new file mode 100644 index 0000000..ec306e1 --- /dev/null +++ b/doc/03-grilles.md @@ -0,0 +1,222 @@ +# Grilles de mise en page +Il existe deux types principaux de systèmes de grilles dans KNACSS : + +- Les grilles à colonnes égales +- Les grilles à colonnes inégales + +Dans les deux cas, la technique associée depuis KNACSS v4 pour concevoir les grilles est **CSS3 Flexbox**, ce qui signifie que la compatibilité de **cette fonctionnalité sera réservée aux [navigateurs modernes](http://caniuse.com/#search=flexbox)** (IE10, Android 4.4+ et tous les autres). + +**NOTE pour les utilisateurs de LESS / Sass :** par défaut, les grilles sont activées dans KNACSS. Si vous avez le moindre souci, vérifiez que `@import "_03-grids";` est présent et non commenté dans votre fichier `less/knacss.less` ou `sass/knacss.scss`). + +## Précautions à prendre + +Qui dit CSS3 dit précautions à prendre. +La bonne nouvelle est que Flexbox est plutôt bien reconnu par l'ensemble des navigateurs de la planète; la mauvaise est que certains anciens navigateurs (Android par exemple) ne reconnaissent que certaines versions précédentes des spécifications. Il est donc encore nécessaire d'employer toute une panoplie de préfixes CSS (`-webkit-`, `-moz-`, `-ms-`, ...) pour être certain que vos grilles fonctionneront partout. + +Au sein de la version CSS de KNACSS, l'ensemble des préfixes est présent, **vous n'avez donc pas à vous en soucier**. + +**Par contre, dans les versions LESS et Sass de KNACSS, les préfixes n'apparaissent pas** pour ne pas polluer la lecture du fichier de travail. **Il vous sera donc nécessaire de les ajouter**, de préférence automatiquement grâce à un plugin ou aux excellents outils que sont [autoprefixer](https://github.com/postcss/autoprefixer) ou [pleeease](http://pleeease.io/). + +## Exemple concret + +Pour vous faire une idée, et jouer avec les valeurs possibles, vous trouverez [un exemple "bac à sable"](http://codepen.io/raphaelgoetter/pen/BybOag?editors=110) sur CodePen. + +**Exemple de grille de colonnes égales :** + +HTML : +```html +
+
un div ou n'importe quoi d'autre
+
un 2è div ou n'importe quoi d'autre
+
un 3è div ou n'importe quoi d'autre
+
etc.
+
+``` + +Résultat : +![grille de largeur égale](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-grid-even.png) + +**Exemple de grille de colonnes inégales (3/4 - 1/4) :** + +HTML : +```html +
+
un div ou n'importe quoi d'autre
+
un 2è div ou n'importe quoi d'autre
+
un 3è div ou n'importe quoi d'autre
+
etc.
+
+``` + +Résultat : +![grille de largeur inégale](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-grid-uneven.png) + +## Mise en oeuvre + +Il est très simple de construire une grille, il vous suffit : + +- D'un **conteneur** +- D'autant **d'enfants** que vous souhaitez + +Le **conteneur** sera l'élément HTML que vous voulez (`div`, `section`, `ul`, ...). Il vous suffit simplement de le munir d'une classe selon votre choix de grille : + +- `.grid-2`, `.grid-3`, `.grid-4`, ... `.grid-12` pour les grilles de largeur égale +- `.grid-2-1`, `.grid-1-2`, `.grid-3-1`, `.grid-1-3`, `.grid-3-2`, `.grid-2-3`, `.grid-4-1`, `.grid-1-4` pour les grilles de largeurs inégales (`.grid-2-1` vaut pour "2/3 - 1/3" par exemple). + +Par défaut, chaque colonne est séparée de sa voisine par une gouttière dont la largeur par défaut est `1em`. Pour modifier ce réglage, il sera nécessaire de passer par la version préprocesseur (LESS, Sass) de KNACSS (voir plus loin). + +Les **enfants** directs d'un conteneur, quels qu'ils soient, se répartissent automatiquement au sein de la grille formée par leur conteneur. Par exemple, 6 enfants contenus dans un parent de classe `.grid-3` se répartiront en 3 colonnes de 2 lignes. + +## Offsets + +Il vous est très facile de "pousser" un élément à droite ou à gauche de sa ligne dans la grille, et créer ainsi un espacement volontaire, ce que l'on appelle "offset". + +Pour cela, appliquez simplement l'une ou l'autre de ces déclarations sur l'élément : + +- `margin-left: auto` pour le pousser à droite sur sa ligne (ou avec la classe `.left`) +- `margin-right: auto` pour le pousser à gauche sur sa ligne (ou avec la classe `.right`) + +HTML : +```html +
+
un div ou n'importe quoi d'autre
+
je suis poussé à droite
+
un 3è div ou n'importe quoi d'autre
+
etc.
+
+``` + +Résultat : +![offset](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-offset.png) + +## Mise en exergue + +Il est possible de mettre un élément particulier en exergue, en **doublant sa taille** par rapport aux autres, tout en conservant un agencement parfait de la grille. + +Pour ce faire, appliquez la classe `.flexitem-double` à cet élément. + +HTML : +```html +
+
un div ou n'importe quoi d'autre
+
je suis deux fois plus large que mes frères
+
un 3è div ou n'importe quoi d'autre
+
etc.
+
+``` + +Résultat : +![mise en exergue](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-double.PNG) + +## Pousser au début ou à la fin + +Vous pouvez modifier l'ordre d'affichage des éléments au sein d'une grille à l'aide des classes : + +- `.flexitem-first` (l'élément apparaîtra avant tous les autres) +- `.flexitem-last` (l'élément apparaîtra tout à la fin de la grille) + +HTML : +```html +
+
un div ou n'importe quoi d'autre
+
je m'affiche avant tous mes frères
+
un 3è div ou n'importe quoi d'autre
+
etc.
+
+``` + +Résultat : +![preums!](https://raw.githubusercontent.com/raphaelgoetter/KNACSS/master/doc/illust/03-first.PNG) + +## Plus loin avec les préprocesseurs + +KNACSS est pensé pour être utilisé à l'aide de preprocesseurs tels que LESS ou Sass. Il existe par conséquent un fichier de variables de configuration et des mixins prévus pour étendre les possibilités des grilles notamment. + +### Modifier les variables globales + +Les variables de configuration des grilles se trouvent dans le fichier `less/_00-config.less` (pour les utilisateurs de LESS) et `sass/_00-config.scss` (en version Sass) : + +```css +@gutter: 1em; +@number: 4; // for equal columns +@left: 2; // left side of uneven columns +@right: 1; // right side of uneven columns +``` + +Il vous suffit de modifier les valeurs de ces variables de config pour répercuter vos préférences sur l'ensemble du projet dès que vos fichiers LESS/Sass seront compilés en CSS. + +### Générer des grilles personnalisées + +Indépendamment des variables de configuration, rien de vous empêche de créer une grille personnalisée en incluant directement l'un des deux mixins possibles dans vos éléments : + +- `.grid(n)` pour personnaliser une grille de colonnes **égales**. Les arguments sont "n" = nombre de colonnes +- `.uneven-grid(l,r)` pour personnaliser une grille de colonnes **inégales**. Les arguments sont "l" = pour le ratio de la colonne de gauche, "r" = pour le ratio de la colonne de droite + +#### Grille de colonnes égales en LESS + +**Objectif : je souhaite que mon élément `.grid-container` crée une grille de 6 colonnes égales** + +LESS (fichier de développement) : +```css +.grid-container { + .grid(6); +} +``` + +CSS compilé (sans Autoprefixer) : + +```css +.grid-container { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin-left: -1em; +} +.grid-container > * { + flex: 0 0 auto; + width: 16.66666667%; + display: block; /* IE fix */ + border-left: 1em solid transparent; + background-clip: padding-box !important; /* no background on border */ +} +... +``` + +#### Grille de colonnes inégales en LESS + +**Objectif : je souhaite que mon élément `.grid-truc` crée une grille de 2 colonnes réparties en 2/3 et 1/3.** + +LESS (fichier de développement) : + +```css +.grid-truc { + .uneven-grid(2, 1); +} +``` + +CSS compilé (sans Autoprefixer) : + +```css +.grid-truc { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin-left: -1em; +} +.grid-truc > * { + display: block; /* IE fix */ + border-left: 1em solid transparent; + background-clip: padding-box !important; /* no background on border */ +} +.grid-truc > *:nth-child(odd) { + width: 66.66666667%; +} +.grid-truc > *:nth-child(even) { + width: 33.33333333%; +} +... +``` + +## Article associé + +Si vous voulez comprendre dans le détail le fonctionnement des grilles Flexbox de KNACSS, je vous invite à suivre l'article d'Alsacréations ["Une grille responsive avec CSS3 Flexbox et LESS (ou Sass)"](http://www.alsacreations.com/tuto/lire/1659-une-grille-responsive-avec-flexbox-et-LESS.html). diff --git a/doc/04-tableaux.md b/doc/04-tableaux.md new file mode 100644 index 0000000..48a71a2 --- /dev/null +++ b/doc/04-tableaux.md @@ -0,0 +1,38 @@ +# Tableaux de données + +KNACSS propose une feuille de style minimale appliquée aux tableaux de données ainsi qu'aux éléments disposant d'une classe `.table`. + +Pour débuter, KNACSS impose un modèle d'affichage fixé à tous les tableaux via `table-layout: fixed;`. Ainsi, ce ne sera plus le contenu qui décidera de la largeur des cellules, mais ce que vous aurez spécifié dans les tailles CSS. + +```css +table, +.table { + width: 100%; + max-width: 100%; + table-layout: fixed; + border-collapse: collapse; + vertical-align: top; + border: 1px solid #ccc; +} +.table { + display: table; +} +table#recaptcha_table, +table.table-auto { + table-layout: auto; +} +caption { + padding: 10px; + color: #555; + font-style: italic; +} +td, +th { + padding: 0.3em 0.8em; + border: 1px #aaa dotted; + vertical-align: top; + min-width: 20px; + cursor: default; + text-align: left; +} +``` diff --git a/doc/05-formulaires.md b/doc/05-formulaires.md new file mode 100644 index 0000000..e74af1e --- /dev/null +++ b/doc/05-formulaires.md @@ -0,0 +1,12 @@ +# Formulaires + +Afin d'harmoniser l'affichage par défaut des éléments de formulaires au sein de l'ensemble des navigateurs, un certain nombre de styles est prévu dans KNACSS. +Pour constituer cette base de "bonnes pratiques", les crédits reviennent notamment aux ressources suivantes : + +- [HTML5boilerplate](https://html5boilerplate.com/), +- [github.com/nathansmith/formalize](http://github.com/nathansmith/formalize), +- [sitepen.com](http://www.sitepen.com) + +Le reset "formulaire" de KNACSS tient compte des éléments suivants : `form`, `input`, `fieldset`, `button`, `select`, `label`, `legend`, `textarea`, etc. + +Notez également qu'en attribuant la classe `.btn` à un élément, vous le considérerez (et stylerez) tel un bouton de formulaire. diff --git a/doc/06-helpers.md b/doc/06-helpers.md new file mode 100644 index 0000000..4214e18 --- /dev/null +++ b/doc/06-helpers.md @@ -0,0 +1,148 @@ +# Helpers + +Les "Helpers" sont des classes purement visuelles et utilitaires (non "sémantiques"), pas très jolie mais rudement pratiques en production pour alléger vos feuilles de styles. + +**Attention toutefois !** Ce type de classes conduit fréquemment [à des abus au sein de votre code HTML](http://blog.goetter.fr/2014/11/10/bien-utiliser-un-framework-css/). + +Par exemple, Si vous avez 20 images au comportement identique dans la page, ne les affublez pas de classes visuelles multiples telles que `img class="mod clearfix left inbl w200p pas mb1 large-mb2 small-mbn"` mais optez plutôt pour une classe personnalisée : `img class="media"` par exemple. + +**Méthode :** Limitez-vous à 4 noms de classes au grand maximum par élément HTML. Si vous pensez qu’il vous en faut davantage, il est temps d’envisager une classe personnalisée, ou de profiter des pré-processeurs CSS. + +_Les valeurs de helpers peuvent être modifiées au sein du fichier de configuration LESS / Sass._ + +## les Helpers de largeur + +Largeurs fluides (en pourcentage) : + +```css +.w10 { + width: 10%; +} +.w20 { + width: 20%; +} +.w25 { + width: 25%; +} +... +.w100 { + width: 100%; +} + +``` + +Largeurs fixes (en pixel) : + +```css +.w50p { + width: 50px; +} +.w100p { + width: 100px; +} +.w150p { + width: 150px; +} +... +.w960p { + width: 960px; +} +.w1140p { + width: 1140px; +} + +``` + +Largeurs spéciales : + +```css +.mw960p { + max-width: 960px; +} +.mw1140p { + max-width: 1140px; +} +.wauto { + width: auto; +} +``` + + +## les Helpers d'espacement + +Les herpers d'espacement comportent des classes dédiées aux marges externes (margin) et aux marges internes (padding). + +Leur nommage est assez intuitif : + +- p,m = padding, margin +- a,t,r,b,l = all, top, right, bottom,left +- s,m,l,n (ou 0) = small, medium, large, none (ou 0) + +Exemples : + +- `.prs` signifie "padding-right small" (où "small" est défini dans votre fichier de configuration, par défaut 5px) +- `.man` signifie "margin all none" (fonctionne aussi avec la syntaxe `.ma0`) + +### les marges externes (margin) + +```css +.man, +.ma0 { + margin: 0; +} +.mas { + margin: 10px; +} +.mam { + margin: 20px; +} +.mal { + margin: 40px; +} +.mtn, +.mt0 { + margin-top: 0; +} +.mts { + margin-top: 10px; +} +.mtm { + margin-top: 20px; +} +.mtl { + margin-top: 40px; +} +... +``` + +### les marges internes (padding) + +```css +.ptn, +.pt0 { + padding-top: 0; +} +.pts { + padding-top: 10px; +} +.ptm { + padding-top: 20px; +} +.ptl { + padding-top: 40px; +} +.prn, +.pr0 { + padding-right: 0; +} +.prs { + padding-right: 10px; +} +.prm { + padding-right: 20px; +} +.prl { + padding-right: 40px; +} +... +``` diff --git a/doc/07-responsive.md b/doc/07-responsive.md new file mode 100644 index 0000000..170a3c0 --- /dev/null +++ b/doc/07-responsive.md @@ -0,0 +1,118 @@ +# Responsive Webdesign + +## Points de rupture + +Par défaut, KNACSS tient compte des valeurs de points de rupture suivants : + +- "tiny" : correspond à une fenêtre de 480px ou moins +- "small" : correspond à une fenêtre entre 481px et 768px inclus +- "medium"correspond à une fenêtre entre 769px et 1024px inclus +- "large"correspond à une fenêtre entre 1025px et 1280px inclus +- "extra-large"correspond à une fenêtre entre 1281px et 1600px inclus +- "ultra-large"correspond à une fenêtre à partir de 1601px + +_Les valeurs des points de rupture peuvent être modifiées au sein du fichier de configuration LESS / Sass._ + +## Préfixes de classe + +Pour les points de rupture "large", "medium", "small" et "tiny", des préfixes de classes ont été introduits dans KNACSS : + +- `.large-*` : préfixe KNACSS destiné aux styles sur écrans larges +- `.medium-*` : préfixe KNACSS destiné aux styles sur écrans medium +- `.small-*` : préfixe KNACSS destiné aux styles sur écrans small +- `.tiny-*` : préfixe KNACSS destiné aux styles sur écrans tiny + +### Exemple : le point de rupture "tiny" + +Voici quelques-unes des classes dédiées aux écrans de très petite taille… Le mot-clé `!important` est nécessaire pour être certain que les styles écrasent bien les styles appliqués par défaut. + +Masquage / visibilité : + +```css +.tiny-hidden { + display: none !important; +} +.tiny-visible { + display: block !important; +} +``` + +Modèles d'affichage : + +```css +.tiny-no-float { + float: none; +} +.tiny-inbl { + display: inline-block; + float: none; + vertical-align: top; +} +.tiny-row { + display: table !important; + table-layout: fixed !important; + width: 100% !important; +} +.tiny-col { + display: table-cell !important; + vertical-align: top !important; +} +``` + +Largeurs : + +```css +.tiny-w25 { + width: 25% !important; +} +.tiny-w33 { + width: 33.3333% !important; +} +.tiny-w50 { + width: 50% !important; +} +.tiny-w66 { + width: 66.6666% !important; +} +.tiny-w75 { + width: 75% !important; +} +.tiny-w100, +.tiny-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; +} +``` + +Marges : + +```css +.tiny-man, + .tiny-ma0 { + margin: 0 !important; +} +.tiny-pan, +.tiny-pa0 { + padding: 0 !important; +} +``` + + +## Règles de styles particulières + +```css +@media (min-width: 1025px) { + /* rules for big resources and big screens like: background-images, font-faces, etc. */ +} +``` + +```css +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) { + /* style adjustments for high density devices */ +} +``` diff --git a/doc/08-print.md b/doc/08-print.md new file mode 100644 index 0000000..b9fcdce --- /dev/null +++ b/doc/08-print.md @@ -0,0 +1,77 @@ +# Styles d'impression + +KNACSS impose une mise en forme d'impression par défaut, à savoir : + +- suppression des couleurs de fond des éléments +- suppression des ombrages de boîte et de texte +- largeur automatique à la page (body) +- couleur de texte #333, couleur de page blanche, taille de texte 12 points, etc. + +```css +* { + background: transparent !important; + box-shadow: none !important; + text-shadow: none !important; +} +body { + width: auto !important; + margin: auto !important; + font-family: serif; + font-size: 12pt; + background-color: #fff !important; + color: #333 !important; +} +``` + +KNACSS gère également les sauts de pages, les lignes veuves et orphelines : + +```css +/* no orphans, no widows */ + p, + .p-like, + blockquote { + orphans: 3; + widows: 3; + } + /* no breaks inside these elements */ + blockquote, + ul, + ol { + page-break-inside: avoid; + } + /* page break before main headers */ + h1, + .h1-like { + page-break-before: always; + } + /* no breaks after these elements */ + h1, + .h1-like, + h2, + .h2-like, + h3, + .h3-like, + caption { + page-break-after: avoid; + } +``` + +Une classe spécifique permet d'afficher ou de masquer du contenu sur imprimante : + +```css +.print { + display: block; +} +.no-print { + display: none; +} +``` + +Bonus : par défaut, KNACSS décide de rendre toutes les images noir et blanc (sauvons les cartouches d'encre !) : + +```css +img { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); +} +``` diff --git a/doc/09-misc.md b/doc/09-misc.md new file mode 100644 index 0000000..66259ff --- /dev/null +++ b/doc/09-misc.md @@ -0,0 +1,71 @@ +# Divers + +La feuille de style "fourre-tout" de KNACSS, où l'on retrouve des règles pratiques dans certains contextes, mais pas suffisamment universelles pour être appliquées par défaut dans un framework. + +## Liens d'évitement + +Les [liens d'évitement](http://www.alsacreations.com/tuto/lire/572-Les-liens-d-evitement.html) sont prévus pour faciliter la navigation au clavier, ils sont indispensable dans une optique de parfaite accessibilité. + +KNACSS propose des styles par défaut pour ces liens : masqués au départ, ils deviennent visibles lorsque la touche `tab` est utilisée. + +```css +.skip-links { + position: absolute; +} +.skip-links a { + position: absolute; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); + padding: 0.5em; + background: black; + color: white; + text-decoration: none; +} +.skip-links a:focus { + position: static; + overflow: visible; + clip: auto; +} +``` + +## Césures + +KNACSS gère automatiquement les césures et les mots longs dès lors que le point de rupture "small" est atteint. + +```css +@media (max-width: 768px) { + /* you shall not pass */ + div, + textarea, + table, + td, + th, + code, + pre, + samp { + word-wrap: break-word; + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + } +} +``` + +## Google maps + +KNACSS règle les bugs d'affichage dans le cas spécifique des images google. + +```css +.gm-style img { + height: 100%; +} +:not(.gm-style) img { + height: auto; +} +.gm-style img, +.gmnoscreen img, +.gmnoprint img { + max-width: none !important; +} +``` diff --git a/doc/10-styling.md b/doc/10-styling.md new file mode 100644 index 0000000..3ed7b0a --- /dev/null +++ b/doc/10-styling.md @@ -0,0 +1,11 @@ +# Décorations diverses + +Dans cette feuille de style, KNACSS apporte un minimum de décoration à divers éléments habituels. +Il ne s'agit pas d'un "reset" mais bien d'une couche de design qu'il n'est bien entendu pas du tout indispensable de conserver. + +- les élements de code (`code`, `pre`) +- le surlignement (`mark`) +- les contenus en exposant ou en indice (`sup`, `sup`) +- les citations (`q`, `blockquote`) +- les séparateurs (`hr`) +- les tableaux de données diff --git a/doc/11-wordpress.md b/doc/11-wordpress.md new file mode 100644 index 0000000..2a37e00 --- /dev/null +++ b/doc/11-wordpress.md @@ -0,0 +1,5 @@ +# Styles WordPress + +Cette feuille de style, exclusivement dédiée au CMS WordPress, constitue en un "reset" de base pour cet outil que nous employons fréquemment au sein de l'agence Alsacréations.fr. + +C'est Geoffrey Crofte qui a conçu ce fichier de bonnes pratiques (basée sur un socle proposé par Automattic), n'hésitez pas à le contacter sur son site perso [CreativeJuiz](http://www.creativejuiz.fr/) si vous avez la moindre question à son propos. diff --git a/doc/illust/02-layout.png b/doc/illust/02-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..2ecf0458d0805faace537ef36093fb1368133cd8 GIT binary patch literal 26057 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 literal 0 HcmV?d00001 diff --git a/doc/illust/03-double.PNG b/doc/illust/03-double.PNG new file mode 100644 index 0000000000000000000000000000000000000000..2e3da4cb822472469668ec397540d72b92a2ed52 GIT binary patch literal 32303 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

K0P|5}rHUppZc@GMlm{a}nD(uIZRYvCUJo0e z4?OtAFp>LWCAEh9MX9=(=M)w#(>))e?g9d3@Ib&hnpX!SL#zJaJCE7udAM2=UN-EF z_1Jl3<(tFm&==J-i4`}Uj?8@wQWnd2wL1WFrWP%!>tj?#yCBi$`b90bo$^5L!89Sqzoiv0`qU z_zm(R57z2%F2bxFdqSlY*~kwS8Jw`9T@s|C#w3Cp8wG z_jrI&NYbB%G-z%}%kV8C6dvd|pVP7{h8g8^-@vmdU@K0{aFC0L+y$@9tHlZspSw1Frr5d=2M0s{Kn# za`s2&;XmK>jnx3PMZJu>;#BLCC;(#+FucuVUvFk}eGCh~8Xaxr=7Bfil!*Sp$kiJM zQY^u>nYtMdkrThI+~svnMK!z%dT&*`P54zKXTJ{O!W*grNyu`)A}ui9th8&1 zV2t4lm;FHR-Nzpx4Rq*5RN-xH^#Fwe3=pOHvy^FpL3XkO6kTpyb#geLKo&0zuziiR z3wWXkN5WI?ujQ>nH5Zz4fAPzqWQ7+gxiPNiWr8#MVn+$KPw4IKM0g!I0C3s`Z`sk) z{FXmLvfOvgC=Y0@HrxJdt?eRh(T-bxf2V!ebKZq^3s+BSjdY@s`@UV^ui21?gfYLy zhd?rx4A-1lyx})WGEcjatwPV}W%cVa^Buk}IISI+cI$2|)#H&mGA4Ox`{1y(tMIgk z%0GIqP^XT;4fJiT%?zD#o)LbwYSr+aH-yjo!NWex)narroaWfEHd4;Ln08se94cWJ z=)B_C43^FK`bCG#y$3r)mtZp^&U%s>1_n-Hi>osWJ9y4iCUBpQ+I*Yb>2oAQi)nH( zUwC^{{I>F1?*G%?xkWW~`@SFh=(9Da$IlWscO1Q+@T6+&wRA1dL!N&h+X&=aJ4*{YITe(Y z5&OI~IYNq(3&OFT_oYo)@9y3TH)5T&o{m;EwMM+rbYLtw3#)MpnUUd4#peCq5cYD7 z5CX+qeAqdLnu=9_$viJIAq0S?j&}BlRCejzG@{CG>ThF9Pgh7#zJe5qjy(~j{;60D ze-*--9TsFis0r_w{VDZAM6mXr8|Kc9Va`pfU0R4FsjMw$vvjA;Z86bL&R{5x&pQcch~{K_}F z^m113S(US|8&Ew+vy`M#4B_)zT1}f(LHA_V3J+!aO5Z4qsOcU!NqQq}D48T8MQH&8 zHZ3GsHEAuTfnO8{nj7LQ6!*@0cLU4iyHX|;8OyOW-!=@>zDrVEzH(PO{XDtlASXs8 zG`L2QFm~W<5NL%~8#09KulP7@(7uV&BQS1=_jPA|+>ps6?{YJR8l}4`tS)u<6p`92 zldG3+cqLth(X5um7{kl(HjrDOb+c8aW6+;)^+;~8QkmmYB!Q>o2j$t?ky+&Aa(7Jb9Zra=@y37XBwBZfZ+O;f{sHwU3dVtMm-zLtc6N#SGp#DTlu z*-zPWAsX%ng->)ZGLZiQ@Sf=3dm@~|sKV+i-@q!qEdiuV7=%HFmTpL0IH?_61MEMp zL6;hb5Jtu?9z!{ath-P-ZyuF>z~ws2V9evx&r(EZP+iKpJ?Wy+x!hkHC>@!Cou>Mx z;A4F^85SlwuX02_67g443nzkK%9OTK>gnVj%pL}ztY6N-HxGsxVWq>I&slzEfattY$!iKbv6p%JH|Ilt75WAti%+wd!d(DIBLEy zqpY8D^~3%QC--2QfPO|k>k>#gR`c-=A#~;2Y}2wLr(A-Ifu-iqrT|= z@k{Je2IsSWmBax3D6L(Kyxl0+42OW#c;pl2hx7=~g+}Lc$qUFTm+e-2*sX*6(cDO|RrWwJ_hS zp)PX}PPc0fr)zA$#y&Bly>!<5;R8+=QI=}m!az3UGX&lq>^g^>0K{XItd?i1no3Bd zpe;1hl5rLh5n3{zZ;q!sup39|vTZK#_@vM{Lv`y54`)Inj8-CcRoHk)b%xggJGCx?=LEerskM?mqnM z%9*e${BTY0+i0xSu96}mpdIo1?(KE|>0hKX;?txn;*3aHx;lNa zL|xXqFA*d+KG6bA{!;F}z~!guU+!npcF%UDzt!lDpcw5jje9Ze-UnXwZjMNZQ*>`a zOCZK9jSWD8aZBHY-oD&KKJ?CdWITZLnorQ-1BZU`+g{g@a_}86U7c6%y z&r@5GNCpl5v1?_WmMvZen`4VJJWkd+=e*?8N73kRiRS*1@L@;hgCak12#8rOT$*0k zwhyTJzrcnwi?lfj0RPeF4^H3aAeKQo@^P6(=2cW5gY3<)@ z-!{(kje55KD|Y@@q)p(t2R9is=HCC*95G1V`tb}@h@*#pi|wsB_22#wbaYjxrxz1= UR@jc?!@%+FVgIj~hwy*?H{NnwivR!s literal 0 HcmV?d00001 diff --git a/doc/illust/03-grid-uneven.png b/doc/illust/03-grid-uneven.png new file mode 100644 index 0000000000000000000000000000000000000000..e69d388d70a4704ba6fb7ed1b3ae1dd2497a5927 GIT binary patch literal 29966 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 literal 0 HcmV?d00001 diff --git a/doc/illust/03-layout1.png b/doc/illust/03-layout1.png new file mode 100644 index 0000000000000000000000000000000000000000..2b0061bbef62595f5b0783d42879ba4ffe8d2e8e GIT binary patch literal 46614 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 literal 0 HcmV?d00001 diff --git a/doc/illust/03-layout3.png b/doc/illust/03-layout3.png new file mode 100644 index 0000000000000000000000000000000000000000..410993cf4a822a6070e57a2c8091de4d9ed6bdcd GIT binary patch literal 42890 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

v#|T(?orf^}(^vqm|oxt0Cyi}`qX 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 JQ7vW=_&+qwKE(h4 literal 0 HcmV?d00001 diff --git a/doc/illust/03-layout4.png b/doc/illust/03-layout4.png new file mode 100644 index 0000000000000000000000000000000000000000..f0e567f091ae17f1275189a313a1e3077f75f13a GIT binary patch literal 95516 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 literal 0 HcmV?d00001 diff --git a/doc/illust/03-offset.png b/doc/illust/03-offset.png new file mode 100644 index 0000000000000000000000000000000000000000..a35f4f226312fd44bea62c8c8981e92b4c12a5a0 GIT binary patch literal 16200 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 G`2PW}0HqrM literal 0 HcmV?d00001 diff --git a/doc/illust/schnapsit.png b/doc/illust/schnapsit.png new file mode 100644 index 0000000000000000000000000000000000000000..53a5945af793f914c8a945fceb375baa17056288 GIT binary patch literal 40898 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 GEB^(Vr@;jP literal 0 HcmV?d00001 diff --git a/less/_00-config.less b/less/_00-config.less index 10b1144..769d162 100644 --- a/less/_00-config.less +++ b/less/_00-config.less @@ -1,65 +1,57 @@ -// Config file : variables, mixins, ... +/*! +* www.KNACSS.com V4.1.1 (2015-03-30) @author: Raphael Goetter, Alsacreations +* Licence WTFPL http://www.wtfpl.net/ +*/ + +// Config file and project variables // font sizes -@base-font-size : 14px; // if "14px" then 1em = 14px -@line-height : 1.5; // equiv line-height 1.5 -@h1-size : 3.2rem; // equiv "32px" -@h2-size : 2.8rem; // equiv "28px" -@h3-size : 2.4rem; // equiv "24px" -@h4-size : 2.0rem; // equiv "20px" -@h5-size : 1.8rem; // equiv "18px" -@h6-size : 1.6rem; // equiv "16px" +@base-font-size : 14px; // if "14px" then 1em = 14px +@line-height : 1.5; // equiv line-height 1.5 +@h1-size : 3.2rem; // equiv "32px" +@h2-size : 2.8rem; // equiv "28px" +@h3-size : 2.4rem; // equiv "24px" +@h4-size : 2.0rem; // equiv "20px" +@h5-size : 1.8rem; // equiv "18px" +@h6-size : 1.6rem; // equiv "16px" // font stacks -@font-stack-common : Helvetica, Arial, sans-serif; // common font -@font-stack-headings : Helvetica, Arial, sans-serif; // headings font -@font-stack-monospace : Consolas, 'DejaVu Sans Mono', Courier, monospace; // monospace font -@font-stack-universal : FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif; // universal stack +@font-stack-common : Helvetica, Arial, sans-serif; // common font +@font-stack-headings : Helvetica, Arial, sans-serif; // headings font +@font-stack-monospace : Consolas, "DejaVu Sans Mono", Courier, monospace; // monospace font +@font-stack-universal : FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif; // universal stack // font colors -@base-color : #000; // text color on body and content -@primary-color : #000; // text color on primary elements -@secondary-color : #000; // text color on secondary elements -@headings-color : #000; // text color on headings -@base-color-link : #333; // base links color -@base-color-link-hover : #000; // base hovered/focused links color +@base-color : #000; // text color on body and content +@primary-color : #000; // text color on primary elements +@secondary-color : #000; // text color on secondary elements +@headings-color : #000; // text color on headings +@base-color-link : #333; // base links color +@base-color-link-hover : #000; // base hovered/focused links color // backgrounds -@base-background : #fff; // body background color -@primary-background : #fff; // primary elements background color -@secondary-background : #fff; // secondary elements background color +@base-background : #fff; // body background color +@primary-background : #fff; // primary elements background color +@secondary-background : #fff; // secondary elements background color // spacings (choose unit you prefer) -@tiny-value : 5px; // tiny value for margins / paddings -@small-value : 10px; // small value for margins / paddings -@medium-value : 20px; // medium value for margins / paddings -@large-value : 40px; // large value for margins / paddings -@extra-large-value : 80px; // extra large value for margins / paddings -@ultra-large-value : 160px; // ultra large value for margins / paddings +@tiny-value : 5px; // tiny value for margins / paddings +@small-value : 10px; // small value for margins / paddings +@medium-value : 20px; // medium value for margins / paddings +@large-value : 40px; // large value for margins / paddings +@extra-large-value : 80px; // extra large value for margins / paddings +@ultra-large-value : 160px; // ultra large value for margins / paddings // breakpoints (choose unit you prefer) -@tiny-screen : 480px; // tiny screens media query (less than 480px) -@small-screen : 768px; // screens between 481px and 768px -@medium-screen : 1024px; // screens between 769px and 1024px -@large-screen : 1280px; // screens between 1025px and 1280px -@extra-large-screen : 1600px; // screens between 1281px and 1600px -@ultra-large-screen : 1920px; // ultra large screens +@tiny-screen : 480px; // tiny screens media query (less than 480px) +@small-screen : 768px; // screens between 481px and 768px +@medium-screen : 1024px; // screens between 769px and 1024px +@large-screen : 1280px; // screens between 1025px and 1280px +@extra-large-screen : 1600px; // screens between 1281px and 1600px +@ultra-large-screen : 1920px; // ultra large screens -// misc (choose unit you prefer) -@gutter : 20px; // gutter value for grid layouts. Unit can be: %, px, em, rem - -// LESS mixins : don't touch or you'll be banned ;) -// px to em/rem -.rem(@size, @bf: @base-font-size){ - @rem: @size / 10; - font-size: unit(round(@base-font-size * @size /10), px); - font-size: unit(@rem, rem); -} -.em(@size, @bf: @base-font-size){ - @em: @size / @bf; - font-size: unit(round(@em,2), em); -} -.px(@size, @bf: @base-font-size){ - @px: @size * @bf; - font-size: unit(round(@px,2), px); -} +// grids variables (choose unit you prefer) +@gutter: 1em; // gutter value for grid layouts. Unit can be: %, px, em, rem +@number: 4; // number of equal columns +@left: 2; // left side of uneven columns +@right: 1; // right side of uneven columns diff --git a/less/_01a-normalize.less b/less/_01a-normalize.less new file mode 100644 index 0000000..87e37d2 --- /dev/null +++ b/less/_01a-normalize.less @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | github.com/necolas/normalize.css */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/less/_01b-base.less b/less/_01b-base.less new file mode 100644 index 0000000..0c9f119 --- /dev/null +++ b/less/_01b-base.less @@ -0,0 +1,255 @@ +/* ----------------------------- */ +/* == soft reset */ +/* ----------------------------- */ + +/* switching to border-box model for all elements */ +html { + box-sizing: border-box; +} + +* { + box-sizing: inherit; +} + +ul, +ol { + padding-left: 2em; +} + +ul.unstyled { + list-style: none; +} + +img { + vertical-align: middle; +} + +/* height auto only for non SVG images */ +img:not([src$=".svg"]) { + height: auto; +} + +blockquote, +figure { + margin-left: 0; + margin-right: 0; +} + +/* ----------------------------- */ +/* == typography */ +/* ----------------------------- */ + +html { + + /* set base font-size to equiv "10px", which is adapted to rem unit */ + font-size: 62.5%; + + /* IE9-IE11 math fixing. See http://bit.ly/1g4X0bX */ + /* thanks to @guardian, @victorbritopro and @eQRoeil */ + font-size: ~'calc(1em * .625)'; + + /* disallow text zooming on orientation change (non standard property) */ + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + + /* set body font-size in em (1.4em equiv "14px") */ + font-size: unit((@base-font-size / 10), em); + + background-color: @base-background; + color: @base-color; + font-family: @font-stack-common; + line-height: @line-height; +} + +a { + color: @base-color-link; + &:hover, &:focus, &:active { + color: @base-color-link-hover; + } +} + +/* font-sizing for content */ +p, +.p-like, +ul, +ol, +dl, +blockquote, +pre, +td, +th, +label, +textarea, +caption, +details, +figure { + margin-top: 0.75em; + margin-bottom: 0; + line-height: @line-height; +} + +h1, +.h1-like { + font-size: @h1-size; + font-family: @font-stack-headings; +} + +h2, +.h2-like { + font-size: @h2-size; + font-family: @font-stack-headings; +} + +h3, +.h3-like { + font-size: @h3-size; +} + +h4, +.h4-like { + font-size: @h4-size; +} + +h5, +.h5-like { + font-size: @h5-size; +} + +h6, +.h6-like { + font-size: @h6-size; +} + +/* alternate font-sizing */ +.smaller { + font-size: 0.6em; +} + +.small { + font-size: 0.8em; +} + +.big { + font-size: 1.2em; +} + +.bigger { + font-size: 1.5em; +} + +.biggest { + font-size: 2em; +} + +code, +pre, +samp, +kbd { + /* IE fix */ + white-space: pre-line; + white-space: pre-wrap; + font-family: @font-stack-monospace; + line-height: normal; +} + +em, +.italic, +address, +cite, +i, +var { + font-style: italic; +} + +small, +sub, +sup { + font-size: smaller; +} + +/* ----------------------------- */ +/* == hiding content */ +/* ----------------------------- */ + +/* hidden but not for an assistive technology like a screen reader, Yahoo! method */ +.visually-hidden { + position: absolute !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + padding: 0 !important; + overflow: hidden !important; + clip: rect(1px, 1px, 1px, 1px) !important; +} + +@media (max-width: @small-screen) { + .no-small-screen { + display: none; + } +} + +@media (min-width: @large-screen) { + .no-large-screen { + display: none; + } +} + +/* ----------------------------- */ +/* == browsers consistency */ +/* ----------------------------- */ + +/* avoid top margins on first content element */ +p, +.p-like, +ul, +ol, +dl, +blockquote, +pre, +h1, +.h1-like, +h2, +.h2-like, +h3, +.h3-like, +h4, +.h4-like, +h5, +.h5-like, +h6, +.h6-like { + &:first-child { + margin-top: 0; + } +} + +/* avoid margins on nested elements */ +li p, +li .p-like, +li ul, +li ol { + margin-top: 0; + margin-bottom: 0; +} + +/* max values */ +img, +table, +td, +blockquote, +code, +pre, +textarea, +input, +video { + max-width: 100%; +} + +/* margin-bottom on tables */ +table { + margin-bottom: @medium-value; +} + diff --git a/less/_02-layout.less b/less/_02-layout.less new file mode 100644 index 0000000..5907a00 --- /dev/null +++ b/less/_02-layout.less @@ -0,0 +1,135 @@ +/* ----------------------------- */ +/* ==layout and modules */ +/* ----------------------------- */ + +/* module, gains superpower "BFC" Block Formating Context */ +.mod { + overflow: hidden; +} + +/* blocks that needs to be placed under floats */ +.clear, +.line, +.row { + clear: both; +} + +/* blocks that must contain floats */ +.clearfix, +.line { + &::after { + content: ""; + display: table; + clear: both; + border-collapse: collapse; + } +} + +/* simple blocks alignment */ +.left { + margin-right: auto; +} + +.right { + margin-left: auto; +} + +.center { + margin-left: auto; + margin-right: auto; +} + +/* text and contents alignment */ +.txtleft { + text-align: left; +} + +.txtright { + text-align: right; +} + +.txtcenter { + text-align: center; +} + +/* floating elements */ +.fl { + float: left; +} + +img.fl { + margin-right: @small-value; +} + +.fr { + float: right; +} + +img.fr { + margin-left: @small-value; +} + +img.fl, +img.fr { + margin-bottom: @tiny-value; +} + +/* table layout */ +.row { + display: table; + table-layout: fixed; + width: 100%; +} + +.row > *, +.col { + display: table-cell; + vertical-align: top; +} + +/* no table-cell for script tag when body is a .row */ +body > script { + display: none !important; +} + +/* inline-block */ +.inbl { + display: inline-block; + vertical-align: top; +} + +/* flexbox layout +http://www.alsacreations.com/tuto/lire/1493-css3-flexbox-layout-module.html +*/ + +.flexbox, +.flexbox-h, +.flexbox-v { + display : flex; + flex-wrap: wrap; + flex-direction: row; +} + +.flexbox-v { + flex-direction: column; +} + +.flexitem-fluid { + flex: 1; +} + +.flexitem-first { + order : -1; +} + +.flexitem-medium { + order : 0; +} + +.flexitem-last { + order : 1; +} + +.flexitem-center { + margin: auto; +} diff --git a/less/_03-grids.less b/less/_03-grids.less index d1a1c13..b78d5ff 100644 --- a/less/_03-grids.less +++ b/less/_03-grids.less @@ -1,175 +1,151 @@ /* ---------------------------------- */ -/* ==classic grids */ -/* .. use it when gutter size matters */ +/* ==Grids */ /* ---------------------------------- */ -/* grids inspired from SUIT https://github.com/suitcss/suit */ +// WARNING : KNACSS grids are flexbox based and only supported by IE10+ +// Tuto : http://www.alsacreations.com/tuto/lire/1659-une-grille-responsive-avec-flexbox-et-LESS.html +// Demo : http://codepen.io/raphaelgoetter/pen/zxBMLW -/* overall container of grids */ -.grid { - overflow: hidden; -} +// Usage in vanilla CSS: +// -

for an equal fourth columns grid container +// -
for an uneven columns grid container -/* global styles for direct child ex. .grid3 */ -.grid > * { - display: block; - padding: 0; - /* gutter value */ +// Usage with preprocessors : if you're using LESS, you can config grids variables : +// n = number of columns (default = 4) +// example : .grid-perso { .grid(12); } +// ... or uneven grids : +// left = left ratio column (default = 2) / right = right ratio column (default = 1) +// example : .grid-perso { .uneven-grid(2, 1); } + +[class*="grid-"] { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; margin-left: -@gutter; - text-align: left; } -/* global styles for each "cell" */ -.grid > * > * { - display: inline-block; - /* gutter value */ - padding-left: @gutter; - margin-left: 0; - vertical-align: top; +[class*="grid-"] > * { + flex: 0 0 auto; + display: block; /* IE fix */ + width: ~'calc(100% * 1 / @{number} - @{gutter})'; + margin-left: @gutter; } -/* whitespace fixing for modern browsers including IE9+ */ -:root .grid { - font-size: 0; - /* fallback for IE9+ */ - text-justify: distribute-all-lines; +// LESS mixins for *equal* columns grid container +// example : .grid-perso { .grid(12); } +.grid(@number:@number, @gutter:@gutter) { + & > * { + width: ~'calc(100% * 1 / @{number} - @{gutter})'; + } + & > .flexitem-double { + width: ~'calc(100% * 2 / @{number} - @{gutter})'; + } + @media (min-width: (@tiny-screen + 1)) and (max-width: @small-screen) { + & > * { + width: ~'calc(100% * 1 / 2 - @{gutter})'; + } + & > .flexitem-double { + width: ~'calc(100% - @{gutter})'; + } + } + @media (max-width: @tiny-screen) { + & > * { + width: ~'calc(100% - @{gutter})'; + } + & > .flexitem-double { + width: ~'calc(100% - @{gutter})'; + } + } } -:root .grid > * > * { - /* fallback for Opera Mini */ - font-size: @base-font-size; - font-size: unit((@base-font-size / 10), rem); +// Examples : will be compiled in CSS + +.grid-2 { + .grid(2); } -/* Opera hack */ -.opera:-o-prefocus, -.grid > * { - word-spacing: -0.43em; +.grid-3 { + .grid(3); } -.grid2 > * { - width: 50%; +.grid-4 { + .grid(4); } -.grid3 > * { - width: 33.333%; +.grid-5 { + .grid(5); } -.grid4 > * { - width: 25%; +.grid-6 { + .grid(6); } -.grid5 > * { - width: 20%; +.grid-7 { + .grid(7); } -.grid6 > * { - width: 16.667%; +.grid-8 { + .grid(8); } -.grid8 > * { - width: 12.5%; +.grid-10 { + .grid(10); } -.grid10 > * { - width: 10%; +.grid-12 { + .grid(12); } -.grid12 > * { - width: 8.333%; +// LESS mixins for *unequal* columns grid container +// example : .grid-perso { .uneven-grid(2, 1); } + .uneven-grid(@left:@left, @right:@right, @gutter:@gutter) { + & > *:nth-child(odd) { + @size: (@left / (@left + @right)) * 100%; + width: ~'calc(@{size} - @{gutter})'; + } + & > *:nth-child(even) { + @size: (@right / (@left + @right)) * 100%; + width: ~'calc(@{size} - @{gutter})'; + } + @media (max-width: @tiny-screen) { + & > *:nth-child(n) { + width: ~'calc(100% - @{gutter})'; + } + } } -/* unequal grids (1-2, 2-1, 1-3 and 3-1) for 2 blocks */ -.grid2-1 > *:first-child, -.grid1-2 > * + * { - width: 66.666%; + +// Examples : will be compiled in CSS + +.grid-2-1 { + .uneven-grid(2,1); } -.grid1-2 > *:first-child, -.grid2-1 > * + * { - width: 33.333%; +.grid-1-2 { + .uneven-grid(1,2); } -.grid1-3 > *:first-child, -.grid3-1 > * + * { - width: 25%; +.grid-3-1 { + .uneven-grid(3,1); } -.grid3-1 > *:first-child, -.grid1-3 > * + * { - width: 75%; +.grid-1-3 { + .uneven-grid(1,3); } -/* ---------------------------------- */ -/* ==autogrids */ -/* .. to automatically justify blocs */ -/* ---------------------------------- */ - -/* Demo : http://codepen.io/raphaelgoetter/pen/Kqehf */ - -/* container of autogrids */ -[class*="autogrid"] { - text-align: justify; +.grid-3-2 { + .uneven-grid(3,2); } -[class*="autogrid"]:after { - content: ""; - display: inline-block; - width: 100%; +.grid-2-3 { + .uneven-grid(2,3); } -[class*="autogrid"] > * { - display: inline-block; - vertical-align: top; - text-align: left; +.grid-4-1 { + .uneven-grid(4,1); } -/* whitespace fixing for modern browsers including IE9+ */ -:root [class*="autogrid"] { - font-size: 0; - /* fallback for IE9+ */ - text-justify: distribute-all-lines; -} - -:root [class*="autogrid"] > * { - /* fallback for Opera Mini */ - font-size: @base-font-size; - font-size: unit((@base-font-size / 10), rem); -} - -/* Opera hack */ -[class*="autogrid"]:-o-prefocus { - word-spacing: -0.43em; -} - -.autogrid2 > * { - width: 49%; -} - -.autogrid3 > * { - width: 32%; -} - -.autogrid4 > * { - width: 23.6%; -} - -.autogrid5 > * { - width: 19%; -} - -.autogrid6 > * { - width: 15%; -} - -.autogrid8 > * { - width: 10.8%; -} - -.autogrid10 > * { - width: 9%; -} - -.autogrid12 > * { - width: 6.4%; -} +.grid-1-4 { + .uneven-grid(1,4); +} \ No newline at end of file diff --git a/less/_04-tables.less b/less/_04-tables.less index d83ffb5..fe968ad 100644 --- a/less/_04-tables.less +++ b/less/_04-tables.less @@ -24,7 +24,7 @@ table.table-auto { caption { padding: @small-value; color: #555; - font-style: italic; + font-style: italic; } td, diff --git a/less/_05-forms.less b/less/_05-forms.less index cd4a570..97f23fa 100644 --- a/less/_05-forms.less +++ b/less/_05-forms.less @@ -27,7 +27,7 @@ label, font-size: inherit; } -label { +label { display: inline-block; vertical-align: middle; cursor: pointer; @@ -46,19 +46,6 @@ textarea { resize: vertical; } -/* clickable input types in iOS */ -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -input[type="search"] { - -webkit-appearance: textfield; -} - /* if select styling bugs on WebKit */ /* select { -webkit-appearance: none; } */ @@ -79,11 +66,14 @@ textarea:-moz-placeholder { color: #777; } -/* Removes inner padding and border in FF3+ */ -button::-moz-focus-inner, -input[type='button']::-moz-focus-inner, -input[type='reset']::-moz-focus-inner, -input[type='submit']::-moz-focus-inner { - border: 0; - padding: 0; +.btn:focus, +input:focus, +button:focus { + outline: 0; + -webkit-tap-highlight-color: transparent; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; } diff --git a/less/_06-helpers.less b/less/_06-helpers.less new file mode 100644 index 0000000..2dbd802 --- /dev/null +++ b/less/_06-helpers.less @@ -0,0 +1,297 @@ +/* ---------------------------------- */ +/* ==visual helpers */ +/* .. use them with parcimony ! */ +/* ---------------------------------- */ + +/* blocks widths (percentage and pixels) */ +.w10 { + width: 10%; +} + +.w20 { + width: 20%; +} + +.w25 { + width: 25%; +} + +.w30 { + width: 30%; +} + +.w33 { + width: 33.3333%; +} + +.w40 { + width: 40%; +} + +.w50 { + width: 50%; +} + +.w60 { + width: 60%; +} + +.w66 { + width: 66.6666%; +} + +.w70 { + width: 70%; +} + +.w75 { + width: 75%; +} + +.w80 { + width: 80%; +} + +.w90 { + width: 90%; +} + +.w100 { + width: 100%; +} + + +.w50p { + width: 50px; +} + +.w100p { + width: 100px; +} + +.w150p { + width: 150px; +} + +.w200p { + width: 200px; +} + +.w300p { + width: 300px; +} + +.w400p { + width: 400px; +} + +.w500p { + width: 500px; +} + +.w600p { + width: 600px; +} + +.w700p { + width: 700px; +} + +.w800p { + width: 800px; +} + +.w960p { + width: 960px; +} + +.mw960p { + max-width: 960px; +} + +.w1140p { + width: 1140px; +} + +.mw1140p { + max-width: 1140px; +} + +.wauto { + width: auto; +} + +/* spacing helpers +p,m = padding,margin +a,t,r,b,l = all,top,right,bottom,left +s,m,l,n = small, medium, large, none +*/ +.man, +.ma0 { + margin: 0; +} + +.pan, +.pa0 { + padding: 0; +} + +.mas { + margin: @small-value; +} + +.mam { + margin: @medium-value; +} + +.mal { + margin: @large-value; +} + +.pas { + padding: @small-value; +} + +.pam { + padding: @medium-value; +} + +.pal { + padding: @large-value; +} + +.mtn, +.mt0 { + margin-top: 0; +} + +.mts { + margin-top: @small-value; +} + +.mtm { + margin-top: @medium-value; +} + +.mtl { + margin-top: @large-value; +} + +.mrn, +.mr0 { + margin-right: 0; +} + +.mrs { + margin-right: @small-value; +} + +.mrm { + margin-right: @medium-value; +} + +.mrl { + margin-right: @large-value; +} + +.mbn, +.mb0 { + margin-bottom: 0; +} + +.mbs { + margin-bottom: @small-value; +} + +.mbm { + margin-bottom: @medium-value; +} + +.mbl { + margin-bottom: @large-value; +} + +.mln, +.ml0 { + margin-left: 0; +} + +.mls { + margin-left: @small-value; +} + +.mlm { + margin-left: @medium-value; +} + +.mll { + margin-left: @large-value; +} + +.ptn, +.pt0 { + padding-top: 0; +} + +.pts { + padding-top: @small-value; +} + +.ptm { + padding-top: @medium-value; +} + +.ptl { + padding-top: @large-value; +} + +.prn, +.pr0 { + padding-right: 0; +} + +.prs { + padding-right: @small-value; +} + +.prm { + padding-right: @medium-value; +} + +.prl { + padding-right: @large-value; +} + +.pbn, +.pb0 { + padding-bottom: 0; +} + +.pbs { + padding-bottom: @small-value; +} + +.pbm { + padding-bottom: @medium-value; +} + +.pbl { + padding-bottom: @large-value; +} + +.pln, +.pl0 { + padding-left: 0; +} + +.pls { + padding-left: @small-value; +} + +.plm { + padding-left: @medium-value; +} + +.pll { + padding-left: @large-value; +} \ No newline at end of file diff --git a/less/_07-responsive.less b/less/_07-responsive.less new file mode 100644 index 0000000..4647444 --- /dev/null +++ b/less/_07-responsive.less @@ -0,0 +1,372 @@ +/* ----------------------------- */ +/* ==desktop and HD devices */ +/* ----------------------------- */ + +@media (min-width: (@medium-screen + 1)) { + /* rules for big resources and big screens like: background-images, font-faces, etc. */ +} + +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) { + /* style adjustments for high density devices */ +} + +/* ---------------------------------- */ +/* ==Responsive large */ +/* ---------------------------------- */ + +@media (min-width: (@medium-screen + 1)) { + + /* layouts for large screens */ + .large-hidden { + display: none !important; + } + + .large-visible { + display: block !important; + } + + .large-no-float { + float: none; + } + + .large-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + + .large-row { + display: table; + table-layout: fixed; + width: 100% !important; + } + + .large-col { + display: table-cell; + vertical-align: top; + } + + /* widths for large screens */ + .large-w25 { + width: 25% !important; + } + + .large-w33 { + width: 33.3333% !important; + } + + .large-w50 { + width: 50% !important; + } + + .large-w66 { + width: 66.6666% !important; + } + + .large-w75 { + width: 75% !important; + } + + .large-w100, + .large-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for large screens */ + .large-man { + margin: 0 !important; + } +} + +/* ---------------------------------- */ +/* ==Responsive medium */ +/* ---------------------------------- */ + +@media (min-width: (@small-screen + 1)) and (max-width: @medium-screen) { + + /* layouts for medium screens */ + .medium-hidden { + display: none !important; + } + + .medium-visible { + display: block !important; + } + + .medium-no-float { + float: none; + } + + .medium-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + + .medium-row { + display: table; + table-layout: fixed; + width: 100% !important; + } + + .medium-col { + display: table-cell; + vertical-align: top; + } + + /* widths for medium screens */ + .medium-w25 { + width: 25% !important; + } + + .medium-w33 { + width: 33.3333% !important; + } + + .medium-w50 { + width: 50% !important; + } + + .medium-w66 { + width: 66.6666% !important; + } + + .medium-w75 { + width: 75% !important; + } + + .medium-w100, + .medium-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for medium screens */ + .medium-man, + .medium-ma0 { + margin: 0 !important; + } +} + +/* ---------------------------------- */ +/* ==Responsive small */ +/* ---------------------------------- */ + +@media (min-width: (@tiny-screen + 1)) and (max-width: @small-screen) { + + /* quick reset in small resolution and less */ + .w600p, + .w700p, + .w800p, + .w960p, + .mw960p { + width: auto; + float: none; + } + + /* layouts for small screens */ + .small-hidden { + display: none !important; + } + + .small-visible { + display: block !important; + } + + .small-no-float { + float: none; + } + + .small-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + + .small-row { + display: table !important; + table-layout: fixed !important; + width: 100% !important; + } + + .small-col { + display: table-cell !important; + vertical-align: top !important; + } + + /* widths for small screens */ + .small-w25 { + width: 25% !important; + } + + .small-w33 { + width: 33.3333% !important; + } + + .small-w50 { + width: 50% !important; + } + + .small-w66 { + width: 66.6666% !important; + } + + .small-w75 { + width: 75% !important; + } + + .small-w100, + .small-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for small screens */ + .small-man, + .small-ma0 { + margin: 0 !important; + } + + .small-pan, + .small-pa0 { + padding: 0 !important; + } + +} + +/* ---------------------------------- */ +/* ==Responsive tiny */ +/* ---------------------------------- */ + +@media (max-width: @tiny-screen) { + + /* quick tiny resolution reset */ + .mod, + .col, + fieldset { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + .flexbox { + flex-direction: column; + } + + .w300p, + .w400p, + .w500p { + width: auto; + float: none; + } + + .row { + display: block !important; + width: 100% !important; + } + + /* layouts for tiny screens */ + .tiny-hidden { + display: none !important; + } + + .tiny-visible { + display: block !important; + } + + .tiny-no-float { + float: none; + } + + .tiny-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + + .tiny-row { + display: table !important; + table-layout: fixed !important; + width: 100% !important; + } + + .tiny-col { + display: table-cell !important; + vertical-align: top !important; + } + + th, + td { + display: block !important; + width: auto !important; + text-align: left !important; + } + + thead { + display: none; + } + + /* widths for tiny screens */ + .tiny-w25 { + width: 25% !important; + } + + .tiny-w33 { + width: 33.3333% !important; + } + + .tiny-w50 { + width: 50% !important; + } + + .tiny-w66 { + width: 66.6666% !important; + } + + .tiny-w75 { + width: 75% !important; + } + + .tiny-w100, + .tiny-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for tiny screens */ + .tiny-man, + .tiny-ma0 { + margin: 0 !important; + } + + .tiny-pan, + .tiny-pa0 { + padding: 0 !important; + } + +} diff --git a/less/_08-print.less b/less/_08-print.less new file mode 100644 index 0000000..3ef76f5 --- /dev/null +++ b/less/_08-print.less @@ -0,0 +1,94 @@ +/* quick print reset */ +@media print { + + * { + background: transparent !important; + box-shadow: none !important; + text-shadow: none !important; + } + + body { + width: auto !important; + margin: auto !important; + font-family: serif; + font-size: 12pt; + background-color: #fff !important; + color: #333 !important; + } + + p, + .p-like, + h1, + .h1-like, + h2, + .h2-like, + h3, + .h3-like, + h4, + .h4-like, + h5, + .h5-like, + h6, + .h6-like, + blockquote, + ul, + ol { + color: #000 !important; + margin: auto !important; + } + + .print { + display: block; + } + + .no-print { + display: none; + } + + /* no orphans, no widows */ + p, + .p-like, + blockquote { + orphans: 3; + widows: 3; + } + + /* no breaks inside these elements */ + blockquote, + ul, + ol { + page-break-inside: avoid; + } + + /* page break before main headers */ + h1, + .h1-like { + page-break-before: always; + } + + /* no breaks after these elements */ + h1, + .h1-like, + h2, + .h2-like, + h3, + .h3-like, + caption { + page-break-after: avoid; + } + + a { + color: #000 !important; + text-decoration: underline !important; + } + + /* displaying URLs */ + a[href]::after { + content: " (" attr(href) ")"; + } + + a[href^="javascript:"]::after, + a[href^="#"]::after { + content: ""; + } +} diff --git a/less/_09-misc.less b/less/_09-misc.less new file mode 100644 index 0000000..808ee3b --- /dev/null +++ b/less/_09-misc.less @@ -0,0 +1,55 @@ +/* ----------------------------- */ +/* ==misc rules */ +/* ----------------------------- */ + +/* styling skip links */ +.skip-links { + position: absolute; + + & a { + position: absolute; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); + padding: 0.5em; + background: black; + color: white; + text-decoration: none; + + &:focus { + position: static; + overflow: visible; + clip: auto; + } + } +} + +// hyphens on small screens +@media (max-width: @small-screen) { + /* you shall not pass */ + div, + textarea, + table, + td, + th, + code, + pre, + samp { + word-wrap: break-word; + hyphens: auto; + } +} + +/* Google Gmap3 bug fix on images */ +.gm-style img { + height: 100%; +} + +:not(.gm-style) img { + height: auto; +} + +.gm-style img, +.gmnoscreen img, +.gmnoprint img { + max-width: none !important; +} diff --git a/less/_10-styling.less b/less/_10-styling.less new file mode 100644 index 0000000..2f0531b --- /dev/null +++ b/less/_10-styling.less @@ -0,0 +1,141 @@ +/* ----------------------------- */ +/* ==minor stylings */ +/* ----------------------------- */ + +/* styling elements */ +code, +kbd, +mark { + border-radius: 2px; +} + +kbd { + padding: 0 2px; + border: 1px solid #999; +} + +code { + padding: 2px 4px; + background: rgba(0,0,0,0.04); + color: #b11; +} + +pre code { + padding: none; + background: none; + color: inherit; + border-radius: 0; +} + +mark { + padding:2px 4px; + background: #ff0; +} + +sup, +sub { + vertical-align: 0; + position: relative; +} + +sup { + bottom: 1ex; +} + +sub { + top: 0.5ex; +} + +blockquote { + position: relative; + padding-left: 3em; +} + +blockquote::before { + content: "\201C"; + position: absolute; + left: 0; + top: 0; + font-family: georgia, serif; + font-size: 5em; + line-height: 0.9; + color: rgba(0, 0, 0, .3); +} + +blockquote > footer { + margin-top: .75em; + font-size: 0.9em; + color: rgba(0, 0, 0, .7); +} + +blockquote > footer::before { + content: "\2014 \0020"; +} + +q { + font-style: normal; +} + +q, +.q { + quotes: "“\00a0" "\00a0”"; +} + +q:lang(fr), +.q:lang(fr) { + quotes: "«\00a0" "\00a0»"; +} + +hr { + display: block; + clear: both; + height: 1px; + margin: 1em 0 2em; + padding: 0; + border: 0; + color: #ccc; + background-color: #ccc; +} + +/* alternate tables */ +.table-alternate { + border: 0; +} + +.table-alternate tbody { + border: 1px solid #ccc; +} + +.table-alternate thead tr > * + * { + border-left: 0; +} + +.table-alternate tbody tr > * + * { + border-left: 1px solid #ccc; +} + +/* alternate-vert tables */ +.table-alternate-v { + border: 0; + border-right: 1px solid #ccc; +} + +.table-alternate-v tr > :first-child { + border-bottom: 0; +} + +.table-alternate-v tr > * + * { + border-top: 1px solid #ccc; +} + +/* striped tables */ +.table-striped tbody tr:nth-child(odd) { + background: #eee; + background: rgba(0, 0, 0, .05); +} + +/* striped-vert tables */ +.table-striped-v tr > :first-child { + background: #eee; + background: rgba(0, 0, 0, .05); +} diff --git a/less/_11-wordpress.less b/less/_11-wordpress.less new file mode 100644 index 0000000..805dc82 --- /dev/null +++ b/less/_11-wordpress.less @@ -0,0 +1,302 @@ +/* ----------------------------- */ +/* ==WordPress reset */ +/* ----------------------------- */ + +/* +Author: Geoffrey Crofte, Alsacréations +Contributors: Automattic, Geoffrey Crofte +Description: Reset styles for WordPress usage of KNACSS +*/ + +/* ----------------------------- */ +/* ==Menus */ +/* ----------------------------- */ + +// current menu elements +.current_page_item > a { +} +.current-menu-item > a { +} +.current_page_ancestor > a { +} + +// blocks of content navigation +.comment-navigation, +.paging-navigation, +.post-navigation { + margin: 0 0 1.5em; + overflow: hidden; +} + +.comment-navigation .nav-previous, +.paging-navigation .nav-previous, +.post-navigation .nav-previous { + float: left; + width: 50%; +} + +.comment-navigation .nav-next, +.paging-navigation .nav-next, +.post-navigation .nav-next { + float: right; + text-align: right; + width: 50%; +} + +/* ----------------------------- */ +/* ==Alignments */ +/* ----------------------------- */ + +// class in img elements +.alignnone { + margin: .25em 1.5em 1.5em 0; +} + +.aligncenter { + clear: both; + display: block; + margin: 1.5em auto; +} + +.alignleft { + float: left; + margin: 0 1.5em .25em 0; +} + +.alignright { + float: right; + margin: 0 0 .25em 1.5em; +} + +/* ----------------------------- */ +/* ==Clearings */ +/* ----------------------------- */ + +.entry-content, +.comment-content { + clear: both; + + &::after, &::before { + content: ""; + display: table; + } +} + +/* ----------------------------- */ +/* ==Widgets */ +/* ----------------------------- */ + +.widget + .widget { + margin: 1.5em 0 0; +} + +// usage example: +.widget select { + max-width: 100%; +} + +/* ----------------------------- */ +/* ==Posts and pages */ +/* ----------------------------- */ + +/* === 5.1 Posts - post_class === */ + +// featured content +.sticky { +} + +// attachment post +.attachment { +} + +// format of post +.format- { + &aside { + } + &gallery { + } + &link { + } + &image { + } + "e { + } + &status { + } + &video { + } + &chat { + } +} + +// class for a tag +.tag- { + &name-of-tag { + } +} + +// class for categorie +.category- { + &name-of-category { + } +} + +/* === 5.2 Pages - body_class === */ + +// front page +.home { + // if display posts + &.blog { + } + // if static page + &.page { + } +} + +// page displays posts +.blog { + // if is frontpage + &.home { + } + // if static page + &.page { + } +} + +// simple page +.page { +} + +// page of single post +.single { +} + +// page of archives +.archive { +} + +// page of search +.search { + // if has results + .search-results { + } + // if has no results + .search-no-results { + } +} + +// page 404 +.error404 { +} + +// user logged in +.logged-in { +} + +// text direction if right-to-left +// prefer rtl.css: http://codex.wordpress.org/Right-to-Left_Language_Support +.rtl { +} + +/* === 5.3 Posts and Pages - Contents === */ + +.hentry { + margin: 0 0 1.5em; +} + +.page-content, +.entry-content, +.entry-summary { + margin: 1.5em 0 0; +} + +.page-links { + clear: both; + margin: 0 0 1.5em; +} + +/* ----------------------------- */ +/* ==Comments */ +/* ----------------------------- */ + +.comment-content a { + word-wrap: break-word; +} + +.bypostauthor { + // some make-the-logo-bigger styles +} + +/* ----------------------------- */ +/* ==Media */ +/* ----------------------------- */ + +img.wp-smiley { + margin-bottom: 0; + margin-top: 0; + padding: 0; + border: none; +} + +/* ----------------------------- */ +/* ==Captions */ +/* ----------------------------- */ + +.wp-caption { + max-width: 100%; + margin-bottom: 1.5em; +} + +.wp-caption img { + display: block; + margin: 0 auto; +} + +.wp-caption-text { + margin: 1em 0; + text-align: center; +} + +/* ----------------------------- */ +/* ==Galleries */ +/* ----------------------------- */ + +.gallery { + margin-bottom: 1.5em; +} + +.gallery-item { + display: inline-block; + width: 100%; + text-align: center; + vertical-align: top; + + .gallery-columns-2 & { + max-width: 50%; + } + .gallery-columns-3 & { + max-width: 33.33%; + } + .gallery-columns-4 & { + max-width: 25%; + } + .gallery-columns-5 & { + max-width: 20%; + } + .gallery-columns-6 & { + max-width: 16.66%; + } + .gallery-columns-7 & { + max-width: 14.28%; + } + .gallery-columns-8 & { + max-width: 12.5%; + } + .gallery-columns-9 & { + max-width: 11.11%; + } +} + +.gallery-caption { + display: block; +} diff --git a/less/knacss.less b/less/knacss.less index d52f5b1..3a47f23 100644 --- a/less/knacss.less +++ b/less/knacss.less @@ -1,23 +1,28 @@ // LESS config file -// (you should comment this line and move config file from vendor/knacss folder to your own folder) +// ----------------- + +// (WARNING : you should comment this line and move config file from vendor/knacss folder to your own folder) @import "_00-config"; +// normalize include +@import "_01a-normalize"; // normalize + // LESS base styles -@import "_01-base"; // reset, config and basic layout +@import "_01b-base"; // reset and basic styles // LESS files : chose the ones you need -@import "_02-helpers"; // width and spacers visually classes -@import "_03-grids"; // grids and autogrids -@import "_04-tables"; -@import "_05-forms"; -@import "_06-icons"; // UTF-8 icons -@import "_07-flexbox"; -@import "_08-rwd"; // Responsive Web Design helpers -@import "_09-print"; -@import "_10-booleans"; // skip links and hyphens -@import "_11-gmaps"; // Google maps bugs fix -@import "_12-ie"; // IE6, IE7, IE8 support -@import "_13-styling"; // minor stylings +@import "_02-layout"; // alignment, modules, positionning +@import "_03-grids"; // grids +@import "_04-tables"; // data tables consistency +@import "_05-forms"; // forms consistency +@import "_06-helpers"; // width and spacers visually classes +@import "_07-responsive"; // Responsive Web Design helpers +@import "_08-print"; // print quick reset +@import "_09-misc"; // skip links, google maps and hyphens +@import "_10-styling"; // minor stylings + +// WordPress base styles +@import "_11-wordpress"; // WordPress reset and basic styles /* ----------------------------- */ /* ==own stylesheet */ diff --git a/package.json b/package.json new file mode 100644 index 0000000..4c842e0 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "knacss", + "version": "4.1.1", + "homepage": "http://www.knacss.com/", + "bugs": "https://github.com/raphaelgoetter/KNACSS/issues", + "author": [ + "Raphaël GOETTER, Alsacreations (http://goetter.fr)" + ], + "contributors": [ + "Raphaël GOETTER, Alsacreations" + ], + "description": "KNACSS is a minimalist, responsive and extensible style sheet to kick-start your HTML / CSS projects. It relies on common best practices and experience on the topic.", + "main": "css/knacss.css", + "keywords": [ + "css", "framework", "reset", "responsive", "less", "sass", "rwd", "boilerplate", "workflow" + ], + "repository": { + "type": "git", + "url": "https://github.com/raphaelgoetter/KNACSS" + }, + "license": "WTFPL", + "dependencies": {}, + "engines": {} +} diff --git a/sass/_00-config.scss b/sass/_00-config.scss index a559d02..27b89e1 100644 --- a/sass/_00-config.scss +++ b/sass/_00-config.scss @@ -1,80 +1,57 @@ -// Config file : variables, mixins, ... +/*! +* www.KNACSS.com V4.1.1 (2015-03-30) @author: Raphael Goetter, Alsacreations +* Licence WTFPL http://www.wtfpl.net/ +*/ + +// Config file and project variables // font sizes -$base-font-size : 14px; // if "14px" then 1em = 14px -$line-height : 1.5; // equiv line-height 1.5 -$h1-size : 3.2rem; // equiv "32px" -$h2-size : 2.8rem; // equiv "28px" -$h3-size : 2.4rem; // equiv "24px" -$h4-size : 2.0rem; // equiv "20px" -$h5-size : 1.8rem; // equiv "18px" -$h6-size : 1.6rem; // equiv "16px" +$base-font-size : 14px; // if "14px" then 1em = 14px +$line-height : 1.5; // equiv line-height 1.5 +$h1-size : 3.2rem; // equiv "32px" +$h2-size : 2.8rem; // equiv "28px" +$h3-size : 2.4rem; // equiv "24px" +$h4-size : 2.0rem; // equiv "20px" +$h5-size : 1.8rem; // equiv "18px" +$h6-size : 1.6rem; // equiv "16px" // font stacks -$font-stack-common : Helvetica, Arial, sans-serif; // common font -$font-stack-headings : Helvetica, Arial, sans-serif; // headings font -$font-stack-monospace : Consolas, 'DejaVu Sans Mono', Courier, monospace; // monospace font -$font-stack-universal : FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif; // universal stack +$font-stack-common : Helvetica, Arial, sans-serif; // common font +$font-stack-headings : Helvetica, Arial, sans-serif; // headings font +$font-stack-monospace : Consolas, DejaVu Sans Mono, Courier, monospace; // monospace font +$font-stack-universal : FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif; // universal stack // font colors -$base-color : #000; // text color on body and content -$primary-color : #000; // text color on primary elements -$secondary-color : #000; // text color on secondary elements -$headings-color : #000; // text color on headings -$base-color-link : #333; // base links color -$base-color-link-hover : #000; // base hovered/focused links color +$base-color : #000; // text color on body and content +$primary-color : #000; // text color on primary elements +$secondary-color : #000; // text color on secondary elements +$headings-color : #000; // text color on headings +$base-color-link : #333; // base links color +$base-color-link-hover : #000; // base hovered/focused links color // backgrounds -$base-background : #fff; // body background color -$primary-background : #fff; // primary elements background color -$secondary-background : #fff; // secondary elements background color +$base-background : #fff; // body background color +$primary-background : #fff; // primary elements background color +$secondary-background : #fff; // secondary elements background color // spacings (choose unit you prefer) -$tiny-value : 5px; // tiny value for margins / paddings -$small-value : 10px; // small value for margins / paddings -$medium-value : 20px; // medium value for margins / paddings -$large-value : 40px; // large value for margins / paddings -$extra-large-value : 80px; // extra large value for margins / paddings -$ultra-large-value : 160px; // ultra large value for margins / paddings +$tiny-value : 5px; // tiny value for margins / paddings +$small-value : 10px; // small value for margins / paddings +$medium-value : 20px; // medium value for margins / paddings +$large-value : 40px; // large value for margins / paddings +$extra-large-value : 80px; // extra large value for margins / paddings +$ultra-large-value : 160px; // ultra large value for margins / paddings // breakpoints (choose unit you prefer) -$tiny-screen : 480px; // tiny screens media query (less than 480px) -$small-screen : 768px; // screens between 481px and 768px -$medium-screen : 1024px; // screens between 769px and 1024px -$large-screen : 1280px; // screens between 1025px and 1280px -$extra-large-screen : 1600px; // screens between 1281px and 1600px -$ultra-large-screen : 1920px; // ultra large screens +$tiny-screen : 480px; // tiny screens media query (less than 480px) +$small-screen : 768px; // screens between 481px and 768px +$medium-screen : 1024px; // screens between 769px and 1024px +$large-screen : 1280px; // screens between 1025px and 1280px +$extra-large-screen : 1600px; // screens between 1281px and 1600px +$ultra-large-screen : 1920px; // ultra large screens -// misc (choose unit you prefer) -$gutter : 20px; // gutter value for grid layouts. Unit can be: %, px, em, rem - -// Sass mixins : don't touch or you'll be banned ;) -// px to em/rem - -@mixin rem($size) { - @if unitless($size) { - font-size: ($size * 1rem) / 1rem * $base-font-size; - font-size: $size * 1rem; - } - @else { - @warn "Please make sure `$size` is unitless." - } -} -@mixin em($size) { - @if unitless($size) { - $bf: $base-font-size / 1px; - font-size: $size / $bf * 1em; - } - @else { - @warn "Please make sure `$size` is unitless." - } -} -@mixin px($size) { - @if unitless($size) { - $bf: $base-font-size / 1px; - font-size: $size * $bf * 1px; - } - @else { - @warn "Please make sure `$size` is unitless." - } -} \ No newline at end of file +// grids variables (choose unit you prefer) +$gutter: 1em; // gutter value for grid layouts. Unit can be: %, px, em, rem +$number: 4; // number of equal columns +$left: 2; // left side of uneven columns +$right: 1; // right side of uneven columns \ No newline at end of file diff --git a/sass/_01a-normalize.scss b/sass/_01a-normalize.scss new file mode 100644 index 0000000..87e37d2 --- /dev/null +++ b/sass/_01a-normalize.scss @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | github.com/necolas/normalize.css */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/sass/_01b-base.scss b/sass/_01b-base.scss new file mode 100644 index 0000000..4b7dcc1 --- /dev/null +++ b/sass/_01b-base.scss @@ -0,0 +1,248 @@ +/* ----------------------------- */ +/* == soft reset */ +/* ----------------------------- */ + +/* switching to border-box model for all elements */ +html { + box-sizing: border-box; +} + +* { + box-sizing: inherit; +} + +ul, +ol { + padding-left: 2em; +} + +ul.unstyled { + list-style: none; +} + +img { + vertical-align: middle; +} + +/* height auto only for non SVG images */ +img:not([src$=".svg"]) { + height: auto; +} + +blockquote, +figure { + margin-left: 0; + margin-right: 0; +} + +/* ----------------------------- */ +/* == typography */ +/* ----------------------------- */ + +html { + + /* set base font-size to equiv "10px", which is adapted to rem unit */ + font-size: 62.5%; + + /* IE9-IE11 math fixing. See http://bit.ly/1g4X0bX */ + /* thanks to @guardian, @victorbritopro and @eQRoeil */ + font-size: calc(1em * 0.625); + + /* disallow text zooming on orientation change (non standard property) */ + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + + /* set body font-size in em (1.4em equiv "14px") */ + font-size: ($base-font-size / 10px) + em; + + background-color: $base-background; + color: $base-color; + font-family: $font-stack-common; + line-height: $line-height; +} + +a { + color: $base-color-link; + &:hover, &:focus, &:active { + color: $base-color-link-hover; + } +} + +/* font-sizing for content */ +p, +.p-like, +ul, +ol, +dl, +blockquote, +pre, +td, +th, +label, +textarea, +caption, +details, +figure { + margin-top: 0.75em; + margin-bottom: 0; + line-height: $line-height; +} + +h1, .h1-like { + font-size: $h1-size; + font-family: $font-stack-headings; +} + +h2, .h2-like { + font-size: $h2-size; + font-family: $font-stack-headings; +} + +h3, .h3-like { + font-size: $h3-size; +} + +h4, .h4-like { + font-size: $h4-size; +} + +h5, .h5-like { + font-size: $h5-size; +} + +h6, .h6-like { + font-size: $h6-size; +} + +/* alternate font-sizing */ +.smaller { + font-size: 0.6em; +} + +.small { + font-size: 0.8em; +} + +.big { + font-size: 1.2em; +} + +.bigger { + font-size: 1.5em; +} + +.biggest { + font-size: 2em; +} + +code, +pre, +samp, +kbd { + /* IE fix */ + white-space: pre-line; + white-space: pre-wrap; + font-family: $font-stack-monospace; + line-height: normal; +} + +em, +.italic, +address, +cite, +i, +var { + font-style: italic; +} + +small, +sub, +sup { + font-size: smaller; +} + +/* ----------------------------- */ +/* == hiding content */ +/* ----------------------------- */ + +/* hidden but not for assistance tools, Yahoo! method */ +.visually-hidden { + position: absolute !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + padding: 0 !important; + overflow: hidden !important; + clip: rect(1px, 1px, 1px, 1px) !important; +} + +@media (max-width: $small-screen) { + .no-small-screen { + display: none; + } +} + +@media (min-width: $large-screen) { + .no-large-screen { + display: none; + } +} + +/* ----------------------------- */ +/* == browsers consistency */ +/* ----------------------------- */ + +/* avoid top margins on first content element */ +p, +.p-like, +ul, +ol, +dl, +blockquote, +pre, +h1, +.h1-like, +h2, +.h2-like, +h3, +.h3-like, +h4, +.h4-like, +h5, +.h5-like, +h6, +.h6-like { + &:first-child { + margin-top: 0; + } +} + +/* avoid margins on nested elements */ +li p, +li .p-like, +li ul, +li ol { + margin-top: 0; + margin-bottom: 0; +} + +/* max values */ +img, +table, +td, +blockquote, +code, +pre, +textarea, +input, +video { + max-width: 100%; +} + +/* margin-bottom on tables */ +table { + margin-bottom: $medium-value; +} diff --git a/sass/_02-layout.scss b/sass/_02-layout.scss new file mode 100644 index 0000000..7183af8 --- /dev/null +++ b/sass/_02-layout.scss @@ -0,0 +1,135 @@ +/* ----------------------------- */ +/* ==layout and modules */ +/* ----------------------------- */ + +/* module, gains superpower "BFC" Block Formating Context */ +.mod { + overflow: hidden; +} + +/* blocks that needs to be placed under floats */ +.clear, +.line, +.row { + clear: both; +} + +/* blocks that must contain floats */ +.clearfix, +.line { + &::after { + content: ""; + display: table; + clear: both; + border-collapse: collapse; + } +} + +/* simple blocks alignment */ +.left { + margin-right: auto; +} + +.right { + margin-left: auto; +} + +.center { + margin-left: auto; + margin-right: auto; +} + +/* text and contents alignment */ +.txtleft { + text-align: left; +} + +.txtright { + text-align: right; +} + +.txtcenter { + text-align: center; +} + +/* floating elements */ +.fl { + float: left; +} + +img.fl { + margin-right: $small-value; +} + +.fr { + float: right; +} + +img.fr { + margin-left: $small-value; +} + +img.fl, +img.fr { + margin-bottom: $tiny-value; +} + +/* table layout */ +.row { + display: table; + table-layout: fixed; + width: 100%; +} + +.row > *, +.col { + display: table-cell; + vertical-align: top; +} + +/* no table-cell for script tag when body is a .row */ +body > script { + display: none !important; +} + +/* inline-block */ +.inbl { + display: inline-block; + vertical-align: top; +} + +/* flexbox layout +http://www.alsacreations.com/tuto/lire/1493-css3-flexbox-layout-module.html +*/ + +.flexbox, +.flexbox-h, +.flexbox-v { + display : flex; + flex-wrap: wrap; + flex-direction: row; +} + +.flexbox-v { + flex-direction: column; +} + +.flexitem-fluid { + flex: 1; +} + +.flexitem-first { + order : -1; +} + +.flexitem-medium { + order : 0; +} + +.flexitem-last { + order : 1; +} + +.flexitem-center { + margin: auto; +} diff --git a/sass/_03-grids.scss b/sass/_03-grids.scss index 7bb97b5..b19a1f6 100644 --- a/sass/_03-grids.scss +++ b/sass/_03-grids.scss @@ -1,175 +1,151 @@ /* ---------------------------------- */ -/* ==classic grids */ -/* .. use it when gutter size matters */ +/* ==Grids */ /* ---------------------------------- */ -/* grids inspired from SUIT https://github.com/suitcss/suit */ +// WARNING : KNACSS grids are flexbox based and only supported by IE10+ +// Tuto : http://www.alsacreations.com/tuto/lire/1659-une-grille-responsive-avec-flexbox-et-LESS.html +// Demo : http://codepen.io/raphaelgoetter/pen/ZYjwEB -/* overall container of grids */ -.grid { - overflow: hidden; -} +// Usage in vanilla CSS: +// -
for an equal fourth columns grid container +// -
for an uneven columns grid container -/* global styles for direct child ex. .grid3 */ -.grid > * { - display: block; - padding: 0; - /* gutter value */ +// Usage with preprocessors : if you're using Sass, you can config grids variables : +// n = number of columns (default = 4) / g = gutter value (default = 1em) +// example : .grid-perso { @include grid(12, 10px); } +// ... or uneven grids : +// left = left ratio column (default = 2) / right = right ratio column (default = 1) / gutter (default = 1em) +// example : .grid-perso { @include uneven-grid(2, 1, 10px); } + +[class*="grid-"] { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; margin-left: -$gutter; - text-align: left; } -/* global styles for each "cell" */ -.grid > * > * { - display: inline-block; - /* gutter value */ - padding-left: $gutter; - margin-left: 0; - vertical-align: top; +[class*="grid-"] > * { + flex: 0 0 auto; + display: block; /* IE fix */ + width: calc(100% * 1 / #{$number} - #{$gutter}); + margin-left: $gutter; } -/* whitespace fixing for modern browsers including IE9+ */ -:root .grid { - font-size: 0; - /* fallback for IE9+ */ - text-justify: distribute-all-lines; +// Sass mixins for *equal* columns grid container +// example : .grid-perso { @include grid(12); } +@mixin grid($number:$number,$gutter:$gutter) { +& > * { + width: calc(100% * 1 / #{$number} - #{$gutter}); +} +& > .flexitem-double { + width: calc(100% * 2 / #{$number} - #{$gutter}); +} + @media (min-width: ($tiny-screen + 1)) and (max-width: $small-screen) { + & > * { + width: calc(100% * 1 / 2 - #{$gutter}); + } + & > .flexitem-double { + width: calc(100% - #{$gutter}); + } + } + @media (max-width: $tiny-screen) { + & > * { + width: calc(100% - #{$gutter}); + } + & > .flexitem-double { + width: calc(100% - #{$gutter}); + } + } } -:root .grid > * > * { - /* fallback for Opera Mini */ - font-size: $base-font-size; - font-size: ($base-font-size / 10px) + rem; +// Examples : will be compiled in CSS + +.grid-2 { + @include grid(2); } -/* Opera hack */ -.opera:-o-prefocus, -.grid > * { - word-spacing: -0.43em; +.grid-3 { + @include grid(3); } -.grid2 > * { - width: 50%; +.grid-4 { + @include grid(4); } -.grid3 > * { - width: 33.333%; +.grid-5 { + @include grid(5); } -.grid4 > * { - width: 25%; +.grid-6 { + @include grid(6); } -.grid5 > * { - width: 20%; +.grid-7 { + @include grid(7); } -.grid6 > * { - width: 16.667%; +.grid-8 { + @include grid(8); } -.grid8 > * { - width: 12.5%; +.grid-10 { + @include grid(10); } -.grid10 > * { - width: 10%; +.grid-12 { + @include grid(12); } -.grid12 > * { - width: 8.333%; +// LESS mixins for *unequal* columns grid container +// example : .grid-perso { @include uneven-grid(2, 1); } +@mixin uneven-grid($left:$left, $right:$right, $gutter:$gutter) { + & > *:nth-child(odd) { + $size: ($left / ($left + $right)) * 100%; + width: calc(#{$size} - #{$gutter}); + } + & > *:nth-child(even) { + $size: ($right / ($left + $right)) * 100%; + width: calc(#{$size} - #{$gutter}); + } + @media (max-width: $tiny-screen) { + & > *:nth-child(n) { + width: calc(100% - #{$gutter}); + } + } } -/* unequal grids (1-2, 2-1, 1-3 and 3-1) for 2 blocks */ -.grid2-1 > *:first-child, -.grid1-2 > * + * { - width: 66.666%; + +// Examples : will be compiled in CSS + +.grid-2-1 { + @include uneven-grid(2,1); } -.grid1-2 > *:first-child, -.grid2-1 > * + * { - width: 33.333%; +.grid-1-2 { + @include uneven-grid(1,2); } -.grid1-3 > *:first-child, -.grid3-1 > * + * { - width: 25%; +.grid-3-1 { + @include uneven-grid(3,1); } -.grid3-1 > *:first-child, -.grid1-3 > * + * { - width: 75%; +.grid-1-3 { + @include uneven-grid(1,3); } -/* ---------------------------------- */ -/* ==autogrids */ -/* .. to automatically justify blocs */ -/* ---------------------------------- */ - -/* Demo : http://codepen.io/raphaelgoetter/pen/Kqehf */ - -/* container of autogrids */ -[class*="autogrid"] { - text-align: justify; +.grid-3-2 { + @include uneven-grid(3,2); } -[class*="autogrid"]:after { - content: ""; - display: inline-block; - width: 100%; +.grid-2-3 { + @include uneven-grid(2,3); } -[class*="autogrid"] > * { - display: inline-block; - vertical-align: top; - text-align: left; +.grid-4-1 { + @include uneven-grid(4,1); } -/* whitespace fixing for modern browsers including IE9+ */ -:root [class*="autogrid"] { - font-size: 0; - /* fallback for IE9+ */ - text-justify: distribute-all-lines; -} - -:root [class*="autogrid"] > * { - /* fallback for Opera Mini */ - font-size: $base-font-size; - font-size: ($base-font-size / 10px) + rem; -} - -/* Opera hack */ -[class*="autogrid"]:-o-prefocus { - word-spacing: -0.43em; -} - -.autogrid2 > * { - width: 49%; -} - -.autogrid3 > * { - width: 32%; -} - -.autogrid4 > * { - width: 23.6%; -} - -.autogrid5 > * { - width: 19%; -} - -.autogrid6 > * { - width: 15%; -} - -.autogrid8 > * { - width: 10.8%; -} - -.autogrid10 > * { - width: 9%; -} - -.autogrid12 > * { - width: 6.4%; -} +.grid-1-4 { + @include uneven-grid(1,4); +} \ No newline at end of file diff --git a/sass/_04-tables.scss b/sass/_04-tables.scss index 28e5e0f..8979941 100644 --- a/sass/_04-tables.scss +++ b/sass/_04-tables.scss @@ -24,7 +24,7 @@ table.table-auto { caption { padding: $small-value; color: #555; - font-style: italic; + font-style: italic; } td, diff --git a/sass/_05-forms.scss b/sass/_05-forms.scss index cd4a570..97f23fa 100644 --- a/sass/_05-forms.scss +++ b/sass/_05-forms.scss @@ -27,7 +27,7 @@ label, font-size: inherit; } -label { +label { display: inline-block; vertical-align: middle; cursor: pointer; @@ -46,19 +46,6 @@ textarea { resize: vertical; } -/* clickable input types in iOS */ -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -input[type="search"] { - -webkit-appearance: textfield; -} - /* if select styling bugs on WebKit */ /* select { -webkit-appearance: none; } */ @@ -79,11 +66,14 @@ textarea:-moz-placeholder { color: #777; } -/* Removes inner padding and border in FF3+ */ -button::-moz-focus-inner, -input[type='button']::-moz-focus-inner, -input[type='reset']::-moz-focus-inner, -input[type='submit']::-moz-focus-inner { - border: 0; - padding: 0; +.btn:focus, +input:focus, +button:focus { + outline: 0; + -webkit-tap-highlight-color: transparent; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; } diff --git a/sass/_06-helpers.scss b/sass/_06-helpers.scss new file mode 100644 index 0000000..8dbd817 --- /dev/null +++ b/sass/_06-helpers.scss @@ -0,0 +1,296 @@ +/* ---------------------------------- */ +/* ==visual helpers */ +/* .. use them with parcimony ! */ +/* ---------------------------------- */ + +/* blocks widths (percentage and pixels) */ +.w10 { + width: 10%; +} + +.w20 { + width: 20%; +} + +.w25 { + width: 25%; +} + +.w30 { + width: 30%; +} + +.w33 { + width: 33.3333%; +} + +.w40 { + width: 40%; +} + +.w50 { + width: 50%; +} + +.w60 { + width: 60%; +} + +.w66 { + width: 66.6666%; +} + +.w70 { + width: 70%; +} + +.w75 { + width: 75%; +} + +.w80 { + width: 80%; +} + +.w90 { + width: 90%; +} + +.w100 { + width: 100%; +} + +.w50p { + width: 50px; +} + +.w100p { + width: 100px; +} + +.w150p { + width: 150px; +} + +.w200p { + width: 200px; +} + +.w300p { + width: 300px; +} + +.w400p { + width: 400px; +} + +.w500p { + width: 500px; +} + +.w600p { + width: 600px; +} + +.w700p { + width: 700px; +} + +.w800p { + width: 800px; +} + +.w960p { + width: 960px; +} + +.mw960p { + max-width: 960px; +} + +.w1140p { + width: 1140px; +} + +.mw1140p { + max-width: 1140px; +} + +.wauto { + width: auto; +} + +/* spacing helpers +p,m = padding,margin +a,t,r,b,l = all,top,right,bottom,left +s,m,l,n = small, medium, large, none +*/ +.man, +.ma0 { + margin: 0; +} + +.pan, +.pa0 { + padding: 0; +} + +.mas { + margin: $small-value; +} + +.mam { + margin: $medium-value; +} + +.mal { + margin: $large-value; +} + +.pas { + padding: $small-value; +} + +.pam { + padding: $medium-value; +} + +.pal { + padding: $large-value; +} + +.mtn, +.mt0 { + margin-top: 0; +} + +.mts { + margin-top: $small-value; +} + +.mtm { + margin-top: $medium-value; +} + +.mtl { + margin-top: $large-value; +} + +.mrn, +.mr0 { + margin-right: 0; +} + +.mrs { + margin-right: $small-value; +} + +.mrm { + margin-right: $medium-value; +} + +.mrl { + margin-right: $large-value; +} + +.mbn, +.mb0 { + margin-bottom: 0; +} + +.mbs { + margin-bottom: $small-value; +} + +.mbm { + margin-bottom: $medium-value; +} + +.mbl { + margin-bottom: $large-value; +} + +.mln, +.ml0 { + margin-left: 0; +} + +.mls { + margin-left: $small-value; +} + +.mlm { + margin-left: $medium-value; +} + +.mll { + margin-left: $large-value; +} + +.ptn, +.pt0 { + padding-top: 0; +} + +.pts { + padding-top: $small-value; +} + +.ptm { + padding-top: $medium-value; +} + +.ptl { + padding-top: $large-value; +} + +.prn, +.pr0 { + padding-right: 0; +} + +.prs { + padding-right: $small-value; +} + +.prm { + padding-right: $medium-value; +} + +.prl { + padding-right: $large-value; +} + +.pbn, +.pb0 { + padding-bottom: 0; +} + +.pbs { + padding-bottom: $small-value; +} + +.pbm { + padding-bottom: $medium-value; +} + +.pbl { + padding-bottom: $large-value; +} + +.pln, +.pl0 { + padding-left: 0; +} + +.pls { + padding-left: $small-value; +} + +.plm { + padding-left: $medium-value; +} + +.pll { + padding-left: $large-value; +} \ No newline at end of file diff --git a/sass/_07-responsive.scss b/sass/_07-responsive.scss new file mode 100644 index 0000000..207ce0f --- /dev/null +++ b/sass/_07-responsive.scss @@ -0,0 +1,371 @@ +/* ----------------------------- */ +/* ==desktop and HD devices */ +/* ----------------------------- */ + +@media (min-width: ($medium-screen + 1)) { +/* rules for big resources and big screens like: background-images, font-faces, etc. */ +} + +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) { +/* style adjustments for high density devices */ +} + +/* ---------------------------------- */ +/* ==Responsive large */ +/* ---------------------------------- */ + +@media (min-width: ($medium-screen + 1)) { + + /* layouts for large screens */ + .large-hidden { + display: none !important; + } + + .large-visible { + display: block !important; + } + + .large-no-float { + float: none; + } + + .large-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + .large-row { + display: table; + table-layout: fixed; + width: 100% !important; + } + .large-col { + display: table-cell; + vertical-align: top; + } + + /* widths for large screens */ + .large-w25 { + width: 25% !important; + } + + .large-w33 { + width: 33.3333% !important; + } + + .large-w50 { + width: 50% !important; + } + + .large-w66 { + width: 66.6666% !important; + } + + .large-w75 { + width: 75% !important; + } + + .large-w100, + .large-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for large screens */ + .large-man, + .large-ma0 { + margin: 0 !important; + } +} + +/* ---------------------------------- */ +/* ==Responsive medium */ +/* ---------------------------------- */ + +@media (min-width: ($small-screen + 1)) and (max-width: $medium-screen) { + + /* layouts for medium screens */ + .medium-hidden { + display: none !important; + } + + .medium-visible { + display: block !important; + } + + .medium-no-float { + float: none; + } + + .medium-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + + .medium-row { + display: table; + table-layout: fixed; + width: 100% !important; + } + + .medium-col { + display: table-cell; + vertical-align: top; + } + + /* widths for medium screens */ + .medium-w25 { + width: 25% !important; + } + + .medium-w33 { + width: 33.3333% !important; + } + + .medium-w50 { + width: 50% !important; + } + + .medium-w66 { + width: 66.6666% !important; + } + + .medium-w75 { + width: 75% !important; + } + + .medium-w100, + .medium-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for medium screens */ + .medium-man, + .medium-ma0 { + margin: 0 !important; + } +} + +/* ---------------------------------- */ +/* ==Responsive small */ +/* ---------------------------------- */ + +@media (min-width: ($tiny-screen + 1)) and (max-width: $small-screen) { + + /* quick reset in small resolution and less */ + .w600p, + .w700p, + .w800p, + .w960p, + .mw960p { + width: auto; + float: none; + } + + /* layouts for small screens */ + .small-hidden { + display: none !important; + } + + .small-visible { + display: block !important; + } + + .small-no-float { + float: none; + } + + .small-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + + .small-row { + display: table !important; + table-layout: fixed !important; + width: 100% !important; + } + + .small-col { + display: table-cell !important; + vertical-align: top !important; + } + + /* widths for small screens */ + .small-w25 { + width: 25% !important; + } + + .small-w33 { + width: 33.3333% !important; + } + + .small-w50 { + width: 50% !important; + } + + .small-w66 { + width: 66.6666% !important; + } + + .small-w75 { + width: 75% !important; + } + + .small-w100, + .small-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for small screens */ + .small-man, + .small-ma0 { + margin: 0 !important; + } + + .small-pan, + .small-pa0 { + padding: 0 !important; + } + +} + +/* ---------------------------------- */ +/* ==Responsive tiny */ +/* ---------------------------------- */ + +@media (max-width: $tiny-screen) { + + /* quick small resolution reset */ + .mod, + .col, + fieldset { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + .flexbox { + flex-direction: column; + } + + .w300p, + .w400p, + .w500p { + width: auto; + float: none; + } + + .row { + display: block !important; + width: 100% !important; + } + + /* layouts for tiny screens */ + .tiny-hidden { + display: none !important; + } + + .tiny-visible { + display: block !important; + } + + .tiny-no-float { + float: none; + } + + .tiny-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + + .tiny-row { + display: table !important; + table-layout: fixed !important; + width: 100% !important; + } + + .tiny-col { + display: table-cell !important; + vertical-align: top !important; + } + + th, + td { + display: block !important; + width: auto !important; + text-align: left !important; + } + + thead { + display: none; + } + + /* widths for tiny screens */ + .tiny-w25 { + width: 25% !important; + } + + .tiny-w33 { + width: 33.3333% !important; + } + + .tiny-w50 { + width: 50% !important; + } + + .tiny-w66 { + width: 66.6666% !important; + } + + .tiny-w75 { + width: 75% !important; + } + + .tiny-w100, + .tiny-wauto { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for tiny screens */ + .tiny-man, + .tiny-ma0 { + margin: 0 !important; + } + + .tiny-pan, + .tiny-pa0 { + padding: 0 !important; + } + +} diff --git a/sass/_08-print.scss b/sass/_08-print.scss new file mode 100644 index 0000000..3f7edf1 --- /dev/null +++ b/sass/_08-print.scss @@ -0,0 +1,93 @@ +/* quick print reset */ +@media print { + * { + background: transparent !important; + box-shadow: none !important; + text-shadow: none !important; + } + + body { + width: auto !important; + margin: auto !important; + font-family: serif; + font-size: 12pt; + background-color: #fff !important; + color: #333 !important; + } + + p, + .p-like, + h1, + .h1-like, + h2, + .h2-like, + h3, + .h3-like, + h4, + .h4-like, + h5, + .h5-like, + h6, + .h6-like, + blockquote, + ul, + ol { + color: #000 !important; + margin: auto !important; + } + + .print { + display: block; + } + + .no-print { + display: none; + } + + /* no orphans, no widows */ + p, + .p-like, + blockquote { + orphans: 3; + widows: 3; + } + + /* no breaks inside these elements */ + blockquote, + ul, + ol { + page-break-inside: avoid; + } + + /* page break before main headers */ + h1, + .h1-like { + page-break-before: always; + } + + /* no breaks after these elements */ + h1, + .h1-like, + h2, + .h2-like, + h3, + .h3-like, + caption { + page-break-after: avoid; + } + + a { + color: #000 !important; + text-decoration: underline !important; + } + + /* displaying URLs */ + a[href]::after { + content: " (" attr(href) ")"; + } + + a[href^="javascript:"]::after, + a[href^="#"]::after { + content: ""; + } +} diff --git a/sass/_09-misc.scss b/sass/_09-misc.scss new file mode 100644 index 0000000..11f5f30 --- /dev/null +++ b/sass/_09-misc.scss @@ -0,0 +1,55 @@ +/* ----------------------------- */ +/* ==misc rules */ +/* ----------------------------- */ + +/* styling skip links */ +.skip-links { + position: absolute; + + & a { + position: absolute; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); + padding: 0.5em; + background: black; + color: white; + text-decoration: none; + + &:focus { + position: static; + overflow: visible; + clip: auto; + } + } +} + +// hyphens on small screens +@media (max-width: $small-screen) { + /* you shall not pass */ + div, + textarea, + table, + td, + th, + code, + pre, + samp { + word-wrap: break-word; + hyphens: auto; + } +} + +/* Google Gmap3 bug fix on images */ +.gm-style img { + height: 100%; +} + +:not(.gm-style) img { + height: auto; +} + +.gm-style img, +.gmnoscreen img, +.gmnoprint img { + max-width: none !important; +} diff --git a/sass/_10-styling.scss b/sass/_10-styling.scss new file mode 100644 index 0000000..74b90e5 --- /dev/null +++ b/sass/_10-styling.scss @@ -0,0 +1,139 @@ +/* ----------------------------- */ +/* ==minor stylings */ +/* ----------------------------- */ + +/* styling elements */ +code, kbd, mark { + border-radius: 2px; +} + +kbd { + padding: 0 2px; + border: 1px solid #999; +} + +code { + padding: 2px 4px; + background: rgba(0,0,0,0.04); + color: #b11; +} + +pre code { + padding: none; + background: none; + color: inherit; + border-radius: 0; +} + +mark { + padding:2px 4px; + background: #ff0; +} + +sup, +sub { + vertical-align: 0; + position: relative; +} + +sup { + bottom: 1ex; +} + +sub { + top: 0.5ex; +} + +blockquote { + position: relative; + padding-left: 3em; +} + +blockquote::before { + content: "\201C"; + position: absolute; + left: 0; + top: 0; + font-family: georgia, serif; + font-size: 5em; + line-height: 0.9; + color: rgba(0, 0, 0, .3); +} + +blockquote > footer { + margin-top: .75em; + font-size: 0.9em; + color: rgba(0, 0, 0, .7); +} + +blockquote > footer::before { + content: "\2014 \0020"; +} + +q { + font-style: normal; +} + +q, +.q { + quotes: "“\00a0" "\00a0”"; +} + +q:lang(fr), +.q:lang(fr) { + quotes: "«\00a0" "\00a0»"; +} + +hr { + display: block; + clear: both; + height: 1px; + margin: 1em 0 2em; + padding: 0; + border: 0; + color: #ccc; + background-color: #ccc; +} + +/* alternate tables */ +.table-alternate { + border: 0; +} + +.table-alternate tbody { + border: 1px solid #ccc; +} + +.table-alternate thead tr > * + * { + border-left: 0; +} + +.table-alternate tbody tr > * + * { + border-left: 1px solid #ccc; +} + +/* alternate-vert tables */ +.table-alternate-v { + border: 0; + border-right: 1px solid #ccc; +} + +.table-alternate-v tr > :first-child { + border-bottom: 0; +} + +.table-alternate-v tr > * + * { + border-top: 1px solid #ccc; +} + +/* striped tables */ +.table-striped tbody tr:nth-child(odd) { + background: #eee; + background: rgba(0, 0, 0, .05); +} + +/* striped-vert tables */ +.table-striped-v tr > :first-child { + background: #eee; + background: rgba(0, 0, 0, .05); +} diff --git a/sass/_11-wordpress.scss b/sass/_11-wordpress.scss new file mode 100644 index 0000000..805dc82 --- /dev/null +++ b/sass/_11-wordpress.scss @@ -0,0 +1,302 @@ +/* ----------------------------- */ +/* ==WordPress reset */ +/* ----------------------------- */ + +/* +Author: Geoffrey Crofte, Alsacréations +Contributors: Automattic, Geoffrey Crofte +Description: Reset styles for WordPress usage of KNACSS +*/ + +/* ----------------------------- */ +/* ==Menus */ +/* ----------------------------- */ + +// current menu elements +.current_page_item > a { +} +.current-menu-item > a { +} +.current_page_ancestor > a { +} + +// blocks of content navigation +.comment-navigation, +.paging-navigation, +.post-navigation { + margin: 0 0 1.5em; + overflow: hidden; +} + +.comment-navigation .nav-previous, +.paging-navigation .nav-previous, +.post-navigation .nav-previous { + float: left; + width: 50%; +} + +.comment-navigation .nav-next, +.paging-navigation .nav-next, +.post-navigation .nav-next { + float: right; + text-align: right; + width: 50%; +} + +/* ----------------------------- */ +/* ==Alignments */ +/* ----------------------------- */ + +// class in img elements +.alignnone { + margin: .25em 1.5em 1.5em 0; +} + +.aligncenter { + clear: both; + display: block; + margin: 1.5em auto; +} + +.alignleft { + float: left; + margin: 0 1.5em .25em 0; +} + +.alignright { + float: right; + margin: 0 0 .25em 1.5em; +} + +/* ----------------------------- */ +/* ==Clearings */ +/* ----------------------------- */ + +.entry-content, +.comment-content { + clear: both; + + &::after, &::before { + content: ""; + display: table; + } +} + +/* ----------------------------- */ +/* ==Widgets */ +/* ----------------------------- */ + +.widget + .widget { + margin: 1.5em 0 0; +} + +// usage example: +.widget select { + max-width: 100%; +} + +/* ----------------------------- */ +/* ==Posts and pages */ +/* ----------------------------- */ + +/* === 5.1 Posts - post_class === */ + +// featured content +.sticky { +} + +// attachment post +.attachment { +} + +// format of post +.format- { + &aside { + } + &gallery { + } + &link { + } + &image { + } + "e { + } + &status { + } + &video { + } + &chat { + } +} + +// class for a tag +.tag- { + &name-of-tag { + } +} + +// class for categorie +.category- { + &name-of-category { + } +} + +/* === 5.2 Pages - body_class === */ + +// front page +.home { + // if display posts + &.blog { + } + // if static page + &.page { + } +} + +// page displays posts +.blog { + // if is frontpage + &.home { + } + // if static page + &.page { + } +} + +// simple page +.page { +} + +// page of single post +.single { +} + +// page of archives +.archive { +} + +// page of search +.search { + // if has results + .search-results { + } + // if has no results + .search-no-results { + } +} + +// page 404 +.error404 { +} + +// user logged in +.logged-in { +} + +// text direction if right-to-left +// prefer rtl.css: http://codex.wordpress.org/Right-to-Left_Language_Support +.rtl { +} + +/* === 5.3 Posts and Pages - Contents === */ + +.hentry { + margin: 0 0 1.5em; +} + +.page-content, +.entry-content, +.entry-summary { + margin: 1.5em 0 0; +} + +.page-links { + clear: both; + margin: 0 0 1.5em; +} + +/* ----------------------------- */ +/* ==Comments */ +/* ----------------------------- */ + +.comment-content a { + word-wrap: break-word; +} + +.bypostauthor { + // some make-the-logo-bigger styles +} + +/* ----------------------------- */ +/* ==Media */ +/* ----------------------------- */ + +img.wp-smiley { + margin-bottom: 0; + margin-top: 0; + padding: 0; + border: none; +} + +/* ----------------------------- */ +/* ==Captions */ +/* ----------------------------- */ + +.wp-caption { + max-width: 100%; + margin-bottom: 1.5em; +} + +.wp-caption img { + display: block; + margin: 0 auto; +} + +.wp-caption-text { + margin: 1em 0; + text-align: center; +} + +/* ----------------------------- */ +/* ==Galleries */ +/* ----------------------------- */ + +.gallery { + margin-bottom: 1.5em; +} + +.gallery-item { + display: inline-block; + width: 100%; + text-align: center; + vertical-align: top; + + .gallery-columns-2 & { + max-width: 50%; + } + .gallery-columns-3 & { + max-width: 33.33%; + } + .gallery-columns-4 & { + max-width: 25%; + } + .gallery-columns-5 & { + max-width: 20%; + } + .gallery-columns-6 & { + max-width: 16.66%; + } + .gallery-columns-7 & { + max-width: 14.28%; + } + .gallery-columns-8 & { + max-width: 12.5%; + } + .gallery-columns-9 & { + max-width: 11.11%; + } +} + +.gallery-caption { + display: block; +} diff --git a/sass/knacss.scss b/sass/knacss.scss index 53901c5..95dd270 100644 --- a/sass/knacss.scss +++ b/sass/knacss.scss @@ -1,23 +1,28 @@ // Sass config file -// (you should comment this line and move config file from vendor/knacss folder to your own folder) +// ----------------- + +// (WARNING : you should comment this line and move config file from vendor/knacss folder to your own folder) @import "_00-config"; +// normalize include +@import "_01a-normalize"; // normalize + // Sass base styles -@import "_01-base"; +@import "_01b-base"; // reset and basic styles // Sass files : chose the ones you need -@import "_02-helpers"; // width and spacers visually classes -@import "_03-grids"; // grids and autogrids -@import "_04-tables"; -@import "_05-forms"; -@import "_06-icons"; // UTF-8 icons -@import "_07-flexbox"; -@import "_08-rwd"; // Responsive Web Design helpers -@import "_09-print"; -@import "_10-booleans"; // skip links and hyphens -@import "_11-gmaps"; // Google maps bugs fix -@import "_12-ie"; // IE6, IE7, IE8 support -@import "_13-styling"; // minor stylings +@import "_02-layout"; // alignment, modules, positionning +@import "_03-grids"; // grids +@import "_04-tables"; // data tables consistency +@import "_05-forms"; // forms consistency +@import "_06-helpers"; // width and spacers visually classes +@import "_07-responsive"; // Responsive Web Design helpers +@import "_08-print"; // print quick reset +@import "_09-misc"; // skip links, google maps and hyphens +@import "_10-styling"; // minor stylings + +// WordPress base styles +@import "_11-wordpress"; // WordPress reset and basic styles /* ----------------------------- */ /* ==own stylesheet */