Python-scss is SCSS compiler for Python. See http://sass-lang.com for more information about scss syntax.
Project description
Python-scss
Python-scss is SCSS compiler for python. Documentation available at pypi or github. This is part of zeta-library.
Features
Python-scss has most of the funcitonality in Sass SCSS 3.2 and more. It supports:
Nested rules
Keyword arguments
Mixins: @mixin, @include
Functions: @function, @return
Inheritance: @extend
Conditions: @if, @else, @if else
Loops: @for
Variables: $, @variables, @vars
Images: image-url, image-width, image-height, ..
Embedded inline images: inline-image
Colors handling: adjust-color(), scale-color(), opacify()/transparentize(), lighten()/darken(), mix(), …
Math functions: sin(), cos(), tan(), round(), ceil(), floor(), pi(), …
Options: @option compress:true, sort:false;, @option comments:false;
Compass_ helpers: enumerate, type-of, …
Sorting declarations: in Zen sorting order
Requirements
python >= 2.5
pyparsing >= 1.5.5
Installation
python-scss should be installed using pip or setuptools:
pip install scss easy_install scss
Usage
From python source code:
from scss import parser file_path = path_to_file src = open( file_path ).read() # from file print parser.load( 'file_path' ) # from string print parser.parse( 'src' ) # Create parser object p = parser.Stylesheet( options=dict( compress=True ) ) print p.loads( src ) p.load( file_path ) print p
From command line:
$ scss --help Usage: scss [OPTION]... [INFILE] [OUTFILE] Compile INFILE or standard input, to OUTFILE or standard output. Options: --version show program's version number and exit -h, --help show this help message and exit -c, --cache Create and use cache file. Only for files. -i, --interactive Run in interactive shell mode. -m, --compress Compress css output. -w WATCH, --watch=WATCH Watch files or directories for changes. The location of the generated CSS can be set using a colon: scss -w input.scss:output.css -S, --no-sorted Do not sort declaration. -C, --no-comments Clear css comments. -W, --no-warnings Disable warnings.
In interactive mode:
scss -i >>> 25px + 1.5em
Changes
Make sure you`ve read the following document if you are upgrading from previous versions of scss:
Examples
- Nested Rules
Example:
.selector { a { display: block; } strong { color: blue; } }
…produces:
.selector a { display: block} .selector strong { color: blue}
- Variables
Example:
$main-color: #ce4dd6; $style: solid; $side: bottom; #navbar { border-#{$side}: { color: $main-color; style: $style; } }
…produces:
#navbar { border-bottom-color: #ce4dd6; border-bottom-style: solid}
- Mixins
Example:
@mixin rounded($side, $radius: 10px) { border-#{$side}-radius: $radius; -moz-border-radius-#{$side}: $radius; -webkit-border-#{$side}-radius: $radius; } #navbar li { @include rounded(top); } #footer { @include rounded(top, 5px); } #sidebar { @include rounded(left, 8px); }
…produces:
#navbar li { -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; border-top-radius: 10px} #footer { -moz-border-radius-top: 5px; -webkit-border-top-radius: 5px; border-top-radius: 5px} #sidebar { -moz-border-radius-left: 8px; -webkit-border-left-radius: 8px; border-left-radius: 8px}
- Extend (using @extend)
Example:
.error { border: 1px #f00; background-color: #fdd; } .error.intrusion { background-image: url("/image/hacked.png"); } .seriousError { @extend .error; border-width: 3px; }
…produces:
.error, .seriousError { background-color: #fdd; border: 1px #f00} .error .intrusion, .seriousError .intrusion { background-image: url('/image/hacked.png')} .seriousError { border-width: 3px}
- Interactive mode
Example:
$ python scss.py --interactive >>> 25px + 1.5em 44.5px >>> lighten(rgba(130,130,130,.4),10%) rgba(155,155,155,0.40) >>> .rule { test: red; } .rule { test: red } >>> _
Options
Python-scss has the following options:
compress: Compress ouput css, default is False
cache: Precache compile result, default is False
comments: Leave css comments, default is True
sort: Sort declaration, default is True Declaration sorted in Zen sorting order
warn: Enable or disable warnings: unwnown mixin, declaration name, extend ruleset, default is True
Option can be defined…
from command line:
scss -m -S file.scss
from python:
parser = Stylesheet( options=dict( compress=True ) )
from scss source:
@option compress: true, sort: false;
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/python-scss/issues
Contributing
Development of python-scss happens at github: https://github.com/klen/python-scss
License
Licensed under a GNU lesser general public license.
Copyright
Copyright (c) 2011 Kirill Klenov (horneds@gmail.com)
- Compass:
(c) 2009 Christopher M. Eppstein http://compass-style.org/
- SCSS:
(c) 2006-2009 Hampton Catlin and Nathan Weizenbaum http://sass-lang.com/
Note
Your feedback are welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file scss-0.8.2.tar.gz
.
File metadata
- Download URL: scss-0.8.2.tar.gz
- Upload date:
- Size: 91.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4e7e88b0569d4c028453e32e36fa40cfe2ef5aea6ab68d56f44b3bdb451d06a |
|
MD5 | 20b042cb0369bd700cb7d77f88993fa2 |
|
BLAKE2b-256 | f4357195b0054486bb7f6830d0aca308a27f2085f9e7b34c8b294ed3abd86d77 |