PostCSS plugin for Rust-style pattern matching.
.blah { @match baz { foo => { color: red; }, bar | baz => { background: green; } } }
.blah { background: green }
In conjunction with postcss-simple-vars:
$animal: bear; .zoo { @match $animal { snake => { color: green; }, buffalo | bear => { background: brown; }, lion => { font-weight: bold; }, _ => { font-style: italic; color: gray; } } }
.zoo { background: brown }
Usage
postcss([ require('postcss-match') ])
See PostCSS docs for examples for your environment.
Differences from Rust and other known limitations
- Braces around arm expressions are non-optional
- Nested
@matchat-rules are currently unsupported - Rust-style range patterns are currently unsupported
- Pattern exhaustiveness is not checked
- Pattern unreachability is not checked