All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
5.0.4 - 2025-01-05
- Use a less opinionated PostCSS configuration
font-feature-settings
for headings,td
,math
, andtime
elements
5.0.3 - 2024-12-21
- Set cursor for disabled elements with
[role="button"]
5.0.2 - 2024-11-19
- Set
stroke-linecap: round
andstroke-linejoin: round
only when they are not already set on SVG
- Selector that ensures button content is not selectable
5.0.1 - 2024-10-02
- Invalid
font-feature-settings
injected by PostCSS
5.0.0 - 2024-10-02
interpolate-size
on document to allow animating intrinsic sizing keywords such asheight
,width
and so on. Progressive enhancement, only supported by Chrome for now.- Balance text to avoid orphans for
li
andfigcaption
elements - Position numbers on baseline for headings, table cells,
math
element andtime
element with timestamp. Progressive enhancement, available if font supports this OpenType feature. - Sets numbers at same size for table cells,
math
element andtime
element with timestamp. Progressive enhancement, available if font supports this OpenType feature.
- Breaking change Rename
--preset-scroll-padding
as--preset-scroll-offset
- Apply
scroll-margin-block
on:target
regardless of motion preference - Add
rlh
fallback forscroll-margin-block
for supported browsers
4.1.0 - 2024-07-23
- Opt into user's color scheme preferences with
color-scheme: light dark
4.0.3 - 2024-07-09
No user-facing changes. Just polishing internal variable for outline transition.
4.0.2 - 2024-06-11
- Stops hiding the hanging punctuation on
input
andtextarea
elements
4.0.1 - 2024-06-07
Superceded by 4.0.2
4.0.0 - 2024-06-01
- Allows overriding the outline transition with
--preset-outline-transition
property - Applies
field-sizing: content
onselect
andtextarea
elements to resize them based on content
- Stops applying the transitions on devices using low refresh rate screens (such as e-readers)
3.1.0 - 2024-02-25
- New transition-timing-function for
outline-offset
based on linear() easing function for supported browsers
3.0.0 - 2024-02-25
- Breaking Change:
stroke-color
is no longer being set on SVGs (mainly to allow design systems to enforce this on icon sets and illustrations). This also removes support for--preset-stroke-color
property.
2.0.0 - 2024-01-15
- Breaking Change: Media elements (
img
,svg
,canvas
,audio
,video
,iframe
,embed
,object
) are no longer forced todisplay: block
. Instead, a gentler set of opinions are now applied on them. See 08876402115d8467a6916d1a02154e864edb8f14
1.5.1 - 2024-01-15
- Reset now excludes SVGs with
class
attribute cursor: not-allowed
is now applied oninput[type=image][disabled]
elements as well
1.5.0 - 2024-01-15
- Enables smooth scrolling for nested scrollable elements
- Hangs the punctuations outside the line box
- Sets
margin: 0
for every element exceptdialog
- Removes
display: hidden
on elements that are hidden until found
1.0.3 - 2023-10-22
- A
min-block-size
for textareas with norows
attribute to make sure they are not tiny
1.0.2 - 2023-10-22
text-wrap: pretty
on paragraph elements
1.0.1 - 2023-08-25
display: none
for undefined custom elements
Depending on your browser targets, you can do the following instead.
- Use Declarative Shadow DOM and polyfill it in unsupported browsers, or
- Hide the element visually (using
visibility: hidden
) until JavaScripts loads/* no visibility for undefined custom elements by default */ :not(:defined) { visibility: hidden; }
1.0.0 - 2023-07-27
display: none
for undefined custom elements to prevent rendering them prematurely.text-wrap: balance
for headings for more elegant handling of widows; see https://ishadeed.com/article/css-text-wrap-balance/display: list-item
for summary element- Default backdrop blur on dialog element
- Document overflow is now hidden when dialog is open (experimental)
- Table captions are now positioned at bottom by default
box-sizing
for every element is set toborder-box
; earlier it was inheriting from parent (leading to unintended behavior in children due to cascade)- Stroke customization is applied only on SVGs without fill; earlier it was being applied to all SVGs.
font-smoothing
has been removed; see https://www.zachleat.com/web/font-smooth/list-style: none
for lists with[role=list]
Some of the properties in the reset are now customizable through CSS properties. You can define these properties in :root
or html
scope.
--preset-line-height
to override theline-height
(fallback value:calc(0.3rem + 2ex + 0.3rem)
)--preset-tab-size
to control the indentation width of code block tabs (fallback value:2
)--preset-stroke-color
to override the stroke color of SVG with no fill (fallback value:currentColor
)--preset-dialog-backdrop-filter
to override the backdrop filter of the dialog (fallback value:blur(25px)
)--preset-table-caption-side
to customize caption position of a table caption (fallback value:bottom
)