You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

610 lines
13 KiB

/*
* # Semantic - Form
* http://github.com/semantic-org/semantic-ui/
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'collection';
@element : 'form';
@import '../../semantic.config';
/*******************************
Standard
*******************************/
/*--------------------
Form
---------------------*/
.ui.form {
position: relative;
max-width: 100%;
}
/*--------------------
Content
---------------------*/
.ui.form > p {
margin: @paragraphMargin;
}
/*--------------------
Field
---------------------*/
.ui.form .field {
clear: both;
margin: @fieldMargin;
}
/*--------------------
Labels
---------------------*/
.ui.form .field > label {
margin: 0em 0em @labelMargin 0em;
display: block;
color: @labelColor;
font-size: @labelFontSize;
font-weight: @labelFontWeight;
}
/*--------------------
Standard Inputs
---------------------*/
.ui.form textarea,
.ui.form input[type="text"],
.ui.form input[type="email"],
.ui.form input[type="date"],
.ui.form input[type="password"],
.ui.form input[type="number"],
.ui.form input[type="url"],
.ui.form input[type="tel"],
.ui.form .ui.input {
width: 100%;
}
.ui.form textarea,
.ui.form input[type="text"],
.ui.form input[type="email"],
.ui.form input[type="date"],
.ui.form input[type="password"],
.ui.form input[type="number"],
.ui.form input[type="url"],
.ui.form input[type="tel"] {
margin: 0em;
padding: @inputVerticalPadding @inputHorizontalPadding;
font-size: @inputFontSize;
background: @inputBackground;
border: @inputBorder;
outline: none;
color: @inputColor;
border-radius: 0.3125em;
box-shadow: @inputBoxShadow;
-webkit-appearance: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
box-sizing: border-box;
transition: @inputTransition;
}
.ui.textarea,
.ui.form textarea {
font-size: @textAreaFontSize;
height: @textAreaHeight;
min-height: @textAreaMinHeight;
max-height: @textAreaMaxHeight;
line-height: @textAreaLineHeight;
resize: @textAreaResize;
}
.ui.form textarea,
.ui.form input[type="checkbox"] {
vertical-align: @checkboxVerticalAlign;
}
/*--------------------------
Input w/ attached Button
---------------------------*/
.ui.form input.attached {
width: auto;
}
/*--------------------
Dropdown
---------------------*/
.ui.form .field > .selection.dropdown {
width: 100%;
}
.ui.form .field > .selection.dropdown > .dropdown.icon {
float: right;
}
.ui.form .inline.field > .selection.dropdown {
width: auto;
}
.ui.form .inline.field > .selection.dropdown > .dropdown.icon {
float: none;
}
/*--------------------
Dividers
---------------------*/
.ui.form .divider {
clear: both;
margin: @dividerMargin;
}
/*--------------------
Types of Messages
---------------------*/
.ui.form .info.message,
.ui.form .warning.message,
.ui.form .error.message {
display: none;
}
/* Assumptions */
.ui.form .message:first-child {
margin-top: 0px;
}
/*--------------------
Validation Prompt
---------------------*/
.ui.form .field .prompt.label {
white-space: nowrap;
}
.ui.form .inline.field .prompt {
margin: @validationMargin;
}
.ui.form .inline.field .prompt:before {
margin-top: @validationArrowOffset;
bottom: auto;
right: auto;
top: 50%;
left: 0em;
}
/*******************************
States
*******************************/
/*--------------------
Placeholder
---------------------*/
/* browsers require these rules separate */
.ui.form ::-webkit-input-placeholder {
color: @inputPlaceholderColor;
}
.ui.form ::-moz-placeholder {
color: @inputPlaceholderColor;
}
.ui.form :focus::-webkit-input-placeholder {
color: @inputPlaceholderFocusColor;
}
.ui.form :focus::-moz-placeholder {
color: @inputPlaceholderFocusColor;
}
/* Error Placeholder */
.ui.form .error ::-webkit-input-placeholder {
color: @inputErrorPlaceholderColor;
}
.ui.form .error ::-moz-placeholder {
color: @inputErrorPlaceholderColor;
}
.ui.form .error :focus::-webkit-input-placeholder {
color: @inputErrorPlaceholderFocusColor;
}
.ui.form .error :focus::-moz-placeholder {
color: @inputErrorPlaceholderFocusColor;
}
/*--------------------
Focus
---------------------*/
.ui.form input[type="text"]:focus,
.ui.form input[type="email"]:focus,
.ui.form input[type="date"]:focus,
.ui.form input[type="password"]:focus,
.ui.form input[type="number"]:focus,
.ui.form input[type="url"]:focus,
.ui.form input[type="tel"]:focus,
.ui.form textarea:focus{
color: @inputFocusColor;
border-color: @inputFocusBorderColor;
border-radius: @inputFocusBorderRadius;
background: @inputFocusBackground;
box-shadow: @inputFocusBoxShadow;
-webkit-appearance: none;
}
/*--------------------
Error
---------------------*/
/* On Form */
.ui.form.warning .warning.message {
display: block;
}
/*--------------------
Warning
---------------------*/
/* On Form */
.ui.form.error .error.message {
display: block;
}
/* On Field(s) */
.ui.form .fields.error .field label,
.ui.form .field.error label,
.ui.form .fields.error .field .input,
.ui.form .field.error .input {
color: @formErrorColor;
}
.ui.form .fields.error .field .corner.label,
.ui.form .field.error .corner.label {
border-color: @formErrorColor;
color: @white;
}
.ui.form .fields.error .field textarea,
.ui.form .fields.error .field input[type="text"],
.ui.form .fields.error .field input[type="email"],
.ui.form .fields.error .field input[type="date"],
.ui.form .fields.error .field input[type="password"],
.ui.form .fields.error .field input[type="number"],
.ui.form .fields.error .field input[type="url"],
.ui.form .fields.error .field input[type="tel"],
.ui.form .field.error textarea,
.ui.form .field.error input[type="text"],
.ui.form .field.error input[type="email"],
.ui.form .field.error input[type="date"],
.ui.form .field.error input[type="password"],
.ui.form .field.error input[type="number"],
.ui.form .field.error input[type="url"],
.ui.form .field.error input[type="tel"] {
background: @formErrorBackground;
border-color: @formErrorBorder;
color: @formErrorColor;
border-radius: @inputErrorBorderRadius;
box-shadow: @inputErrorBoxShadow;
}
.ui.form .field.error textarea:focus,
.ui.form .field.error input[type="text"]:focus,
.ui.form .field.error input[type="email"]:focus,
.ui.form .field.error input[type="date"]:focus,
.ui.form .field.error input[type="password"]:focus,
.ui.form .field.error input[type="number"]:focus,
.ui.form .field.error input[type="url"]:focus,
.ui.form .field.error input[type="tel"]:focus{
border-color: @formErrorFocusBorder;
color: @formErrorFocusColor;
-webkit-appearance: none;
box-shadow: @inputErrorFocusBoxShadow;
}
/*------------------
Dropdown Error
--------------------*/
.ui.form .fields.error .field .ui.dropdown,
.ui.form .fields.error .field .ui.dropdown .item,
.ui.form .field.error .ui.dropdown,
.ui.form .field.error .ui.dropdown .text,
.ui.form .field.error .ui.dropdown .item {
background: @formErrorBackground;
color: @formErrorColor;
}
.ui.form .fields.error .field .ui.dropdown,
.ui.form .field.error .ui.dropdown {
box-shadow: 0px 0px 0px 1px @formErrorBorder !important;
}
.ui.form .fields.error .field .ui.dropdown:hover,
.ui.form .field.error .ui.dropdown:hover {
box-shadow: 0px 0px 0px 1px @formErrorBorder !important;
}
.ui.form .fields.error .field .ui.dropdown:hover .menu,
.ui.form .field.error .ui.dropdown:hover .menu {
box-shadow: 0px 1px 0px 1px @formErrorBorder;
}
/* Hover */
.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
.ui.form .field.error .ui.dropdown .menu .item:hover {
background-color: @dropdownErrorHoverBackground;
}
/* Active */
.ui.form .fields.error .field .ui.dropdown .menu .active.item,
.ui.form .field.error .ui.dropdown .menu .active.item {
background-color: @dropdownErrorActiveBackground !important;
}
/*--------------------
Checkbox Error
---------------------*/
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) label,
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box {
color: @formErrorColor;
}
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before,
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before {
background: @formErrorBackground;
border-color: @formErrorBorder;
}
.ui.form .fields.error .field .checkbox label:after,
.ui.form .field.error .checkbox label:after,
.ui.form .fields.error .field .checkbox .box:after,
.ui.form .field.error .checkbox .box:after {
color: @formErrorColor;
}
/*--------------------
Disabled
---------------------*/
.ui.form .field :disabled,
.ui.form .field.disabled {
opacity: 0.5;
}
.ui.form .field.disabled label {
opacity: 0.5;
}
.ui.form .field.disabled :disabled {
opacity: 1;
}
/*--------------------
Loading State
---------------------*/
/* On Form */
.ui.form.loading {
position: relative;
}
.ui.form.loading:after {
position: absolute;
top: 0%;
left: 0%;
content: '';
width: 100%;
height: 100%;
background: @formLoaderDimmerColor url(@formLoaderPath) no-repeat @formLoaderPosition;
visibility: visible;
}
/*******************************
Element Types
*******************************/
/*--------------------
Required Field
---------------------*/
.ui.form .required.fields > .field > label:after,
.ui.form .required.fields > .field > .checkbox:after,
.ui.form .required.field > label:after,
.ui.form .required.field > .checkbox:after {
margin: -0.2em 0em 0em 0.2em;
vertical-align: top;
content: '*';
color: @requiredColor;
}
/*--------------------
Date Input
---------------------*/
.ui.form .date.field > label {
position: relative;
}
.ui.form .date.field > label:after {
position: absolute;
top: 2em;
right: 0.5em;
font-family: 'Icons';
content: '\f133';
font-size: 1.2em;
font-weight: normal;
color: #CCCCCC;
}
/*******************************
Variations
*******************************/
/*--------------------
Inverted Colors
---------------------*/
.ui.inverted.form label,
.ui.inverted.form .ui.checkbox label:hover,
.ui.inverted.form .ui.checkbox .box:hover {
color: @invertedFormColor;
}
.ui.inverted.form.loading:after {
background: @formInvertedLoaderDimmerColor url(@formInvertedLoaderPath) no-repeat @formLoaderPosition;
}
/*--------------------
Field Groups
---------------------*/
/* Grouped Vertically */
.ui.form .grouped.fields {
margin: 0em 0em 1em;
}
.ui.form .grouped.fields .field {
display: block;
float: none;
margin: 0.5em 0em;
padding: 0em;
}
/*--------------------
Fields
---------------------*/
/* Split fields */
.ui.form .fields {
clear: both;
}
.ui.form .fields:after {
content: ' ';
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.ui.form .fields > .field {
clear: none;
float: left;
box-sizing: border-box;
padding-left: 1%;
padding-right: 1%;
}
.ui.form .fields > .field:first-child {
border-left: none;
box-shadow: none;
}
/* Other Combinations */
.ui.form .two.fields > .fields,
.ui.form .two.fields > .field {
width: 50%;
}
.ui.form .three.fields > .fields,
.ui.form .three.fields > .field {
width: 33.333%;
}
.ui.form .four.fields > .fields,
.ui.form .four.fields > .field {
width: 25%;
}
.ui.form .five.fields > .fields,
.ui.form .five.fields > .field {
width: 20%;
}
/* Swap to full width on mobile */
@media only screen and (max-width : 767px) {
.ui.form .two.fields > .fields,
.ui.form .two.fields > .field,
.ui.form .three.fields > .fields,
.ui.form .three.fields > .field,
.ui.form .four.fields > .fields,
.ui.form .four.fields > .field,
.ui.form .five.fields > .fields,
.ui.form .five.fields > .field {
width: 100%;
padding-left: 0%;
padding-right: 0%;
}
}
.ui.form .fields .field:first-child {
padding-left: 0%;
}
.ui.form .fields .field:last-child {
padding-right: 0%;
}
/*--------------------
Inline Fields
---------------------*/
.ui.form .inline.fields {
margin: @fieldMargin;
}
.ui.form .inline.fields .field {
margin: @inlineFieldsMargin;
}
.ui.form .inline.fields .field > label,
.ui.form .inline.fields .field > p,
.ui.form .inline.fields .field > input,
.ui.form .inline.field > label,
.ui.form .inline.field > p,
.ui.form .inline.field > input {
display: inline-block;
width: auto;
margin-top: 0em;
margin-bottom: 0em;
vertical-align: middle;
font-size: 1em;
}
.ui.form .inline.fields .field > input,
.ui.form .inline.field > input {
font-size: 1em;
}
/* Label */
.ui.form .inline.fields .field > :first-child,
.ui.form .inline.field > :first-child {
margin: 0em @labelMargin 0em 0em;
}
.ui.form .inline.fields .field > :only-child,
.ui.form .inline.field > :only-child {
margin: 0em;
}
/*--------------------
Sizes
---------------------*/
/* Standard */
.ui.small.form {
font-size: @small;
}
/* Large */
.ui.large.form {
font-size: @large;
}