A C/C++ implementation of a Sass compiler
C++ Shell C M4 Makefile Perl
Latest commit 10085f6 Jan 21, 2017 @mgreter mgreter committed on GitHub Merge pull request #2300 from mgreter/refactor/selector-schema
Refactor selector list and schema handling
Permalink
Failed to load latest commit information.
.github Tiny typo fixup Oct 6, 2016
contrib Change C-API to pass compiler to custom functions Oct 22, 2015
docs Add some missing C-API documentation Jan 11, 2017
include Refactor C-API path handling Jan 5, 2017
m4 Reorganize source files into sub-directories Jul 19, 2015
res Fix build for mingw and dll linking Dec 21, 2014
script Improve Travis Continuous Integration script Jan 21, 2017
src Fix memory handling edge case Jan 21, 2017
test Fixes performance bottleneck in subset_map/extend Dec 19, 2016
win Add fast casting for classes that are final Jan 17, 2017
.editorconfig Update .editorconfig Jan 4, 2016
.gitattributes Add gitattributes for line ending normalization Jan 13, 2014
.gitignore Refactor directive (i.e. At_Rule) parsing Apr 23, 2016
.travis.yml Improve Travis Continuous Integration script Jan 21, 2017
COPYING Add autotools config Jun 14, 2012
GNUmakefile.am Improve Travis Continuous Integration script Jan 21, 2017
INSTALL we dont follow those install rules Oct 4, 2014
LICENSE Changing copyright to Sass Open Source Foundation Feb 1, 2016
Makefile Improve Travis Continuous Integration script Jan 21, 2017
Makefile.conf Add fast casting for classes that are final Jan 17, 2017
Readme.md Merge pull request #2176 from delapuente/debug-builds Sep 12, 2016
SECURITY.md Let people know how to report security bugs Jun 9, 2015
appveyor.yml Update AppVeyor to run sass-spec against the 3.5 language version Dec 31, 2016
configure.ac Improve Travis Continuous Integration script Jan 21, 2017
extconf.rb Restructuring the library to work as a more Apr 22, 2012
version.sh Remove hard-coded version from autotools build Feb 24, 2015

Readme.md

LibSass

by Aaron Leung (@akhleung), Hampton Catlin (@hcatlin), Marcel Greter (@mgreter) and Michael Mifsud (@xzyfer)

Unix CI Windows CI Bountysource Coverage Status Join us

https://github.com/sass/libsass

LibSass is just a library, but if you want to RUN LibSass, then go to https://github.com/sass/sassc or https://github.com/sass/sassc-ruby or find your local implementer.

LibSass requires GCC 4.6+ or Clang/LLVM. If your OS is older, this version may not compile.

On Windows, you need MinGW with GCC 4.6+ or VS 2013 Update 4+. It is also possible to build LibSass with Clang/LLVM on Windows.

About

LibSass is a C/C++ port of the Sass CSS precompiler. The original version was written in Ruby, but this version is meant for efficiency and portability.

This library strives to be light, simple, and easy to build and integrate with a variety of platforms and languages.

Developing

As you may have noticed, the LibSass repo itself has no executables and no tests. Oh noes! How can you develop???

Well, luckily, SassC is the official binary wrapper for LibSass and is always kept in sync. SassC is used by continous integration systems in LibSass repository. When developing LibSass, it is best to actually checkout SassC and develop in that directory with the SassC spec and tests there.

We even run Travis tests for SassC!

Tests

Since LibSass is a pure library, tests are run through the SassSpec project using the SassC driver.

To run tests against LibSass while developing, you can run ./script/spec. This will clone SassC and Sass-Spec under the project folder and then run the Sass-Spec test suite. You may want to update the clones to ensure you have the latest version.

DEBUG builds

Set the environment variable DEBUG to 1 to enable debug builds that can be debugged with gdb, lldb and others. E.g.: use $ DEBUG=1 ./script/spec to run the tests with a debug build.

Library Usage

While LibSass is a library primarily written in C++, it provides a simple C interface which should be used by most implementers. LibSass does not do much on its own without an implementer. This can be a command line tool, like sassc or a binding to your favorite programing language.

If you want to build or interface with LibSass, we recommend to check out the documentation pages about building LibSass and the C-API documentation.

About Sass

Sass is a CSS pre-processor language to add on exciting, new, awesome features to CSS. Sass was the first language of its kind and by far the most mature and up to date codebase.

Sass was originally concieved of by the co-creator of this library, Hampton Catlin (@hcatlin). Most of the language has been the result of years of work by Natalie Weizenbaum (@nex3) and Chris Eppstein (@chriseppstein).

For more information about Sass itself, please visit http://sass-lang.com

Initial development of libsass by Aaron Leung and Hampton Catlin was supported by Moovweb.

Licensing

Our MIT license is designed to be as simple, and liberal as possible.

sass2scss was originally written by Marcel Greter and he happily agreed to have it merged into the project.