fomantic-ui
Version:
Fomantic empowers designers and developers by creating a shared vocabulary for UI.
1,178 lines (1,058 loc) • 34.5 kB
text/less
/*!
* # Fomantic-UI - Form
* https://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* https://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type: "collection";
@element: "form";
@import (multiple) "../../theme.config";
/*******************************
Elements
*******************************/
/* --------------------
Form
--------------------- */
.ui.form {
position: relative;
max-width: 100%;
}
/* --------------------
Content
--------------------- */
.ui.form > p {
margin: @paragraphMargin;
}
/* --------------------
Field
--------------------- */
.ui.form .field {
clear: both;
margin: @fieldMargin;
}
.ui.form .fields .fields,
.ui.form .field:last-child,
.ui.form .fields:last-child .field {
margin-bottom: 0;
}
.ui.form .fields .field {
clear: both;
margin: 0;
}
/* --------------------
Labels
--------------------- */
.ui.form .field > label {
display: block;
margin: @labelMargin;
font-size: @labelFontSize;
font-weight: @labelFontWeight;
text-transform: @labelTextTransform;
}
.ui.form:not(.inverted) .field > label:not(.button) {
color: @labelColor;
}
/* --------------------
Standard Inputs
--------------------- */
.ui.form textarea,
.ui.form input:not([type]),
.ui.form input[type="color"],
.ui.form input[type="date"],
.ui.form input[type="datetime-local"],
.ui.form input[type="email"],
.ui.form input[type="month"],
.ui.form input[type="number"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="tel"],
.ui.form input[type="time"],
.ui.form input[type="text"],
.ui.form input[type="file"],
.ui.form input[type="url"],
.ui.form input[type="week"] {
width: @inputWidth;
vertical-align: top;
}
/* Set max height on unusual input */
.ui.form ::-webkit-datetime-edit,
.ui.form ::-webkit-inner-spin-button {
height: @inputLineHeight;
}
.ui.form input:not([type]),
.ui.form input[type="color"],
.ui.form input[type="date"],
.ui.form input[type="datetime-local"],
.ui.form input[type="email"],
.ui.form input[type="month"],
.ui.form input[type="number"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="tel"],
.ui.form input[type="time"],
.ui.form input[type="text"],
.ui.form input[type="file"],
.ui.form input[type="url"],
.ui.form input[type="week"] {
font-family: @inputFont;
margin: 0;
outline: none;
-webkit-appearance: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
line-height: @inputLineHeight;
padding: @inputPadding;
font-size: @inputFontSize;
background: @inputBackground;
border: @inputBorder;
color: @inputColor;
border-radius: @inputBorderRadius;
box-shadow: @inputBoxShadow;
transition: @inputTransition;
}
.ui.form input[type="color"] {
padding: initial;
}
.ui.form input::-webkit-calendar-picker-indicator {
padding: 0;
opacity: @iconOpacity;
transition: @iconTransition;
cursor: pointer;
}
/* Text Area */
.ui.input textarea,
.ui.form textarea {
margin: 0;
-webkit-appearance: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
padding: @textAreaPadding;
background: @textAreaBackground;
border: @textAreaBorder;
outline: none;
color: @inputColor;
border-radius: @inputBorderRadius;
box-shadow: @inputBoxShadow;
transition: @textAreaTransition;
font-size: @textAreaFontSize;
font-family: @inputFont;
line-height: @textAreaLineHeight;
resize: @textAreaResize;
}
.ui.form textarea:not([rows]) {
height: @textAreaHeight;
min-height: @textAreaMinHeight;
max-height: @textAreaMaxHeight;
}
.ui.form textarea,
.ui.form input[type="checkbox"] {
vertical-align: @checkboxVerticalAlign;
}
/* --------------------
Checkbox margin
--------------------- */
.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) label + .ui.ui.checkbox {
margin-top: @checkboxLabelFieldTopMargin;
}
.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.checkbox {
margin-top: @inputLineHeight + @checkboxFieldTopMargin;
}
.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.toggle.checkbox {
margin-top: @inputLineHeight + @checkboxToggleFieldTopMargin;
}
.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.slider.checkbox {
margin-top: @inputLineHeight + @checkboxSliderFieldTopMargin;
}
.ui.ui.form .field .fields .field:not(:only-child) .ui.checkbox {
margin-top: (@checkboxFieldTopMargin / 2);
}
.ui.ui.form .field .fields .field:not(:only-child) .ui.toggle.checkbox {
margin-top: (@checkboxToggleFieldTopMargin / 2);
}
.ui.ui.form .field .fields .field:not(:only-child) .ui.slider.checkbox {
margin-top: (@checkboxSliderFieldTopMargin / 2);
}
& when (@variationFormTransparent) {
/* --------------------
Transparent
--------------------- */
.ui.form .field .transparent.input:not(.icon) input,
.ui.form .field input.transparent,
.ui.form .field textarea.transparent {
padding: @transparentPadding;
}
.ui.form .field input.transparent,
.ui.form .field textarea.transparent {
border-color: transparent ;
background-color: transparent ;
box-shadow: none ;
}
}
/* --------------------------
Input w/ attached Button
--------------------------- */
.ui.form input.attached {
width: auto;
}
/* --------------------
Basic Select
--------------------- */
.ui.form select {
display: block;
height: auto;
width: 100%;
background: @selectBackground;
border: @selectBorder;
border-radius: @selectBorderRadius;
box-shadow: @selectBoxShadow;
padding: @selectPadding;
color: @selectColor;
transition: @selectTransition;
}
/* --------------------
Dropdown
--------------------- */
/* Block */
.ui.form .field > .selection.dropdown:not(.compact) {
min-width: auto;
width: 100%;
}
.ui.form .field > .selection.dropdown > .dropdown.icon {
float: right;
}
& when (@variationFormInline) {
/* Inline */
.ui.form .inline.fields .field > .selection.dropdown,
.ui.form .inline.field > .selection.dropdown {
width: auto;
}
.ui.form .inline.fields .field > .selection.dropdown > .dropdown.icon,
.ui.form .inline.field > .selection.dropdown > .dropdown.icon {
float: none;
}
}
/* --------------------
UI Input
--------------------- */
/* Block */
.ui.form .field .ui.input,
.ui.form .fields .field .ui.input,
.ui.form .wide.field .ui.input {
width: 100%;
}
& when (@variationFormInline) {
/* Inline */
.ui.form .inline.fields .field:not(.wide) .ui.input,
.ui.form .inline.field:not(.wide) .ui.input {
width: auto;
vertical-align: middle;
}
}
/* Auto Input */
.ui.form .fields .field .ui.input input,
.ui.form .field .ui.input input {
width: auto;
}
& when (@variationFormEqualWidth) or (@variationFormWide) {
/* Full Width Input */
.ui.form .ten.fields .ui.input input,
.ui.form .nine.fields .ui.input input,
.ui.form .eight.fields .ui.input input,
.ui.form .seven.fields .ui.input input,
.ui.form .six.fields .ui.input input,
.ui.form .five.fields .ui.input input,
.ui.form .four.fields .ui.input input,
.ui.form .three.fields .ui.input input,
.ui.form .two.fields .ui.input input,
.ui.form .wide.field .ui.input input {
flex: 1 0 auto;
width: 0;
}
}
/* --------------------
Types of Messages
--------------------- */
& when not (@variationFormStates = false) {
each(@variationFormStates, {
@state: @value;
.ui.form .@{state}.message,
.ui.form .@{state}.message:empty {
display: none;
}
});
}
/* Assumptions */
.ui.form .message:first-child {
margin-top: 0;
}
/* --------------------
Validation Prompt
--------------------- */
.ui.form .field .prompt.label {
white-space: normal;
background: @promptBackground ;
border: @promptBorder ;
color: @promptTextColor ;
& li::before {
color: @promptTextColor;
}
}
& when (@variationFormInline) {
.ui.form .inline.fields .field .prompt,
.ui.form .inline.field .prompt {
vertical-align: top;
margin: @inlinePromptMargin;
}
.ui.form .inline.fields .field .prompt::before,
.ui.form .inline.field .prompt::before {
border-width: 0 0 @inlinePromptBorderWidth @inlinePromptBorderWidth;
bottom: auto;
right: auto;
top: 50%;
left: 0;
}
}
/*******************************
States
*******************************/
/* --------------------
Autofilled
--------------------- */
.ui.form .field.field input:-webkit-autofill {
box-shadow: 0 0 0 100px @inputAutoFillBackground inset ;
border-color: @inputAutoFillBorder ;
}
/* Focus */
.ui.form .field.field input:-webkit-autofill:focus {
box-shadow: 0 0 0 100px @inputAutoFillFocusBackground inset ;
border-color: @inputAutoFillFocusBorder ;
}
/* --------------------
Placeholder
--------------------- */
/* browsers require these rules separate */
.ui.form ::placeholder {
color: @inputPlaceholderColor;
}
.ui.form :-ms-input-placeholder when (@supportIE) {
color: @inputPlaceholderColor ;
}
.ui.form ::-moz-placeholder {
opacity: 1;
}
.ui.form :focus::placeholder {
color: @inputPlaceholderFocusColor;
}
.ui.form :focus:-ms-input-placeholder when (@supportIE) {
color: @inputPlaceholderFocusColor ;
}
/* --------------------
Focus
--------------------- */
.ui.form input:not([type]):focus,
.ui.form input[type="color"]:focus,
.ui.form input[type="date"]:focus,
.ui.form input[type="datetime-local"]:focus,
.ui.form input[type="email"]:focus,
.ui.form input[type="month"]:focus,
.ui.form input[type="number"]:focus,
.ui.form input[type="password"]:focus,
.ui.form input[type="search"]:focus,
.ui.form input[type="tel"]:focus,
.ui.form input[type="time"]:focus,
.ui.form input[type="text"]:focus,
.ui.form input[type="file"]:focus,
.ui.form input[type="url"]:focus,
.ui.form input[type="week"]:focus {
color: @inputFocusColor;
border-color: @inputFocusBorderColor;
border-radius: @inputFocusBorderRadius;
background: @inputFocusBackground;
box-shadow: @inputFocusBoxShadow;
}
& when (@variationInputAction) {
.ui.form .ui.action.input:not([class*="left action"]) {
& input:not([type]):focus,
input[type="color"]:focus,
input[type="date"]:focus,
input[type="datetime-local"]:focus,
input[type="email"]:focus,
input[type="month"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="time"]:focus,
input[type="text"]:focus,
input[type="file"]:focus,
input[type="url"]:focus,
input[type="week"]:focus {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
.ui.form .ui[class*="left action"].input {
& input:not([type]),
input[type="color"],
input[type="date"],
input[type="datetime-local"],
input[type="email"],
input[type="month"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="text"],
input[type="file"],
input[type="url"],
input[type="week"] {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
}
}
.ui.form textarea:focus {
color: @textAreaFocusColor;
border-color: @textAreaFocusBorderColor;
border-radius: @textAreaFocusBorderRadius;
background: @textAreaFocusBackground;
box-shadow: @textAreaFocusBoxShadow;
-webkit-appearance: none;
}
/* Focus */
.ui.form input:focus::-webkit-calendar-picker-indicator {
opacity: @iconFocusOpacity;
}
& when not (@variationFormStates = false) {
/* --------------------
States
--------------------- */
each(@variationFormStates, {
@state: @value;
@c: @formStates[@@state][color];
@bg: @formStates[@@state][background];
@bdc: @formStates[@@state][borderColor];
@lbg: @formStates[@@state][labelBackground];
/* On Form */
.ui.form.@{state} .@{state}.message:not(:empty) {
display: block;
}
.ui.form.@{state} .compact.@{state}.message:not(:empty) {
display: inline-block;
}
.ui.form.@{state} .icon.@{state}.message:not(:empty) {
display: flex;
}
/* On Field(s) */
.ui.form .fields.@{state} .@{state}.message:not(:empty),
.ui.form .field.@{state} .@{state}.message:not(:empty) {
display: block;
}
.ui.form .fields.@{state} .compact.@{state}.message:not(:empty),
.ui.form .field.@{state} .compact.@{state}.message:not(:empty) {
display: inline-block;
}
.ui.form .fields.@{state} .icon.@{state}.message:not(:empty),
.ui.form .field.@{state} .icon.@{state}.message:not(:empty) {
display: flex;
}
.ui.ui.form .fields.@{state} .field label,
.ui.ui.form .fields.@{state} .field .ui.label:not(.corner),
.ui.ui.form .field.@{state} label,
.ui.ui.form .field.@{state} .ui.label:not(.corner),
.ui.ui.form .fields.@{state} .field .input,
.ui.ui.form .field.@{state} .input {
color: @c;
}
@supports selector(:has(.f)) {
.ui.form .fields:has(.@{state}) > label {
color: @c;
}
}
.ui.form .fields.@{state} .field .ui.label,
.ui.form .field.@{state} .ui.label {
background-color: @lbg;
}
.ui.form .fields.@{state} .field .corner.label,
.ui.form .field.@{state} .corner.label {
border-color: @c;
color: @formStates[@@state][cornerLabelColor];
}
.ui.form .fields.@{state} .field textarea,
.ui.form .fields.@{state} .field select,
.ui.form .fields.@{state} .field input:not([type]),
.ui.form .fields.@{state} .field input[type="color"],
.ui.form .fields.@{state} .field input[type="date"],
.ui.form .fields.@{state} .field input[type="datetime-local"],
.ui.form .fields.@{state} .field input[type="email"],
.ui.form .fields.@{state} .field input[type="month"],
.ui.form .fields.@{state} .field input[type="number"],
.ui.form .fields.@{state} .field input[type="password"],
.ui.form .fields.@{state} .field input[type="search"],
.ui.form .fields.@{state} .field input[type="tel"],
.ui.form .fields.@{state} .field input[type="time"],
.ui.form .fields.@{state} .field input[type="text"],
.ui.form .fields.@{state} .field input[type="file"],
.ui.form .fields.@{state} .field input[type="url"],
.ui.form .fields.@{state} .field input[type="week"],
.ui.form .field.@{state} textarea,
.ui.form .field.@{state} select,
.ui.form .field.@{state} input:not([type]),
.ui.form .field.@{state} input[type="color"],
.ui.form .field.@{state} input[type="date"],
.ui.form .field.@{state} input[type="datetime-local"],
.ui.form .field.@{state} input[type="email"],
.ui.form .field.@{state} input[type="month"],
.ui.form .field.@{state} input[type="number"],
.ui.form .field.@{state} input[type="password"],
.ui.form .field.@{state} input[type="search"],
.ui.form .field.@{state} input[type="tel"],
.ui.form .field.@{state} input[type="time"],
.ui.form .field.@{state} input[type="text"],
.ui.form .field.@{state} input[type="file"],
.ui.form .field.@{state} input[type="url"],
.ui.form .field.@{state} input[type="week"] {
color: @c;
background: @bg;
border-color: @formStates[@@state][borderColor];
border-radius: @formStates[@@state][borderRadius];
box-shadow: @formStates[@@state][boxShadow];
}
& when (@state=error) and (@variationFormInvalid) {
.ui.form:not(.initial) .field input:invalid {
color: @c;
background: @bg;
border-color: @formStates[@@state][borderColor];
border-radius: @formStates[@@state][borderRadius];
box-shadow: @formStates[@@state][boxShadow];
}
}
.ui.form .field.@{state} textarea:focus,
.ui.form .field.@{state} select:focus,
.ui.form .field.@{state} input:not([type]):focus,
.ui.form .field.@{state} input[type="color"]:focus,
.ui.form .field.@{state} input[type="date"]:focus,
.ui.form .field.@{state} input[type="datetime-local"]:focus,
.ui.form .field.@{state} input[type="email"]:focus,
.ui.form .field.@{state} input[type="month"]:focus,
.ui.form .field.@{state} input[type="number"]:focus,
.ui.form .field.@{state} input[type="password"]:focus,
.ui.form .field.@{state} input[type="search"]:focus,
.ui.form .field.@{state} input[type="tel"]:focus,
.ui.form .field.@{state} input[type="time"]:focus,
.ui.form .field.@{state} input[type="text"]:focus,
.ui.form .field.@{state} input[type="file"]:focus,
.ui.form .field.@{state} input[type="url"]:focus,
.ui.form .field.@{state} input[type="week"]:focus {
background: @formStates[@@state][inputFocusBackground];
border-color: @formStates[@@state][inputFocusBorderColor];
color: @formStates[@@state][inputFocusColor];
box-shadow: @formStates[@@state][inputFocusBoxShadow];
}
/* Preserve Native Select Stylings */
.ui.form .field.@{state} select {
-webkit-appearance: menulist-button;
}
/*------------------
Input State
--------------------*/
& when (@variationFormTransparent) {
/* Transparent */
.ui.form .field.@{state} .transparent.input input,
.ui.form .field.@{state} .transparent.input textarea,
.ui.form .field.@{state} input.transparent,
.ui.form .field.@{state} textarea.transparent {
background-color: @formStates[@@state][transparentBackground] ;
color: @formStates[@@state][transparentColor] ;
}
}
/* Autofilled */
.ui.form .@{state}.@{state} input:-webkit-autofill {
box-shadow: 0 0 0 100px @formStates[@@state][inputAutoFillBackground] inset ;
border-color: @formStates[@@state][inputAutoFillBorderColor] ;
}
/* Placeholder */
.ui.form .@{state} ::placeholder {
color: @formStates[@@state][inputPlaceholderColor];
}
.ui.form .@{state} :-ms-input-placeholder when (@supportIE) {
color: @formStates[@@state][inputPlaceholderColor] ;
}
.ui.form .@{state} :focus::placeholder {
color: @formStates[@@state][inputPlaceholderFocusColor];
}
.ui.form .@{state} :focus:-ms-input-placeholder when (@supportIE) {
color: @formStates[@@state][inputPlaceholderFocusColor] ;
}
/*------------------
Dropdown State
--------------------*/
.ui.form .fields.@{state} .field .ui.dropdown,
.ui.form .fields.@{state} .field .ui.dropdown .item,
.ui.form .field.@{state} .ui.dropdown,
.ui.form .field.@{state} .ui.dropdown > .text,
.ui.form .field.@{state} .ui.dropdown .item {
background: @bg;
color: @c;
}
.ui.form .fields.@{state} .field .ui.dropdown,
.ui.form .field.@{state} .ui.dropdown {
border-color: @bdc ;
}
.ui.form .fields.@{state} .field .ui.dropdown:hover,
.ui.form .field.@{state} .ui.dropdown:hover {
border-color: @bdc ;
}
.ui.form .fields.@{state} .field .ui.dropdown:hover .menu,
.ui.form .field.@{state} .ui.dropdown:hover .menu {
border-color: @bdc;
}
.ui.form .fields.@{state} .field .ui.multiple.selection.dropdown > .label,
.ui.form .field.@{state} .ui.multiple.selection.dropdown > .label {
background-color: @formStates[@@state][dropdownLabelBackground];
color: @formStates[@@state][dropdownLabelColor];
}
/* Hover */
.ui.form .fields.@{state} .field .ui.dropdown .menu .item:hover,
.ui.form .field.@{state} .ui.dropdown .menu .item:hover {
background-color: @formStates[@@state][dropdownHoverBackground];
}
/* Selected */
.ui.form .fields.@{state} .field .ui.dropdown .menu .selected.item,
.ui.form .field.@{state} .ui.dropdown .menu .selected.item {
background-color: @formStates[@@state][dropdownSelectedBackground];
}
/* Active */
.ui.form .fields.@{state} .field .ui.dropdown .menu .active.item,
.ui.form .field.@{state} .ui.dropdown .menu .active.item {
background-color: @formStates[@@state][dropdownActiveBackground] ;
}
/*--------------------
Checkbox State
---------------------*/
.ui.form .fields.@{state} .field .checkbox:not(.toggle):not(.slider) label,
.ui.form .field.@{state} .checkbox:not(.toggle):not(.slider) label {
color: @c;
}
.ui.form .fields.@{state} .field .checkbox:not(.toggle):not(.slider) label::before,
.ui.form .field.@{state} .checkbox:not(.toggle):not(.slider) label::before {
background: @bg;
border-color: @bdc;
}
.ui.form .fields.@{state} .field .checkbox label::after,
.ui.form .field.@{state} .checkbox label::after {
color: @c;
}
& when (@variationFormInverted) {
.ui.inverted.form .fields.@{state} .field label,
.ui.inverted.form .@{state}.field label {
color: @lbg;
}
@supports selector(:has(.f)) {
.ui.inverted.form .fields:has(.@{state}) > label {
color: @lbg;
}
}
}
});
}
& when (@variationFormDisabled) {
/* --------------------
Disabled
--------------------- */
.ui.form .disabled.fields .field,
.ui.form .disabled.field,
.ui.form .field :disabled {
pointer-events: @disabledPointerEvents;
opacity: @disabledOpacity;
}
.ui.form .field.disabled > label,
.ui.form .fields.disabled > label {
opacity: @disabledLabelOpacity;
}
.ui.form .field.disabled :disabled {
opacity: 1;
}
}
& when (@variationFormLoading) {
/* --------------
Loading
--------------- */
.ui.loading.form {
position: relative;
cursor: default;
pointer-events: none;
}
.ui.loading.form::before {
position: absolute;
content: "";
top: 0;
left: 0;
background: @loaderDimmerColor;
width: 100%;
height: 100%;
z-index: @loaderDimmerZIndex;
}
.ui.loading.form.segments::before {
border-radius: @defaultBorderRadius;
}
.ui.loading.form::after {
position: absolute;
content: "";
top: 50%;
left: 50%;
margin: @loaderMargin;
width: @loaderSize;
height: @loaderSize;
animation: loader @loaderSpeed infinite linear;
border: @loaderLineWidth solid @loaderLineColor;
border-radius: @circularRadius;
box-shadow: 0 0 0 1px transparent;
visibility: visible;
z-index: @loaderLineZIndex;
}
}
/*******************************
Element Types
*******************************/
& when (@variationFormRequired) {
/* --------------------
Required Field
--------------------- */
.ui.form .required.fields:not(.grouped):not(.inline) > .field > label::after,
.ui.form .required.fields.inline > label::after,
.ui.form .required.fields.grouped > label::after,
.ui.form .required.field > label::after,
.ui.form .required.fields:not(.grouped):not(.inline) > .field > .checkbox::after,
.ui.form .required.field > .checkbox::after,
.ui.form label.required::after {
margin: @requiredMargin;
content: @requiredContent;
color: @requiredColor;
}
.ui.form .required.fields:not(.grouped):not(.inline) > .field > label::after,
.ui.form .required.fields.inline > label::after,
.ui.form .required.fields.grouped > label::after,
.ui.form .required.field > label::after,
.ui.form label.required::after {
display: inline-block;
vertical-align: top;
}
.ui.form .required.fields:not(.grouped):not(.inline) > .field > .checkbox::after,
.ui.form .required.field > .checkbox::after {
position: absolute;
top: 0;
left: 100%;
}
}
.ui.ui.ui.ui.form .fields > label:empty::after,
.ui.ui.ui.ui.form .field > label:empty::after {
content: " ";
display: inline-block;
}
/*******************************
Variations
*******************************/
& when (@variationFormInverted) {
/* --------------------
Inverted Colors
--------------------- */
.ui.inverted.form label,
.ui.form .inverted.segment label,
.ui.form .inverted.segment .ui.checkbox label,
.ui.inverted.form .ui.checkbox label,
.ui.inverted.form .inline.fields > label,
.ui.inverted.form .inline.fields .field > label,
.ui.inverted.form .inline.fields .field > p,
.ui.inverted.form .inline.field > label,
.ui.inverted.form .inline.field > p {
color: @invertedLabelColor;
}
.ui.inverted.loading.form {
color: @invertedLoaderLineColor;
}
.ui.inverted.loading.form::before {
background: @loaderInvertedDimmerColor;
}
/* Inverted Field */
.ui.inverted.form input:not([type]),
.ui.inverted.form input[type="color"],
.ui.inverted.form input[type="date"],
.ui.inverted.form input[type="datetime-local"],
.ui.inverted.form input[type="email"],
.ui.inverted.form input[type="month"],
.ui.inverted.form input[type="number"],
.ui.inverted.form input[type="password"],
.ui.inverted.form input[type="search"],
.ui.inverted.form input[type="tel"],
.ui.inverted.form input[type="time"],
.ui.inverted.form input[type="text"],
.ui.inverted.form input[type="file"],
.ui.inverted.form input[type="url"],
.ui.inverted.form input[type="week"] {
background: @invertedInputBackground;
border-color: @invertedInputBorderColor;
color: @invertedInputColor;
box-shadow: @invertedInputBoxShadow;
}
}
& when (@variationFormGrouped) {
/* --------------------
Field Groups
--------------------- */
/* Grouped Vertically */
.ui.form .grouped.fields {
display: block;
margin: @groupedMargin;
}
.ui.form .grouped.fields:last-child {
margin-bottom: 0;
}
.ui.form .grouped.fields > label {
margin: @groupedLabelMargin;
color: @groupedLabelColor;
font-size: @groupedLabelFontSize;
font-weight: @groupedLabelFontWeight;
text-transform: @groupedLabelTextTransform;
}
.ui.form .grouped.fields .field,
.ui.form .grouped.inline.fields .field {
display: block;
margin: @groupedFieldMargin;
padding: 0;
}
.ui.form .grouped.inline.fields .ui.checkbox {
margin-bottom: @groupedInlineCheckboxBottomMargin;
}
}
/* --------------------
Fields
--------------------- */
/* Split fields */
.ui.form .fields {
display: flex;
flex-direction: row;
margin: @fieldsMargin;
}
.ui.form .fields > .field {
flex: 0 1 auto;
padding-left: (@gutterWidth / 2);
padding-right: (@gutterWidth / 2);
}
.ui.form .fields > .field:first-child {
border-left: none;
box-shadow: none;
}
& when (@variationFormEqualWidth) {
/* Other Combinations */
.ui.form .two.fields > .fields,
.ui.form .two.fields > .field {
width: @twoColumn;
}
.ui.form .three.fields > .fields,
.ui.form .three.fields > .field {
width: @threeColumn;
}
.ui.form .four.fields > .fields,
.ui.form .four.fields > .field {
width: @fourColumn;
}
.ui.form .five.fields > .fields,
.ui.form .five.fields > .field {
width: @fiveColumn;
}
.ui.form .six.fields > .fields,
.ui.form .six.fields > .field {
width: @sixColumn;
}
.ui.form .seven.fields > .fields,
.ui.form .seven.fields > .field {
width: @sevenColumn;
}
.ui.form .eight.fields > .fields,
.ui.form .eight.fields > .field {
width: @eightColumn;
}
.ui.form .nine.fields > .fields,
.ui.form .nine.fields > .field {
width: @nineColumn;
}
.ui.form .ten.fields > .fields,
.ui.form .ten.fields > .field {
width: @tenColumn;
}
}
/* Swap to full width on mobile */
@media only screen and (max-width: @largestMobileScreen) {
.ui.form .fields {
flex-wrap: wrap;
margin-bottom: 0;
}
.ui.form:not(.unstackable) .fields:not(.unstackable) > .fields,
.ui.form:not(.unstackable) .fields:not(.unstackable) > .field {
width: @oneColumn;
margin: 0 0 @rowDistance;
}
}
& when (@variationFormWide) {
/* Sizing Combinations */
.ui.form .fields .wide.field {
width: @oneWide;
padding-left: (@gutterWidth / 2);
padding-right: (@gutterWidth / 2);
}
.ui.form .one.wide.field {
width: @oneWide;
}
.ui.form .two.wide.field {
width: @twoWide;
}
.ui.form .three.wide.field {
width: @threeWide;
}
.ui.form .four.wide.field {
width: @fourWide;
}
.ui.form .five.wide.field {
width: @fiveWide;
}
.ui.form .six.wide.field {
width: @sixWide;
}
.ui.form .seven.wide.field {
width: @sevenWide;
}
.ui.form .eight.wide.field {
width: @eightWide;
}
.ui.form .nine.wide.field {
width: @nineWide;
}
.ui.form .ten.wide.field {
width: @tenWide;
}
.ui.form .eleven.wide.field {
width: @elevenWide;
}
.ui.form .twelve.wide.field {
width: @twelveWide;
}
.ui.form .thirteen.wide.field {
width: @thirteenWide;
}
.ui.form .fourteen.wide.field {
width: @fourteenWide;
}
.ui.form .fifteen.wide.field {
width: @fifteenWide;
}
.ui.form .sixteen.wide.field {
width: @sixteenWide;
}
}
/* --------------------
Equal Width
--------------------- */
& when (@variationFormEqualWidth) {
.ui[class*="equal width"].form .fields > .field,
.ui.form [class*="equal width"].fields > .field {
width: 100%;
flex: 1 1 auto;
}
}
& when (@variationFormInline) {
/* --------------------
Inline Fields
--------------------- */
.ui.form .inline.fields {
margin: @fieldMargin;
align-items: center;
}
.ui.form .inline.fields .field {
margin: 0;
padding: @inlineFieldsMargin;
}
/* Inline Label */
.ui.form .inline.fields > label,
.ui.form .inline.fields .field > label,
.ui.form .inline.fields .field > p,
.ui.form .inline.field > label,
.ui.form .inline.field > p {
display: inline-block;
width: auto;
margin-top: 0;
margin-bottom: 0;
vertical-align: baseline;
font-size: @inlineLabelFontSize;
font-weight: @inlineLabelFontWeight;
color: @inlineLabelColor;
text-transform: @inlineLabelTextTransform;
}
/* Grouped Inline Label */
.ui.form .inline.fields > label {
margin: @groupedInlineLabelMargin;
}
/* Inline Input */
.ui.form .inline.fields .field > input,
.ui.form .inline.fields .field > select,
.ui.form .inline.field > input,
.ui.form .inline.field > select {
display: inline-block;
width: auto;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
font-size: @inlineInputSize;
}
.ui.form .inline.fields .field .calendar:not(.popup),
.ui.form .inline.field .calendar:not(.popup) {
display: inline-block;
}
.ui.form .inline.fields .field .calendar:not(.popup) > .input > input,
.ui.form .inline.field .calendar:not(.popup) > .input > input {
width: @inlineCalendarWidth;
}
/* Label */
.ui.form .inline.fields .field > :first-child,
.ui.form .inline.field > :first-child {
margin: 0 @inlineLabelDistance 0 0;
}
.ui.form .inline.fields .field > :only-child,
.ui.form .inline.field > :only-child {
margin: 0;
}
/* Wide */
.ui.form .inline.fields .wide.field {
display: flex;
align-items: center;
}
.ui.form .inline.fields .wide.field > input,
.ui.form .inline.fields .wide.field > select {
width: 100%;
}
}
/* --------------------
Sizes
--------------------- */
.ui.form,
.ui.form .field .dropdown,
.ui.form .field .dropdown .menu > .item {
font-size: @medium;
}
& when not (@variationFormSizes = false) {
each(@variationFormSizes, {
@s: @@value;
.ui.@{value}.form,
.ui.@{value}.form .field .dropdown,
.ui.@{value}.form .field .dropdown .menu > .item {
font-size: @s;
}
});
}
// stylelint-disable no-invalid-position-at-import-rule
@import (multiple, optional) "../../overrides.less";