Skip to content

Releases: stamat/book-of-elementals

v3.5.4

Choose a tag to compare

@stamat stamat released this 21 Oct 00:55

Changed

  • dist/ is no longer committed to git. The npm package still ships it, built by prepack, so npm, unpkg and jsDelivr /npm/ links are unchanged; jsDelivr /gh/ links and installs straight from GitHub (github:stamat/book-of-elementals) get no dist/ from the next tag on, so the bundles and every *.css export 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

Choose a tag to compare

@stamat stamat released this 14 Oct 12:05
4a40df0

What's Changed

  • resolve a percentage scroll-padding to pixels in the carousel by @koyev in #7

New Contributors

  • @koyev made their first contribution in #7

Full Changelog: v3.5.2...v3.5.3

v3.5.2

Choose a tag to compare

@stamat stamat released this 11 Sep 20:47

Changed

  • <combobox-elemental> with multiple and min-chars keeps 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::before rather than a mask on the
    button, the field reserves the square with padding-inline-end, and a chip carries
    margin-block: -0.1em.
  • The no-zoom font-size: max(16px, 1em) moved from .combobox-elemental-input to
    .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 were inert, 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 longer inert; 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 β€”
    the animation-play-state rules are gone from style.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

Choose a tag to compare

@stamat stamat released this 10 Sep 01:39

Fixed

  • <combobox-elemental> with both multiple and min-chars closes 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

Choose a tag to compare

@stamat stamat released this 10 Sep 01:00

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's aria-allowed-role: the role="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 multiple combobox 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 with min-chars set 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 ::before box and
    the selected row's ::after tick moves to the leading edge with order; 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 from carousel-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

Choose a tag to compare

@stamat stamat released this 06 Sep 12:06

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

Choose a tag to compare

@stamat stamat released this 06 Sep 00:58

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 ::before mask only; a page supplying its own icon with
    content: none never saw either direction.
    I briefly hallucinated at 2AM...

Full Changelog: v3.4.1...v3.4.2

v3.4.1

Choose a tag to compare

@stamat stamat released this 05 Sep 23:20

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 ::before mask
    changed; a page supplying its own icon with content: none is untouched.

Full Changelog: v3.4.0...v3.4.1

v3.4.0

Choose a tag to compare

@stamat stamat released this 05 Sep 21:03

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-offscreen on the element while it is out of the viewport plus 200px β€” separate
    from data-marquee-paused so 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-rotating comes 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

Choose a tag to compare

@stamat stamat released this 31 Aug 13:54

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
    tabindex on 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.js ships. The
    file the disclosure's container: support was extracted into never joined the files
    allowlist, so a consumer bundling from src/ β€” the way this package documents β€” got an
    unresolvable import; dist consumers never noticed, which is how it slipped out.

Full Changelog: v3.2.1...v3.3.0