Skip to content

attakei/sass-embedded-python

Repository files navigation

sass-embedded-python

Embedded Sass Host for Python.

Important

This is laboratory stage project. It does not ensure to continue development for goal.

Overview

This is Python project to compile Sass/SCSS using Dart Sass <https://sass-lang.com/dart-sass/> that is primary implementation of Sass using Dart runtime.

Simple usage

Install:

pip install sass-embedded

Source:

@use "sass:list";
@use "sass:color";

$font-stack: Helvetica, Arial;
$primary-color: #333;

body {
  $font-stack: list.append($font-stack, sans-serif);
  font: $font-stack;
}

a {
  color: $primary-color;

  &:hover{
    color: color.scale($primary-color, $lightness: 20%);
  }
}

@debug $font-stack;

Run:

from pathlib import Path
from sass_embedded import compile_file

compile_file(Path("style.scss"))

Output:

body {
  font: Helvetica, Arial, sans-serif;
}

a {
  color: #333;
}
a:hover {
  color: rgb(91.8, 91.8, 91.8);
}

Motivation

I develop sphinx-revealjs that is Python Project to generate HTML presentation from reStructuredText or Markdown.

Reveal.js uses Sass to create presentation themes, and this uses sass:color module since v5.2.0. But sphinxcontrib-sass does not compile themes, because this module is not supported by LibSass.

To resolve it, I am developing optional extension optimized sphinx-revealjs. Concurrently I will develop generic project for multiple usecases.

This is the side of "generic project".

Project goal

Final goal is to have features as same as other "Sass Embedded" libraries.

But I will split some steps for it.

First goal

Works as compile Sass/SCSS with subprocess-based actions.

  • Provide single entrypoint to compile sources using Dart Sass native executable.
  • Generate Dart Sass bundled bdist files every platforms.

Second goal

Works as "Sass Embedded Host for Python".

Third goal

Works as alternative to libsass-python.

  • Support all api of libsass-python using Dart Sass native executable.

Support

This project supports only Python 3.9+.

License

I plan for Apache License 2.0.

About

Python Sass binding using Dart Sass

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •