Jekyll Sass Converter 3.0 shipped recently and is available to those using Jekyll 4.3 and above. This release contains major changes. Specifically, the plugin has stopped using sassc for converting your Sass partials and stylesheets into CSS files. Instead, the converter now uses the sass-embedded gem acting as an interface to Dart Sass, which is the current primary implementation of Sass under active development. The secondary implementation libsass which the sassc gem interfaced with has been deprecated by its developers.

However, Dart Sass isn’t fully compatible with older Ruby Sass workflow.

Requirements

  • Minimum Ruby Version: Ruby 2.6.0 (all platforms).
  • Minimum Rubygems Version: 3.3.22 (for Linux-based platforms).

Migration Guide

Dropped implmentation Option

In v3.0.x, sass-embedded is the only supported Sass implmentation, and therefore the config option sass.implementation introduced in v2.2.0 has been removed.

Dropped add_charset Option

The converter will no longer emit @charset "UTF-8"; or a U+FEFF (byte-order marker) for sassify and scssify Jekyll filters and hence the redundant option sass.add_charset is no longer active.

Dropped line_comments Option

sass-embedded does not support sass.line_comments option.

Dropped support of importing files with non-standard extension names

sass-embedded only allows importing files that have extension names of .sass, .scss or .css. SCSS syntax in files with .css extension name will result in a syntax error.

Dropped support of importing files relative to site source

In v2.x, the Converter allowed imports using paths relative to site source directory, even if the site source directory is not present in Sass’ load_paths option. This is a side effect of a bug in the converter, which will remain as is in v2.x due to its usage in the wild.

In v3.x, imports using paths relative to site source directory will not work out of box. To allow these imports, . (meaning current directory, or site source directory) need to be explicitly listed under load_paths option.

Dropped support of importing files with the same filename as their parent file

In v2.x, the Converter allowed imports of files with the same filename as their parent file from sass_dir or load_paths. This is a side effect of a bug in the Converter, which will remain as is in v2.x due to its usage in the wild.

In v3.x, imports using the same filename of parent file will create a circular import. To fix such imports, rename either of the files, or use complete relative path from the parent file.

Behavioral Differences in Sass Implementation

There are a few intentional behavioral differences between Dart Sass and Ruby Sass. Please refer Behavioral Differences from Ruby Sass for details.