Repository navigation
material 3.7.2
Component sheets stand alone.
Fixed
-
The factory stylesheets no longer need the base reset (#266).
Withmaterial/styles/base-lite— or any page that does not load
material/styles/base— five component families lost the geometry the
reset gives them: the text field's root and input (and the select, which
reuses the input) stood 88px tall instead of 56; the small top app bar
measured 632px inside a 600px box; the bottom app bar 104px instead of
80; the checkbox 56px instead of 48; the radio label 56px instead of 48;
and the date picker's month and year buttons carried the user agent's
1px 6pxpadding instead of none.Each sheet now declares the one declaration the reset supplied:
box-sizing: border-boxon the text-field input, on the top app bar's
root and its medium and large rows, on the bottom app bar's root, on the
checkbox's root and on the radios label; andpadding: 0on the date
picker's month and year buttons. There is no visual change with the full
base: the reset already applies those values to every element and every
button, so the rules restate the values in force, and the browser
screenshots are byte-identical.A new browser check,
component-sheets:checkin thebrowser (styles)
group, loads the builtdist/styles/base-lite.css, the ripple utilities
and the seven component sheets into one Chromium page with no reset,
mounts the built factories, and asserts that geometry; it also asserts
that the page's body computescontent-box, so a reset leaking into the
page fails the check rather than hiding the defect. Every sheet must
exist indist/, which is the build's own evidence that the sheet is
standalone. The check lives inscripts/, whichpackage.json's
filesdoes not ship, so it adds nothing to the package.Size: on main at
0caeeb6b(the release base, push run 41944355130,
package job 126973103232), the packed tarball measures 862,631 bytes
compressed, 4,828,612 unpacked, 1,582 files (3.7.1: 862,354 / 4,827,107
/ 1,582 — +277 compressed, +1,505 unpacked, same file count). The
growth is the six added declarations alone, which the package carries
twice: in the shipped Sass sources undersrc/stylesand in the
compiled CSS underdist. The full stylesheet moves 628,272 → 628,436
raw (+164, exactly the six added declarations;select.cssitself does
not change) and 58,669 → 58,667 gzip (−2, a cross-chunk dictionary
shift), 42,116 → 42,172 brotli (+56). Theselect-cssentry carries the
text-field input's 22 bytes: 85,081 → 85,103 raw, 8,080 → 8,083 gzip,
6,678 → 6,675 brotli. Every other packed row is byte-identical,
including all-js, the SSR entry, base-css and base-lite-css; no budget
or ceiling moved, every per-component budget check passes, and no
SIZES.mdor README size row changes.
Internal
- The size cost of the standalone sheets.
Against 3.7.1's own package job (all-js 412,325 raw / 127,086 gzip /
105,325 brotli; base-css 40,809 / 2,939 / 2,244; base-lite-css 12,999 /
1,644 / 1,305; full-css 628,272 / 58,669 / 42,116; select-css 85,081 /
8,080 / 6,678; tarball 862,354 bytes compressed / 4,827,107 unpacked /
1,582 files), main at0caeeb6bmeasures full-css 628,436 / 58,667 /
42,172, select-css 85,103 / 8,083 / 6,675, tarball 862,631 / 4,828,612 /
1,582, and every other row unchanged. The 164 raw bytes are the six
added declarations; the two gzip figures move by −2 and +3 through
cross-chunk dictionary sharing rather than the rules themselves, and
the brotli figures by +56 and −3. Measured on main at0caeeb6b, the
release base's push run 41944355130, package job 126973103232; the
release PR itself changes only the CHANGELOG and the version field. No
ceiling moved, every per-component budget check passed (all: 125,455
gzip against 127,200; list: 6,838 against 7,014), and noSIZES.mdor
README size row changed.
npm: material@3.7.2 · 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.