Need help with scssphp?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

374 Stars 51 Forks MIT License 2.0K Commits 42 Opened issues


SCSS compiler written in PHP

Services available


Need anything else?

Contributors list


Build License

is a compiler for SCSS written in PHP.

Checkout the homepage,, for directions on how to use.

Running Tests

uses PHPUnit for testing.

Run the following command from the root directory to run every test:

vendor/bin/phpunit tests

There are several tests in the

  • ApiTest.php
    contains various unit tests that test the PHP interface.
  • ExceptionTest.php
    contains unit tests that test for exceptions thrown by the parser and compiler.
  • FailingTest.php
    contains tests reported in Github issues that demonstrate compatibility bugs.
  • InputTest.php
    compiles every
    file in the
    directory then compares to the respective
    file in the
  • SassSpecTest.php
    extracts tests from the

When changing any of the tests in

, the tests will most likely fail because the output has changed. Once you verify that the output is correct you can run the following command to rebuild all the tests:
BUILD=1 vendor/bin/phpunit tests

This will compile all the tests, and save results into

. It also updates the list of excluded specs from sass-spec.

To enable the full

compatibility tests:
TEST_SASS_SPEC=1 vendor/bin/phpunit tests

Coding Standard

source conforms to PSR12.

Run the following command from the root directory to check the code for "sniffs".

vendor/bin/phpcs --standard=PSR12 --extensions=php bin src tests *.php

Static Analysis

uses phpstan for static analysis.

Run the following command from the root directory to analyse the codebase:

make phpstan

As most of the codebase is composed of legacy code which cannot be type-checked fully, the setup contains a baseline file with all errors we want to ignore. In particular, we ignore all errors related to not specifying the types inside arrays when these arrays correspond to the representation of Sass values and Sass AST nodes in the parser and compiler. When contributing, the proper process to deal with static analysis is the following:

  1. Make your change in the codebase
  2. Run
    make phpstan
  3. Fix errors reported by phpstan when possible
  4. Repeat step 2 and 3 until nothing gets fixed anymore at step 3
  5. Run
    make phpstan-baseline
    to regenerate the phpstan baseline

Additions to the baseline will be reviewed to avoid ignoring errors that should have been fixed.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.