Sass4clj
Clojure wrapper for jsass JNA wrapper for Libsass. This repository also contains Boot and Leiningen tasks.
For parallel Less library check less4clj
Features
- Jsass features
- Requires Java 1.8
- Linux & Windows builds are automatically tested
- (Doesn't work on Alpine based Docker images)
- Load imports directly from Java classpath (e.g. Webjars)
- Add dependency
[org.webjars.bower/bootstrap "4.0.0-alpha"]
to use Bootstrap
- Add dependency
- Assumes that files starting with
_
are partial files and should not be compiled into CSS files.
Boot
- Provides the
sass
task (deraen.boot-sass/sass
) - For each
.sass
or.scss
file not starting with_
in the fileset creates equivalent.css
file. - Check
boot sass --help
for task options.
Leiningen
- Provides the
sass4clj
task - For each
.sass
or.scss
file not starting with_
in source-dirs creates equivalent.css
file. - Check
lein help sass4clj
for options.
Clj
Test in the repository:
clj -m sass4clj.main --source-paths test-resources
Check clj -m sass4clj.main --help
for options.
Import load order
Loading order for @import "{name}";
on file at {path}
- Local file at
{path}/{name}.sass
or{path}/{name}.scss
- Classpath resource
(io/resource "{name}.ext")
- Classpath resource
(io/resource "{path}/{name}.ext")
- Webjar asset
- Resource
META-INF/resources/webjars/{package}/{version}/{path}
can be referred using{package}/{path}
- For example
@import "bootstrap/scss/bootstrap.scss";
will importMETA-INF/resources/webjars/bootstrap/4.0.0-alpha/scss/bootstrap.scss
- Resource
FAQ
Log configuration
If you don't have any slf4j implementations you will see a warning:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
To disable this add a no operation logger to your project. As this is only required
on build phase, you can use :scope "test"
so that the dependency is not
transitive and is not included in uberjar. Alternatively you can add this
dependency to your Leiningen dev profile.
[org.slf4j/slf4j-nop "1.7.13" :scope "test"]
License
Copyright © 2014-2017 Juho Teperi
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.