README.md

December 10, 2025 · View on GitHub

Rosé Pine Bloom

All natural pine, faux fur and a bit of soho vibes for the classy minimalist

Bloom new Rosé Pine themes

About

Bloom is an opinionated theme generator, matching the Rosé Pine style guide.

Install

Homebrew

A Homebrew formula is available from our official tap:

brew install rose-pine/tap/bloom

Arch Linux

Use your favourite AUR helper or build from source per the AUR instructions:

# Community maintained
# https://aur.archlinux.org/packages/rose-pine-bloom
yay -S rose-pine-bloom

Releases

Download one of the prebuilt releases or use goblin.run:

curl -sf http://goblin.run/github.com/rose-pine/rose-pine-bloom | OUT=bloom sh

Build

With Go installed:

go build -o $(go env GOPATH)/bin/bloom github.com/rose-pine/rose-pine-bloom

Usage

See our full documentation for more information.

For existing themes, use bloom init (docs) to create a template, for example:

bloom init theme.json
# This will create a template.json file in the same directory

To build your themes, use bloom build (docs):

bloom build template.json

Variables

By default, variables are prefixed with $

Our palette is available by name, e.g. "love" or "highlightMed", as well as metadata related values mentioned below.

VariableValue <main,moon,dawn>
idrose-pine<-moon,-dawn>
nameRosé Pine <Moon,Dawn>
appearance<dark,dark,light>
descriptionAll natural pine, faux fur and a bit of soho vibes for the classy minimalist

Accents

Specify an $accent or $accentname variable to generate a theme for every accent:

// template.json
{ "accent": "$accent", "name": "$accentname" }

// rose-pine-love.json
{ "accent": "#eb6f92", "name": "love" }

// rose-pine-gold.json
{ "accent": "#f6c177", "name": "gold" }

...

// rose-pine-moon-rose.json
{ "accent": "#ea9a97", "name": "rose" }

// rose-pine-moon-pine.json
{ "accent": "#3e8fb0", "name": "pine" }

...

// rose-pine-dawn-foam.json
{ "accent": "#56949f", "name": "foam" }

// rose-pine-dawn-iris.json
{ "accent": "#907aa9", "name": "iris" }

Using custom values per variant

Use different values for each variant, formatted as $(main|moon|dawn):

// template.json
{ "order": "$(Caffè|Cappuccino|Marocchino)" }

// rose-pine.json
{ "order": "Caffè" }

// rose-pine-moon.json
{ "order": "Cappuccino" }

// rose-pine-dawn.json
{ "order": "Marocchino" }

It is possible to use variables inside of this syntax as well:

{ "background": "$($rose|$foam|$iris)" }

Contributing

We welcome and appreciate contributions of any kind. Please create an issue for any proposed changes.