Sass 3.5 ist veröffentlicht
Veröffentlicht am 7. Juli 2017 von Natalie Weizenbaum
Ich freue mich, die stabile Version von Sass 3.5 bekannt zu geben. Diese Version konzentriert sich auf die Kompatibilität mit neuem CSS-Syntax und legt den Grundstein für das kommende Modulsystem und die Kompatibilität mit Dart Sass.
Die meisten Hauptfunktionen von 3.5 waren bereits in der Release Candidate enthalten, über die Sie hier lesen können. Seitdem wurden jedoch einige weitere Änderungen vorgenommen
-
Sass unterstützt nun das Pseudo-Element
::slotted(), einschließlich der Erweiterung seiner Selektor Argumente. -
Die Funktion
var()kann sicher an die CSS-Farbfunktionenrgb(),rgba(),hsl()undhsla()übergeben werden. -
Transparente Farben, die durch Sass' Farbfunktionen erzeugt werden, werden nun als
rgba(0, 0, 0, 0)anstelle vontransparentausgegeben, um einen Fehler in Internet Explorer zu umgehen. Farben, die im Dokument alstransparentgeschrieben sind, werden weiterhin geschrieben.
Dart Sass-KompatibilitätDart Sass-Kompatibilität Permalink
Ich habe letzten Monat über unsere Pläne geschrieben, Ruby Sass kurzfristig mit Dart Sass kompatibel zu halten. Sass 3.5 beginnt mit der Umsetzung dieser Pläne, indem es die Unterstützung für eine Reihe kleiner Verhaltenserweiterungen hinzufügt, die von Dart Sass
-
Es ist kein Fehler mehr, einen Selektor zu
@extend, der im Stylesheet vorkommt, aber für den die Vereinheitlichung fehlschlägt. Der Zweck von Erweiterungsfehlern war es, Tippfehler zu verhindern, die in diesem Fall nicht auftraten. -
Pseudo-Selektoren, die Argumente entgegennehmen, können nun jedes Argument annehmen, das der
<declataion-value>Syntax von CSS entspricht. Dies wird eine bessere zukunftssichere Kompatibilität mit neuen Selektoren bieten. -
Pseudo-Selektoren, die Platzhalter-Selektoren sowie Nicht-Platzhalter enthalten – z. B.
:matches(.foo, %bar)– werden nicht mehr eliminiert. Dies entspricht der Definition eines Platzhalters als Selektor, der nichts abgleicht. -
Sie können nun die Einrückung innerhalb einer Datei mit eingezogener Syntax variieren, solange sie immer noch eine konsistente Baumstruktur definiert.
Es gibt auch einige Veralterungen für Funktionalitäten, die in Ruby Sass nicht unterstützt werden
-
Die Erweiterung von zusammengesetzten Selektoren, wie z. B.
@extend .foo.bar, ist veraltet. Dies entsprach nie den angegebenen Semantiken von extend: Elemente, die dem erweiternden Selektor entsprechen, werden so gestylt, als ob sie dem erweiterten Selektor entsprechen.Wenn Sie
h1 {@extend .a.b}schreiben, sollte dies bedeuten, dass alleh1-Elemente so gestylt werden, als ob sie.a.bentsprechen – d. h. so, als hätten sieclass="a b", was bedeutet, dass sie sowohl.aals auch.bseparat entsprechen würden. Aber stattdessen erweitern wir nur Selektoren, die *beide*.aund.benthalten, was falsch ist. -
Die Farbarithmetik ist veraltet. Die kanalweise Arithmetik entspricht nicht genau den intuitiven Vorstellungen von Farbe. Sass' Suite von Farbfunktionen ist eine wesentlich sauberere und verständlichere Möglichkeit, Farben dynamisch zu manipulieren.
-
Der Referenz-Kombinator
/foo/ist veraltet, da er seit einiger Zeit nicht mehr in der CSS-Spezifikation enthalten ist und bald aus Chrome entfernt wird wird. -
Die alte
:name value-Eigenschaftssyntax ist veraltet. Diese Syntax wird nicht häufig verwendet und unterscheidet sich unnötigerweise von CSS.
LibSass-KompatibilitätLibSass-Kompatibilität Permalink
LibSass, die C++-Implementierung von Sass, ist auf dem besten Weg, mit all diesen Funktionen kompatibel zu sein. Es ist noch nicht ganz so weit, aber wir haben beschlossen, die Veröffentlichung von 3.5 nicht durch 100%ige Kompatibilität zu blockieren. LibSass wird diese Funktionen veröffentlichen, sobald es sie implementiert.
Was kommt als Nächstes?Was kommt als Nächstes? Permalink
In naher Zukunft werde ich für ein paar Monate in den Urlaub gehen, sodass es wahrscheinlich keine großen Arbeiten geben wird. Danach werde ich mich darauf konzentrieren, Dart Sass zu einer vollständigen 1.0.0-Version zu bringen, was bedeutet, dass ich viel Zeit damit verbringen werde, seine JavaScript API mit node-sass kompatibel zu machen.
Was Ruby Sass betrifft, werde ich weiterhin Fehler beheben und Unterstützung für die CSS-Funktionen hinzufügen, sobald Browser sie unterstützen. Sobald Dart Sass 1.0.0 veröffentlicht ist, werde ich neue Funktionen gleichzeitig in Ruby und Dart hinzufügen, bis die einjährige Supportperiode abgelaufen ist.
Aber jetzt, führen Sie gem update sass aus und genießen Sie 3.5!