The intention of this policy is to:
- Encourage a focus among many developers on improving the whole theme system
- Support the development of excellent mobile interfaces
- Allow diversity in future when required
Policy:
- /theme/bootstrapbase should implement Bootstrap CSS and layouts as faithfully and simple as possible. The only exceptions are for JS-powered blocks and navigation which should be seen as ADDITIONAL to the basic Bootstrap model and are defined in this theme primarily so that all child themes can benefit from that code.
- /theme/clean should not contain any additional CSS, it's just the simplest implementation example of a bootstrapbase child theme.
- Moodle core code must use renderers in as many places as possible. Where possible, the default HTML in those renderers should be as simple as possible (Bootstrap provides a good model to follow if there are any doubts).
- If using Bootstrap HTML would break backward compatibility too much, then implement the default renderer to provide legacy HTML, and then override the renderer in bootstrapbase.
- If the only reason to implement a new renderer in Bootstrapbase would be to add some class names, then we should just add those classnames to the original renderer to reduce complexity.
- If we add any other CSS framework to core in future (eg /theme/purebase) then we can similarly add those class names to the same default renderers.
- All JS in any core themes must be YUI3 only.