Onegov Foundation API

Theme

class onegov.foundation.theme.BaseTheme(compress=True)[source]

Base class for Zurb Foundation based themes. Use this class to create a theme that customizes Zurb Foundation somehow.

If you don’t want to customize it at all, use Theme.

To customize start like this:

from onegov.foundation import BaseTheme

class MyTheme(BaseTheme):
    name = 'my-theme'
    version = '1.0'

You can then add paths with your own scss files, as well as imports that should be added before the foundation theme, and imports that should be added after the foundation theme.

Finally, options passed to the compile() function take this form:

options = {
    'rowWidth': '1000px',
    'columnGutter': '30px'
}

Those options result in variables added at the very top of the sass source before it is compiled:

@import 'foundation/functions';

$rowWidth: 1000px;
$columnGutter: 30px;

If your variables rely on a certain order you need to pass an ordered dict.

property default_options

Default options used when compiling the theme.

property pre_imports

Imports added before the foundation import. The imports must be found in one of the paths (see extra_search_paths).

The form of a single import is ‘example’ (which would search for files named ‘example.scss’)

property foundation_components

All used foundation components.

property imports

All imports, including the foundation ones. Override with care.

property post_imports

Imports added after the foundation import. The imports must be found in one of the paths (see extra_search_paths).

The form of a single import is ‘example’ (which would search for files named ‘example.scss’)

property extra_search_paths

A list of absolute search paths added before the actual foundation search path.

property foundation_path

The search path for the foundation files included in this module.

compile(options={})[source]

Compiles the theme with the given options.

class onegov.foundation.theme.Theme(compress=True)[source]

Zurb Foundation vanilla theme. Use this if you don’t want any changes to zurb foundation, except for setting supported variables.

Do not use this class as a base for your own theme!

Example:

from onegov.core import Framework
from onegov.foundation import Theme

class App(Framework):
    theme_options = {
        'rowWidth': '1200px'
    }

@App.setting(section='core', name='theme')
def get_theme():
    return Theme()