Repository navigation
ExpressiveCSS v0.15.0
Added
- The agent skill has a layout guide,
expressivecss-layout. It covers
Material's layout principles, the five breakpoints with their grid
prefixes and Sass mixins, the canonical layout starting points,
right-to-left support, and where each Material layout term lives in
ExpressiveCSS. Its breakpoints reference lists the panes and components
for each breakpoint and walks through Material's five questions for the
next size: what to reveal, divide, resize, reposition or swap. Its
canonical layouts reference covers feed, list-detail and supporting pane
layouts, including list-detail behavior when the window crosses 840px and
a grid fallback for supporting content that must stack on narrow windows.
Its grids and spacing reference maps Material's 4, 8 and 12 column grids
onto the 12-track.row, rulers onto containers and pane margins, and
covers grouping, rhythm and opt-in density with 48px targets. The design
guide's scaffold reference now lists the recommended pane count for each
breakpoint, the 50% split-pane rule with a navigation rail, the
three-pane limit, drag-handle toggling and persistent resizing, and the
co-planar, floating and docked ways to show more than one pane. - The scroll area docs show
.scroll-areaon<html>for a themed page
scrollbar. A browser test covers page scrolling and theme colors. .keypadand.keyboardare on-screen keys that type into the text
field named byaria-controls. A keypad is three columns of round keys for
PINs, codes and dial pads; a keyboard is rows of keys sized from a column
count, with an optional.numbersrow of shorter digit keys that
hiddendrops. Keys with avaluetype at the caret and fireinput;data-key
keys handle Backspace, Enter and a one-shot Shift. Keys square their
corners on press, and awidekey spans two cells. A key inside the
field's.field, such as a trailing Backspace, works too. Browsers skip
minlengthfor scripted edits, so the docs give a minimum length as
pattern.Keypadis inAutoInit()and takes anonKeyoption.
Changed
- The
expressivecssskill is version 0.11.0. It adds the
expressivecss-layoutguide and component guides for keypad and keyboard.
Fixed
-
Reference tables on the docs site scroll sideways inside their own box on
narrow windows. At 375px, 22 docs pages used to scroll the whole page
sideways, mostly because of tables with long token names and defaults.
Three pages still do, because their demos (the 12-column grid, the large
icon and the extra-large split button) are wider than a phone. -
A snackbar dismissed by a swipe now slides off the side it was swiped
toward, starting from where the pointer let go. It used to jump to the
right at once, even after a swipe to the left, because the dismiss
transition replaced the transform transition before it could run. -
Date picker days outside
minDate/maxDate, weekends under
disableWeekends, days rejected bydisableDayFn, and the adjacent-month
days fromshowDaysInNextAndPreviousMonthsnow use the M3 disabled text
color and ignore the pointer. The rule looked for the state class on the
day button, but the picker puts it on the cell, so these days looked
selectable. -
A footer whose only child is a plain
<nav>link column now gets the full
page footer styles. When the navigation bar arrived, only the first footer
rule was narrowed to a lone.navigation-bar. The grid,.filled, link
and legal bar rules still skipped any footer with a lone<nav>. Pane
footers use the same guard, so they keep their flex action row. -
Map markers and the column, bar and mixed chart hover layers mix
in oklablike the rest of the framework. Each mix is withtransparent,
so the rendered colors do not change. -
The date picker's unused
.year-textno longer setson-primary, a
leftover from the removed primary header. -
A
data-tooltip-idthat names no element now logs an error and shows the
data-tooltiptext. A.tabsbar with no links logs an error, and
swipeable tabs whose links reach no panel act as normal tabs. Each of these
used to throw, which stoppedAutoInit()before the components after it. -
Reopening a date picker no longer re-reads a value it wrote itself. Without
a customparse,Date.parseread add/mm/yyyyvalue of05/10/2026as
10 May and passed that toonSelect. -
Space and Enter reach an autocomplete's text field while the list is
closed. The menu's trigger keys cancelled them, so a space typed after
Escape was lost and Enter could not submit the form. ArrowUp and ArrowDown
open the list with the current matches. -
Autocomplete fires
changeandonAutocompleteonly when the selection
changes, as documented, instead of after every search.setMenuItemsno
longer replacesoptions.data, so the documented customonSearchfilter
keeps searching the full data set. -
A chart cell such as
e5or1e400is a gap. These passed the number
check but read asNaNorInfinity, so one such cell turned every point
in the chart intoNaNand nothing was drawn.