CleverCSS /


CleverCSS is a small markup language for CSS inspired by Python that can be used
to build a style sheet in a clean and structured way.  In many ways it's cleaner
and more powerful than CSS2 is.

The most obvious difference to CSS is the syntax: it is indentation based and
not flat.  While this is obviously against the Python Zen, it's nonetheless a
good idea for structural styles.


To get an idea of how CleverCSS works you can see a small example below.  Note
the indentation based syntax and how you can nest rules::

    ul#comments, ol#comments:
      margin: 0
      padding: 0

        padding: 0.4em
        margin: 0.8em 0 0.8em

          font-size: 1.2em
          padding: 0.3em
          text-align: right
          color: #ddd

Of course you can do the very same in CSS, but because of its flat nature the
code would look more verbose.  The following piece of code is the CleverCSS
output of the above file::

    ol#comments {
      margin: 0;
      padding: 0;

    ul#comments li,
    ol#comments li {
      padding: 0.4em;
      margin: 0.8em 0 0.8em;

    ul#comments li h3,
    ol#comments li h3 {
      font-size: 1.2em;

    ul#comments li p,
    ol#comments li p {
      padding: 0.3em;

    ul#comments li p.meta,
    ol#comments li p.meta {
      text-align: right;
      color: #dddddd;

But that's only a small example of what you can do with CleverCSS.  Have a look
at the following documentation of CleverCSS for more details.
    from setuptools import setup
except ImportError:
    from distutils.core import setup

    author='Armin Ronacher',
    description='funky css preprocessor dammit',
        'License :: OSI Approved :: BSD License',
        'Programming Language :: Python'
    entry_points = {
        'console_scripts': [
            'clevercss = clevercss:main',
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.