This issue serves as a way to keep track of all known compilation issues
Large features
Smaller features
These ideally come with minimal reproductions, though the reason why they're failing may be incorrect as they haven't been fully looked into
comma separated imports
@import "hey1.css", "cookie.css", url("hey2.css"), "fudge.css";
parens surrounding single word in media query
@media (color) {a {color: red;}}
min as arg to min/max
special function as arg to min/max
inequality sign inside interpolation in media query
@media (#{"100px < width < 500px"}) {a {interpolation: in-parens}}
invalid simple selector (should error, but panics)
vendor prefixed known at rules (one of @supports, @keyframes)
styles can render at the toplevel, but they should not be able to rewrite parsing, evaluation, and serialization #67
zero divided by zero panics, but should return NaN
one divided by zero panics, but should return Infinity (this has been updated to return an error instead of crashing) rewrite parsing, evaluation, and serialization #67
division should only occur when either of the operands is calculated or if they operation is in parens
1 / 2 should be emitted as 1/2, but it currently gives 0.5
CSS variables should include everything, notably comments rewrite parsing, evaluation, and serialization #67
numbers should use fuzzy matching -- that is, they should be equal if they are the same to 10 decimal points rewrite parsing, evaluation, and serialization #67
.9999999999999999999999999999999 == .99999999999999999999999999999998
we should allow a BOM at the start of files
all instances of @import should be moved to the top of the file
rgb(a) functions should allow / rewrite parsing, evaluation, and serialization #67
we dont retain empty parens inside url(...) rewrite parsing, evaluation, and serialization #67
url((((())))) (this should actually produce an error, but it just emits url()
@import should include strings verbatim rewrite parsing, evaluation, and serialization #67
@import "hux\ bux.css"; this should include the \, but it does not because we use normal string parsing
subtraction with no space between operands and rhs is interpolated
10-#{10} should give 10 -10 but it gives 10-10
non-comparable inverse units rewrite parsing, evaluation, and serialization #67
!optional in @extend
deny content block being passed to @mixin without @content rewrite parsing, evaluation, and serialization #67
@extend should not be possible between media query boundaries
@media query merging rewrite parsing, evaluation, and serialization #67
inspect(...) does not properly preserve parens in some cases
@charset should only accept a string
@charset 1+1; should error
function names containing interpolation should always be evaluated as unknown functions rewrite parsing, evaluation, and serialization #67
color: qu#{o}te(red) current returns "red", but should give quote(red)
unknown at rule with query but no curly braces
@foo "bar"; (we do parse this correctly, but we emit it with two semicolons)
unicode ranges
allow varargs to contain named arguments and support builtin fn keywords rewrite parsing, evaluation, and serialization #67
feature complete parsing of @supports rewrite parsing, evaluation, and serialization #67
support angle units other than deg to builtin fns, math.cos(1grad) rewrite parsing, evaluation, and serialization #67
This issue serves as a way to keep track of all known compilation issues
Large features
@useand the module system (MVP)@forwardrewrite parsing, evaluation, and serialization #67Smaller features
These ideally come with minimal reproductions, though the reason why they're failing may be incorrect as they haven't been fully looked into
@import "hey1.css", "cookie.css", url("hey2.css"), "fudge.css";@media (color) {a {color: red;}}min(1, min(2))min(1, env(--foo))@media (#{"100px < width < 500px"}) {a {interpolation: in-parens}}simple-selectors(">")@supports,@keyframes)@-webkit-keyframes {}color: red;should errorNaN(0 / 0)Infinity(this has been updated to return an error instead of crashing) rewrite parsing, evaluation, and serialization #67(1 / 0)1 / 2should be emitted as1/2, but it currently gives0.5--foo: //;.9999999999999999999999999999999 == .99999999999999999999999999999998@importshould be moved to the top of the file/rewrite parsing, evaluation, and serialization #67rgba(1, 2, 3 / 4)url(...)rewrite parsing, evaluation, and serialization #67url((((()))))(this should actually produce an error, but it just emitsurl()@importshould include strings verbatim rewrite parsing, evaluation, and serialization #67@import "hux\ bux.css";this should include the\, but it does not because we use normal string parsing10-#{10}should give10 -10but it gives10-10(1px / 1em)!optionalin@extend@mixinwithout@contentrewrite parsing, evaluation, and serialization #67@extendshould not be possible between media query boundaries@mediaquery merging rewrite parsing, evaluation, and serialization #67inspect(...)does not properly preserve parens in some cases@charsetshould only accept a string@charset 1+1;should errorcolor: qu#{o}te(red)current returns"red", but should givequote(red)@foo "bar";(we do parse this correctly, but we emit it with two semicolons)U+A2??keywordsrewrite parsing, evaluation, and serialization #67@supportsrewrite parsing, evaluation, and serialization #67degto builtin fns,math.cos(1grad)rewrite parsing, evaluation, and serialization #67