A dark theme focused on minimalism, simplicity and cross-tool consistency, shipped in two flavors:
Morokfeatures pitch black β neutral greys on a true-black floor.Popilfeatures warm ash β the same palette lifted off black with a warm tint.
Both flavors share identical accents, neutrals, and ports β only the background ramp differs (cold black vs warm). Pick morok for maximum contrast, popil for a softer, warmer dark.
Preview the palette, compare both flavors, and browse the ports live at theme.pivoshenko.dev.
Repository contains ports for various terminal applications and userstyles for popular websites. All ports are generated from the source palettes (themes/palettes/morok.json, themes/palettes/popil.json) against shared templates, ensuring a cohesive look across different tools and platforms. Every port below ships as both themes/dist/<tool>/morok.<ext> and themes/dist/<tool>/popil.<ext> β swap the filename to use the warm flavor.
See pivoshenko.dotfiles for a real-world setup consuming the theme across fish, starship, helix, ghostty, zed, k9s, bottom, lazygit, zellij, bat, spicetify, and stylus.
About the names
Morok (pronounced [mo-rok]) is a Ukrainian word that means "darkness" or "gloom". It is often used to describe a state of melancholy, sadness, or despair, or a dark and gloomy atmosphere.
Popil (pronounced [po-pil]) is a Ukrainian word that means "ash". It evokes the warm grey embers smouldering after a fire has burned down β a faint, lingering heat in the dark. It carries a sense of quiet aftermath: of what remains, still warm, once the flame is gone β mirroring this flavor's warm off-black ramp.
- Copy
themes/dist/bat/morok.tmThemeto~/.config/bat/themes/. - Run
bat cache --build. - Set
--theme="morok"in~/.config/bat/config.
- Copy
themes/dist/bottom/morok.tomlto~/.config/bottom/bottom.toml. - Start
btm.
- Copy
themes/dist/delta/morok.gitconfigto~/.config/delta/themes/morok.gitconfig. - Add
include = ~/.config/delta/themes/morok.gitconfigunder[include]in~/.gitconfig. - Set
features = morokunder[delta]in~/.gitconfig.
- Copy
themes/dist/discord/morok.theme.cssto your Discord themes folder (~/.config/vesktop/themes/for Vesktop, or BetterDiscord themes directory). - Enable the theme in your Discord client.
- Copy
themes/dist/fish/morok.themeto~/.config/fish/themes/. - Run
fish_config theme save morok.
- Copy
themes/dist/fzf/morok.fishto~/.config/fish/conf.d/. - Start a new Fish session, or source the file manually.
- Set
FZF_DEFAULT_OPTS="$FZF_MOROK_DARK"or append$FZF_MOROK_DARKto your existingFZF_DEFAULT_OPTS.
- Copy
themes/dist/ghostty/morok.confto~/.config/ghostty/themes/morok. - Set
theme = morokin~/.config/ghostty/config.
- Copy
themes/dist/helix/morok.tomlto~/.config/helix/themes/morok.toml. - Set
theme = "morok"in~/.config/helix/config.toml.
- Copy
themes/dist/k9s/morok.yamlto~/.config/k9s/skins/morok.yaml. - Set
skin: morokin~/.config/k9s/config.yaml.
- Copy
themes/dist/lazygit/morok.ymlto~/.config/lazygit/config.yml. - Or merge only the
theme:section into your existing config.
- Copy
themes/dist/obsidian/morok.cssto your Obsidian theme folder and rename it totheme.css. - Optionally copy
themes/dist/obsidian/morok.manifest.jsonand rename it tomanifest.json. - Enable the theme in Obsidian Appearance settings.
- Copy
themes/dist/spicetify/morok.color.inito~/.config/spicetify/Themes/morok/color.ini. - Set
current_theme = morokin your Spicetify config. - Run
spicetify apply.
- Copy the palette from
themes/dist/starship/morok.tomlto your Starship configuration file. - Set
palette = "morok", preferably near the top of your config. - Save and reload your prompt.
- Open the theme deep link in Telegram:
pivoshenko_theme_morokorpivoshenko_theme_popil. - Tap "Apply Theme".
Platform-specific source files live in themes/dist/telegram/ (*-desktop, *-ios, *-macos).
- Install a Catppuccin VSCode theme (for example
Catppuccin Mocha). - Open the generated override snippet
themes/dist/vscode/morok.json. - Merge its
catppuccin.colorOverridesblock into your VSCodesettings.json.
- Copy
themes/dist/zed/morok.jsonto a stable location, for example~/.config/zed/themes/morok.json. - Open Zed and choose the theme from
Theme Selector(or set it in your Zed settings).
- Copy
themes/dist/zen/morok.userChrome.cssandthemes/dist/zen/morok.userContent.cssinto your Zen profilechrome/directory asuserChrome.cssanduserContent.css. - Restart Zen Browser.
- Copy the theme block from
themes/dist/zellij/morok.kdlinto your Zellij config, or place it in a sourced theme file. - Set the active theme to
morok.
For Next.js / Tailwind 3 sites in the pivoshenko.* ecosystem.
// tailwind.config.ts
import type { Config } from 'tailwindcss'
import morok from './path/to/themes/dist/tailwind/morok.js'
export default {
presets: [morok],
content: ['./app/**/*.{ts,tsx}', './components/**/*.{ts,tsx}'],
} satisfies ConfigExposes colors.morok.<token> (e.g. bg-morok-base, text-morok-blue) plus a JetBrains Mono font stack and darkMode: 'class'. Consumed in production via pivoshenko.ui as @pivoshenko/tailwind-preset.
For plain-CSS surfaces and design-system docs.
@import url('/path/to/themes/dist/css-vars/morok.css');
.button { background: var(--morok-blue); color: var(--morok-text); }Every palette token becomes a --morok-<token> custom property on :root.
- Install the Stylus browser extension.
- In Stylus, open the extension popup, go to
Manage, thenImport. - Select
themes/dist/stylus/morok.json.
Default accent color is blue.
Browse the available styles under themes/userstyles/styles/.
Palette structure and token naming inspired by Catppuccin.