| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- 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));
- }
- }
- }
|