# tinycss: CSS parser for Python

tinycss is a complete yet simple CSS parser for Python. It supports the full syntax and error handling for CSS 2.1 as well as some CSS 3 modules:

- CSS Color 3

- CSS Fonts 3

- CSS Paged Media 3

It is designed to be easy to extend for new CSS modules and syntax, and integrates well with cssselect for Selectors 3 support.

Quick facts:

- Free software: BSD licensed

- Compatible with Python 2.7 and 3.x

- Latest documentation on python.org

- Source, issues and pull requests on Github

- Releases on PyPI

- Install with `pip install tinycss`

## Requirements

tinycss is tested on CPython 2.7, 3.3, 3.4 and 3.5 as well as PyPy 5.3 and PyPy3 2.4; it should work on any implementation of Python 2.7 or later version (including 3.x) of the language.

Cython is used for optional accelerators but is only required for development versions on tinycss.

## Installation

Installing with pip should Just Work:

    pip install tinycss

The release tarballs contain pre-cythoned C files for the accelerators: you will not need Cython to install like this. If the accelerators fail to build for some reason, tinycss will print a warning and fall back to a pure-Python installation.

## Documentation

- Parsing with tinycss
  - Quickstart
  - Parsers
  - Parsed objects
  - Tokens
- CSS 3 Modules
  - Selectors 3
  - Color 3
  - Paged Media 3
  - Fonts 3
  - Other CSS modules
- Extending the parser
  - Example: star hack
  - Parser methods
  - Unparsed at-rules
  - Parsing helper functions
- Hacking tinycss
  - Bugs and feature requests
  - Installing the development version
  - Running the test suite
  - Building the documentation
  - Making a patch and a pull request
  - Mailing-list
- tinycss changelog
  - Version 0.4
  - Version 0.3
  - Version 0.2
  - Version 0.1.1
  - Version 0.1