Repository navigation
material 3.0.1
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 matchmtrl-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 alabelit 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 emptylabel=""builds no label and takes its
container's row, like an unlabelled host.preupgrade:checknow 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-transparentborder 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 andssizes, keepingxsat 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.