Skip to content

material 3.0.1

Choose a tag to compare

@github-actions github-actions released this 03 Oct 19:32
· 334 commits to main since this release
ee33b51

Fixed

  • A menu in a shadow root mirrors its submenu arrow under dir="rtl".
    The arrow, the submenu item's padding and the menu's transform origin followed an ancestor
    dir. That selector does not cross a shadow boundary, so <m-menu> kept the arrow on the
    right. The same declarations now also match mtrl-menu--rtl, which the menu sets from the
    computed direction.
  • In right-to-left, a top-layer menu wider than its field now aligns to the field's start edge
    (its right edge), mirroring left-to-right.

    Under a field narrower than the menu's 112px minimum, placement kept the field's left edge in
    both directions. Right-to-left, a menu wider than the field now meets the field's right edge.
    A menu as wide as the field still meets both edges, and a submenu still opens on its own side.
  • A slider reserves its row before upgrade at every size, with and without a label. The
    pre-upgrade stylesheet gave every <m-slider> the 48px row of the unlabelled default size,
    but a horizontal slider is taller once its script runs. With a label it is 76px at XS and
    S, 80 at M, 96 at L and 136 at XL — the label's body-large 24px line and its 4px gutter over
    the container. Without one it is the container's own height, which the factory sets to
    max(handle height, 48): 48, 52, 68 and 108. A labelled slider pushed what followed it down
    by 28px or more mid-upgrade, and an unlabelled one at L or XL by 20px and 60px. The reserved
    height is now keyed on the size (in any case, as the element reads it) and on whether the
    host carries a label, with the label's line taken from the body-large typescale and the
    container heights the factory sets. An empty label="" builds no label and takes its
    container's row, like an unlabelled host. preupgrade:check now covers every size, with and
    without a label, both label positions, an icon and an empty label; each passes with the
    host's box equal before and after. A vertical slider's length is the page's, and numeric
    sizes are not reserved.
  • The outlined text field's notch leaves the floated label clear in forced colours.
    Forced colours repaints a declared-transparent border in the line's own colour, so the notch's
    open top edge — the gap the floated label sits in — was drawn as part of the top line, straight
    across the whole label, in the factory and in <m-text-field>, left-to-right and right-to-left,
    and both when the script opened the notch and when the input's own state floated the label first
    (a value set without an event, an autofilled field). Inside @media (forced-colors: active) an
    open notch now has no top border at all, under the class the script sets and under the selectors
    that read the input's own state; the leading and trailing segments still draw theirs, and nothing
    outside the media query changes.
  • Text fields keep neighbouring content in place when they upgrade under a tall page line height (#43).
    The pre-upgrade styles now reserve the host’s inherited line box around the field, including
    compact, outlined and multiline fields, in both text directions.
  • The default button group stays in place when it upgrades (#44). A text strut
    in the pre-upgrade flex rule removes the 1.296875 px inline-neighbour baseline
    move at default typography and the group's 8 px height growth at 24 px font
    size with line-height 2, in LTR and RTL, including newline-indented item markup.
    The strut applies only to the default and s sizes, keeping xs at its existing
    2.703125 px inline-neighbour move instead of increasing it to 4 px.
    Full size, density and content reservation is tracked separately in #49.

npm: material@3.0.1 · Docs: md3.io · Full history: CHANGELOG.md

The history before 3.0.0 was developed in floor/mtrl; #numbers in commit subjects before 3.0.0 refer to pull requests there.