Version 6 (modified by 7 years ago) ( diff ) | ,
---|
Creating new Themes with Foundation and SCSS
Style Sheets
Necessary Style Sheets
Foundation
Foundation-based themes must include the Foundation base stylesheets:
- static/themes/foundation/normalize.css
- static/themes/THEME/foundation/foundation.css
- static/themes/THEME/foundation/foundation.rtl.css
These base styles must be loaded before all other Sahana style sheets.
Note that only one of foundation.css
or foundation.rtl.css
is loaded, depending on the writing direction for the current UI language (Left-To-Right or Right-To-Left).
Theme
The SCSS-built theme.css
style sheet is included at the end of css.cfg
:
... ../themes/THEME/theme.css #../themes/THEME/style.css # Final line required for parsing
It can be followed by an optional THEME/style.css
with additional, theme-specific CSS and final overrides. The THEME/style.css
is not built from SCSS, so it can be edited directly.
Adding Foundation to layout.html
The sequence to include Foundation base styles, consisting of normalize.css
and foundation.css
resp. foundation.rtl.css
, is encoded in a view template views/foundation.css.html
, so it can easily be added to layout.html
:
... {{for sheet in s3.external_stylesheets:}} <link href="{{=sheet}}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> {{pass}} {{include "foundation.css.html"}} <--- Foundation base styles are loaded here {{for sheet in s3.stylesheets:}} <link href="/{{=appname}}/static/styles/{{=sheet}}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> {{pass}} {{if s3.debug:}}{{=s3base.s3_include_debug_css()}}{{else:}} {{# Built by /static/scripts/tools/build.sahana.py }} <link href="/{{=appname}}/static/themes/{{=theme}}/eden.min.css" rel="stylesheet" type="text/css" /> {{pass}} ...
Additionally, Foundation requires loading and initialization of some scripts at the end of the <body>
. The corresponding sequence is also encoded in a view template views/foundation.js.html
, so it can easily be added to layout.html
:
... {{include "foundation.js.html"}} <--- this loads and initializes Foundation scripts </body> </html>