reseter.css
The Modern CSS Reset — cross-browser normalization with a compact footprint.
v3.0.1
Frameworks
React, Vue, Next, SvelteKit, Rails, Django, and more.
Reference
Rules in src/ for full and mini builds.
Awesome
Showcase, press, endorsements, and more.
There are other resets, why reseter.css?
| Feature | reseter.css | Normalize.css | Sanitize.css | Reset.css |
|---|---|---|---|---|
| Normalizations | ✅ | ✅ | ✅ | ❌ |
| Basic elemental styles | ✅ | Partial | ✅ | ❌ |
| Size (by bundle phobia) | ||||
| Minified version | ❌ (Minify yourself) | ❌ (Minify yourself) | ❌ (Minify yourself) | |
| Box sizing | ✅ | ❌ | ✅ | ❌ |
| Browser support | Browsers with >3% global usage | Last 3 versions | Last 3 versions | Unknown |
v3.0.1
Features
- Wrap the full and mini resets in
@layer resetso app styles override predictably. - Prefer logical properties (
margin-block,max-inline-size,padding-inline-start, etc.) over physical equivalents. - Modern
text-size-adjust: noneonhtml(with-webkit-/-moz-prefixes where needed). - Block-level responsive media defaults for
img,picture,video,canvas, andsvg;svg:not([fill])usesfill: currentColor. - Form controls use
font: inherit;textareaisresize: verticalonly. text-wrap: balanceonh1–h4;text-decoration-skip-ink: autoon unclassed links;:targetscroll margin for in-page anchors.- Accessibility list pattern:
ul[role="list"]/ol[role="list"]drop bullets without removing list semantics.
Fixes
- Restore list
padding-inline-startafter universal padding reset (#382). - Form controls inherit typography via
font: inherit(#384). - Restore UA-like margins (and heading sizes) for
h2–h6(#385). - Apply
box-sizing: border-boxon the universal selector instead of inherit (#386). - Limit
1px solid currentColorborders to text-like inputs (not buttons, selects, range, color, or file controls) (#387). - Expand system font stack with
system-uiand emoji families (#388). - Responsive media sizing in the full bundle (#389).