sixteen
Version, currently 0.6.021 versions
- 0.9.0latestAug 23, 2026
- 0.8.1not indexedAug 23, 2026
- 0.8.0Jan 25, 2026
- 0.7.0not indexedFeb 11, 2026
- 0.6.3not indexedFeb 11, 2026
- 0.6.2not indexedFeb 11, 2026
- 0.6.1not indexedFeb 11, 2026
- 0.6.0not indexedFeb 11, 2026
- 0.5.4not indexedFeb 11, 2026
- 0.5.3not indexedFeb 11, 2026
- 0.5.2not indexedFeb 11, 2026
- 0.5.1not indexedFeb 11, 2026
- 0.5.0not indexedFeb 11, 2026
- 0.4.2not indexedFeb 11, 2026
- 0.4.1not indexedFeb 11, 2026
- 0.4.0not indexedFeb 11, 2026
- 0.3.1not indexedFeb 11, 2026
- 0.3.0not indexedFeb 11, 2026
- 0.2.0not indexedFeb 11, 2026
- 0.1.0not indexedFeb 11, 2026
- vv0.5.0not indexedFeb 11, 2026
github.com/ralsina/sixteen
No description declared in shard.yml.
Nothing has been indexed for 0.6.0 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.
Installation
# Add this to your shard.yml
dependencies:
sixteen:
github: ralsina/sixteen
version: ~> 0.6.0Then run:
shards installshard.yml
No shard.yml has been indexed for 0.6.0. You can read it on the repository.
Dependencies
Unknown: the shard.yml for this version has not been read yet.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
Sixteen
Sixteen is a Crystal library to access Base-16 theme data.
It embeds the whole base16 theme set (300+ themes), so you can use it in your applications without having to track things down and carry them around (the bad news: it adds about .6MB to your binary).
For more information on base16, check Tinted Theming
As a bonus, this creates a binary, called sixteen that can
render templates using the themes.
Sixteen: a Tinted Themes builder
It combines a templated as defined in the Tinted Themes
specification with a color scheme to generate a theme file.
Usage:
sixteen (-h | --help)
sixteen --list
sixteen --info <scheme> [--light | --dark]
sixteen --build <template> <scheme> [--light | --dark]
sixteen --render <template> <scheme> [--light | --dark]
sixteen --families
sixteen --version
sixteen --interactive
Options:
-h --help Show this screen.
--list List available schemes.
--info Show information about a scheme.
--build Build theme files from a tinted themes style
template folder and a scheme.
--render Render a mustache template with a scheme.
--families Show theme families (dark/light variant groups).
--light Use light variant of the specified theme.
--dark Use dark variant of the specified theme.
--interactive Show an interactive menu to look at themes.
--version Show version.
The interactive mode shows the themes and gives you some information about them.
Installation
-
Add the dependency to your
shard.yml:dependencies: sixteen: github: ralsina/sixteen -
Run
shards install
Usage
require "sixteen"
You can get a Sixteen::Theme object by name:
Sixteen.theme("unikitty-dark")
You can get a template (in the Tinting Themes sense) parsed by path, and render it by passing a theme (be very careful about where the output goes!)
template = Sixteen.template("i3")
template.render(Sixteen.theme("unikitty-dark"), "unikitty-dark")
Templates now include family navigation context, allowing templates to link to related themes (dark/light variants).
theme = Sixteen.theme("unikitty-dark")
puts theme["base00"].hex # 212a31
puts theme[0].r # 33
Template Context
When rendering templates, sixteen provides the following context variables:
Theme metadata:
scheme-name,scheme-author,scheme-slug,scheme-variantscheme-is-light-variant,scheme-is-dark-variant(boolean flags)
Color formats (for each of the 16 base colors):
base00-hex,base00-hex-bgr,base00-hex-r/g/bbase00-rgb-r/g/b(0-255)base00-dec-r/g/b(0.0-1.0)
Family navigation:
family-other-dark-0throughfamily-other-dark-9- Other dark theme variantsfamily-other-light-0throughfamily-other-light-9- Other light theme variantsfamily-other-dark-count- Number of dark variantsfamily-other-light-count- Number of light variants
Example template usage for family navigation:
{{#family-other-light-count}}
Other light variants:
{{#family-other-light-0}}<a href="{{family-other-light-0}}/">{{family-other-light-0}}</a>{{/family-other-light-0}}
{{#family-other-light-1}}, <a href="{{family-other-light-1}}/">{{family-other-light-1}}</a>{{/family-other-light-1}}
{{/family-other-light-count}}
Choosing what themes you want
By default Sixteen will provide all the themes by embedding them in the binary. This makes the binary large! If you are using sixteen as a library, you may want to include just a few themes. To do that:
- Pass the
-Dnothemesflag to the compiler - Set the
SIXTEEN_THEMESenvironment variable to a comma-separated list of themes you want to include.
This builds the theme browser with only the horizon-dark and horizon-light themes:
SIXTEEN_THEMES=horizon-dark,horizon-light shards build -Dnothemes
Development
TODO: Write development instructions here
Contributing
- Fork it (https://github.com/ralsina/sixteen/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Roberto Alsina - creator and maintainer
- Themes are from Tinted Theming and written by dozens of people (each theme has individual credits!)
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.6.0- Tagged
- Feb 11, 2026
- Commit
5b026a3db787- Indexed
- not yet
Dependents
Repository
github.com/ralsina/sixteen
Metadata
- Created
- Aug 12, 2026
- Updated
- Sep 26, 2026
- Synced
- Sep 26, 2026
- Versions
- 21