swarm-ui: dropdowns open a themed list of their own instead of the browser's
SelectField and the refresh-interval picker are built on a new Listbox, a select-only combobox: a button that keeps focus and a listbox in the top layer, so it works the same in every current browser, is not clipped by a scrolling ancestor and shows above a modal dialog. Keys, type-ahead and placement are pure functions with tests. required becomes aria-required, as a button has no native form validation.
This commit is contained in:
parent
88053f437c
commit
a2e8a2bda0
9 changed files with 653 additions and 66 deletions
|
|
@ -11,6 +11,15 @@ The signed-in user's avatar sits at the right end of the header on every page.
|
|||
It opens a menu with the user's name and links to authelia's settings and
|
||||
sign-out pages; the hive dashboard and the per-agent page have the same menu.
|
||||
|
||||
Every dropdown (a form's select, the refresh interval, the history window) opens a
|
||||
list in the swarm UI's own theme, not the browser's, and works the same in every
|
||||
current browser. Open it with a click, or with the arrow keys, **Enter** or
|
||||
**Space** while it has focus. Then the arrow keys, **Home**, **End**, **Page Up**
|
||||
and **Page Down** move through the options, and **Enter**, **Space** or a click take
|
||||
the highlighted one. **Escape**, **Tab** or a click elsewhere shut the list without
|
||||
changing anything. Typing the start of an option's name picks it, also with the list
|
||||
shut. A dropdown inside a dialog opens above the dialog and the dialog doesn't cut it off.
|
||||
|
||||
| route | what |
|
||||
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `/` | the start page: the swarm's name over a digital-rain backdrop, plus a paperclip offering to set up an agent while no `ruth` exists (it opens the create form with `ruth` filled in); the swarm name in the header links here |
|
||||
|
|
|
|||
Loading…
Reference in a new issue