Relates to #3944
3.2 KiB
title: Themes summary: What makes up a SilverStripe Theme. How to install one or write your own theme.
Themes
Themes can be used to kick start your SilverStripe projects, can be stored outside of your application code and your application can provide multiple unique themes (i.e a mobile theme).
Downloading
Head to the Themes area of the website to check out the range of themes the community has built. Each theme has a page with links you can use to preview and download it. The theme is provided as a .tar.gz file.
Installation
Manually
Unpack the contents of the zip file you download into the themes
directory in your SilverStripe installation. The
theme should be accessible at themes/theme_name
.
Via Composer
If a theme has composer
support you can require it directly through composer
.
:::bash
composer require "author/theme_name" "dev/master"
After installing the files through either method, update the current theme in SilverStripe. This can be done by
either altering the SSViewer.theme
setting in a config.yml or by changing the current theme in
the Site Configuration panel (http://yoursite.com/admin/settings)
mysite/_config/app.yml :::yml SSViewer: theme: theme_name
Developing your own theme
A theme
within SilverStripe is simply a collection of templates and other front end assets such as javascript and css.
located within the themes
directory.
Your theme can also be organised into split folders for each module it caters for.
themes
blackcandy
css
style.css
images
templates
Page.ss
Layout
Page.ss
Includes
blackcandy_blog
css
blog.css
images
templates
Layout
BlogHolder.ss
BlogEntry.ss
Includes
Submitting your theme to SilverStripe
If you want to submit your theme to the SilverStripe directory then check
- You should ensure your templates are well structured, modular and commented so it's easy for other people to customize
- Templates should not contain text inside images and all images provided must be open source and not break any copyright or license laws. This includes any icons your template uses.
- A theme does not include any PHP files. Only CSS, HTML, Images and javascript.
Your theme file must be in a .tar.gz format. A useful tool for this is - 7 Zip. Using 7Zip you must select the your_theme folder and Add to archive, select TAR and create. Then after you have the TAR file right click it -> Add to Archive (again) -> Then use the archive format GZIP.