Repository navigation
Releases: stamat/book-of-elementals
Release list
v3.5.4
Changed
dist/is no longer committed to git. The npm package still ships it, built byprepack, so npm, unpkg and jsDelivr/npm/links are unchanged; jsDelivr/gh/links and installs straight from GitHub (github:stamat/book-of-elementals) get nodist/from the next tag on, so the bundles and every*.cssexport are missing there β use the npm package.
What's Changed
- wait for preview elements to register before calling them dead by @koyev in #10
- stop tracking dist, the npm package builds it on prepack by @koyev in #9
- Bump the development group across 1 directory with 9 updates by @dependabot[bot] in #5
Full Changelog: v3.5.3...v3.5.4
v3.5.3
v3.5.2
Changed
<combobox-elemental>withmultipleandmin-charskeeps a popup the caret or a key
opened across picks. Only one that typing opened closes on a pick, since only there did
the pick empty the query the reader was waiting on.<combobox-elemental>'s caret is a square one row tall, pinned to the field's top end and
over its border, rather than a glyph-sized target that rode the last row of chips down.
CSS: the glyph is.combobox-elemental-indicator::beforerather than amaskon the
button, the field reserves the square withpadding-inline-end, and a chip carries
margin-block: -0.1em.- The no-zoom
font-size: max(16px, 1em)moved from.combobox-elemental-inputto
.combobox-elemental-field, so the chips, the typed text and the caret are one size.
CSS: an override taking the floor back targets the field now β one on the input alone
resolves against the floored field and does nothing.
Fixed
<marquee-elemental>copies can be hovered and clicked. They wereinert, which is not
hit-tested, so after the first lap most logos on the strip were links that did nothing.
DOM:[data-marquee-clone]is no longerinert; everything focusable in it gets
tabindex="-1", which keeps it out of Tab as before.<marquee-elemental>holds still where it was hovered, in Safari too. After enough holds
Safari froze a paused lap on the time of its last resume, so the strip snapped back under the
pointer and jumped ahead on leaving. CSS: the hold is the script's, which pins the time β
theanimation-play-staterules are gone fromstyle.scss, and one a page sets on the strip
stops reaching it once the element has held it.
Full Changelog: v3.5.1...v3.5.2
v3.5.1
Fixed
<combobox-elemental>with bothmultipleandmin-charscloses its popup on a pick.
The pick empties the query itself, so the list that stayed open was the whole list under a
field that had asked for a query.
Full Changelog: v3.5.0...v3.5.1
v3.5.0
Added
-
<combobox-elemental>can be told to wait for a query:min-chars="2". The popup stays
shut until two characters have been typed, so a list nobody browses stops answering a click
with a thousand rows over the page; the caret and Alt+Down open it
whatever the query. -
<carousel-elemental>takes slides that are not<li>s. With no<ul>,<ol>or
<menu>among its children, the element's first child is the scroller and that child's
children are the slides.<div>slides clear axe'saria-allowed-role: therole="group"
the APG asks of a slide is allowed on a<div>and not on an<li>. DOM: no
role="group"on a scroller that is not a list.
Changed
-
A
multiplecombobox is given the caret as well. Chips say the control holds several
values, where a caret says there is a list behind the field β and withmin-charsset it is
the only thing a pointer can open that list with. DOM: every combobox now writes
<button class="combobox-elemental-indicator">, not only a single select. -
A
multiple's options are marked with a leading checkbox instead of a trailing tick. A
tick is a record of what was chosen; a box says the row can be ticked, which is what a
reader needs to know before the first pick. CSS: inside
.combobox-elemental-list[aria-multiselectable="true"]the options grow a::beforebox and
the selected row's::aftertick moves to the leading edge withorder; the box reads
--checkbox-elemental-*with its own fallbacks, so it matches the drawn checkbox where a
page sets those and is drawn anyway where it does not. -
The scroller is now a child of the element, not the first list anywhere inside it. A
<ul>inside a slide was found first and driven as the row; a scroller nested deeper never
got the row's layout, which comes fromcarousel-elemental > [data-carousel-slides].
Fixed
<combobox-elemental>'s popup no longer scrolls away from the pointer. Pointing at a
row half cut off by the scroller's edge scrolled it fully into view, which moved the list
under a still pointer and put the next row there to be scrolled to in turn β worst with the
popup opened upwards, where the page scrolled along with it. Only a cursor moved by a key
is scrolled to now; the row under the pointer is on screen by definition.
Full Changelog: v3.4.3...v3.5.0
v3.4.3
Fixed
<marquee-elemental>no longer snaps back to the start of its lap in Safari. WebKit
reports a translated box up to 5/16px wider than its layout box and hands that difference to
ResizeObserver, which the element took for a resize and rebuilt the strip over β and a
rebuild restarts the lap; a measurement now has to move a whole pixel to count as one.
Full Changelog: v3.4.2...v3.4.3
v3.4.2
Changed
<password-elemental>'s themed icon is back to showing the next action, reverting
[3.4.1]: an open eye while the value is masked, a crossed-out one while it is on screen.
CSS: the theme's::beforemask only; a page supplying its own icon with
content: nonenever saw either direction.
I briefly hallucinated at 2AM...
Full Changelog: v3.4.1...v3.4.2
v3.4.1
Changed
<password-elemental>'s themed icon now shows the state, not the next action. A closed
eye while the value is masked, an open one while it is on screen β the way round every
password field the reader has already used. CSS: only the theme's::beforemask
changed; a page supplying its own icon withcontent: noneis untouched.
Full Changelog: v3.4.0...v3.4.1
v3.4.0
Changed
<marquee-elemental>holds its lap while it is off the screen. An infinite loop is the
one animation here that never ends on its own, so a strip below the fold was the compositor
moving pixels nobody was looking at for as long as the tab stayed open. CSS: a new
data-marquee-offscreenon the element while it is out of the viewport plus 200px β separate
fromdata-marquee-pausedso the button's name and the reader's own pause survive a scroll
past, and the strip resumes where it stopped.<carousel-elemental autoplay>holds its rotation while it is off the screen. A timer
ticking below the fold advances slides for nobody and hands back a carousel parked mid-set.
Unlike hover and focus, this hold is not lifted by a rotation the reader started by hand β
there is nobody at the carousel to have asked. DOM:data-carousel-rotatingcomes off
while it is held, as it already does under a pointer.
Fixed
- A scrolled row no longer traps the page's scroll in Safari. Safari holds a wheel gesture
on the last scroller it moved, so side-wheeling a row left the page motionless under the
pointer; a row now hands Safari back a vertical wheel it has no range to use. Safari only β
every other browser already does this and is untouched.
Full Changelog: v3.3.0...v3.4.0
v3.3.0
Changed
- The toolbar's arrows walk onto a
<select>now, and it joins the bar's single tab
stop. A select in a bar was a control the walk stepped past and a second tab stop
beside "one tab stop for the row" β the walk claims the bar's axis and
Home/End, the cross axis stays the select's, so on a horizontal
bar β still opens and steps its list. DOM: the element now writes
tabindexon selects inside it, the way it always has on buttons and links; engines
that spend the bar's axis on a closed select β Windows' arrows β lose that to the walk,
with the costs on the docs page.
Fixed
- 3.2.0's tarball is whole again for source importers:
src/watch-query.jsships. The
file the disclosure'scontainer:support was extracted into never joined thefiles
allowlist, so a consumer bundling fromsrc/β the way this package documents β got an
unresolvable import;distconsumers never noticed, which is how it slipped out.
Full Changelog: v3.2.1...v3.3.0