| @ -0,0 +1,6 @@ | |||
| node_modules | |||
| build | |||
| *.DS_Store | |||
| Thumbs.db | |||
| .idea | |||
| *.log | |||
| @ -0,0 +1,14 @@ | |||
| { | |||
| "name": "crispy-boilerplate", | |||
| "version": "0.1.0", | |||
| "description": "Flat Sass Framework, to give you a amount of Basic Settings, Mixins and Functions", | |||
| "repository": { | |||
| "type": "git", | |||
| "url": "git@github.com:nirgendswo/crispy-boilerplate.git" | |||
| }, | |||
| "author": "Björn Hase", | |||
| "license": "MIT", | |||
| "dependencies": { | |||
| "normalize.css": "^7.0.0", | |||
| } | |||
| } | |||
| @ -0,0 +1,15 @@ | |||
| @import | |||
| '../../node_modules/normalize.css/normalize.css' | |||
| 'functions/units', | |||
| 'functions/z-index', | |||
| 'mixins/clearfix', | |||
| 'mixins/fontSize', | |||
| 'components/button', | |||
| 'components/body', | |||
| 'components/icon', | |||
| 'components/heading', | |||
| 'components/normalize', | |||
| 'components/list'; | |||
| @ -0,0 +1,34 @@ | |||
| /** | |||
| * body | |||
| * | |||
| * | |||
| * | |||
| * @author Björn Hase | |||
| * | |||
| */ | |||
| $body__font-size: 12px !default; | |||
| $body__font-family: Arial, Helvetica, Neue Helvetica, sans-serif !default; | |||
| $body__line-height: 1.5 !default; | |||
| $body__direction: ltr !default; | |||
| $body__color: black !default; | |||
| $body__backgroun-color: white !default; | |||
| @mixin cripsy-boilerplate-body { | |||
| body { | |||
| font-family: $body__font-family; | |||
| font-weight: normal; | |||
| line-height: $body__line-height; | |||
| color: $body__color; | |||
| background-color: $body__background-color; | |||
| direction: $body__direction; | |||
| @include font-size($body__font-size); | |||
| @content; | |||
| } | |||
| } | |||
| @ -0,0 +1,33 @@ | |||
| /** | |||
| * Buttons | |||
| * | |||
| * mixin for basic styles of buttons | |||
| * | |||
| * @author Björn Hase | |||
| * | |||
| */ | |||
| @mixin cripsy-boilerplate-button() { | |||
| .button { | |||
| position: relative; | |||
| display: inline-block; | |||
| vertical-align: middle; | |||
| appearance: none; | |||
| &--wide { | |||
| width: 100%; | |||
| } | |||
| &:hover { | |||
| cursor: pointer; | |||
| text-decoration: none; | |||
| } | |||
| &:focus { | |||
| outline: none; | |||
| } | |||
| @content; | |||
| } | |||
| } | |||
| @ -0,0 +1,42 @@ | |||
| @import | |||
| '../mixins/units', | |||
| '../mixins/fontSize'; | |||
| /** | |||
| * heading | |||
| * | |||
| * basic styles for heading | |||
| * | |||
| * @author Björn Hase | |||
| * | |||
| */ | |||
| $heading__font-sizes: ( | |||
| 'h1': 36px, | |||
| 'h2': 30px, | |||
| 'h3': 24px, | |||
| 'h4': 18px, | |||
| 'h5': 14px, | |||
| 'h6': 12px | |||
| ) !default; | |||
| $heading__font-weight: bold !default; | |||
| $heading__font-family: Arial, Helvetica, Neue Helvetica, sans-serif !default; | |||
| $heading__line-height: 1.5 !default; | |||
| $heading__margin: 0 0 pxToEm(20px) !default; | |||
| @mixin cripsy-boilerplate-heading { | |||
| @each $h, $font-size in $heading__font-sizes { | |||
| #{$h}, .#{$h} { | |||
| font-family: $heading__font-family; | |||
| font-weight: $heading__font-weight; | |||
| line-height: $heading__line-height; | |||
| margin: $heading__margin; | |||
| @include font-size($font-size); | |||
| @content; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,27 @@ | |||
| /** | |||
| * icon | |||
| * | |||
| * basic styles for icon | |||
| * | |||
| * <svg class="icon"> | |||
| * <use src="#"></use> | |||
| * </svg> | |||
| * | |||
| * | |||
| * @author Björn Hase | |||
| * | |||
| */ | |||
| $icon__vertical-align: middle !default; | |||
| $icon__margin: 0 2px !default; | |||
| @mixin cripsy-boilerplate-icon() { | |||
| .icon { | |||
| display: inline-block; | |||
| position: relative; | |||
| vertical-align: $icon__vertical-align; | |||
| margin: $icon__margin; | |||
| @content; | |||
| } | |||
| } | |||
| @ -0,0 +1,33 @@ | |||
| /** | |||
| * list | |||
| * | |||
| * styles and mixins for ul-element | |||
| * | |||
| * | |||
| * @author Björn Hase | |||
| * | |||
| */ | |||
| @mixin cripsy-boilerplate-list { | |||
| .list { | |||
| list-style-position: outside; | |||
| &--horizontal { | |||
| .list__item { | |||
| float: left; | |||
| } | |||
| } | |||
| } | |||
| .d-list { | |||
| &--horizontal { | |||
| .d-list__title, .d-list__content { | |||
| float: left; | |||
| } | |||
| .d-list__content { | |||
| clear: left; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,46 @@ | |||
| /** | |||
| * normalize | |||
| * | |||
| * | |||
| * @author Björn Hase | |||
| * | |||
| */ | |||
| $normalize__margin: 0 0 pxToEm(20px) !default; | |||
| @mixin cripsy-boilerplate-normalize { | |||
| html { | |||
| font-size: 100%; | |||
| } | |||
| body, | |||
| html { | |||
| height: 100%; | |||
| } | |||
| html, | |||
| legend { | |||
| box-sizing: border-box; | |||
| } | |||
| *, | |||
| *::after, | |||
| *::before { | |||
| box-sizing: inherit; | |||
| } | |||
| table { | |||
| border-collapse: collapse; | |||
| border-spacing: 0; | |||
| } | |||
| p { | |||
| margin: $normalize__margin; | |||
| } | |||
| ul, ol, dl { | |||
| margin: $normalize__margin; | |||
| } | |||
| @content; | |||
| } | |||
| @ -0,0 +1,8 @@ | |||
| @import | |||
| 'CrispyBoilerplate'; | |||
| @include cripsy-boilerplate-normalize(); | |||
| @include cripsy-boilerplate-body(); | |||
| @include crispy-boilerplate-heading(); | |||
| @include cripsy-boilerplate-icon(); | |||
| @include cripsy-boilerplate-list(); | |||
| @ -0,0 +1,45 @@ | |||
| $base__font-size: 16px !default; | |||
| $base__line-height: 1.5 !default; | |||
| /** | |||
| * calculate pixel value to em | |||
| * | |||
| * @param {px} $font-size | |||
| * @return {em} | |||
| */ | |||
| @function pxToEm($font-size) { | |||
| @return ($font-size / $base__font-size) * 1em; | |||
| } | |||
| /** | |||
| * calculate px value to rem | |||
| * | |||
| * @param {px} $px | |||
| * @param {px} $font-size | |||
| * @return {em} | |||
| */ | |||
| @function pxToRem($font-size) { | |||
| @return ($font-size / $base__font-size) * 1rem; | |||
| } | |||
| /** | |||
| * calculate em value to rem | |||
| * | |||
| * @param {em} $value | |||
| * @param {px} $font-size | |||
| * @return {px} | |||
| */ | |||
| @function emToPx($value, $font-size: $base__font-size) { | |||
| @return ($value * $font-size) * 1px; | |||
| } | |||
| /** | |||
| * calculate line-height with font-size | |||
| * | |||
| * @param {px} $font-size | |||
| * @param {unitless} $base-line-height | |||
| * @return {unitless} | |||
| */ | |||
| @function lineHeight($font-size, $line-height: $base-line-height) { | |||
| @return unitless(emToPx($line-height * 1em) / $font-size); | |||
| } | |||
| @ -0,0 +1,22 @@ | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| * | |||
| * @author Björn Hase | |||
| * | |||
| */ | |||
| $z-indexes: ( | |||
| 'site-header': 100, | |||
| 'modal': 1000 | |||
| ) !default; | |||
| @function z-index($name) { | |||
| @if index($z-indexes, $name) { | |||
| @return map($z-indexes, $name); | |||
| } @else { | |||
| @warn 'There is no item "#{$name}" in this list; choose one of: #{$z-indexes}'; | |||
| @return null; | |||
| } | |||
| } | |||
| @ -0,0 +1,19 @@ | |||
| /** | |||
| * clearfix | |||
| * | |||
| * | |||
| * @author Björn Hase | |||
| * | |||
| */ | |||
| @mixin clearfix() { | |||
| &::before, | |||
| &::after { | |||
| display: table; | |||
| content: ' '; | |||
| } | |||
| &::after { | |||
| clear: both; | |||
| } | |||
| } | |||
| @ -0,0 +1,10 @@ | |||
| /** | |||
| * add font-size with fallback | |||
| * | |||
| * @param {px} $font-size | |||
| * | |||
| */ | |||
| @mixin fontSize($font-size) { | |||
| font-size: $font-size; | |||
| font-size: pxToRem($font-size); | |||
| } | |||