Metadata-Version: 2.4
Name: sass-embedded
Version: 0.1.3
Summary: Sass/SCSS compile host using Dart Sass
Project-URL: Homepage, https://github.com/attakei/sass-embedded-python
Project-URL: Changelog, https://github.com/attakei/sass-embedded-python/blob/main/CHANGES.rst
Project-URL: Source, https://github.com/attakei/sass-embedded-python
Project-URL: Documentation, https://sass-embedded-python.readthedocs.io/stable/
Project-URL: Bug, https://github.com/attakei/sass-embedded-python/issues
Project-URL: Funding, https://github.com/sponsors/attakei
Author-email: Kazuya Takei <myself@attakei.net>
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Requires-Dist: bbpb>=1.4.2
Requires-Dist: protobuf>=6
Description-Content-Type: text/x-rst

====================
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:

.. code:: console

   pip install sass-embedded

Source:

.. code:: css
   :name: style.scss

   @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:

.. code:: python

   from pathlib import Path
   from sass_embedded import compile_file

   compile_file(Path("style.scss"))

Output:

.. code:: css
   :name: style.css

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

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

Motivation
==========

I develop `sphinx-revealjs <https://pypi.org/project/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".

- Support `The Embedded Sass Protocol <https://github.com/sass/sass/blob/main/spec/embedded-protocol.md>`_.

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.
