330 lines
6.9 KiB
SCSS
330 lines
6.9 KiB
SCSS
input[type="text"],
|
|
input[type="email"],
|
|
input[type="url"],
|
|
input[type="password"],
|
|
input[type="search"],
|
|
input[type="number"],
|
|
input[type="tel"],
|
|
input[type="date"],
|
|
input[type="month"],
|
|
input[type="week"],
|
|
input[type="time"],
|
|
input[type="datetime"],
|
|
input[type="datetime-local"],
|
|
input[type="color"],
|
|
.site textarea {
|
|
border: var(--form--border-width) solid var(--form--border-color);
|
|
border-radius: var(--form--border-radius);
|
|
color: var(--form--color-text);
|
|
line-height: var(--global--line-height-body);
|
|
padding: var(--form--spacing-unit);
|
|
// Gives a little more space for the outline offset.
|
|
margin: 0 2px;
|
|
max-width: 100%;
|
|
|
|
&:focus {
|
|
color: var(--form--color-text);
|
|
outline-offset: 2px;
|
|
outline: 2px dotted var(--form--border-color);
|
|
}
|
|
|
|
&:disabled {
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.is-dark-theme & {
|
|
background: var(--global--color-white-90);
|
|
}
|
|
}
|
|
|
|
// Reset the negative offset from normalize to make the thicker "border" work on focus.
|
|
input[type="search"] {
|
|
|
|
&:focus {
|
|
outline-offset: -7px;
|
|
|
|
.is-dark-theme & {
|
|
outline-color: var(--global--color-background);
|
|
}
|
|
}
|
|
}
|
|
|
|
input[type="color"] {
|
|
padding: calc(var(--form--spacing-unit) / 2);
|
|
height: calc(4 * var(--form--spacing-unit));
|
|
}
|
|
|
|
input[type="email"],
|
|
input[type="url"] {
|
|
|
|
/*rtl:ignore*/
|
|
direction: ltr;
|
|
}
|
|
|
|
select {
|
|
border: var(--form--border-width) solid var(--form--border-color);
|
|
color: var(--form--color-text);
|
|
-moz-appearance: none;
|
|
-webkit-appearance: none;
|
|
appearance: none;
|
|
line-height: var(--global--line-height-body);
|
|
padding: var(--form--spacing-unit) calc(3 * var(--form--spacing-unit)) var(--form--spacing-unit) var(--form--spacing-unit);
|
|
background: var(--global--color-white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%2328303d'><polygon points='0,0 10,0 5,5'/></svg>") no-repeat; // stylelint-disable-line function-url-quotes
|
|
background-position: right var(--form--spacing-unit) top 60%;
|
|
|
|
&:focus {
|
|
outline-offset: 2px;
|
|
outline: 2px dotted var(--form--border-color);
|
|
}
|
|
|
|
.is-dark-theme & {
|
|
background: var(--global--color-white-90) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%2328303d'><polygon points='0,0 10,0 5,5'/></svg>") no-repeat; // stylelint-disable-line function-url-quotes
|
|
background-position: right var(--form--spacing-unit) top 60%;
|
|
}
|
|
}
|
|
|
|
textarea {
|
|
width: 100%;
|
|
}
|
|
|
|
label {
|
|
font-size: var(--form--font-size);
|
|
font-weight: var(--form--label-weight);
|
|
margin-bottom: calc(var(--global--spacing-vertical) / 3);
|
|
}
|
|
|
|
/**
|
|
https://css-tricks.com/custom-styling-form-inputs-with-modern-css-features/
|
|
https://codepen.io/aaroniker/pen/ZEYoxEY by Aaron Iker.
|
|
License: MIT.
|
|
*/
|
|
@supports (-webkit-appearance: none) or (-moz-appearance: none) {
|
|
|
|
input[type="checkbox"],
|
|
input[type="radio"] {
|
|
-webkit-appearance: none;
|
|
-moz-appearance: none;
|
|
position: relative;
|
|
width: 25px;
|
|
height: 25px;
|
|
border: var(--form--border-width) solid var(--form--border-color);
|
|
background: var(--global--color-white);
|
|
|
|
&:disabled {
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.is-dark-theme & {
|
|
background: var(--global--color-white-90);
|
|
}
|
|
}
|
|
|
|
input[type="checkbox"] {
|
|
|
|
&:focus {
|
|
outline-offset: 2px;
|
|
outline: 2px dotted var(--form--border-color);
|
|
}
|
|
|
|
&:after {
|
|
content: "";
|
|
opacity: 0;
|
|
display: block;
|
|
left: 5px;
|
|
top: 2px;
|
|
position: absolute;
|
|
width: 7px;
|
|
height: 13px;
|
|
border: 3px solid var(--form--color-text);
|
|
border-top: 0;
|
|
border-left: 0;
|
|
transform: rotate(30deg);
|
|
}
|
|
|
|
&:checked {
|
|
color: var(--form--color-text);
|
|
|
|
&:after {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
input[type="radio"] {
|
|
border-radius: 50%;
|
|
|
|
&:focus {
|
|
outline-offset: 2px;
|
|
outline: 2px dotted var(--form--border-color);
|
|
}
|
|
|
|
&:after {
|
|
content: "";
|
|
opacity: 0;
|
|
display: block;
|
|
left: 3px;
|
|
top: 3px;
|
|
position: absolute;
|
|
width: 11px;
|
|
height: 11px;
|
|
border-radius: 50%;
|
|
background: var(--form--color-text);
|
|
}
|
|
|
|
&:checked {
|
|
border: 4px solid var(--form--border-color);
|
|
|
|
&:after {
|
|
opacity: 1;
|
|
}
|
|
|
|
// Focus style for checked radio buttons.
|
|
&:focus {
|
|
outline-offset: 4px;
|
|
outline: 2px dotted var(--form--border-color);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
input[type="checkbox"] + label,
|
|
input[type="radio"] + label {
|
|
display: inline-block;
|
|
padding-left: 10px;
|
|
font-size: var(--global--font-size-xs);
|
|
vertical-align: top;
|
|
}
|
|
|
|
/**
|
|
* https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/
|
|
*/
|
|
@supports (-webkit-appearance: none) or (-moz-appearance: none) {
|
|
|
|
input[type="range"] {
|
|
-webkit-appearance: none; /* Hides the slider so that custom slider can be made */
|
|
width: 100%; /* Specific width is required for Firefox. */
|
|
height: 6px;
|
|
background: var(--form--color-ranged);
|
|
border-radius: 6px;
|
|
outline-offset: 10px;
|
|
|
|
&:disabled {
|
|
opacity: 0.7;
|
|
}
|
|
}
|
|
|
|
input[type="range"]::-webkit-slider-thumb {
|
|
-webkit-appearance: none;
|
|
border: 3px solid var(--form--color-ranged);
|
|
height: 44px;
|
|
width: 44px;
|
|
border-radius: 50%;
|
|
background: var(--global--color-background);
|
|
cursor: pointer;
|
|
}
|
|
|
|
input[type="range"]::-moz-range-thumb {
|
|
border: 3px solid var(--form--color-ranged);
|
|
height: 44px;
|
|
width: 44px;
|
|
border-radius: 50%;
|
|
background: var(--global--color-background);
|
|
cursor: pointer;
|
|
box-sizing: border-box;
|
|
}
|
|
}
|
|
|
|
input[type="range"]::-ms-track {
|
|
width: 100%;
|
|
height: 6px;
|
|
border-radius: 6px;
|
|
border-width: 19px 0;
|
|
border-color: var(--global--color-background);
|
|
background: transparent;
|
|
color: transparent;
|
|
cursor: pointer;
|
|
}
|
|
|
|
input[type="range"]::-ms-fill-upper {
|
|
background: var(--form--color-ranged);
|
|
border-radius: 6px;
|
|
}
|
|
|
|
input[type="range"]::-ms-fill-lower {
|
|
background: var(--form--color-ranged);
|
|
border-radius: 6px;
|
|
}
|
|
|
|
input[type="range"]::-ms-thumb {
|
|
border: 3px solid var(--form--color-ranged);
|
|
height: 44px;
|
|
width: 44px;
|
|
border-radius: 50%;
|
|
background: var(--global--color-background);
|
|
cursor: pointer;
|
|
}
|
|
|
|
fieldset {
|
|
display: grid;
|
|
border-color: var(--global--color-secondary);
|
|
padding: var(--global--spacing-horizontal);
|
|
|
|
legend {
|
|
font-size: var(--global--font-size-lg);
|
|
}
|
|
|
|
input {
|
|
|
|
&[type="submit"] {
|
|
max-width: max-content;
|
|
}
|
|
|
|
&:not([type="submit"]) {
|
|
margin-bottom: var(--global--spacing-unit);
|
|
}
|
|
|
|
&[type="radio"],
|
|
&[type="checkbox"] {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
&[type="radio"] + label,
|
|
&[type="checkbox"] + label {
|
|
font-size: var(--form--font-size);
|
|
padding-left: 0;
|
|
margin-bottom: var(--global--spacing-unit);
|
|
}
|
|
}
|
|
}
|
|
|
|
::-moz-placeholder { // Firefox 19+
|
|
opacity: 1;
|
|
}
|
|
|
|
.post-password-message {
|
|
font-size: var(--global--font-size-lg);
|
|
}
|
|
|
|
.post-password-form {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
|
|
&__label {
|
|
width: 100%;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
input[type="password"] {
|
|
flex-grow: 1;
|
|
margin-top: calc(var(--global--spacing-vertical) / 3);
|
|
margin-right: calc(0.66 * var(--global--spacing-horizontal));
|
|
}
|
|
|
|
&__submit {
|
|
margin-top: calc(var(--global--spacing-vertical) / 3);
|
|
@include media(tablet) {
|
|
margin-left: calc(0.4 * var(--global--spacing-horizontal));
|
|
}
|
|
}
|
|
}
|