// Formulate inputs // ----------------------------------------------------------------------------- .formulate-input { margin-bottom: 2em; .formulate-input-label { display: block; line-height: 1.5; font-size: .9em; font-weight: 600; margin-bottom: .1em; } .formulate-input-element { max-width: 20em; margin-bottom: .1em; } .formulate-input-help { color: $formulate-gray-ddd; font-size: .7em; font-weight: 400; line-height: 1.5; margin-bottom: .25em; } .formulate-input-errors { list-style-type: none; padding: 0; margin: 0; } .formulate-input-error { color: $formulate-error; font-size: .8em; font-weight: 300; line-height: 1.5; margin-bottom: .25em; } .formulate-input-group-item { margin-bottom: .5em; } &:last-child { margin-bottom: 0; } // Text inputs // ----------------------------------------------------------------------------- &[data-classification='text'] { input { @include baseinput; } input[type="color"] { height: 1.1em; box-sizing: content-box; @mixin color-swatch { display: block; height: 1em; border-radius: .2em; border: 0; flex: auto; } &::-webkit-color-swatch-wrapper { padding: 0 0 0 1.5em; display: flex; align-items: center; background-image: url('data:image/svg+xml;utf8,'); background-repeat: no-repeat; background-size: .9em .9em; background-position: left .1em; } &::-webkit-color-swatch { @include color-swatch; } &::-moz-color-swatch { @include color-swatch; } } } // Slider inputs // ----------------------------------------------------------------------------- &[data-classification='slider'] { input { appearance: none; width: 100%; font-size: 1em; padding: .5em 0; &:focus { outline: 0; } @mixin thumb { cursor: pointer; appearance: none; width: 1em; height: 1em; border-radius: 1em; background-color: $formulate-green; margin-top: calc(-.5em + 2px); } @mixin track { appearance: none; width: 100%; height: 4px; background-color: $formulate-gray; border-radius: 3px; margin: 0; padding: 0; } &::-webkit-slider-thumb { @include thumb; } &::-moz-range-thumb { @include thumb; } &::-ms-thumb { @include thumb; } &::-webkit-slider-runnable-track { @include track; } } } // Textarea inputs // ----------------------------------------------------------------------------- &[data-classification='textarea'] { textarea { @include baseinput; } } // Select lists // ----------------------------------------------------------------------------- &[data-classification='select'] { .formulate-input-element { position: relative; &::before { @include down-arrow; top: 50%; margin-top: -.1em; right: 1em; position: absolute; } } select { @include baseinput; padding-right: 2em; &[data-placeholder-selected] { color: $formulate-gray-dd; } } } // Box inputs // ----------------------------------------------------------------------------- &[data-classification='box'] { .formulate-input-wrapper { display: flex; align-items: center; } .formulate-input-element { overflow: hidden; display: flex; align-items: center; input { position: absolute; left: -999px; } &-decorator { display: block; width: 1em; height: 1em; border-radius: .25em; border: 1px solid $formulate-gray-d; position: relative; &::before { content: ''; display: block; background-size: contain; background-position: right; width: calc(100% - .125em); height: calc(100% - .125em); box-sizing: border-box; position: absolute; top: .0625em; left: .0625em; } } &[data-type="radio"] { .formulate-input-element-decorator { border-radius: 1em; &::before { border-radius: 1em; width: calc(100% - .5em); height: calc(100% - .5em); top: .25em; left: .25em; } } } input[type="checkbox"]:checked { & ~ .formulate-input-element-decorator { border-color: $formulate-green; &::before { background-color: $formulate-green; mask-image: url('data:image/svg+xml;utf8,'); } } } input[type="radio"]:checked { & ~ .formulate-input-element-decorator { border-color: $formulate-green; &::before { background-color: $formulate-green; } } } input:focus { & ~ .formulate-input-element-decorator { border-color: $formulate-green; } } } .formulate-input-label--after { margin-left: .5em; } .formulate-input-label--before { margin-right: .5em; } } &[data-classification="group"] { & > .formulate-input-wrapper { & > .formulate-input-label { margin-bottom: .5em; } } } // File inputs // ----------------------------------------------------------------------------- &[data-classification="file"] { .formulate-input-upload-area { width: 100%; position: relative; padding: 2em; &[data-has-files] { padding: 0; } input { cursor: pointer; appearance: none; opacity: 0; position: absolute; left: 0; right: 0; bottom: 0; top: 0; width: 100%; height: 100%; z-index: 5; } &-mask { border-radius: .4em; position: absolute; pointer-events: none; position: absolute; display: flex; justify-content: center; align-items: center; left: 0; right: 0; top: 0; bottom: 0; border: 2px dashed $formulate-gray-dd; z-index: 2; &::before { content: ''; background-color: $formulate-gray-dd; mask-image: url('data:image/svg+xml;utf8,'); width: 2em; height: 2em; position: absolute; pointer-events: none; } } input:focus, input:hover, input[data-is-drag-hover] { & ~ .formulate-input-upload-area-mask { border-color: $formulate-green; &::before { background-color: $formulate-green; } } } } .formulate-files { list-style-type: none; margin: 0; padding: 0; li { @include baseinput; display: block; width: 100%; display: flex; justify-content: space-between; @mixin progress { appearance: none; height: .5em; border-radius: .5em; overflow: hidden; } ::-webkit-progress-bar { @include progress; } } } } }