refactor: lint

This commit is contained in:
Lucas Larroche 2024-01-27 13:53:19 +07:00
parent 672b67896c
commit 7487498805
53 changed files with 1789 additions and 1078 deletions

View file

@ -1,11 +1,8 @@
<!doctype html>
<!DOCTYPE html>
<html lang="en">
<head>
${require('./_head.html')
title=`Dropdowns`
description=`Dropdown menus and custom selects without JavaScript.`
canonical=`dropdowns.html`
}
${require('./_head.html') title=`Dropdowns` description=`Dropdown menus and
custom selects without JavaScript.` canonical=`dropdowns.html` }
</head>
<body>
@ -20,15 +17,31 @@
<h1>Dropdowns</h1>
<h2>Dropdown menus and custom selects without JavaScript.</h2>
</hgroup>
<p>Dropdowns are built with <code>&lt;<b>details</b> <i>role</i>=<u>"list"</u>&gt;</code> as a wrapper and <code>&lt;<b>summary</b>&gt;</code> and <code>&lt;<b>ul</b>&gt;</code> as direct children.</p>
<p>For style consistency with the form elements, dropdowns are styled like a <a href="forms.html">&lt;select&gt;</a> by default.</p>
<p>
Dropdowns are built with
<code>&lt;<b>details</b> <i>role</i>=<u>"list"</u>&gt;</code> as a
wrapper and <code>&lt;<b>summary</b>&gt;</code> and
<code>&lt;<b>ul</b>&gt;</code> as direct children.
</p>
<p>
For style consistency with the form elements, dropdowns are styled
like a <a href="forms.html">&lt;select&gt;</a> by default.
</p>
<article aria-label="Dropdowns as Selects">
<details role="list">
<summary aria-haspopup="listbox">Dropdown</summary>
<ul role="listbox">
<li><a href="#" onclick="event.preventDefault()">Action</a></li>
<li><a href="#" onclick="event.preventDefault()">Another action</a></li>
<li><a href="#" onclick="event.preventDefault()">Something else here</a></li>
<li>
<a href="#" onclick="event.preventDefault()"
>Another action</a
>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Something else here</a
>
</li>
</ul>
</details>
<select required>
@ -38,8 +51,7 @@
<option>Something else here</option>
</select>
<footer class="code">
<pre><code><em>&lt;!-- Dropdown --&gt;</em>
<pre><code><em>&lt;!-- Dropdown --&gt;</em>
&lt;<b>details</b> <i>role</i>=<u>"list"</u>&gt;
&lt;<b>summary</b> <i>aria-haspopup</i>=<u>"listbox"</u>&gt;Dropdown&lt;/<b>summary</b>&gt;
&lt;<b>ul</b> <i>role</i>=<u>"listbox"</u>&gt;
@ -50,43 +62,74 @@
&lt;/<b>details</b>&gt;
<em>&lt;!-- Select --&gt;</em>
&lt;<b>select</b></u>&gt;
&lt;<b>select</b>&gt;
&lt;<b>option</b> <i>value</i>=<u>""</u> <i>disabled selected</i>&gt;Select&lt;/<b>option</b>&gt;
&lt;<b>option</b>&gt;&lt;/<b>option</b>&gt;
&lt;/<b>select</b>&gt;
</code></pre>
</footer>
</footer>
</article>
<p><code>&lt;<b>summary</b> <i>role</i>=<u>"button"</u>&gt;</code> transforms the dropdown into a button.</p>
<p>
<code>&lt;<b>summary</b> <i>role</i>=<u>"button"</u>&gt;</code>
transforms the dropdown into a button.
</p>
<article aria-label="Dropdowns as Buttons">
<details role="list">
<summary aria-haspopup="listbox" role="button">Dropdown as a button 1</summary>
<summary aria-haspopup="listbox" role="button">
Dropdown as a button 1
</summary>
<ul role="listbox">
<li><a href="#" onclick="event.preventDefault()">Action</a></li>
<li><a href="#" onclick="event.preventDefault()">Another action</a></li>
<li><a href="#" onclick="event.preventDefault()">Something else here</a></li>
<li>
<a href="#" onclick="event.preventDefault()"
>Another action</a
>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Something else here</a
>
</li>
</ul>
</details>
<details role="list">
<summary aria-haspopup="listbox" role="button" class="secondary">Dropdown as a button 2</summary>
<summary aria-haspopup="listbox" role="button" class="secondary">
Dropdown as a button 2
</summary>
<ul role="listbox">
<li><a href="#" onclick="event.preventDefault()">Action</a></li>
<li><a href="#" onclick="event.preventDefault()">Another action</a></li>
<li><a href="#" onclick="event.preventDefault()">Something else here</a></li>
<li>
<a href="#" onclick="event.preventDefault()"
>Another action</a
>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Something else here</a
>
</li>
</ul>
</details>
<details role="list">
<summary aria-haspopup="listbox" role="button" class="contrast">Dropdown as a button 3</summary>
<summary aria-haspopup="listbox" role="button" class="contrast">
Dropdown as a button 3
</summary>
<ul role="listbox">
<li><a href="#" onclick="event.preventDefault()">Action</a></li>
<li><a href="#" onclick="event.preventDefault()">Another action</a></li>
<li><a href="#" onclick="event.preventDefault()">Something else here</a></li>
<li>
<a href="#" onclick="event.preventDefault()"
>Another action</a
>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Something else here</a
>
</li>
</ul>
</details>
<footer class="code">
<pre><code><em>&lt;!-- Primary --&gt;</em>
<pre><code><em>&lt;!-- Primary --&gt;</em>
&lt;<b>details</b> <i>role</i>=<u>"list"</u>&gt;
&lt;<b>summary</b> <i>aria-haspopup</i>=<u>"listbox"</u> <i>role</i>=<u>"button"</u>&gt;
Dropdown as a button 1
@ -122,10 +165,13 @@
&lt;/<b>ul</b>&gt;
&lt;/<b>details</b>&gt;
</code></pre>
</footer>
</footer>
</article>
<p>Dropdowns can be used as custom selects with <code>&lt;<b>input</b> <i>type</i>=<u>"radio"</u>&gt;</code> or <code>&lt;<b>input</b> <i>type</i>=<u>"checkbox"</u>&gt;</code></p>
<p>
Dropdowns can be used as custom selects with
<code>&lt;<b>input</b> <i>type</i>=<u>"radio"</u>&gt;</code> or
<code>&lt;<b>input</b> <i>type</i>=<u>"checkbox"</u>&gt;</code>
</p>
<article aria-label="Dropdowns with radio buttons or checkboxes">
<details role="list">
<summary aria-haspopup="listbox">Select single element</summary>
@ -138,7 +184,12 @@
</li>
<li>
<label for="medium">
<input type="radio" id="medium" name="size" value="medium" />
<input
type="radio"
id="medium"
name="size"
value="medium"
/>
Medium
</label>
</li>
@ -151,7 +202,9 @@
</ul>
</details>
<details role="list">
<summary aria-haspopup="listbox">Select multiple elements</summary>
<summary aria-haspopup="listbox">
Select multiple elements
</summary>
<ul role="listbox">
<li>
<label>
@ -174,8 +227,7 @@
</ul>
</details>
<footer class="code">
<pre><code><em>&lt;!-- With radio buttons --&gt;</em>
<pre><code><em>&lt;!-- With radio buttons --&gt;</em>
&lt;<b>details</b> <i>role</i>=<u>"list"</u>&gt;
&lt;<b>summary</b> <i>aria-haspopup</i>=<u>"listbox"</u>&gt;Dropdown&lt;/<b>summary</b>&gt;
&lt;<b>ul</b> <i>role</i>=<u>"listbox"</u>&gt;
@ -224,10 +276,14 @@
&lt;/<b>li</b>&gt;
&lt;/<b>ul</b>&gt;
&lt;/<b>details</b>&gt;
</footer>
</code></pre>
</footer>
</article>
<p>Dropdowns can be used inside a <a href="navs.html">&lt;nav&gt;</a> with a nested <code>&lt;<b>details</b> <i>role</i>=<u>"list"</u>&gt;</code></p>
<p>
Dropdowns can be used inside a
<a href="navs.html">&lt;nav&gt;</a> with a nested
<code>&lt;<b>details</b> <i>role</i>=<u>"list"</u>&gt;</code>
</p>
<p>Example with a dropdown as a link:</p>
<article aria-label="Dropdowns inside a nav">
<nav>
@ -238,19 +294,30 @@
<li><a href="#" onclick="event.preventDefault()">Link</a></li>
<li>
<details role="list" dir="rtl">
<summary aria-haspopup="listbox" role="link">Dropdown</summary>
<summary aria-haspopup="listbox" role="link">
Dropdown
</summary>
<ul role="listbox">
<li><a href="#" onclick="event.preventDefault()">Action</a></li>
<li><a href="#" onclick="event.preventDefault()">Another action</a></li>
<li><a href="#" onclick="event.preventDefault()">Something else here</a></li>
<li>
<a href="#" onclick="event.preventDefault()">Action</a>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Another action</a
>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Something else here</a
>
</li>
</ul>
</details>
</li>
</ul>
</nav>
<footer class="code">
<pre><code>&lt;<b>nav</b>&gt;
<pre><code>&lt;<b>nav</b>&gt;
&lt;<b>ul</b>&gt;
&lt;<b>li</b>&gt;&lt;<b>strong</b>&gt;Brand&lt;/<b>strong</b>&gt;&lt;/<b>li</b>&gt;
&lt;/<b>ul</b>&gt;
@ -268,8 +335,7 @@
&lt;/<b>li</b>&gt;
&lt;/<b>ul</b>&gt;
&lt;/<b>nav</b>&gt;</code></pre>
</footer>
</footer>
</article>
<p>Example with a default dropdown and a dropdown as a button:</p>
<article aria-label="Dropdowns inside a nav">
@ -279,27 +345,48 @@
<details role="list">
<summary aria-haspopup="listbox">Dropdown</summary>
<ul role="listbox">
<li><a href="#" onclick="event.preventDefault()">Action</a></li>
<li><a href="#" onclick="event.preventDefault()">Another action</a></li>
<li><a href="#" onclick="event.preventDefault()">Something else here</a></li>
<li>
<a href="#" onclick="event.preventDefault()">Action</a>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Another action</a
>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Something else here</a
>
</li>
</ul>
</details>
</li>
<li>
<details role="list">
<summary aria-haspopup="listbox" role="button">Dropdown</summary>
<summary aria-haspopup="listbox" role="button">
Dropdown
</summary>
<ul role="listbox">
<li><a href="#" onclick="event.preventDefault()">Action</a></li>
<li><a href="#" onclick="event.preventDefault()">Another action</a></li>
<li><a href="#" onclick="event.preventDefault()">Something else here</a></li>
<li>
<a href="#" onclick="event.preventDefault()">Action</a>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Another action</a
>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Something else here</a
>
</li>
</ul>
</details>
</li>
</ul>
</nav>
<footer class="code">
<pre><code>&lt;<b>nav</b>&gt;
<pre><code>&lt;<b>nav</b>&gt;
&lt;<b>ul</b>&gt;
&lt;<b>li</b>&gt;
&lt;<b>details</b> <i>role</i>=<u>"list"</u>&gt;
@ -323,11 +410,17 @@
&lt;/<b>li</b>&gt;
&lt;/<b>ul</b>&gt;
&lt;/<b>nav</b>&gt;</code></pre>
</footer>
</footer>
</article>
<p>You can also use <code>&lt;<b>li</b> <i>role</i>=<u>"list"</u>&gt;</code> as a nested wrapper to render a list as a dropdown.</p>
<p>&nbsp;This syntax is experimental. In this version, the dropdown menu is triggered on hover.</p>
<p>
You can also use
<code>&lt;<b>li</b> <i>role</i>=<u>"list"</u>&gt;</code> as a nested
wrapper to render a list as a dropdown.
</p>
<p>
&nbsp;This syntax is experimental. In this version, the dropdown
menu is triggered on hover.
</p>
<article aria-label="Dropdowns inside a nav">
<nav>
<ul>
@ -337,18 +430,32 @@
<li><a href="#" onclick="event.preventDefault()">Link</a></li>
<li><a href="#" onclick="event.preventDefault()">Link</a></li>
<li role="list" dir="rtl">
<a href="#" onclick="event.preventDefault()" aria-haspopup="listbox">Dropdown</a>
<a
href="#"
onclick="event.preventDefault()"
aria-haspopup="listbox"
>Dropdown</a
>
<ul role="listbox">
<li><a href="#" onclick="event.preventDefault()">Action</a></li>
<li><a href="#" onclick="event.preventDefault()">Another action</a></li>
<li><a href="#" onclick="event.preventDefault()">Something else here</a></li>
<li>
<a href="#" onclick="event.preventDefault()">Action</a>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Another action</a
>
</li>
<li>
<a href="#" onclick="event.preventDefault()"
>Something else here</a
>
</li>
</ul>
</li>
</ul>
</nav>
<footer class="code">
<pre><code>&lt;<b>nav</b>&gt;
<pre><code>&lt;<b>nav</b>&gt;
&lt;<b>ul</b>&gt;
&lt;<b>li</b>&gt;&lt;<b>strong</b>&gt;Brand&lt;/<b>strong</b>&gt;&lt;/<b>li</b>&gt;
&lt;/<b>ul</b>&gt;
@ -365,13 +472,11 @@
&lt;/<b>li</b>&gt;
&lt;/<b>ul</b>&gt;
&lt;/<b>nav</b>&gt;</code></pre>
</footer>
</footer>
</article>
</section>
${require('./_footer.html')}
</div>
</main>
<script src="js/commons.min.js"></script>