mirror of
https://github.com/picocss/pico.git
synced 2025-04-22 09:26:14 -04:00
Define validation states with aria-invalid
This commit is contained in:
parent
c49273df6c
commit
d49c7ffcf2
10 changed files with 95 additions and 39 deletions
|
@ -1035,6 +1035,27 @@ textarea[disabled] {
|
|||
opacity: .66;
|
||||
}
|
||||
|
||||
input[aria-invalid],
|
||||
select[aria-invalid],
|
||||
textarea[aria-invalid] {
|
||||
padding-right: 2rem;
|
||||
background-position: center right .75rem;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1rem auto;
|
||||
}
|
||||
|
||||
input[aria-invalid="false"],
|
||||
select[aria-invalid="false"],
|
||||
textarea[aria-invalid="false"] {
|
||||
background-image: var(--icon-valid);
|
||||
}
|
||||
|
||||
input[aria-invalid="true"],
|
||||
select[aria-invalid="true"],
|
||||
textarea[aria-invalid="true"] {
|
||||
background-image: var(--icon-invalid);
|
||||
}
|
||||
|
||||
input:not([type="checkbox"]):not([type="radio"]),
|
||||
select,
|
||||
textarea {
|
||||
|
|
2
css/pico.classless.min.css
vendored
2
css/pico.classless.min.css
vendored
File diff suppressed because one or more lines are too long
28
css/pico.css
28
css/pico.css
|
@ -977,7 +977,7 @@ a[role="button"].contrast:focus {
|
|||
|
||||
button.outline,
|
||||
input[type="submit"].outline,
|
||||
a.outline[role="button"] {
|
||||
a[role="button"].outline {
|
||||
border: var(--button-border-width) solid var(--primary-border);
|
||||
background-color: transparent;
|
||||
color: var(--primary);
|
||||
|
@ -987,9 +987,9 @@ button.outline:hover, button.outline:active, button.outline:focus,
|
|||
input[type="submit"].outline:hover,
|
||||
input[type="submit"].outline:active,
|
||||
input[type="submit"].outline:focus,
|
||||
a.outline[role="button"]:hover,
|
||||
a.outline[role="button"]:active,
|
||||
a.outline[role="button"]:focus {
|
||||
a[role="button"].outline:hover,
|
||||
a[role="button"].outline:active,
|
||||
a[role="button"].outline:focus {
|
||||
border: var(--button-border-width) solid var(--primary-hover-border);
|
||||
color: var(--primary-hover);
|
||||
}
|
||||
|
@ -1230,26 +1230,24 @@ textarea[disabled] {
|
|||
opacity: .66;
|
||||
}
|
||||
|
||||
input.valid, input.invalid,
|
||||
select.valid,
|
||||
select.invalid,
|
||||
textarea.valid,
|
||||
textarea.invalid {
|
||||
input[aria-invalid],
|
||||
select[aria-invalid],
|
||||
textarea[aria-invalid] {
|
||||
padding-right: 2rem;
|
||||
background-position: center right .75rem;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1rem auto;
|
||||
}
|
||||
|
||||
input.valid,
|
||||
select.valid,
|
||||
textarea.valid {
|
||||
input[aria-invalid="false"],
|
||||
select[aria-invalid="false"],
|
||||
textarea[aria-invalid="false"] {
|
||||
background-image: var(--icon-valid);
|
||||
}
|
||||
|
||||
input.invalid,
|
||||
select.invalid,
|
||||
textarea.invalid {
|
||||
input[aria-invalid="true"],
|
||||
select[aria-invalid="true"],
|
||||
textarea[aria-invalid="true"] {
|
||||
background-image: var(--icon-invalid);
|
||||
}
|
||||
|
||||
|
|
|
@ -1031,6 +1031,27 @@ textarea[disabled] {
|
|||
opacity: .66;
|
||||
}
|
||||
|
||||
input[aria-invalid],
|
||||
select[aria-invalid],
|
||||
textarea[aria-invalid] {
|
||||
padding-right: 2rem;
|
||||
background-position: center right .75rem;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1rem auto;
|
||||
}
|
||||
|
||||
input[aria-invalid="false"],
|
||||
select[aria-invalid="false"],
|
||||
textarea[aria-invalid="false"] {
|
||||
background-image: var(--icon-valid);
|
||||
}
|
||||
|
||||
input[aria-invalid="true"],
|
||||
select[aria-invalid="true"],
|
||||
textarea[aria-invalid="true"] {
|
||||
background-image: var(--icon-invalid);
|
||||
}
|
||||
|
||||
input:not([type="checkbox"]):not([type="radio"]),
|
||||
select,
|
||||
textarea {
|
||||
|
|
2
css/pico.fluid.classless.min.css
vendored
2
css/pico.fluid.classless.min.css
vendored
File diff suppressed because one or more lines are too long
2
css/pico.min.css
vendored
2
css/pico.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -1038,6 +1038,27 @@ textarea[disabled] {
|
|||
opacity: .66;
|
||||
}
|
||||
|
||||
input[aria-invalid],
|
||||
select[aria-invalid],
|
||||
textarea[aria-invalid] {
|
||||
padding-right: 2rem;
|
||||
background-position: center right .75rem;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1rem auto;
|
||||
}
|
||||
|
||||
input[aria-invalid="false"],
|
||||
select[aria-invalid="false"],
|
||||
textarea[aria-invalid="false"] {
|
||||
background-image: var(--icon-valid);
|
||||
}
|
||||
|
||||
input[aria-invalid="true"],
|
||||
select[aria-invalid="true"],
|
||||
textarea[aria-invalid="true"] {
|
||||
background-image: var(--icon-invalid);
|
||||
}
|
||||
|
||||
input:not([type="checkbox"]):not([type="radio"]),
|
||||
select,
|
||||
textarea {
|
||||
|
|
2
css/pico.slim.min.css
vendored
2
css/pico.slim.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -710,14 +710,14 @@
|
|||
<p>Disabled and validation states:</p>
|
||||
<article aria-label="Validation states examples">
|
||||
<form class="grid">
|
||||
<input type="text" placeholder="Valid" aria-label="Valid" class="valid">
|
||||
<input type="text" placeholder="Invalid" aria-label="Invalid" class="invalid">
|
||||
<input type="text" placeholder="Valid" aria-label="Valid" aria-invalid="false">
|
||||
<input type="text" placeholder="Invalid" aria-label="Invalid" aria-invalid="true">
|
||||
<input type="text" placeholder="Disabled" aria-label="Disabled" disabled>
|
||||
<input type="text" value="Readonly" aria-label="Readonly" readonly>
|
||||
</form>
|
||||
|
||||
<pre><code><<b>input</b> <i>type</i>=<u>"text"</u> <i>placeholder</i>=<u>"Valid"</u> <i>class</i>=<u>"valid"</u>>
|
||||
<<b>input</b> <i>type</i>=<u>"text"</u> <i>placeholder</i>=<u>"Invalid"</u> <i>class</i>=<u>"invalid"</u>>
|
||||
<pre><code><<b>input</b> <i>type</i>=<u>"text"</u> <i>placeholder</i>=<u>"Valid"</u> <i>aria-invalid</i>=<u>"false"</u>>
|
||||
<<b>input</b> <i>type</i>=<u>"text"</u> <i>placeholder</i>=<u>"Invalid"</u> <i>aria-invalid</i>=<u>"true"</u>>
|
||||
<<b>input</b> <i>type</i>=<u>"text"</u> <i>placeholder</i>=<u>"Disabled"</u> <i>disabled</i>>
|
||||
<<b>input</b> <i>type</i>=<u>"text"</u> <i>value</i>=<u>"Readonly"</u> <i>readonly</i>></code></pre>
|
||||
|
||||
|
|
|
@ -221,24 +221,19 @@ textarea {
|
|||
}
|
||||
|
||||
// Validation states
|
||||
@if $enable-input-states and $enable-classes {
|
||||
&[aria-invalid] {
|
||||
padding-right: 2rem;
|
||||
background-position: center right .75rem;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1rem auto;
|
||||
}
|
||||
|
||||
// Validation states
|
||||
&.valid,
|
||||
&.invalid {
|
||||
padding-right: 2rem;
|
||||
background-position: center right .75rem;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1rem auto;
|
||||
}
|
||||
&[aria-invalid="false"] {
|
||||
background-image: var(--icon-valid);
|
||||
}
|
||||
|
||||
&.valid {
|
||||
background-image: var(--icon-valid);
|
||||
}
|
||||
|
||||
&.invalid {
|
||||
background-image: var(--icon-invalid);
|
||||
}
|
||||
&[aria-invalid="true"]{
|
||||
background-image: var(--icon-invalid);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue