mirror of
https://github.com/picocss/pico.git
synced 2025-04-22 09:26:14 -04:00
made dropdown appearance inline with form controls
This commit is contained in:
parent
30ff7bc212
commit
7fb60da1e0
16 changed files with 116 additions and 167 deletions
|
@ -1841,7 +1841,6 @@ details[open] > summary::after {
|
|||
article {
|
||||
margin: var(--block-spacing-vertical) 0;
|
||||
padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
|
||||
overflow: hidden;
|
||||
border-radius: var(--border-radius);
|
||||
background: var(--card-background-color);
|
||||
box-shadow: var(--card-box-shadow);
|
||||
|
@ -2058,13 +2057,16 @@ details[role=list] {
|
|||
}
|
||||
details[role=list] summary {
|
||||
margin-bottom: 0;
|
||||
padding: calc(var(--spacing) * 0.5);
|
||||
padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
|
||||
border: var(--border-width) solid var(--form-element-border-color);
|
||||
border-radius: var(--border-radius);
|
||||
height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
|
||||
line-height: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
details[role=list] summary::after {
|
||||
transform: rotate(0deg);
|
||||
height: 100%;
|
||||
}
|
||||
details[role=list] summary + ul {
|
||||
z-index: 100;
|
||||
|
@ -2087,42 +2089,21 @@ details[role=list] summary + ul li {
|
|||
details[role=list] summary + ul li::marker {
|
||||
content: "";
|
||||
}
|
||||
details[role=list] summary + ul li input[type=radio],
|
||||
details[role=list] summary + ul li input[type=checkbox] {
|
||||
display: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
details[role=list] summary + ul li label {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: calc(var(--spacing) * 0.5);
|
||||
line-height: 1;
|
||||
padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
|
||||
}
|
||||
details[role=list] summary + ul li label:hover {
|
||||
background-color: var(--secondary-focus);
|
||||
}
|
||||
details[role=list] summary + ul li input:checked + label {
|
||||
background-color: var(--secondary-focus);
|
||||
}
|
||||
details[role=list] summary + ul li input[type=checkbox] + label:before {
|
||||
display: inline-block;
|
||||
width: calc(var(--spacing) * 1.2);
|
||||
height: calc(var(--spacing) * 1.2);
|
||||
margin-right: calc(var(--spacing) * 0.5);
|
||||
border: var(--border-width) solid var(--primary);
|
||||
border-radius: var(--border-radius);
|
||||
content: "";
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
details[role=list] summary + ul li input[type=checkbox]:checked + label:before {
|
||||
background-image: var(--icon-checkbox);
|
||||
background-position: center;
|
||||
background-size: calc(var(--spacing) * 0.8) auto;
|
||||
background-repeat: no-repeat;
|
||||
background-color: var(--primary);
|
||||
details[role=list] summary + ul li label input[type=radio],
|
||||
details[role=list] summary + ul li label input[type=checkbox] {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
details[role=list][disabled] summary, details[role=list].disabled summary {
|
||||
color: var(--muted-color);
|
||||
|
|
File diff suppressed because one or more lines are too long
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
File diff suppressed because one or more lines are too long
41
css/pico.css
41
css/pico.css
|
@ -2019,7 +2019,6 @@ details[open] > summary::after {
|
|||
article {
|
||||
margin: var(--block-spacing-vertical) 0;
|
||||
padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
|
||||
overflow: hidden;
|
||||
border-radius: var(--border-radius);
|
||||
background: var(--card-background-color);
|
||||
box-shadow: var(--card-box-shadow);
|
||||
|
@ -2332,13 +2331,16 @@ details[role=list] {
|
|||
}
|
||||
details[role=list] summary {
|
||||
margin-bottom: 0;
|
||||
padding: calc(var(--spacing) * 0.5);
|
||||
padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
|
||||
border: var(--border-width) solid var(--form-element-border-color);
|
||||
border-radius: var(--border-radius);
|
||||
height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
|
||||
line-height: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
details[role=list] summary::after {
|
||||
transform: rotate(0deg);
|
||||
height: 100%;
|
||||
}
|
||||
details[role=list] summary + ul {
|
||||
z-index: 100;
|
||||
|
@ -2361,42 +2363,21 @@ details[role=list] summary + ul li {
|
|||
details[role=list] summary + ul li::marker {
|
||||
content: "";
|
||||
}
|
||||
details[role=list] summary + ul li input[type=radio],
|
||||
details[role=list] summary + ul li input[type=checkbox] {
|
||||
display: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
details[role=list] summary + ul li label {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: calc(var(--spacing) * 0.5);
|
||||
line-height: 1;
|
||||
padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
|
||||
}
|
||||
details[role=list] summary + ul li label:hover {
|
||||
background-color: var(--secondary-focus);
|
||||
}
|
||||
details[role=list] summary + ul li input:checked + label {
|
||||
background-color: var(--secondary-focus);
|
||||
}
|
||||
details[role=list] summary + ul li input[type=checkbox] + label:before {
|
||||
display: inline-block;
|
||||
width: calc(var(--spacing) * 1.2);
|
||||
height: calc(var(--spacing) * 1.2);
|
||||
margin-right: calc(var(--spacing) * 0.5);
|
||||
border: var(--border-width) solid var(--primary);
|
||||
border-radius: var(--border-radius);
|
||||
content: "";
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
details[role=list] summary + ul li input[type=checkbox]:checked + label:before {
|
||||
background-image: var(--icon-checkbox);
|
||||
background-position: center;
|
||||
background-size: calc(var(--spacing) * 0.8) auto;
|
||||
background-repeat: no-repeat;
|
||||
background-color: var(--primary);
|
||||
details[role=list] summary + ul li label input[type=radio],
|
||||
details[role=list] summary + ul li label input[type=checkbox] {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
details[role=list][disabled] summary, details[role=list].disabled summary {
|
||||
color: var(--muted-color);
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1811,7 +1811,6 @@ details[open] > summary::after {
|
|||
article {
|
||||
margin: var(--block-spacing-vertical) 0;
|
||||
padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
|
||||
overflow: hidden;
|
||||
border-radius: var(--border-radius);
|
||||
background: var(--card-background-color);
|
||||
box-shadow: var(--card-box-shadow);
|
||||
|
@ -2028,13 +2027,16 @@ details[role=list] {
|
|||
}
|
||||
details[role=list] summary {
|
||||
margin-bottom: 0;
|
||||
padding: calc(var(--spacing) * 0.5);
|
||||
padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
|
||||
border: var(--border-width) solid var(--form-element-border-color);
|
||||
border-radius: var(--border-radius);
|
||||
height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
|
||||
line-height: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
details[role=list] summary::after {
|
||||
transform: rotate(0deg);
|
||||
height: 100%;
|
||||
}
|
||||
details[role=list] summary + ul {
|
||||
z-index: 100;
|
||||
|
@ -2057,42 +2059,21 @@ details[role=list] summary + ul li {
|
|||
details[role=list] summary + ul li::marker {
|
||||
content: "";
|
||||
}
|
||||
details[role=list] summary + ul li input[type=radio],
|
||||
details[role=list] summary + ul li input[type=checkbox] {
|
||||
display: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
details[role=list] summary + ul li label {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: calc(var(--spacing) * 0.5);
|
||||
line-height: 1;
|
||||
padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
|
||||
}
|
||||
details[role=list] summary + ul li label:hover {
|
||||
background-color: var(--secondary-focus);
|
||||
}
|
||||
details[role=list] summary + ul li input:checked + label {
|
||||
background-color: var(--secondary-focus);
|
||||
}
|
||||
details[role=list] summary + ul li input[type=checkbox] + label:before {
|
||||
display: inline-block;
|
||||
width: calc(var(--spacing) * 1.2);
|
||||
height: calc(var(--spacing) * 1.2);
|
||||
margin-right: calc(var(--spacing) * 0.5);
|
||||
border: var(--border-width) solid var(--primary);
|
||||
border-radius: var(--border-radius);
|
||||
content: "";
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
details[role=list] summary + ul li input[type=checkbox]:checked + label:before {
|
||||
background-image: var(--icon-checkbox);
|
||||
background-position: center;
|
||||
background-size: calc(var(--spacing) * 0.8) auto;
|
||||
background-repeat: no-repeat;
|
||||
background-color: var(--primary);
|
||||
details[role=list] summary + ul li label input[type=radio],
|
||||
details[role=list] summary + ul li label input[type=checkbox] {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
details[role=list][disabled] summary, details[role=list].disabled summary {
|
||||
color: var(--muted-color);
|
||||
|
|
File diff suppressed because one or more lines are too long
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
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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -20,29 +20,37 @@
|
|||
<article aria-label="Dropdown examples">
|
||||
<details role="list">
|
||||
<summary aria-haspopup="listbox">Single select</summary>
|
||||
<ul role="listbox">
|
||||
<li>
|
||||
<ul role="listbox">
|
||||
<li>
|
||||
<label for="01">
|
||||
<input type="radio" id="01" name="option1" />
|
||||
<label for="01">Option 1</label>
|
||||
</li>
|
||||
<li>
|
||||
Option 1
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label for="02">
|
||||
<input type="radio" id="02" name="option1" />
|
||||
<label for="02">Option 2</label>
|
||||
</li>
|
||||
</ul>
|
||||
Option 2
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</details>
|
||||
<details role="list">
|
||||
<summary aria-haspopup="listbox">Multi-select</summary>
|
||||
<ul role="listbox">
|
||||
<li>
|
||||
<ul role="listbox">
|
||||
<li>
|
||||
<label for="11">
|
||||
<input type="checkbox" id="11" name="option2" />
|
||||
<label for="11">Option 1</label>
|
||||
</li>
|
||||
<li>
|
||||
Option 1
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label for="12">
|
||||
<input type="checkbox" id="12" name="option2" />
|
||||
<label for="12">Option 2</label>
|
||||
</li>
|
||||
</ul>
|
||||
Option 2
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</details>
|
||||
</article>
|
||||
|
||||
|
@ -61,8 +69,9 @@
|
|||
<code>summary</code> tag text when any option selected.
|
||||
</li>
|
||||
<li>
|
||||
in case of single select, remove <code>open</code> attribute on <code>details</code> tag
|
||||
using javascript when an option is selected.
|
||||
in case of single select, remove <code>open</code> attribute on
|
||||
<code>details</code> tag using javascript when an option is
|
||||
selected.
|
||||
</li>
|
||||
</ul>
|
||||
<footer class="code">
|
||||
|
@ -73,12 +82,16 @@
|
|||
<<b>summary aria-haspopup="listbox"</b>>Single select<<b>/summary</b>>
|
||||
<<b>ul role="listbox"</b>>
|
||||
<<b>li</b>>
|
||||
<<b>input type="radio" id="01" name="option1" /</b>>
|
||||
<<b>label for="01"</b>>Option 1<<b>/label</b>>
|
||||
<<b>label for="01"</b>>
|
||||
<<b>input type="radio" id="01" name="option1" /</b>>
|
||||
Option 1
|
||||
<<b>/label</b>>
|
||||
<<b>/li</b>>
|
||||
<<b>li</b>>
|
||||
<<b>input type="radio" id="02" name="option1" /</b>>
|
||||
<<b>label for="02"</b>>Option 2<<b>/label</b>>
|
||||
<<b>label for="02"</b>>
|
||||
<<b>input type="radio" id="02" name="option1" /</b>>
|
||||
Option 2
|
||||
<<b>/label</b>>
|
||||
<<b>/li</b>>
|
||||
<<b>/ul</b>>
|
||||
<<b>/details</b>>
|
||||
|
@ -89,12 +102,16 @@
|
|||
<<b>summary aria-haspopup="listbox"</b>>Multi select<<b>/summary</b>>
|
||||
<<b>ul role="listbox"</b>>
|
||||
<<b>li</b>>
|
||||
<<b>input type="checkbox" id="01" name="option1" /</b>>
|
||||
<<b>label for="01"</b>>Option 1<<b>/label</b>>
|
||||
<<b>label for="01"</b>>
|
||||
<<b>input type="checkbox" id="01" name="option1" /</b>>
|
||||
Option 1
|
||||
<<b>/label</b>>
|
||||
<<b>/li</b>>
|
||||
<<b>li</b>>
|
||||
<<b>input type="checkbox" id="02" name="option1" /</b>>
|
||||
<<b>label for="02"</b>>Option 2<<b>/label</b>>
|
||||
<<b>label for="01"</b>>
|
||||
<<b>input type="checkbox" id="02" name="option1" /</b>>
|
||||
Option 2
|
||||
<<b>/label</b>>
|
||||
<<b>/li</b>>
|
||||
<<b>/ul</b>>
|
||||
<<b>/details</b>>
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
article {
|
||||
margin: var(--block-spacing-vertical) 0;
|
||||
padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
|
||||
overflow: hidden;
|
||||
border-radius: var(--border-radius);
|
||||
background: var(--card-background-color);
|
||||
box-shadow: var(--card-box-shadow);
|
||||
|
|
|
@ -5,13 +5,20 @@ details[role='list'] {
|
|||
|
||||
summary {
|
||||
margin-bottom: 0;
|
||||
padding: calc(var(--spacing) * 0.5);
|
||||
padding: var(--form-element-spacing-vertical)
|
||||
var(--form-element-spacing-horizontal);
|
||||
border: var(--border-width) solid var(--form-element-border-color);
|
||||
border-radius: var(--border-radius);
|
||||
height: calc(
|
||||
1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 +
|
||||
var(--border-width) * 2
|
||||
);
|
||||
line-height: inherit;
|
||||
cursor: pointer;
|
||||
|
||||
&::after {
|
||||
transform: rotate(0deg);
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
& + ul {
|
||||
|
@ -35,45 +42,20 @@ details[role='list'] {
|
|||
content: '';
|
||||
}
|
||||
|
||||
input[type='radio'],
|
||||
input[type='checkbox'] {
|
||||
display: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: calc(var(--spacing) * 0.5);
|
||||
line-height: 1;
|
||||
padding: var(--form-element-spacing-vertical)
|
||||
var(--form-element-spacing-horizontal);
|
||||
&:hover {
|
||||
background-color: var(--secondary-focus);
|
||||
}
|
||||
}
|
||||
|
||||
input:checked + label {
|
||||
background-color: var(--secondary-focus);
|
||||
}
|
||||
|
||||
input[type='checkbox'] {
|
||||
& + label:before {
|
||||
display: inline-block;
|
||||
width: calc(var(--spacing) * 1.2);
|
||||
height: calc(var(--spacing) * 1.2);
|
||||
margin-right: calc(var(--spacing) * 0.5);
|
||||
border: var(--border-width) solid var(--primary);
|
||||
border-radius: var(--border-radius);
|
||||
content: '';
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
&:checked + label:before {
|
||||
background-image: var(--icon-checkbox);
|
||||
background-position: center;
|
||||
background-size: calc(var(--spacing) * 0.8) auto;
|
||||
background-repeat: no-repeat;
|
||||
background-color: var(--primary);
|
||||
input[type='radio'],
|
||||
input[type='checkbox'] {
|
||||
appearance: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue