| @ -0,0 +1,3 @@ | |||||
| @import | |||||
| 'components/button' | |||||
| 'components/nav'; | |||||
| @ -0,0 +1,3 @@ | |||||
| @import | |||||
| 'site/header' | |||||
| 'site/footer'; | |||||
| @ -0,0 +1,2 @@ | |||||
| @import | |||||
| 'templates/home'; | |||||
| @ -0,0 +1,3 @@ | |||||
| { | |||||
| "/dist/crispy.min.css": "/dist/crispy.min.css" | |||||
| } | |||||
| @ -1,17 +1,29 @@ | |||||
| { | { | ||||
| "name": "crispy-boilerplate", | |||||
| "version": "1.1.0", | |||||
| "description": "Flat Sass Boilerplate to give you a amount of Basic Settings, Mixins and Functions", | |||||
| "repository": { | |||||
| "type": "git", | |||||
| "url": "git@gitlab.tentakelfabrik.de:tentakelfabrik/crispy-boilerplate.git" | |||||
| }, | |||||
| "author": "Björn Hase", | |||||
| "license": "MIT", | |||||
| "devDependencies": { | |||||
| "laravel-mix": "^2.1.14" | |||||
| }, | |||||
| "dependencies": { | |||||
| "normalize-scss": "^7.0.1" | |||||
| } | |||||
| "name": "crispy-boilerplate", | |||||
| "version": "1.2.0", | |||||
| "description": "Flat Sass Boilerplate to give you a amount of Basic Settings, Mixins and Functions", | |||||
| "repository": { | |||||
| "type": "git", | |||||
| "url": "git@gitlab.tentakelfabrik.de:tentakelfabrik/crispy-boilerplate.git" | |||||
| }, | |||||
| "scripts": { | |||||
| "dev": "npm run development", | |||||
| "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", | |||||
| "watch": "npm run development -- --watch", | |||||
| "watch-poll": "npm run watch -- --watch-poll", | |||||
| "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", | |||||
| "prod": "npm run production", | |||||
| "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" | |||||
| }, | |||||
| "author": "Björn Hase", | |||||
| "license": "MIT", | |||||
| "devDependencies": { | |||||
| "cross-env": "^5.2.0", | |||||
| "laravel-mix": "^2.1.14", | |||||
| "postcss-css-variables": "^0.11.0" | |||||
| }, | |||||
| "dependencies": { | |||||
| "bootstrap": "^4.2.1", | |||||
| "normalize-scss": "^7.0.1" | |||||
| } | |||||
| } | } | ||||
| @ -0,0 +1,10 @@ | |||||
| @import | |||||
| 'components/button', | |||||
| 'components/code', | |||||
| 'components/group', | |||||
| 'components/heading', | |||||
| 'components/hero', | |||||
| 'components/modal', | |||||
| 'components/panel', | |||||
| 'components/table', | |||||
| 'components/field'; | |||||
| @ -0,0 +1,140 @@ | |||||
| /** | |||||
| * normalize | |||||
| * | |||||
| * | |||||
| * @author Björn Hase | |||||
| * | |||||
| */ | |||||
| @import 'normalize'; | |||||
| @mixin crispy__core() { | |||||
| html { | |||||
| font-size: 100%; | |||||
| } | |||||
| body, | |||||
| html { | |||||
| margin: 0; | |||||
| height: 100%; | |||||
| } | |||||
| html, | |||||
| legend { | |||||
| box-sizing: border-box; | |||||
| } | |||||
| *, | |||||
| *::after, | |||||
| *::before { | |||||
| box-sizing: inherit; | |||||
| } | |||||
| table { | |||||
| border-collapse: collapse; | |||||
| border-spacing: 0; | |||||
| } | |||||
| // paragraphs | |||||
| p { | |||||
| margin: toEm(0 0 $crispy__spacing 0); | |||||
| } | |||||
| // Semantic text elements | |||||
| a, | |||||
| ins, | |||||
| u { | |||||
| text-decoration-skip: ink edges; | |||||
| } | |||||
| a { | |||||
| color: $crispy__color-primary; | |||||
| &:hover { | |||||
| color: $crispy__color-hover; | |||||
| } | |||||
| &:focus { | |||||
| outline: none; | |||||
| } | |||||
| } | |||||
| abbr[title] { | |||||
| border-bottom: 1px dotted; | |||||
| cursor: help; | |||||
| text-decoration: none; | |||||
| } | |||||
| mark { | |||||
| padding: toEm(5px); | |||||
| } | |||||
| // blockquote | |||||
| blockquote { | |||||
| border-left: 1px solid $crispy__color-secondary; | |||||
| margin-left: 0; | |||||
| padding: toEm(10px 20px); | |||||
| p:last-child { | |||||
| margin-bottom: 0; | |||||
| } | |||||
| } | |||||
| // lists | |||||
| dl, | |||||
| ol, | |||||
| ul { | |||||
| padding: 0; | |||||
| margin: toEm(0 0 $crispy__spacing $crispy__spacing); | |||||
| } | |||||
| ol ol, | |||||
| ul ul { | |||||
| margin-top: toEm(($crispy__spacing / 2)); | |||||
| } | |||||
| ol { | |||||
| list-style: decimal outside; | |||||
| } | |||||
| ul { | |||||
| list-style: disc outside; | |||||
| } | |||||
| dd, | |||||
| dt { | |||||
| margin: 0; | |||||
| } | |||||
| dt { | |||||
| font-weight: bold; | |||||
| } | |||||
| // media | |||||
| figure { | |||||
| margin: toEm(0 0 $crispy__spacing); | |||||
| } | |||||
| figcaption { | |||||
| margin: toEm($crispy__spacing 0 0); | |||||
| } | |||||
| // divider | |||||
| hr { | |||||
| border: 0; | |||||
| border-top: 1px solid $crispy__color-secondary; | |||||
| margin: toEm($crispy__spacing 0); | |||||
| } | |||||
| // body | |||||
| body { | |||||
| font-family: $crispy__font-family; | |||||
| font-weight: normal; | |||||
| line-height: $crispy__golden-ratio; | |||||
| color: $crispy__color-text; | |||||
| background-color: $crispy__color-background; | |||||
| direction: $crispy__direction; | |||||
| @include crispy__font-size($crispy__font-size); | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,3 @@ | |||||
| @import | |||||
| 'functions/units', | |||||
| 'functions/zIndex'; | |||||
| @ -0,0 +1,7 @@ | |||||
| @import | |||||
| 'helpers/float', | |||||
| 'helpers/spacing', | |||||
| 'helpers/media', | |||||
| 'helpers/text', | |||||
| 'helpers/visibility', | |||||
| 'helpers/width'; | |||||
| @ -1,6 +1,6 @@ | |||||
| @import | @import | ||||
| 'fonts', | |||||
| 'media-queries'; | |||||
| 'mixins/fonts', | |||||
| 'mixins/media-queries'; | |||||
| /** | /** | ||||
| * clearfix to end floating | * clearfix to end floating | ||||
| @ -1,139 +0,0 @@ | |||||
| /** | |||||
| * normalize | |||||
| * | |||||
| * | |||||
| * @author Björn Hase | |||||
| * | |||||
| */ | |||||
| @import | |||||
| 'normalize'; | |||||
| html { | |||||
| font-size: 100%; | |||||
| } | |||||
| body, | |||||
| html { | |||||
| margin: 0; | |||||
| height: 100%; | |||||
| } | |||||
| html, | |||||
| legend { | |||||
| box-sizing: border-box; | |||||
| } | |||||
| *, | |||||
| *::after, | |||||
| *::before { | |||||
| box-sizing: inherit; | |||||
| } | |||||
| table { | |||||
| border-collapse: collapse; | |||||
| border-spacing: 0; | |||||
| } | |||||
| // paragraphs | |||||
| p { | |||||
| margin: toEm(0 0 $crispy__margin 0); | |||||
| } | |||||
| // Semantic text elements | |||||
| a, | |||||
| ins, | |||||
| u { | |||||
| text-decoration-skip: ink edges; | |||||
| } | |||||
| a { | |||||
| color: $crispy__color-primary; | |||||
| &:hover { | |||||
| color: $crispy__color-hover; | |||||
| } | |||||
| &:focus { | |||||
| outline: none; | |||||
| } | |||||
| } | |||||
| abbr[title] { | |||||
| border-bottom: 1px dotted; | |||||
| cursor: help; | |||||
| text-decoration: none; | |||||
| } | |||||
| mark { | |||||
| padding: toEm(5px); | |||||
| } | |||||
| // blockquote | |||||
| blockquote { | |||||
| border-left: 1px solid $crispy__color-secondary; | |||||
| margin-left: 0; | |||||
| padding: toEm(10px 20px); | |||||
| p:last-child { | |||||
| margin-bottom: 0; | |||||
| } | |||||
| } | |||||
| // lists | |||||
| dl, | |||||
| ol, | |||||
| ul { | |||||
| padding: 0; | |||||
| margin: toEm(0 0 $crispy__margin $crispy__margin); | |||||
| } | |||||
| ol ol, | |||||
| ul ul { | |||||
| margin-top: toEm(($crispy__margin / 2)); | |||||
| } | |||||
| ol { | |||||
| list-style: decimal outside; | |||||
| } | |||||
| ul { | |||||
| list-style: disc outside; | |||||
| } | |||||
| dd, | |||||
| dt { | |||||
| margin: 0; | |||||
| } | |||||
| dt { | |||||
| font-weight: bold; | |||||
| } | |||||
| // media | |||||
| figure { | |||||
| margin: toEm(0 0 $crispy__margin); | |||||
| } | |||||
| figcaption { | |||||
| margin: toEm($crispy__margin 0 0); | |||||
| } | |||||
| // divider | |||||
| hr { | |||||
| border: 0; | |||||
| border-top: 1px solid $crispy__color-secondary; | |||||
| margin: toEm($crispy__margin 0); | |||||
| } | |||||
| // body | |||||
| body { | |||||
| font-family: $crispy__font-family; | |||||
| font-weight: normal; | |||||
| line-height: $crispy__golden-ratio; | |||||
| color: $crispy__color-text; | |||||
| background-color: $crispy__color-background; | |||||
| direction: $crispy__direction; | |||||
| @include crispy__font-size($crispy__font-size); | |||||
| } | |||||
| @ -1,22 +1,27 @@ | |||||
| @import | @import | ||||
| 'checkbox', | |||||
| 'label', | |||||
| 'panel', | |||||
| 'text', | |||||
| 'radio', | |||||
| 'select'; | |||||
| 'field/checkbox', | |||||
| 'field/label', | |||||
| 'field/panel', | |||||
| 'field/text', | |||||
| 'field/radio', | |||||
| 'field/select'; | |||||
| /** | /** | ||||
| * component: field | * component: field | ||||
| * | * | ||||
| * field is a wrapper for form elements | |||||
| * <div class="field"> | |||||
| * <label class="field__label"> | |||||
| * text | |||||
| * <input type="text" class="field__text" /> | |||||
| * <label> | |||||
| * </div> | |||||
| * | * | ||||
| * | * | ||||
| * @author Björn Hase | * @author Björn Hase | ||||
| * | * | ||||
| */ | */ | ||||
| $crispy__field__margin: toEm(0 0 $crispy__margin 0) !default; | |||||
| $crispy__field__margin: toEm(0 0 $crispy__spacing 0) !default; | |||||
| $crispy__field__input__font-size: $crispy__font-size !default; | $crispy__field__input__font-size: $crispy__font-size !default; | ||||
| $crispy__field__input__padding: toEm(6px 8px) !default; | $crispy__field__input__padding: toEm(6px 8px) !default; | ||||
| @ -1,62 +0,0 @@ | |||||
| /** | |||||
| * component: icon | |||||
| * | |||||
| * use svg as icon | |||||
| * | |||||
| * <svg class="icon"> | |||||
| * | |||||
| * </svg> | |||||
| * | |||||
| * | |||||
| * @author Björn Hase | |||||
| * | |||||
| */ | |||||
| $crispy__icon__vertical-align: text-bottom !default; | |||||
| $crispy__icon__sizes: ( | |||||
| 'default': $crispy__font-size, | |||||
| 'small': 12px, | |||||
| 'large': 28px | |||||
| ) !default; | |||||
| @mixin crispy__icon() { | |||||
| .icon { | |||||
| display: inline-block; | |||||
| position: relative; | |||||
| vertical-align: $crispy__icon__vertical-align; | |||||
| @include crispy__icon-sizes($crispy__icon__sizes); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * adding sizes for icons from map | |||||
| * | |||||
| * | |||||
| * @param {map} $sizes | |||||
| * | |||||
| */ | |||||
| @mixin crispy__icon-sizes($sizes) { | |||||
| @each $name, $size in $sizes { | |||||
| @if ($name == 'default') { | |||||
| @include crispy__icon-size($size); | |||||
| } @else { | |||||
| &--#{$name} { | |||||
| @include crispy__icon-size($size); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /** | |||||
| * add size for icon as width and height | |||||
| * | |||||
| * | |||||
| * @param {px} $size | |||||
| * | |||||
| */ | |||||
| @mixin crispy__icon-size($size) { | |||||
| width: $size; | |||||
| } | |||||
| @ -1,36 +0,0 @@ | |||||
| @import | |||||
| 'button', | |||||
| 'code', | |||||
| 'group', | |||||
| 'heading', | |||||
| 'hero', | |||||
| 'icon', | |||||
| 'modal', | |||||
| 'panel', | |||||
| 'table', | |||||
| 'field/field'; | |||||
| /** | |||||
| * shortcut to adding all components | |||||
| * | |||||
| * | |||||
| */ | |||||
| @mixin cripsy__components() | |||||
| { | |||||
| @include crispy__button(); | |||||
| @include crispy__code(); | |||||
| @include crispy__group(); | |||||
| @include crispy__heading(); | |||||
| @include crispy__hero(); | |||||
| @include crispy__icon(); | |||||
| @include crispy__modal(); | |||||
| @include crispy__panel(); | |||||
| @include crispy__table(); | |||||
| @include crispy__field(); | |||||
| @include crispy__field__text(); | |||||
| @include crispy__field__checkbox(); | |||||
| @include crispy__field__radio(); | |||||
| @include crispy__field__select(); | |||||
| @include crispy__field__panel(); | |||||
| @include crispy__field__label(); | |||||
| } | |||||
| @ -1,8 +1,26 @@ | |||||
| @import | @import | ||||
| 'functions/functions', | |||||
| 'mixins/mixins', | |||||
| 'functions', | |||||
| 'mixins', | |||||
| 'config', | 'config', | ||||
| 'normalize', | |||||
| 'components/components', | |||||
| 'helpers/helpers'; | |||||
| 'core', | |||||
| 'components', | |||||
| 'helpers'; | |||||
| // components | |||||
| @include crispy__core(); | |||||
| @include crispy__button(); | |||||
| @include crispy__field(); | |||||
| @include crispy__group(); | |||||
| @include crispy__heading(); | |||||
| @include crispy__hero(); | |||||
| @include crispy__modal(); | |||||
| @include crispy__panel(); | |||||
| @include crispy__table(); | |||||
| // helpers | |||||
| @include crispy__float(); | |||||
| @include crispy__media(); | |||||
| @include crispy__spacing(); | |||||
| @include crispy__text(); | |||||
| @include crispy__visibility(); | |||||
| @include crispy__width(); | |||||
| @ -0,0 +1,2 @@ | |||||
| @import | |||||
| 'crispy'; | |||||
| @ -1,3 +0,0 @@ | |||||
| @import | |||||
| 'units', | |||||
| 'zIndex'; | |||||
| @ -1,61 +0,0 @@ | |||||
| /** | |||||
| * helper: margin | |||||
| * | |||||
| * | |||||
| * | |||||
| * @author Björn Hase | |||||
| * | |||||
| */ | |||||
| $crispy__margin-top: toEm($crispy__margin) !default; | |||||
| $crispy__margin-bottom: toEm($crispy__margin) !default; | |||||
| @mixin crispy__margin() { | |||||
| .margin-top-0x { | |||||
| margin-top: 0; | |||||
| } | |||||
| .margin-top-1x { | |||||
| margin-top: $crispy__margin-top; | |||||
| } | |||||
| .margin-top-2x { | |||||
| margin-top: $crispy__margin-top * 2; | |||||
| } | |||||
| .margin-top-3x { | |||||
| margin-top: $crispy__margin-top * 3; | |||||
| } | |||||
| .margin-top-4x { | |||||
| margin-top: $crispy__margin-top * 4; | |||||
| } | |||||
| .margin-top-5x { | |||||
| margin-top: $crispy__margin-top * 5; | |||||
| } | |||||
| .margin-bottom-0x { | |||||
| margin-bottom: 0; | |||||
| } | |||||
| .margin-bottom-1x { | |||||
| margin-bottom: $crispy__margin-bottom; | |||||
| } | |||||
| .margin-bottom-2x { | |||||
| margin-bottom: $crispy__margin-bottom * 2; | |||||
| } | |||||
| .margin-bottom-3x { | |||||
| margin-bottom: $crispy__margin-bottom * 3; | |||||
| } | |||||
| .margin-bottom-4x { | |||||
| margin-bottom: $crispy__margin-bottom * 4; | |||||
| } | |||||
| .margin-bottom-5x { | |||||
| margin-bottom: $crispy__margin-bottom * 5; | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,43 @@ | |||||
| /** | |||||
| * helper: spacing | |||||
| * | |||||
| * | |||||
| * @author Björn Hase | |||||
| * | |||||
| */ | |||||
| @mixin crispy__spacing() { | |||||
| @for $i from 0 through $crispy__spacing__steps { | |||||
| .margin-top-#{($i + 1)}x { | |||||
| margin-top: ($crispy__spacing * $i); | |||||
| } | |||||
| .margin-left-#{($i + 1)}x { | |||||
| margin-left: ($crispy__spacing * $i); | |||||
| } | |||||
| .margin-bottom-#{($i + 1)}x { | |||||
| margin-bottom: ($crispy__spacing * $i); | |||||
| } | |||||
| .margin-right-#{($i + 1)}x { | |||||
| margin-right: ($crispy__spacing * ($i)); | |||||
| } | |||||
| .padding-top-#{($i + 1)}x { | |||||
| padding-top: ($crispy__spacing * $i); | |||||
| } | |||||
| .padding-left-#{($i + 1)}x { | |||||
| padding-left: ($crispy__spacing * $i); | |||||
| } | |||||
| .padding-bottom-#{($i + 1)}x { | |||||
| padding-bottom: ($crispy__spacing * $i); | |||||
| } | |||||
| .padding-right-#{($i + 1)}x { | |||||
| padding-right: ($crispy__spacing * $i); | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -1,20 +0,0 @@ | |||||
| @import | |||||
| 'float', | |||||
| 'margin', | |||||
| 'media', | |||||
| 'text', | |||||
| 'width'; | |||||
| /** | |||||
| * shortcut to include all helpers | |||||
| * | |||||
| * | |||||
| */ | |||||
| @mixin crispy__helpers() | |||||
| { | |||||
| @include crispy__float(); | |||||
| @include crispy__margin(); | |||||
| @include crispy__media(); | |||||
| @include crispy__text(); | |||||
| @include crispy__width(); | |||||
| } | |||||