History: How To Add a New Theme
Source of version: 13
Copy to clipboard
{REMARKSBOX(type="info" title="Revamped theme organization from Tiki14")} In Tiki13, the Twitter Bootstrap CSS framework was integrated as base for Tiki's layout and design. From Tiki14 (trunk pre-14 as of Sept 12, 2014) there is a new directory structure for themes, as described on this page. ''For Tiki12 LTS please visit ((How To Add a New Theme - until Tiki12))''{REMARKSBOX} ! Theme components A Tiki theme can be made of several components. as there is at least a CSS style sheet, as well as background images, fonts and, in the future, icons, and possibly one or more theme-specific Smarty templates although having customized templates is not encouraged due to potential compatibility problems. As Tiki contains a full set of default templates, the minimum requirement to create a custom theme is a custom CSS stylesheet. As of Tiki 14, themes are deployed in the directory "themes," which is a subdirectory of the Tiki root installation directory. Every theme has its own directory that contains the components of the theme. The name of the theme's directory is the same as the name of the theme. The following is an example of the directory structure: * {icon name="folder-o"} themes ** {icon name="folder-o"} mytheme *** {icon name="folder-o"} css **** mytheme.css ***** The .CSS file has to be named the same as the theme's directory, eg: "mytheme.css" - Tiki names the theme from the containing theme-specific folder. ***** The mytheme.css is usually compiled from the less files which are in the less directory. **** custom.css ***** The custom.css file contents override and complete mytheme.css. This is the place for hand-made CSS changes. *** {icon name="folder-o"} fonts **** This is the place to store fonts to be used by the theme in cases when web fonts aren't used. *** {icon name="folder-o"} icons **** This is the place for a specific icon font set to be used by the theme. *** {icon name="folder-o"} images **** This is the place to store theme-related images for backgrounds and other purposes. *** {icon name="folder-o"} js **** custom.js ***** The custom.js file is the place for hand-made Javascript changes (without surrounding your code with <sc~np~~/np~ript> html tag). *** {icon name="folder-o"} scss **** mytheme.scss **** _variables.scss **** _tiki-selectors.scss **** etc. **** This directory contains the SCSS files from which, along with global SCSS files, are compiled the theme style sheet. *** {icon name="folder-o"} options **** Themes can have one or more options or child themes. (The themes used at this site, https://doc.tiki.org, https://dev.tiki.org and https://tiki.org are all theme options or child themes.) This is a way to provide color alternatives, for example, such as a dark mode for the website. The parent theme is loaded and then the child theme overrides any styles that it has defined. *** {icon name="folder-o"} templates **** Any customized Smarty template stored in this directory overwrites the default template with the same name, if CSS isn't sufficient to make layout changes, for example. But having custom versions of template files is not encouraged because they can become out of date and cause errors when the site is updated to a new Tiki version. ! Activating your new theme After you create the directories as described above for your new theme and add it to the Tiki file structure, and at least a stylesheet file with the same name as the theme's folder (such as mytheme.css) in the folder themes/mytheme/css, you will find the theme in the "Theme selection" selector in Admin -> Look & Feel -> Theme. Please mind to reload the page after you add the theme to the server. Clearing the Tiki caches may also be necessary when you add a theme ''(/tiki-admin_system.php?do=all)''. -=Alias=- (alias(How To Add a New Bootstrap Theme))