Create a theme
Themes for The Lounge are CSS files bundled in packages preferably hosted on the npm registry.
Alternatively, packages from the local file system can be installed.
In a directory named after your new theme (for example, thelounge-theme-foo), start by creating a new package with the following command:
yarn init -y
This will create a package.json file that you must edit as such:
- Make sure
"name"is the name of your package,"thelounge-theme-foo" - Change the value of
"main"to be"package.json" - Add a
"keywords"to make sure your theme is discoverable:"keywords": [ "thelounge", "thelounge-theme" ] - Add a
"thelounge"section with required metadata."css"should be the your CSS file name, and"name"the display name to appear in the client settings:"thelounge": { "css": "theme.css", "name": "Theme Name", "type": "theme" },
Although it is not required, we strongly recommend you also fill in the "homepage", "repository", and "bugs" sections.
For a comprehensive example, refer to the package.json file of thelounge-theme-solarized.
Shipping additional files in the theme
Optionally, you can distribute other files along with the theme stylesheet as follows:
"thelounge": {
"css": "theme.css",
"name": "Theme Name",
"type": "theme",
"files": [
"alternative-font.woff2",
"sprites.png"
]
},
After installing the theme, these files will be available under /packages/<package name>/<file-name>.
@font-face {
font-family: "Alternative Font Name";
src: url(/packages/<package name>/alternative-font.woff2) format("woff2");
}
Advanced configuration
Alternatively to the "thelounge" section in package.json, it is possible to point "main" to a JavaScript file that exports an object containing the same information as above:
module.exports = {
thelounge: {
css: "theme.css",
name: "Theme Name",
type: "theme"
}
};