Files
blender-cloud/static/assets/bootstrap/sass/_custom-forms.sass

417 lines
11 KiB
Sass

// Embedded icons from Open Iconic.
// Released under MIT and copyright 2014 Waybury.
// https://useiconic.com/open
// Checkboxes and radios
//
// Base class takes care of all the key behavioral aspects.
.custom-control
position: relative
display: block
min-height: 1rem * $line-height-base
padding-left: $custom-control-gutter
.custom-control-inline
display: inline-flex
margin-right: $custom-control-spacer-x
.custom-control-input
position: absolute
z-index: -1
// Put the input behind the label so it doesn't overlay text
opacity: 0
&:checked ~ .custom-control-label::before
color: $custom-control-indicator-checked-color
+gradient-bg($custom-control-indicator-checked-bg)
+box-shadow($custom-control-indicator-checked-box-shadow)
&:focus ~ .custom-control-label::before
// the mixin is not used here to make sure there is feedback
box-shadow: $custom-control-indicator-focus-box-shadow
&:active ~ .custom-control-label::before
color: $custom-control-indicator-active-color
background-color: $custom-control-indicator-active-bg
+box-shadow($custom-control-indicator-active-box-shadow)
&:disabled
~ .custom-control-label
color: $custom-control-label-disabled-color
&::before
background-color: $custom-control-indicator-disabled-bg
// Custom control indicators
//
// Build the custom controls out of pseudo-elements.
.custom-control-label
position: relative
margin-bottom: 0
// Background-color and (when enabled) gradient
&::before
position: absolute
top: ($line-height-base - $custom-control-indicator-size) / 2
left: -$custom-control-gutter
display: block
width: $custom-control-indicator-size
height: $custom-control-indicator-size
pointer-events: none
content: ""
user-select: none
background-color: $custom-control-indicator-bg
+box-shadow($custom-control-indicator-box-shadow)
// Foreground (icon)
&::after
position: absolute
top: ($line-height-base - $custom-control-indicator-size) / 2
left: -$custom-control-gutter
display: block
width: $custom-control-indicator-size
height: $custom-control-indicator-size
content: ""
background-repeat: no-repeat
background-position: center center
background-size: $custom-control-indicator-bg-size
// Checkboxes
//
// Tweak just a few things for checkboxes.
.custom-checkbox
.custom-control-label::before
+border-radius($custom-checkbox-indicator-border-radius)
.custom-control-input:checked ~ .custom-control-label
&::before
+gradient-bg($custom-control-indicator-checked-bg)
&::after
background-image: $custom-checkbox-indicator-icon-checked
.custom-control-input:indeterminate ~ .custom-control-label
&::before
+gradient-bg($custom-checkbox-indicator-indeterminate-bg)
+box-shadow($custom-checkbox-indicator-indeterminate-box-shadow)
&::after
background-image: $custom-checkbox-indicator-icon-indeterminate
.custom-control-input:disabled
&:checked ~ .custom-control-label::before
background-color: $custom-control-indicator-checked-disabled-bg
&:indeterminate ~ .custom-control-label::before
background-color: $custom-control-indicator-checked-disabled-bg
// Radios
//
// Tweak just a few things for radios.
.custom-radio
.custom-control-label::before
border-radius: $custom-radio-indicator-border-radius
.custom-control-input:checked ~ .custom-control-label
&::before
+gradient-bg($custom-control-indicator-checked-bg)
&::after
background-image: $custom-radio-indicator-icon-checked
.custom-control-input:disabled
&:checked ~ .custom-control-label::before
background-color: $custom-control-indicator-checked-disabled-bg
// Select
//
// Replaces the browser default select with a custom one, mostly pulled from
// https://primer.github.io/.
//
.custom-select
display: inline-block
width: 100%
height: $custom-select-height
padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x
line-height: $custom-select-line-height
color: $custom-select-color
vertical-align: middle
background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center
background-size: $custom-select-bg-size
border: $custom-select-border-width solid $custom-select-border-color
@if $enable-rounded
border-radius: $custom-select-border-radius
@else
border-radius: 0
+box-shadow($custom-select-box-shadow)
appearance: none
&:focus
border-color: $custom-select-focus-border-color
outline: 0
@if $enable-shadows
box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow
@else
box-shadow: $custom-select-focus-box-shadow
&::-ms-value
// For visual consistency with other platforms/browsers,
// suppress the default white text on blue background highlight given to
// the selected option text when the (still closed) <select> receives focus
// in IE and (under certain conditions) Edge.
// See https://github.com/twbs/bootstrap/issues/19398.
color: $input-color
background-color: $input-bg
&[multiple],
&[size]:not([size="1"])
height: auto
padding-right: $custom-select-padding-x
background-image: none
&:disabled
color: $custom-select-disabled-color
background-color: $custom-select-disabled-bg
// Hides the default caret in IE11
&::-ms-expand
opacity: 0
.custom-select-sm
height: $custom-select-height-sm
padding-top: $custom-select-padding-y
padding-bottom: $custom-select-padding-y
font-size: $custom-select-font-size-sm
.custom-select-lg
height: $custom-select-height-lg
padding-top: $custom-select-padding-y
padding-bottom: $custom-select-padding-y
font-size: $custom-select-font-size-lg
// File
//
// Custom file input.
.custom-file
position: relative
display: inline-block
width: 100%
height: $custom-file-height
margin-bottom: 0
.custom-file-input
position: relative
z-index: 2
width: 100%
height: $custom-file-height
margin: 0
opacity: 0
&:focus ~ .custom-file-label
border-color: $custom-file-focus-border-color
box-shadow: $custom-file-focus-box-shadow
&::after
border-color: $custom-file-focus-border-color
&:disabled ~ .custom-file-label
background-color: $custom-file-disabled-bg
@each $lang, $value in $custom-file-text
&:lang(#{$lang}) ~ .custom-file-label::after
content: $value
.custom-file-label
position: absolute
top: 0
right: 0
left: 0
z-index: 1
height: $custom-file-height
padding: $custom-file-padding-y $custom-file-padding-x
line-height: $custom-file-line-height
color: $custom-file-color
background-color: $custom-file-bg
border: $custom-file-border-width solid $custom-file-border-color
+border-radius($custom-file-border-radius)
+box-shadow($custom-file-box-shadow)
&::after
position: absolute
top: 0
right: 0
bottom: 0
z-index: 3
display: block
height: $custom-file-height-inner
padding: $custom-file-padding-y $custom-file-padding-x
line-height: $custom-file-line-height
color: $custom-file-button-color
content: "Browse"
+gradient-bg($custom-file-button-bg)
border-left: $custom-file-border-width solid $custom-file-border-color
+border-radius(0 $custom-file-border-radius $custom-file-border-radius 0)
// Range
//
// Style range inputs the same across browsers. Vendor-specific rules for pseudo
// elements cannot be mixed. As such, there are no shared styles for focus or
// active states on prefixed selectors.
.custom-range
width: 100%
padding-left: 0
// Firefox specific
background-color: transparent
appearance: none
&:focus
outline: none
&::-moz-focus-outer
border: 0
&::-webkit-slider-thumb
width: $custom-range-thumb-width
height: $custom-range-thumb-height
margin-top: -($custom-range-thumb-width * 0.25)
// Webkit specific?
+gradient-bg($custom-range-thumb-bg)
border: $custom-range-thumb-border
+border-radius($custom-range-thumb-border-radius)
+box-shadow($custom-range-thumb-box-shadow)
+transition($custom-forms-transition)
appearance: none
&:focus
outline: none
box-shadow: $custom-range-thumb-focus-box-shadow
// No mixin for focus accessibility
&:active
+gradient-bg($custom-range-thumb-active-bg)
&::-webkit-slider-runnable-track
width: $custom-range-track-width
height: $custom-range-track-height
color: transparent
// Why?
cursor: $custom-range-track-cursor
background-color: $custom-range-track-bg
border-color: transparent
+border-radius($custom-range-track-border-radius)
+box-shadow($custom-range-track-box-shadow)
&::-moz-range-thumb
width: $custom-range-thumb-width
height: $custom-range-thumb-height
+gradient-bg($custom-range-thumb-bg)
border: $custom-range-thumb-border
+border-radius($custom-range-thumb-border-radius)
+box-shadow($custom-range-thumb-box-shadow)
+transition($custom-forms-transition)
appearance: none
&:focus
outline: none
box-shadow: $custom-range-thumb-focus-box-shadow
// No mixin for focus accessibility
&:active
+gradient-bg($custom-range-thumb-active-bg)
&::-moz-range-track
width: $custom-range-track-width
height: $custom-range-track-height
color: transparent
cursor: $custom-range-track-cursor
background-color: $custom-range-track-bg
border-color: transparent
// Firefox specific?
+border-radius($custom-range-track-border-radius)
+box-shadow($custom-range-track-box-shadow)
&::-ms-thumb
width: $custom-range-thumb-width
height: $custom-range-thumb-height
+gradient-bg($custom-range-thumb-bg)
border: $custom-range-thumb-border
+border-radius($custom-range-thumb-border-radius)
+box-shadow($custom-range-thumb-box-shadow)
+transition($custom-forms-transition)
appearance: none
&:focus
outline: none
box-shadow: $custom-range-thumb-focus-box-shadow
// No mixin for focus accessibility
&:active
+gradient-bg($custom-range-thumb-active-bg)
&::-ms-track
width: $custom-range-track-width
height: $custom-range-track-height
color: transparent
cursor: $custom-range-track-cursor
background-color: transparent
border-color: transparent
border-width: $custom-range-thumb-height * 0.5
+box-shadow($custom-range-track-box-shadow)
&::-ms-fill-lower
background-color: $custom-range-track-bg
+border-radius($custom-range-track-border-radius)
&::-ms-fill-upper
margin-right: 15px
// arbitrary?
background-color: $custom-range-track-bg
+border-radius($custom-range-track-border-radius)
.custom-control-label::before,
.custom-file-label,
.custom-select
+transition($custom-forms-transition)