diff --git a/dist/fonts/stylesheet.css b/dist/fonts/stylesheet.css
index 5ccfb3c..623c13c 100644
--- a/dist/fonts/stylesheet.css
+++ b/dist/fonts/stylesheet.css
@@ -1 +1,24 @@
-@font-face{font-family:'IBM Plex Mono';src:url('IBMPlexMono.eot');src:url('IBMPlexMono.eot?#iefix') format('embedded-opentype'),url('IBMPlexMono.woff2') format('woff2'),url('IBMPlexMono.woff') format('woff'),url('IBMPlexMono.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'IBM Plex Mono';src:url('IBMPlexMono-Bold.eot');src:url('IBMPlexMono-Bold.eot?#iefix') format('embedded-opentype'),url('IBMPlexMono-Bold.woff2') format('woff2'),url('IBMPlexMono-Bold.woff') format('woff'),url('IBMPlexMono-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
+@font-face {
+ font-family: 'IBM Plex Mono';
+ src: url('IBMPlexMono.eot');
+ src: url('IBMPlexMono.eot?#iefix') format('embedded-opentype'),
+ url('IBMPlexMono.woff2') format('woff2'),
+ url('IBMPlexMono.woff') format('woff'),
+ url('IBMPlexMono.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ font-display: swap;
+}
+
+@font-face {
+ font-family: 'IBM Plex Mono';
+ src: url('IBMPlexMono-Bold.eot');
+ src: url('IBMPlexMono-Bold.eot?#iefix') format('embedded-opentype'),
+ url('IBMPlexMono-Bold.woff2') format('woff2'),
+ url('IBMPlexMono-Bold.woff') format('woff'),
+ url('IBMPlexMono-Bold.ttf') format('truetype');
+ font-weight: bold;
+ font-style: normal;
+ font-display: swap;
+}
+
diff --git a/dist/index.html b/dist/index.html
index a7d18e2..1bea554 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -153,6 +153,20 @@
+
+
+
+
+
diff --git a/dist/plain-ui.css b/dist/plain-ui.css
index 18c1a95..113de8c 100644
--- a/dist/plain-ui.css
+++ b/dist/plain-ui.css
@@ -1 +1,533 @@
-@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono.eot?85f924ecb898e5720062617e4a86f1d1);src:url(/fonts/IBMPlexMono.eot?85f924ecb898e5720062617e4a86f1d1) format("embedded-opentype"),url(/fonts/IBMPlexMono.woff2?db620201a437f00ce78da2a10cf50f3f) format("woff2"),url(/fonts/IBMPlexMono.woff?3d04ef6de65d3c77bd60c158326be298) format("woff"),url(/fonts/IBMPlexMono.ttf?ce51a85eb7160067d01bcf6e56f837d1) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Bold.eot?eb105b142ce736849ef4828cb0c8eb34);src:url(/fonts/IBMPlexMono-Bold.eot?eb105b142ce736849ef4828cb0c8eb34) format("embedded-opentype"),url(/fonts/IBMPlexMono-Bold.woff2?8b633c62813e0275ebd7a1c793c4e99c) format("woff2"),url(/fonts/IBMPlexMono-Bold.woff?b72090c625b4144f3763d5b2bf8f5942) format("woff"),url(/fonts/IBMPlexMono-Bold.ttf?558e55bd46468bb8d7074d7064d02c30) format("truetype");font-weight:700;font-style:normal;font-display:swap}html{font-size:100%;line-height:1.15;-webkit-text-size-adjust:100%}body,html{margin:0;height:100%}html,legend{box-sizing:border-box}main{display:block}*,:after,:before{box-sizing:inherit}table{border-collapse:collapse;border-spacing:0}figcaption{margin:10px 0}button,input,optgroup,select,textarea{margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}legend{box-sizing:border-box;display:table;max-width:100%;padding:0;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}hr{box-sizing:content-box;height:0;overflow:visible;border:0;margin:.3em 0}progress{vertical-align:baseline}details{display:block}summary{display:list-item}a{color:#fff}a:focus{outline:none}body{font-family:IBM Plex Mono,sans-serif;background-color:#f9f9f9;direction:ltr;font-size:1rem;line-height:1.4}.badge{display:inline-block;background-color:#3e3e3e;color:#fff;font-size:.85rem;padding:.4em .8em;border:1px solid #242424;border-radius:2px}.badge--round{display:inline-flex;justify-content:center;border-radius:50%;width:2.5em}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:inline-block;text-decoration:none;font-family:IBM Plex Mono,sans-serif;border:1px solid #000;background-color:#3e3e3e;color:#fff;padding:.7em 1.5em;font-size:1.1rem;border-radius:2px;transition:background-color .5s}.button:hover{cursor:pointer;text-decoration:none;background-color:#575757}.button--secondary{border:1px solid #4a4a4a;background-color:#7d7d7d}.field-group{margin-bottom:1.2em}.field-group--valid input.field-text,.field-group--valid textarea.field-text{border-color:#64ac64}.field-group--valid .icon{fill:#64ac64}.field-group--error input.field-text,.field-group--error textarea.field-text{border-color:#d95959}.field-group--error .icon{fill:#d95959}.field-label{font-size:1rem;font-family:IBM Plex Mono,sans-serif}.field-label .icon{vertical-align:sub;font-size:1.1rem}input.field-text,select.field-choice,textarea.field-text{font-family:IBM Plex Mono,sans-serif;font-size:.95rem;width:100%;border:1px solid #8a8a8a;background-color:#fff;border-radius:2px;margin:.7em 0 0}input.field-text:active,input.field-text:focus,select.field-choice:active,select.field-choice:focus,textarea.field-text:active,textarea.field-text:focus{outline:0;border-color:#242424}input.field-text,textarea.field-text{padding:.8em 1.1em}select.field-choice{padding:.8em}.field-error,.field-help{display:inline-block;width:100%;padding:.6em .5em;font-size:.8rem}.field-error{color:#d95959}.icon{width:1em;height:1em;max-height:100%;max-width:100%;vertical-align:middle;overflow:hidden;fill:#242424}.icon--success{fill:#64ac64}.icon--danger{fill:#d95959}.panel{border:1px solid #242424;border-radius:2px;background:#fff}.panel__header{display:flex;background-color:#242424;color:#fff;padding:.8em 1.2em;line-height:1.6em}.panel__header button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0}.panel__header button:hover{cursor:pointer}.panel__header .icon{vertical-align:bottom;width:1.5em;height:1.5em;margin-right:.5em;fill:#fff}.panel__buttons{display:flex;justify-content:end;width:100%}.panel__buttons button:last-child .icon{margin-right:0}.panel__body{padding:.6em 1.2em}
+@charset "UTF-8";
+@font-face {
+ font-family: "IBM Plex Mono";
+ src: url(/fonts/IBMPlexMono.eot?85f924ecb898e5720062617e4a86f1d1);
+ src: url(/fonts/IBMPlexMono.eot?85f924ecb898e5720062617e4a86f1d1) format("embedded-opentype"), url(/fonts/IBMPlexMono.woff2?db620201a437f00ce78da2a10cf50f3f) format("woff2"), url(/fonts/IBMPlexMono.woff?3d04ef6de65d3c77bd60c158326be298) format("woff"), url(/fonts/IBMPlexMono.ttf?ce51a85eb7160067d01bcf6e56f837d1) format("truetype");
+ font-weight: normal;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: "IBM Plex Mono";
+ src: url(/fonts/IBMPlexMono-Bold.eot?eb105b142ce736849ef4828cb0c8eb34);
+ src: url(/fonts/IBMPlexMono-Bold.eot?eb105b142ce736849ef4828cb0c8eb34) format("embedded-opentype"), url(/fonts/IBMPlexMono-Bold.woff2?8b633c62813e0275ebd7a1c793c4e99c) format("woff2"), url(/fonts/IBMPlexMono-Bold.woff?b72090c625b4144f3763d5b2bf8f5942) format("woff"), url(/fonts/IBMPlexMono-Bold.ttf?558e55bd46468bb8d7074d7064d02c30) format("truetype");
+ font-weight: bold;
+ font-style: normal;
+ font-display: swap;
+}
+/**
+ * mixins
+ *
+ *
+ * @author Björn Hase, Tentakelfabrik
+ * @license http://opensource.org/licenses/MIT The MIT License
+ * @link https://github.com/tentakelfabrik/plain-ui-css
+ *
+ */
+/**
+ * Clear Floats
+ *
+ *
+ *
+ */
+/**
+ * clear styles from list
+ *
+ *
+ */
+/**
+ * media-queries as mixins
+ * based on breakpoints from variables
+ *
+ *
+ *
+ */
+/**
+ * Set property and his value for each Breakpoint
+ *
+ * (
+ * $plain-ui__md: 10px
+ * )
+ *
+ *
+ * @param {css} $property
+ * @param {map} $breakpoints
+ * @param {Boolean} $important [false]
+ *
+ */
+/**
+ * Set property and his value with an factor for each Breakpoint
+ *
+ * (
+ * $plain-ui__md: 10px
+ * )
+ *
+ * @param {css} $property
+ * @param {number} $factor
+ * @param {map} $breakpoints
+ * @param {Boolean} $important [false]
+ *
+ */
+/**
+ * Set font-size from Breakpoints, use for calculating difference from font-size and default font-size
+ *
+ * (
+ * $plain-ui__md: 1rem
+ * )
+ *
+ * @param {map} $breakpoints
+ * @param {unit} $font-size
+ * @param {unit} $default
+ * @param {Boolean} $important [false]
+ *
+ */
+/**
+ * variables
+ *
+ *
+ *
+ * @author Björn Hase, Tentakelfabrik
+ * @license http://opensource.org/licenses/MIT The MIT License
+ * @link https://github.com/tentakelfabrik/plain-ui-css
+ *
+ */
+/**
+ * breakpoints
+ *
+ */
+/**
+ * fonts
+ *
+ */
+/**
+ * colors
+ *
+ *
+ */
+/**
+ * padding & margin
+ *
+ */
+/**
+ * heading
+ *
+ */
+/**
+ * z-index
+ *
+ */
+/**
+ * core
+ *
+ *
+ * @author Björn Hase, Tentakelfabrik
+ * @license http://opensource.org/licenses/MIT The MIT License
+ * @link https://github.com/tentakelfabrik/crispy-css
+ *
+ */
+/**
+ * normalize
+ *
+ * Thanks to https://necolas.github.io/normalize.css/, use a lot from them
+ *
+ * @author Björn Hase, Tentakelfabrik
+ * @license http://opensource.org/licenses/MIT The MIT License
+ * @link https://github.com/tentakelfabrik/crispy-css
+ *
+ */
+/**
+ * Heading
+ *
+ *
+ * @author Björn Hase, Tentakelfabrik
+ * @license http://opensource.org/licenses/MIT The MIT License
+ * @link https://github.com/tentakelfabrik/crispy-css
+ *
+ */
+/**
+ * typograhy
+ *
+ * @author Björn Hase, Tentakelfabrik
+ * @license http://opensource.org/licenses/MIT The MIT License
+ * @link https://github.com/tentakelfabrik/crispy-css
+ *
+ */
+html {
+ font-size: 100%;
+ line-height: 1.15;
+ -webkit-text-size-adjust: 100%;
+}
+
+body,
+html {
+ margin: 0;
+ height: 100%;
+}
+
+html,
+legend {
+ box-sizing: border-box;
+}
+
+main {
+ display: block;
+}
+
+*,
+*::after,
+*::before {
+ box-sizing: inherit;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+figcaption {
+ margin: 10px 0;
+}
+
+/**
+ * form elements
+ *
+ *
+ */
+button,
+input,
+optgroup,
+select,
+textarea {
+ margin: 0;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+button,
+[type=button],
+[type=reset],
+[type=submit] {
+ -webkit-appearance: button;
+}
+
+button::-moz-focus-inner,
+[type=button]::-moz-focus-inner,
+[type=reset]::-moz-focus-inner,
+[type=submit]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
+}
+
+button:-moz-focusring,
+[type=button]:-moz-focusring,
+[type=reset]:-moz-focusring,
+[type=submit]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+legend {
+ box-sizing: border-box;
+ display: table;
+ max-width: 100%;
+ padding: 0;
+ white-space: normal;
+}
+
+[type=number]::-webkit-inner-spin-button,
+[type=number]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+[type=search] {
+ -webkit-appearance: textfield;
+ outline-offset: -2px;
+}
+
+[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button;
+ font: inherit;
+}
+
+/**
+ * hr
+ *
+ */
+hr {
+ box-sizing: content-box;
+ height: 0;
+ overflow: visible;
+ border: 0;
+ margin: 0.3em 0;
+}
+
+progress {
+ vertical-align: baseline;
+}
+
+details {
+ display: block;
+}
+
+summary {
+ display: list-item;
+}
+
+/**
+ *
+ *
+ *
+ *
+ */
+/**
+ *
+ *
+ *
+ */
+/**
+ *
+ *
+ *
+ *
+ */
+/**
+ *
+ *
+ *
+ *
+ */
+/**
+ *
+ *
+ *
+ */
+a {
+ color: #fff;
+}
+a:focus {
+ outline: none;
+}
+
+/**
+ * body
+ *
+ *
+ *
+ * line-height and breakpoints
+ * font-size and breakpoints
+ *
+ */
+body {
+ font-family: "IBM Plex Mono", sans-serif;
+ background-color: #f9f9f9;
+ direction: ltr;
+ font-size: 1rem;
+ line-height: 1.4;
+}
+
+.badge {
+ display: inline-block;
+ background-color: #3e3e3e;
+ color: white;
+ font-size: 0.85rem;
+ padding: 0.4em 0.8em;
+ border: 1px solid #242424;
+ border-radius: 2px;
+}
+.badge--round {
+ display: inline-flex;
+ justify-content: center;
+ border-radius: 50%;
+ width: 2.5em;
+}
+
+.button {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ position: relative;
+ display: inline-block;
+ text-decoration: none;
+ font-family: "IBM Plex Mono", sans-serif;
+ border: 1px solid black;
+ background-color: #3e3e3e;
+ color: white;
+ padding: 0.7em 1.5em;
+ margin-bottom: 0.5em;
+ font-size: 1.1rem;
+ border-radius: 2px;
+ transition: background-color 0.5s;
+ width: 100%;
+}
+@media only screen and (min-width: 768px) {
+ .button {
+ width: auto;
+ }
+}
+.button:hover {
+ cursor: pointer;
+ text-decoration: none;
+ background-color: #575757;
+}
+.button--secondary {
+ border: 1px solid #4a4a4a;
+ background-color: #7d7d7d;
+}
+
+.field-group {
+ margin-bottom: 1.2em;
+}
+.field-group--valid input.field-text, .field-group--valid textarea.field-text {
+ border-color: #64ac64;
+}
+.field-group--valid .icon {
+ fill: #64ac64;
+}
+.field-group--error input.field-text, .field-group--error textarea.field-text {
+ border-color: #d95959;
+}
+.field-group--error .icon {
+ fill: #d95959;
+}
+
+.field-label {
+ font-size: 1rem;
+ font-family: "IBM Plex Mono", sans-serif;
+}
+.field-label .icon {
+ vertical-align: sub;
+ font-size: 1.1rem;
+}
+.field-label:hover {
+ cursor: pointer;
+}
+
+input.field-text, textarea.field-text, select.field-choice {
+ font-family: "IBM Plex Mono", sans-serif;
+ font-size: 0.95rem;
+ width: 100%;
+ border: 1px solid #8a8a8a;
+ background-color: white;
+ border-radius: 2px;
+ margin: 0.7em 0 0;
+}
+input.field-text:focus, input.field-text:active, textarea.field-text:focus, textarea.field-text:active, select.field-choice:focus, select.field-choice:active {
+ outline: 0;
+ border-color: #242424;
+}
+
+input.field-text, textarea.field-text {
+ padding: 0.8em 1.1em;
+}
+
+select.field-choice {
+ padding: 0.8em;
+}
+
+/**
+ * radio & checkbox
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+input[type=checkbox].field-choice {
+ position: relative;
+ display: none;
+}
+input[type=checkbox].field-choice ~ .field-choice__checked {
+ display: none;
+}
+input[type=checkbox].field-choice:checked ~ .field-choice__checked {
+ display: inline-block;
+}
+input[type=checkbox].field-choice:checked ~ .field-choice__unchecked {
+ display: none;
+}
+
+.field-help, .field-error {
+ display: inline-block;
+ width: 100%;
+ padding: 0.6em 0.5em;
+ font-size: 0.8rem;
+}
+
+.field-error {
+ color: #d95959;
+}
+
+.icon {
+ width: 1em;
+ height: 1em;
+ max-height: 100%;
+ max-width: 100%;
+ vertical-align: middle;
+ overflow: hidden;
+ fill: #242424;
+}
+
+.icon--success {
+ fill: #64ac64;
+}
+
+.icon--danger {
+ fill: #d95959;
+}
+
+.panel {
+ border: 1px solid #242424;
+ border-radius: 2px;
+ background: #fff;
+}
+.panel__header {
+ display: flex;
+ background-color: #242424;
+ color: white;
+ padding: 0.8em 1.2em;
+ line-height: 1.6em;
+}
+.panel__header button {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ background: none;
+ border: none;
+ padding: 0;
+}
+.panel__header button:hover {
+ cursor: pointer;
+}
+.panel__header .icon {
+ vertical-align: bottom;
+ width: 1.5em;
+ height: 1.5em;
+ margin-right: 0.5em;
+ fill: white;
+}
+.panel__buttons {
+ display: flex;
+ justify-content: end;
+ width: 100%;
+}
+.panel__buttons button:last-child .icon {
+ margin-right: 0;
+}
+.panel__body {
+ padding: 0.6em 1.2em;
+}
diff --git a/spritemap.js b/spritemap.js
index 11edce9..b8173b5 100644
--- a/spritemap.js
+++ b/spritemap.js
@@ -1 +1,13 @@
-(self.webpackChunkplain_ui=self.webpackChunkplain_ui||[]).push([[355],{256:()=>{}}]);
\ No newline at end of file
+(self["webpackChunkplain_ui"] = self["webpackChunkplain_ui"] || []).push([["spritemap"],{
+
+/***/ "?4e0c":
+/*!******************************!*\
+ !*** spritemap-dummy-module ***!
+ \******************************/
+/***/ (() => {
+
+
+
+/***/ })
+
+}]);
\ No newline at end of file
diff --git a/src/scss/_mixins.scss b/src/scss/_mixins.scss
new file mode 100644
index 0000000..ef5deaa
--- /dev/null
+++ b/src/scss/_mixins.scss
@@ -0,0 +1,214 @@
+/**
+ * mixins
+ *
+ *
+ * @author Björn Hase, Tentakelfabrik
+ * @license http://opensource.org/licenses/MIT The MIT License
+ * @link https://github.com/tentakelfabrik/plain-ui-css
+ *
+ */
+
+
+/**
+ * Clear Floats
+ *
+ *
+ *
+ */
+
+@mixin plain-ui__clearfix() {
+ &::before,
+ &::after {
+ display: table;
+ content: ' ';
+ }
+
+ &::after {
+ clear: both;
+ }
+}
+
+
+/**
+ * clear styles from list
+ *
+ *
+ */
+
+@mixin plain-ui__clearlist() {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+
+ li {
+ margin: 0;
+ padding: 0;
+ }
+}
+
+
+/**
+ * media-queries as mixins
+ * based on breakpoints from variables
+ *
+ *
+ *
+ */
+
+@mixin plain-ui__media-xs() {
+ @media only screen and (min-width:$plain-ui__xs) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-sm() {
+ @media only screen and (min-width: $plain-ui__sm) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-md() {
+ @media only screen and (min-width: $plain-ui__md) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-lg() {
+ @media only screen and (min-width: $plain-ui__lg) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-xlg() {
+ @media only screen and (min-width: $plain-ui__xlg) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-xxs-only() {
+ @media only screen and (max-width: $plain-ui__xs) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-xxs-only() {
+ @media only screen and (max-width: $plain-ui__xs - 1) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-xs-only() {
+ @media only screen and (min-width: $plain-ui__xs) and (max-width: $plain-ui__sm - 1) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-sm-only() {
+ @media only screen and (min-width: $plain-ui__sm) and (max-width: $plain-ui__md - 1) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-md-only() {
+ @media only screen and (min-width: $plain-ui__md) and (max-width: $plain-ui__lg - 1) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-lg-only() {
+ @media only screen and (min-width: $plain-ui__lg) and (max-width: $plain-ui__xlg - 1) {
+ @content;
+ }
+}
+
+@mixin plain-ui__media-xlg-only() {
+ @media only screen and (min-width: $plain-ui__xlg) {
+ @content;
+ }
+}
+
+
+/**
+ * Set property and his value for each Breakpoint
+ *
+ * (
+ * $plain-ui__md: 10px
+ * )
+ *
+ *
+ * @param {css} $property
+ * @param {map} $breakpoints
+ * @param {Boolean} $important [false]
+ *
+ */
+
+@mixin plain-ui__media-breakpoints($property, $breakpoints, $important: false) {
+ @each $breakpoint, $value in $breakpoints {
+ @media only screen and (min-width: $breakpoint) {
+ @if $important == false {
+ #{$property}: $value;
+ } @else {
+ #{$property}: $value !important;
+ }
+ }
+ }
+}
+
+
+/**
+ * Set property and his value with an factor for each Breakpoint
+ *
+ * (
+ * $plain-ui__md: 10px
+ * )
+ *
+ * @param {css} $property
+ * @param {number} $factor
+ * @param {map} $breakpoints
+ * @param {Boolean} $important [false]
+ *
+ */
+
+@mixin plain-ui__media-breakpoints-calculate($property, $factor, $breakpoints, $important: false) {
+ @each $breakpoint, $value in $breakpoints {
+ @media only screen and (min-width: $breakpoint) {
+ @if $important == false {
+ #{$property}: ($value * $factor);
+ } @else {
+ #{$property}: ($value * $factor) !important;
+ }
+ }
+ }
+}
+
+/**
+ * Set font-size from Breakpoints, use for calculating difference from font-size and default font-size
+ *
+ * (
+ * $plain-ui__md: 1rem
+ * )
+ *
+ * @param {map} $breakpoints
+ * @param {unit} $font-size
+ * @param {unit} $default
+ * @param {Boolean} $important [false]
+ *
+ */
+@mixin plain-ui__media-breakpoints-font-size($breakpoints, $font-size, $default, $important: false) {
+ @each $breakpoint, $value in $breakpoints {
+
+ // getting diff
+ $factor: (stripUnit($font-size) - stripUnit($default)) + 1;
+
+ // ignore if factor is zero
+ @if $factor > 0 {
+ @media only screen and (min-width: $breakpoint) {
+ @if $important == false {
+ font-size: ($value * $factor);
+ } @else {
+ font-size: ($value * $factor) !important;
+ }
+ }
+ }
+ }
+}
diff --git a/src/scss/components/_button.scss b/src/scss/components/_button.scss
index 5504fe3..90b10f7 100644
--- a/src/scss/components/_button.scss
+++ b/src/scss/components/_button.scss
@@ -19,11 +19,19 @@
color: white;
padding: 0.7em 1.5em;
+ margin-bottom: 0.5em;
+
font-size: 1.1rem;
border-radius: 2px;
transition: background-color 0.5s;
+ width: 100%;
+
+ @include plain-ui__media-sm() {
+ width: auto;
+ }
+
&:hover {
cursor: pointer;
text-decoration: none;
diff --git a/src/scss/components/_field.scss b/src/scss/components/_field.scss
index ebfeddd..3b85ae6 100644
--- a/src/scss/components/_field.scss
+++ b/src/scss/components/_field.scss
@@ -31,7 +31,7 @@
}
}
}
-
+
.field-label {
font-size: 1rem;
font-family: $plain-ui__font-family;
@@ -40,6 +40,10 @@
vertical-align: sub;
font-size: 1.1rem;
}
+
+ &:hover {
+ cursor: pointer;
+ }
}
input.field-text, textarea.field-text, select.field-choice {
@@ -68,6 +72,41 @@
padding: 0.8em;
}
+ /**
+ * radio & checkbox
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+ input[type=checkbox].field-choice {
+ position: relative;
+ display: none;
+
+ ~ .field-choice__checked {
+ display: none;
+ }
+
+ &:checked ~ .field-choice__checked {
+ display: inline-block;
+ }
+
+ &:checked ~ .field-choice__unchecked {
+ display: none;
+ }
+ }
+
//
.field-help, .field-error {
display: inline-block;
diff --git a/src/scss/plain-ui.scss b/src/scss/plain-ui.scss
index 8f0551d..85e9f84 100644
--- a/src/scss/plain-ui.scss
+++ b/src/scss/plain-ui.scss
@@ -2,6 +2,7 @@
'../fonts/stylesheet',
+ 'mixins',
'variables',
'core',