knacSSS
commit
ca38105142
@ -0,0 +1,22 @@
|
||||
* text=auto !eol
|
||||
demo/knacsss.html -text
|
||||
/knacsss.png -text
|
||||
/paquet.xml -text
|
||||
sass/README.md -text
|
||||
sass/helpers/_block-helpers.scss -text
|
||||
sass/helpers/_layout-helpers.scss -text
|
||||
sass/helpers/_mixins.scss -text
|
||||
sass/helpers/_reset.scss -text
|
||||
sass/helpers/_spacing-helpers.scss -text
|
||||
sass/knacss.scss -text
|
||||
sass/modules/_flexbox.scss -text
|
||||
sass/modules/_forms.scss -text
|
||||
sass/modules/_grids.scss -text
|
||||
sass/modules/_icons.scss -text
|
||||
sass/modules/_layout.scss -text
|
||||
sass/modules/_messages.scss -text
|
||||
sass/modules/_tables.scss -text
|
||||
sass/modules/_typography.scss -text
|
||||
sass/partials/_iefix.scss -text
|
||||
sass/partials/_print.scss -text
|
||||
sass/partials/_rwd.scss -text
|
@ -0,0 +1,16 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Démo knacss</title>
|
||||
|
||||
[<link rel="stylesheet" href="(#CSS{sass/knacss.css})" type="text/css" />]
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Démonstration de knacsss</h1>
|
||||
<p>
|
||||
Un hypertexte qui attend d'être enrichi par un lien vers <a href="spip.net">SPIP</a>
|
||||
</p>
|
||||
<p> Je suis riche cria le texte! en attendant mieux</p>
|
||||
|
||||
</html>
|
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,17 @@
|
||||
<paquet
|
||||
prefix="knacsss"
|
||||
categorie="outil"
|
||||
version="1.0.1"
|
||||
etat="dev"
|
||||
compatibilite="[3.0.0;3.0.*]"
|
||||
logo="knacsss.png"
|
||||
documentation=""
|
||||
>
|
||||
|
||||
<nom>KNACSS-Sass</nom>
|
||||
<auteur lien="http://elastick.net">Anne-lise Martenot, elastick.net</auteur>
|
||||
<credit>http://knacss.com</credit>
|
||||
<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
|
||||
<necessite nom="scssphp" compatibilite="[1.0.4;]" />
|
||||
<pipeline nom="insert_head" action="insert_head" />
|
||||
</paquet>
|
@ -0,0 +1,4 @@
|
||||
KNACSS-Sass
|
||||
===========
|
||||
|
||||
This is the Sass port of [RaphaelGoetter](https://github.com/RaphaelGoetter)'s [KNACSS](http://knacss.com) framework. To contribute to the vanilla CSS (or LESS) version of KNACSS, please refer to the original repo: [https://github.com/raphaelgoetter/KNACSS](https://github.com/raphaelgoetter/KNACSS).
|
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* Blocks widths
|
||||
* (percentages and pixels)
|
||||
*/
|
||||
%width-helper {
|
||||
@include mq(small) {
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.w10 { width: 10%; }
|
||||
.w20 { width: 20%; }
|
||||
.w25 { width: 25%; }
|
||||
.w30 { width: 30%; }
|
||||
.w33 { width: 33.333%; }
|
||||
.w40 { width: 40%; }
|
||||
.w50 { width: 50%; }
|
||||
.w60 { width: 60%; @extend %width-helper; }
|
||||
.w66 { width: 66.666%; @extend %width-helper; }
|
||||
.w70 { width: 70%; @extend %width-helper; }
|
||||
.w75 { width: 75%; @extend %width-helper; }
|
||||
.w80 { width: 80%; @extend %width-helper; }
|
||||
.w90 { width: 90%; @extend %width-helper; }
|
||||
.w100 { width: 100%; @extend %width-helper; }
|
||||
|
||||
.w50p { width: 50px; }
|
||||
.w100p { width: 100px; }
|
||||
.w150p { width: 150px; }
|
||||
.w200p { width: 200px; }
|
||||
.w300p { width: 300px; }
|
||||
.w400p { width: 400px; }
|
||||
.w500p { width: 500px; }
|
||||
.w600p { width: 600px; @extend %width-helper; }
|
||||
.w700p { width: 700px; @extend %width-helper; }
|
||||
.w800p { width: 800px; @extend %width-helper; }
|
||||
.w960p { width: 960px; @extend %width-helper; }
|
||||
.mw960p { max-width: 960px; }
|
||||
|
@ -0,0 +1,153 @@
|
||||
/*----------------------------*\
|
||||
* Helpers *
|
||||
\*----------------------------*/
|
||||
|
||||
/**
|
||||
* .{SIZE}-hidden and .{SIZE}-visible helpers
|
||||
*/
|
||||
$breakpoints: large, small, tiny;
|
||||
|
||||
@each $size in $breakpoints {
|
||||
.#{$size}-hidden {
|
||||
@include mq($size) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.#{$size}-visible {
|
||||
display: block;
|
||||
|
||||
@include mq($size) {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Clearfix
|
||||
*/
|
||||
.clearfix {
|
||||
&:after {
|
||||
content: '';
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@if $legacy-support-for-ie {
|
||||
*zoom: 1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hidden yet accessible content
|
||||
*/
|
||||
.visuallyhidden {
|
||||
clip: rect(0 0 0 0);
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent long strings to break out of their container
|
||||
*/
|
||||
.wrap {
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
-moz-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Skip links
|
||||
*/
|
||||
.skip-links {
|
||||
position: absolute;
|
||||
|
||||
a {
|
||||
position: absolute;
|
||||
left: -7000px;
|
||||
padding: 0.5em;
|
||||
background: #000;
|
||||
color:#fff;
|
||||
text-decoration: none;
|
||||
|
||||
&:focus {
|
||||
position: static;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Float layout
|
||||
* module, contains floats (.item is the same)
|
||||
*/
|
||||
.mod,
|
||||
.item {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/**
|
||||
* Blocks that needs to be placed under floats
|
||||
*/
|
||||
.clear,
|
||||
.line,
|
||||
.row {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/**
|
||||
* Blocks that must contain floats
|
||||
*/
|
||||
.clearfix,
|
||||
.line,
|
||||
.mod {
|
||||
@extend .clearfix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Table layout
|
||||
*/
|
||||
.row {
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.row > *,
|
||||
.col {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline-blocks
|
||||
*/
|
||||
.inbl {
|
||||
@include inline-block(top);
|
||||
margin-right: -.25em;
|
||||
}
|
||||
|
||||
/* Alignments (blocks and inline) */
|
||||
/* ------------------------------ */
|
||||
|
||||
.left { float: left; }
|
||||
.right { float: right; }
|
||||
|
||||
img.left { margin-right: 1em; }
|
||||
img.right { margin-left: 1em; }
|
||||
|
||||
img.left,
|
||||
img.right { margin-bottom: 5px; }
|
||||
|
||||
.center { margin-left: auto; margin-right: auto; }
|
||||
.txtleft { text-align: left; }
|
||||
.txtright { text-align: right; }
|
||||
.txtcenter { text-align: center; }
|
@ -0,0 +1,70 @@
|
||||
/*----------------------------*\
|
||||
* Mixins *
|
||||
\*----------------------------*/
|
||||
|
||||
/**
|
||||
* Mixin to handle media queries and retina
|
||||
*/
|
||||
@mixin mq($keyword) {
|
||||
@if $keyword == large {
|
||||
@media (min-width: 1280px) { @content; }
|
||||
}
|
||||
@if $keyword == medium {
|
||||
@media (min-width: 769px) { @content; }
|
||||
}
|
||||
@if $keyword == small {
|
||||
@media (max-width: 768px) { @content; }
|
||||
}
|
||||
@if $keyword == tiny {
|
||||
@media (max-width: 640px) { @content; }
|
||||
}
|
||||
@if $keyword == retina {
|
||||
@media
|
||||
only screen and (-webkit-min-device-pixel-ratio: 2),
|
||||
only screen and (min-resolution: 192dpi),
|
||||
only screen and (min-resolution: 2dppx) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mixin to handle REM font sizing with PX fallback
|
||||
*/
|
||||
@mixin rem($value, $base: $base-font-size) {
|
||||
@if $legacy-support-for-ie {
|
||||
font-size: $value * 1px;
|
||||
}
|
||||
font-size: $value / $base * 1rem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compass-like inline-block mixin
|
||||
*/
|
||||
@mixin inline-block($alignment: none) {
|
||||
@if $legacy-support-for-mozilla {
|
||||
display: -moz-inline-stack;
|
||||
}
|
||||
|
||||
display: inline-block;
|
||||
|
||||
@if $alignment and $alignment != none {
|
||||
vertical-align: $alignment;
|
||||
}
|
||||
|
||||
@if $legacy-support-for-ie {
|
||||
*vertical-align: auto;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mixin to prefix properties
|
||||
*/
|
||||
@mixin prefix($property, $value) {
|
||||
$vendors: "-webkit-", "-moz-", "-ms-", "-o-", "";
|
||||
@each $v in $vendors {
|
||||
#{$v}#{$property}: $value;
|
||||
}
|
||||
}
|
@ -0,0 +1,153 @@
|
||||
/*----------------------------*\
|
||||
* Soft reset *
|
||||
\*----------------------------*/
|
||||
|
||||
.knacss-debug {
|
||||
background: pink;
|
||||
outline: 3px solid maroon;
|
||||
}
|
||||
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
padding-left: 2em;
|
||||
|
||||
&.unstyled {
|
||||
list-style: none;
|
||||
}
|
||||
}
|
||||
|
||||
code, pre, samp, kbd {
|
||||
white-space: pre-wrap;
|
||||
font-family: $monospace-font-stack;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
code, kbd, mark {
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
kbd {
|
||||
padding: 0 2px;
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: 2px 4px;
|
||||
background: rgba(0,0,0,.04);
|
||||
color: #b11;
|
||||
}
|
||||
|
||||
mark {
|
||||
padding:2px 4px;
|
||||
background: #ff0;
|
||||
}
|
||||
|
||||
sup, sub {
|
||||
vertical-align: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
sup {
|
||||
bottom: 1ex;
|
||||
}
|
||||
|
||||
sub {
|
||||
top: .5ex;
|
||||
}
|
||||
|
||||
/**
|
||||
* Avoid top margins on first content element
|
||||
*/
|
||||
p, ul, ol dl,
|
||||
blockquote, pre,
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
&:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Avoid margins on nested elements
|
||||
*/
|
||||
li {
|
||||
p, ul, ol {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevents those to break out of their container
|
||||
*/
|
||||
img, table, td,
|
||||
blockquote, code, pre,
|
||||
textarea, input, video {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pictures
|
||||
* 1. Bugfix for IE8
|
||||
* 2. Bugfix for Gmap3
|
||||
* 3. Remove blue border on IE
|
||||
*/
|
||||
img {
|
||||
vertical-align: middle;
|
||||
width: auto; /* 1 */
|
||||
|
||||
:not(.gm-style),
|
||||
:not(.gmnoscreen),
|
||||
:not(.gmnoprint) {
|
||||
& {
|
||||
height: auto !important; /* 2 */
|
||||
}
|
||||
}
|
||||
|
||||
.gm-style,
|
||||
.gmnoscreen,
|
||||
.gmnoprint {
|
||||
& {
|
||||
max-width: none !important; /* 2 */
|
||||
}
|
||||
}
|
||||
|
||||
a & {
|
||||
border: 0; /* 3 */
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide script and style tags in case of table mode
|
||||
*/
|
||||
body > script,
|
||||
body > style {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/**
|
||||
* Force word wrapping on small screens
|
||||
*/
|
||||
@include mq(small) {
|
||||
div, textarea,
|
||||
table, td, th,
|
||||
code, pre, samp {
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
-moz-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/**
|
||||
* Spacing helpers
|
||||
* p, m = padding,margin
|
||||
* a, t, r, b, l = all, top, right, bottom, left
|
||||
* s, m, l, n, 0 = small(10px), medium(20px), large(30px), zero or none(0)
|
||||
* Source: https://github.com/stubbornella/oocss/blob/master/core/spacing/space.css
|
||||
*/
|
||||
.m-reset, .ma0 { margin: 0 !important; }
|
||||
.p-reset, .pa0 { padding: 0 !important; }
|
||||
.ma1, .mas { margin: 10px !important; }
|
||||
.ma2, .mam { margin: 20px !important; }
|
||||
.ma3, .mal { margin: 30px !important; }
|
||||
.pa1, .pas { padding: 10px; }
|
||||
.pa2, .pam { padding: 20px; }
|
||||
.pa3, .pal { padding: 30px; }
|
||||
|
||||
.mt0, .mtn { margin-top: 0 !important; }
|
||||
.mt1, .mts { margin-top: 10px !important; }
|
||||
.mt2, .mtm { margin-top: 20px !important; }
|
||||
.mt3, .mtl { margin-top: 30px !important; }
|
||||
.mr0, .mrn { margin-right: 0; }
|
||||
.mr1, .mrs { margin-right: 10px; }
|
||||
.mr2, .mrm { margin-right: 20px; }
|
||||
.mr3, .mrl { margin-right: 30px; }
|
||||
.mb0, .mbn { margin-bottom: 0 !important; }
|
||||
.mb1, .mbs { margin-bottom: 10px !important; }
|
||||
.mb2, .mbm { margin-bottom: 20px !important; }
|
||||
.mb3, .mbl { margin-bottom: 30px !important; }
|
||||
.ml0, .mln { margin-left: 0; }
|
||||
.ml1, .mls { margin-left: 10px; }
|
||||
.ml2, .mlm { margin-left: 20px; }
|
||||
.ml3, .mll { margin-left: 30px; }
|
||||
|
||||
.pt0, .ptn { padding-top: 0; }
|
||||
.pt1, .pts { padding-top: 10px; }
|
||||
.pt2, .ptm { padding-top: 20px; }
|
||||
.pt3, .ptl { padding-top: 30px; }
|
||||
.pr0, .prn { padding-right: 0; }
|
||||
.pr1, .prs { padding-right: 10px; }
|
||||
.pr2, .prm { padding-right: 20px; }
|
||||
.pr3, .prl { padding-right: 30px; }
|
||||
.pb0, .pbn { padding-bottom: 0; }
|
||||
.pb1, .pbs { padding-bottom: 10px; }
|
||||
.pb2, .pbm { padding-bottom: 20px; }
|
||||
.pb3, .pbl { padding-bottom: 30px; }
|
||||
.pl0, .pln { padding-left: 0; }
|
||||
.pl1, .pls { padding-left: 10px; }
|
||||
.pl2, .plm { padding-left: 20px; }
|
||||
.pl3, .pll { padding-left: 30px; }
|
@ -0,0 +1,44 @@
|
||||
/**
|
||||
* www.KNACSS.com V2.9 @author: Raphael Goetter, Alsacreations
|
||||
* Licence CC-BY http://creativecommons.org/licenses/by/3.0/fr/
|
||||
*
|
||||
* Sass version maintained by @HugoGiraudel
|
||||
* https://github.com/HugoGiraudel/KNACSS-Sass
|
||||
*/
|
||||
|
||||
/**
|
||||
* 1. Enable support for old browsers (IE8-, Firefox 3.6)
|
||||
* 2. Enable print stylesheet
|
||||
* 3. Gutter value for grid layouts
|
||||
* 4. Base font size: must be unitless
|
||||
* 5. Font stacks
|
||||
*/
|
||||
$legacy-support-for-ie: true !default; /* 1 */
|
||||
$legacy-support-for-mozilla: true !default; /* 1 */
|
||||
|
||||
$print-stylesheet: true !default; /* 2 */
|
||||
|
||||
$gutter: 20px !default; /* 3 */
|
||||
|
||||
$base-font-size: 14 !default; /* 4 */
|
||||
|
||||
$regular-font-stack: "Helvetica", "Arial", sans-serif; /* 5 */
|
||||
$monospace-font-stack: "Consolas", "DejaVu Sans Mono", "Courier", monospace; /* 5 */
|
||||
|
||||
@import "sass/helpers/mixins"; // Sass only
|
||||
@import "sass/helpers/reset"; // Home made reset
|
||||
@import "sass/helpers/spacing-helpers"; // A couple of spacing-related helper classes
|
||||
@import "sass/helpers/layout-helpers"; // A couple of layout-related helper classes and Sass placeholder
|
||||
@import "sass/helpers/block-helpers"; // A couple of block-related helper classes
|
||||
|
||||
@import "sass/modules/grids"; // Small grid system
|
||||
@import "sass/modules/tables"; // Tables
|
||||
@import "sass/modules/forms"; // Forms
|
||||
@import "sass/modules/icons"; // Icons (unicode based) and bullets
|
||||
@import "sass/modules/messages"; // Message system
|
||||
@import "sass/modules/layout"; // Layout
|
||||
@import "sass/modules/flexbox"; // Flexbox helpers
|
||||
@import "sass/modules/typography"; // Typography baseline and vertical rythm
|
||||
|
||||
@import "sass/partials/iefix"; // Some IE fixes
|
||||
@import "sass/partials/print"; // Print stylesheet
|
@ -0,0 +1,63 @@
|
||||
/*----------------------------*\
|
||||
* Flexbox layout *
|
||||
\*----------------------------*/
|
||||
|
||||
.flex {
|
||||
display: -webkit-box;
|
||||
display: -moz-box;
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flex-h {
|
||||
-moz-box-orient: horizontal;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.flex-v {
|
||||
-moz-box-orient: vertical;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.flex-fluid {
|
||||
-webkit-box-flox: 1;
|
||||
-moz-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-moz-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.flex-start {
|
||||
-webkit-box-ordinal-group: -1;
|
||||
-moz-box-ordinal-group: 0;
|
||||
-ms-flex-order: -1;
|
||||
-webkit-order: -1;
|
||||
-moz-order: -1;
|
||||
order: -1;
|
||||
}
|
||||
|
||||
.flex-mid {
|
||||
-webkit-box-ordinal-group: 1;
|
||||
-moz-box-ordinal-group: 1;
|
||||
-ms-flex-order: 1;
|
||||
-webkit-order: 1;
|
||||
-moz-order: 1;
|
||||
order: 1;
|
||||
}
|
||||
|
||||
.flex-end {
|
||||
-webkit-box-ordinal-group: 42;
|
||||
-moz-box-ordinal-group: 42;
|
||||
-ms-flex-order: 42;
|
||||
-webkit-order: 42;
|
||||
-moz-order: 42;
|
||||
order: 42;
|
||||
}
|
@ -0,0 +1,131 @@
|
||||
/*----------------------------*\
|
||||
* Forms *
|
||||
\*----------------------------*/
|
||||
|
||||
/**
|
||||
* Thanks to HTML5boilerplate
|
||||
* Source: github.com/nathansmith/formalize & www.sitepen.com
|
||||
*/
|
||||
|
||||
form,
|
||||
fieldset {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Bugfix alignment
|
||||
*/
|
||||
input,
|
||||
button, select,
|
||||
label, .btn {
|
||||
vertical-align: middle; /* 1 */
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form elements
|
||||
*/
|
||||
label {
|
||||
@include inline-block(middle);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
legend {
|
||||
border: 0;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
button,
|
||||
input,
|
||||
select {
|
||||
font-family: $regular-font-stack;
|
||||
font-size: inherit;
|
||||
margin: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Removes default vertical scrollbar on empty textarea in IE6/7/8/9
|
||||
* 2. Prevents horizontal resizing
|
||||
*/
|
||||
textarea {
|
||||
overflow: auto; /* 1 */
|
||||
min-height: 5em;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
vertical-align: top;
|
||||
resize: vertical; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Clickable input types in iOS
|
||||
*/
|
||||
button,
|
||||
input[type="button"],
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
cursor: pointer;
|
||||
-webkit-appearance: button; /* 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Corrects excess space around these inputs in IE8/9
|
||||
*/
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
padding: 0; /* 1 */
|
||||
}
|
||||
|
||||
input[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a slash at the end of this comment
|
||||
* if select styling bugs on WebKit *
|
||||
select { -webkit-appearance: none; } /**/
|
||||
|
||||
/**
|
||||
* Removes 'x' on right of search input when text is entered
|
||||
*/
|
||||
input[type="search"] {
|
||||
&::-webkit-search-decoration,
|
||||
&::-webkit-search-cancel-button,
|
||||
&::-webkit-search-results-button,
|
||||
&::-webkit-search-results-decoration {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
input, textarea {
|
||||
&:-moz-placeholder {
|
||||
color: #777;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes inner padding and border in FF3+
|
||||
*/
|
||||
button,
|
||||
input[type='button'],
|
||||
input[type='reset'],
|
||||
input[type='submit'] {
|
||||
&::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Buttons
|
||||
*/
|
||||
.btn {
|
||||
@include inline-block();
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
}
|
@ -0,0 +1,127 @@
|
||||
/*----------------------------*\
|
||||
* Grids *
|
||||
\*----------------------------*/
|
||||
|
||||
/**
|
||||
* Grids inspired from SUIT
|
||||
* https://github.com/suitcss/suit
|
||||
* Font family hack: https://github.com/raphaelgoetter/KNACSS/issues/37%20
|
||||
*/
|
||||
.grid {
|
||||
overflow: hidden;
|
||||
font-family: "FreeSans", "Arimo", "Droid Sans", "Helvetica", "Arial", sans-serif;
|
||||
|
||||
> * {
|
||||
display: block;
|
||||
padding: 0;
|
||||
margin-left: -$gutter;
|
||||
text-align: left;
|
||||
letter-spacing: -.31em;
|
||||
text-rendering: optimizespeed;
|
||||
|
||||
> * {
|
||||
@include inline-block(top);
|
||||
width: 100%;
|
||||
padding-left: $gutter;
|
||||
margin-left: 0;
|
||||
text-align: left;
|
||||
letter-spacing: normal;
|
||||
word-spacing: normal;
|
||||
text-rendering: auto;
|
||||
font-family: $regular-font-stack;
|
||||
|
||||
@include mq(tiny) {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Opera hack
|
||||
*/
|
||||
.opera:-o-prefocus, /* 1 */
|
||||
.grid > * {
|
||||
word-spacing: -.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%;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.grid5,
|
||||
.grid6,
|
||||
.grid8,
|
||||
.grid10,
|
||||
.grid12 {
|
||||
> * {
|
||||
width: 33.333%;
|
||||
}
|
||||
}
|
||||
}
|
||||
@include mq(small) {
|
||||
.grid3,
|
||||
.grid4,
|
||||
.grid5,
|
||||
.grid6,
|
||||
.grid8,
|
||||
.grid10,
|
||||
.grid12 {
|
||||
> * {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,163 @@
|
||||
/*----------------------------*\
|
||||
* Icons *
|
||||
\*----------------------------*/
|
||||
|
||||
.icon {
|
||||
@include inline-block();
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Future proof; prevent screen-reader from reading it
|
||||
* 2. Triggers hardware acceleration
|
||||
*/
|
||||
.icon:before,
|
||||
.icon.after:after {
|
||||
content: "";
|
||||
@include inline-block(middle);
|
||||
position: relative;
|
||||
top: -.1em;
|
||||
margin: 0 .3em 0 0;
|
||||
font: 1.4em/1 sans-serif;
|
||||
color: #000;
|
||||
text-shadow: 1px 1px 0 rgba(0,0,0,.1);
|
||||
speak: none; /* 1 */
|
||||
|
||||
@include mq(medium) {
|
||||
font: 1em/0.6 sans-serif;
|
||||
-webkit-transform: rotateZ(.05deg); /* 2 */
|
||||
}
|
||||
}
|
||||
|
||||
.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: -.05em;
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
/*----------------------------*\
|
||||
* Layout *
|
||||
\*----------------------------*/
|
||||
|
||||
/**
|
||||
* Switching box-model for all elements
|
||||
* 1. ...and pseudo-elements
|
||||
*/
|
||||
*,
|
||||
*:after, /* 1 */
|
||||
*:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
/*----------------------------*\
|
||||
* Messages *
|
||||
\*----------------------------*/
|
||||
|
||||
/**
|
||||
* Shared classes between all types of messages
|
||||
*/
|
||||
%message {
|
||||
padding: .5em;
|
||||
border-radius: .1em;
|
||||
border: 1px solid;
|
||||
text-shadow: 0 1px 0 rgba(white, .2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Color scheming based on a single color
|
||||
*/
|
||||
@mixin message-scheme($color) {
|
||||
@extend %message;
|
||||
color: $color;
|
||||
background: lighten($color, 38%);
|
||||
border-color: lighten(adjust-hue($color, -10), 20%);
|
||||
}
|
||||
|
||||
/**
|
||||
* Message types
|
||||
*/
|
||||
$messages-types: ( (error #b94a48),
|
||||
(info #3a87ad),
|
||||
(warn #c09853),
|
||||
(ok #468847) );
|
||||
|
||||
@each $type in $messages-types {
|
||||
.message-#{nth($type, 1)} {
|
||||
@include message-scheme(nth($type, 2));
|
||||
}
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
/*----------------------------*\
|
||||
* Tables *
|
||||
\*----------------------------*/
|
||||
|
||||
$border: 1px solid #ccc; // Default border style for all tables
|
||||
|
||||
table,
|
||||
.table {
|
||||
max-width : 100%;
|
||||
table-layout: fixed;
|
||||
border-collapse: collapse;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Prevent reCAPTCHA from exploding
|
||||
* See: https://github.com/raphaelgoetter/KNACSS/issues/18
|
||||
*/
|
||||
table {
|
||||
width: 100%;
|
||||
border: $border;
|
||||
margin-bottom: 1.5em;
|
||||
|
||||
&#recaptcha_table {
|
||||
table-layout: auto; /* 1 */
|
||||
}
|
||||
}
|
||||
|
||||
.table {
|
||||
display: table;
|
||||
}
|
||||
|
||||
caption {
|
||||
padding: 10px;
|
||||
color: #555;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove thead on tiny screens
|
||||
*/
|
||||
thead {
|
||||
@include mq(tiny) {
|
||||
display: none; /* 1 */
|
||||
}
|
||||
}
|
||||
|
||||
tr > * + * {
|
||||
border-left: $border;
|
||||
}
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: .3em .8em;
|
||||
text-align: left;
|
||||
border-bottom: $border;
|
||||
|
||||
@include mq(tiny) {
|
||||
display: block !important;
|
||||
width: auto !important;
|
||||
text-align: left !important;
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/**
|
||||
* Alternate tables
|
||||
*/
|
||||
.alternate {
|
||||
border: 0;
|
||||
|
||||
thead tr > * + * {
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
tbody tr > * + * {
|
||||
border-left: $border;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Alternate-vert tables
|
||||
*/
|
||||
.alternate-vert {
|
||||
border: 0;
|
||||
border-right: $border;
|
||||
|
||||
tr > :first-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
tr > * + * {
|
||||
border-top: $border;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Striped tables
|
||||
*/
|
||||
.striped tbody tr:nth-child(odd) {
|
||||
background: #eee;
|
||||
background: rgba(0, 0, 0, .05);
|
||||
}
|
||||
|
||||
/**
|
||||
* Striped-vert tables
|
||||
*/
|
||||
.striped-vert tr > :first-child {
|
||||
background: #eee;
|
||||
background: rgba(0, 0, 0, .05);
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
/* ----------------------------- */
|
||||
/* ==typography */
|
||||
/* ----------------------------- */
|
||||
|
||||
/**
|
||||
* 1. Orientation iOS font-size fix
|
||||
*/
|
||||
html {
|
||||
font-family: $regular-font-stack;
|
||||
line-height: 1.5;
|
||||
color: #000;
|
||||
|
||||
@media (orientation: landscape) and (max-device-width: 768px) {
|
||||
-webkit-text-size-adjust: 100%; /* 1 */
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Put the base font-size at 14px
|
||||
*/
|
||||
body {
|
||||
@include rem($base-font-size); /* 1 */
|
||||
background: white;
|
||||
}
|
||||
|
||||
/**
|
||||
* Font-sizing for content
|
||||
* Preserves vertical-rythm
|
||||
* Source: http://soqr.fr/vertical-rhythm/
|
||||
*/
|
||||
p, ul, ol, dl,
|
||||
blockquote, pre,
|
||||
td, th,
|
||||
label, textarea,
|
||||
caption, figure {
|
||||
line-height: 1.5;
|
||||
margin: .75em 0 0;
|
||||
}
|
||||
|
||||
$headings-size: 32 28 24 20 18 16;
|
||||
|
||||
@for $i from 1 through length($headings-size) {
|
||||
$selector : "h#{$i}, .h#{$i}-like";
|
||||
$visual : nth($headings-size, $i);
|
||||
$line-height : if($i < 4, 42, 21);
|
||||
|
||||
#{$selector} {
|
||||
margin: 21 / $visual * 1em (0) (0) (0);
|
||||
line-height: $line-height / $visual;
|
||||
@include rem($visual);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Alternate font-sizing
|
||||
* .smaller => 10px
|
||||
* .small => 12px
|
||||
* .big => 16px
|
||||
* .bigger => 18px
|
||||
* .biggest => 20px
|
||||
*/
|
||||
$sizes:
|
||||
smaller 10,
|
||||
small 12,
|
||||
big 16,
|
||||
bigger 18,
|
||||
biggest 20;
|
||||
|
||||
@each $size in $sizes {
|
||||
$keyword: nth($size, 1);
|
||||
$size-px: nth($size, 2);
|
||||
|
||||
.#{$keyword} {
|
||||
@include rem($size-px);
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
/*----------------------------*\
|
||||
* IE Fix *
|
||||
\*----------------------------*/
|
||||
|
||||
/**
|
||||
* HasLayout for IE6/IE7
|
||||
*/
|
||||
@if $legacy-support-for-ie {
|
||||
.row, .col {
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Warning: .col needs a width on IE6/IE7
|
||||
*/
|
||||
.col {
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a slash at the end of this comment
|
||||
* If you want to enable box-sizing for IE6/IE7
|
||||
* with a polyfill
|
||||
* Source: https://github.com/Schepp/box-sizing-polyfill *
|
||||
* {
|
||||
behavior: url(/js/boxsizing.htc);
|
||||
}
|
||||
/**/
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
/*----------------------------*\
|
||||
* Print stylesheet *
|
||||
\*----------------------------*/
|
||||
|
||||
@if $print-stylesheet {
|
||||
@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: #000 !important;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6,
|
||||
p, blockquote,
|
||||
ul, ol {
|
||||
color: #000 !important;
|
||||
margin: auto !important;
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays possible .print elements
|
||||
*/
|
||||
.print {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Try turning images to black and white if supported filters
|
||||
*/
|
||||
img {
|
||||
@include prefix(filter, grayscale(100%));
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. No orphans
|
||||
* 2. No widows
|
||||
*/
|
||||
p,
|
||||
blockquote {
|
||||
orphans: 3; /* 1 */
|
||||
widows: 3; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevents breaks inside these elements
|
||||
*/
|
||||
blockquote,
|
||||
ul, ol {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Forces page break before main headers
|
||||
*/
|
||||
h1 {
|
||||
page-break-before: always;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevents breaks after these elements
|
||||
*/
|
||||
h1, h2, h3,
|
||||
caption {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Displays url after link
|
||||
* 2. ... unless it's a JS or empty link
|
||||
*/
|
||||
a {
|
||||
color: #000 !important;
|
||||
text-decoration: underline !important;
|
||||
|
||||
&[href]:after {
|
||||
content: " (" attr(href) ")"; /* 1 */
|
||||
}
|
||||
|
||||
&[href^="javascript:"]:after,
|
||||
&[href^="#"]:after,
|
||||
&[href=""] {
|
||||
content: ''; /* 2 */
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,107 @@
|
||||
/* ----------------------------- */
|
||||
/* ==desktop and retina medias */
|
||||
/* ----------------------------- */
|
||||
|
||||
/* ----------------------------- */
|
||||
/* ==viewport fixing for RWD */
|
||||
/* ----------------------------- */
|
||||
@-webkit-viewport {
|
||||
width: device-width;
|
||||
zoom: 1.0;
|
||||
}
|
||||
@-moz-viewport {
|
||||
width: device-width;
|
||||
zoom: 1.0;
|
||||
}
|
||||
@-ms-viewport {
|
||||
width: device-width;
|
||||
zoom: 1.0;
|
||||
}
|
||||
@-o-viewport {
|
||||
width: device-width;
|
||||
zoom: 1.0;
|
||||
}
|
||||
@viewport {
|
||||
width: device-width;
|
||||
zoom: 1.0;
|
||||
}
|
||||
|
||||
/* ---------------------------------- */
|
||||
/* ==Responsive large / small / tiny */
|
||||
/* ---------------------------------- */
|
||||
|
||||
@mixin rwd-setup($namespace: "") {
|
||||
.#{namespace}no-float { float: none; }
|
||||
|
||||
.#{namespace}inbl {
|
||||
@include inline-block(top);
|
||||
float: none;
|
||||
}
|
||||
|
||||
.#{namespace}row {
|
||||
display: table !important;
|
||||
table-layout: fixed !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.#{namespace}col {
|
||||
display: table-cell !important;
|
||||
vertical-align: top !important;
|
||||
}
|
||||
|
||||
/* Widths */
|
||||
.#{namespace}w25 { width: 25% !important; }
|
||||
.#{namespace}w33 { width: 33.3333% !important; }
|
||||
.#{namespace}w50 { width: 50% !important; }
|
||||
.#{namespace}w66 { width: 66.6666% !important; }
|
||||
.#{namespace}w75 { width: 75% !important; }
|
||||
.#{namespace}w100 {
|
||||
display: block !important;
|
||||
float: none !important;
|
||||
clear: none !important;
|
||||
width: auto !important;
|
||||
margin-left: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* Margins */
|
||||
.#{namespace}ma0 { margin: 0 !important; }
|
||||
}
|
||||
|
||||
@include mq(large) {
|
||||
@include rwd-setup("large-");
|
||||
}
|
||||
|
||||
@include mq(small) {
|
||||
@include rwd-setup("small-");
|
||||
}
|
||||
|
||||
@include mq(tiny) {
|
||||
|
||||
/* Quick smartphone 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;
|
||||
}
|
||||
|
||||
.w300p,
|
||||