├── .editorconfig ├── .github └── workflows │ └── whiskers-check.yml ├── LICENSE ├── README.md ├── assets ├── frappe.webp ├── latte.webp ├── macchiato.webp ├── mocha.webp └── preview.webp ├── renovate.json ├── templates ├── overrides.tera └── preset.tera └── themes ├── catppuccin-frappe ├── Preset.toml └── overrides.json ├── catppuccin-latte ├── Preset.toml └── overrides.json ├── catppuccin-macchiato ├── Preset.toml └── overrides.json └── catppuccin-mocha ├── Preset.toml └── overrides.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # EditorConfig is awesome: https://EditorConfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | charset = utf-8 9 | indent_size = 2 10 | indent_style = space 11 | end_of_line = lf 12 | insert_final_newline = true 13 | trim_trailing_whitespace = true 14 | 15 | # go 16 | [*.go] 17 | indent_style = tab 18 | indent_size = 4 19 | 20 | # python 21 | [*.{ini,py,py.tpl,rst}] 22 | indent_size = 4 23 | 24 | # rust 25 | [*.rs] 26 | indent_size = 4 27 | 28 | # documentation, utils 29 | [*.{md,mdx,diff}] 30 | trim_trailing_whitespace = false 31 | 32 | # windows shell scripts 33 | [*.{cmd,bat,ps1}] 34 | end_of_line = crlf 35 | -------------------------------------------------------------------------------- /.github/workflows/whiskers-check.yml: -------------------------------------------------------------------------------- 1 | name: whiskers 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: [main] 7 | pull_request: 8 | branches: [main] 9 | 10 | jobs: 11 | run: 12 | uses: catppuccin/actions/.github/workflows/whiskers-check.yml@v1 13 | with: 14 | args: | 15 | templates/preset.tera 16 | templates/overrides.tera 17 | secrets: inherit 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Catppuccin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Logo
3 | 4 | Catppuccin for Revolt 5 | 6 |

7 | 8 |

9 | 10 | 11 | 12 |

13 | 14 |

15 | 16 |

17 | 18 | ## Previews 19 | 20 |
21 | 🌻 Latte 22 | 23 |
24 |
25 | 🪴 Frappé 26 | 27 |
28 |
29 | 🌺 Macchiato 30 | 31 |
32 |
33 | 🌿 Mocha 34 | 35 |
36 | 37 | ## Usage 38 | 39 | ### Built-in Store 40 | 41 | 1. Click on "Discover Revolt" in the server sidebar. 42 | 2. Click on "Themes" in the channels list. 43 | 3. Search for "Catppuccin" and select your preferred flavour. 44 | 45 | ### Theme Overrides 46 | 47 | 1. Copy the `overrides.json` of your preferred flavour from the [themes](./themes) directory. 48 | 2. Open your Revolt settings and go to "Appearance". 49 | 3. Expand the "Themes Overrides" section. 50 | 4. Click the "Import a Theme" button. 51 | 4. Enjoy! 52 | 53 | ## 💝 Thanks to 54 | 55 | - [Andreas Grafen](https://github.com/andreasgrafen) 56 | - [Isabelinc](https://github.com/isabelincorp) 57 | 58 |   59 | 60 |

61 |

Copyright © 2021-present Catppuccin Org 62 |

63 | -------------------------------------------------------------------------------- /assets/frappe.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/revolt/e5d3e3f752bb4f9214ef228c1a6d7a530777d806/assets/frappe.webp -------------------------------------------------------------------------------- /assets/latte.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/revolt/e5d3e3f752bb4f9214ef228c1a6d7a530777d806/assets/latte.webp -------------------------------------------------------------------------------- /assets/macchiato.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/revolt/e5d3e3f752bb4f9214ef228c1a6d7a530777d806/assets/macchiato.webp -------------------------------------------------------------------------------- /assets/mocha.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/revolt/e5d3e3f752bb4f9214ef228c1a6d7a530777d806/assets/mocha.webp -------------------------------------------------------------------------------- /assets/preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/revolt/e5d3e3f752bb4f9214ef228c1a6d7a530777d806/assets/preview.webp -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "local>catppuccin/renovate-config" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /templates/overrides.tera: -------------------------------------------------------------------------------- 1 | --- 2 | whiskers: 3 | version: ^2.5.1 4 | matrix: 5 | - flavor 6 | filename: "themes/catppuccin-{{ flavor.identifier }}/overrides.json" 7 | hex_format: "#{{r}}{{g}}{{b}}{{z}}" 8 | --- 9 | { 10 | "accent": "{{ mauve.hex }}", 11 | "background": "{{ base.hex }}", 12 | "foreground": "{{ text.hex }}", 13 | "block": "{{ crust.hex }}", 14 | "message-box": "{{ crust.hex }}", 15 | "mention": "{{ base | mod(opacity=0.1) | css_rgba }}", 16 | "success": "{{ green.hex }}", 17 | "warning": "{{ peach.hex }}", 18 | "tooltip": "#000000", 19 | "error": "{{ red.hex }}", 20 | "hover": "{{ crust | mod(opacity=0.75) | css_rgba }}", 21 | "scrollbar-thumb": "{{ lavender.hex }}", 22 | "scrollbar-track": "transparent", 23 | "primary-background": "{{ base.hex }}", 24 | "primary-header": "{{ mantle.hex }}", 25 | "secondary-background": "{{ mantle.hex }}", 26 | "secondary-foreground": "{{ overlay0.hex }}", 27 | "secondary-header": "{{ mantle.hex }}", 28 | "tertiary-background": "{{ crust.hex }}", 29 | "tertiary-foreground": "{{ surface2.hex }}", 30 | "status-online": "{{ green.hex }}", 31 | "status-away": "{{ yellow.hex }}", 32 | "status-focus": "{{ blue.hex }}", 33 | "status-busy": "{{ red.hex }}", 34 | "status-streaming": "{{ mauve.hex }}", 35 | "status-invisible": "{{ surface2.hex }}", 36 | "light": {{ if(cond=flavor.dark, t=false, f=true) }} 37 | } 38 | -------------------------------------------------------------------------------- /templates/preset.tera: -------------------------------------------------------------------------------- 1 | --- 2 | whiskers: 3 | version: ^2.5.1 4 | matrix: 5 | - flavor 6 | filename: "themes/catppuccin-{{ flavor.identifier }}/Preset.toml" 7 | hex_format: "#{{r}}{{g}}{{b}}{{z}}" 8 | --- 9 | slug = "catppuccin-{{ flavor.identifier }}" 10 | name = "Catppuccin {{ flavor.name }}" 11 | creator = "Catppuccin Org" 12 | description = "Soothing pastel theme for Revolt." 13 | tags = ["pastel", "soothing", "{{ if(cond=flavor.dark, t="dark", f="light") }}"] 14 | version = "2.0.0" 15 | 16 | [variables] 17 | light = {{ if(cond=flavor.dark, t=false, f=true) }} 18 | accent = "{{ mauve.hex }}" 19 | background = "{{ base.hex }}" 20 | foreground = "{{ text.hex }}" 21 | block = "{{ crust.hex }}" 22 | message-box = "{{ crust.hex }}" 23 | mention = "{{ base | mod(opacity=0.1) | css_rgba }}" 24 | success = "{{ green.hex }}" 25 | warning = "{{ peach.hex }}" 26 | tooltip = "#000000" 27 | error = "{{ red.hex }}" 28 | hover = "{{ crust | mod(opacity=0.75) | css_rgba }}" 29 | 30 | [variables.scrollbar] 31 | thumb = "{{ lavender.hex }}" 32 | track = "transparent" 33 | 34 | [variables.primary] 35 | background = "{{ base.hex }}" 36 | header = "{{ mantle.hex }}" 37 | 38 | [variables.secondary] 39 | background = "{{ mantle.hex }}" 40 | foreground = "{{ overlay0.hex }}" 41 | header = "{{ mantle.hex }}" 42 | 43 | [variables.tertiary] 44 | background = "{{ crust.hex }}" 45 | foreground = "{{ surface2.hex }}" 46 | 47 | [variables.status] 48 | online = "{{ green.hex }}" 49 | away = "{{ yellow.hex }}" 50 | focus = "{{ blue.hex }}" 51 | busy = "{{ red.hex }}" 52 | streaming = "{{ mauve.hex }}" 53 | invisible = "{{ surface2.hex }}" 54 | -------------------------------------------------------------------------------- /themes/catppuccin-frappe/Preset.toml: -------------------------------------------------------------------------------- 1 | slug = "catppuccin-frappe" 2 | name = "Catppuccin Frappé" 3 | creator = "Catppuccin Org" 4 | description = "Soothing pastel theme for Revolt." 5 | tags = ["pastel", "soothing", "dark"] 6 | version = "2.0.0" 7 | 8 | [variables] 9 | light = false 10 | accent = "#ca9ee6" 11 | background = "#303446" 12 | foreground = "#c6d0f5" 13 | block = "#232634" 14 | message-box = "#232634" 15 | mention = "rgba(48, 52, 70, 0.10)" 16 | success = "#a6d189" 17 | warning = "#ef9f76" 18 | tooltip = "#000000" 19 | error = "#e78284" 20 | hover = "rgba(35, 38, 52, 0.75)" 21 | 22 | [variables.scrollbar] 23 | thumb = "#babbf1" 24 | track = "transparent" 25 | 26 | [variables.primary] 27 | background = "#303446" 28 | header = "#292c3c" 29 | 30 | [variables.secondary] 31 | background = "#292c3c" 32 | foreground = "#737994" 33 | header = "#292c3c" 34 | 35 | [variables.tertiary] 36 | background = "#232634" 37 | foreground = "#626880" 38 | 39 | [variables.status] 40 | online = "#a6d189" 41 | away = "#e5c890" 42 | focus = "#8caaee" 43 | busy = "#e78284" 44 | streaming = "#ca9ee6" 45 | invisible = "#626880" 46 | -------------------------------------------------------------------------------- /themes/catppuccin-frappe/overrides.json: -------------------------------------------------------------------------------- 1 | { 2 | "accent": "#ca9ee6", 3 | "background": "#303446", 4 | "foreground": "#c6d0f5", 5 | "block": "#232634", 6 | "message-box": "#232634", 7 | "mention": "rgba(48, 52, 70, 0.10)", 8 | "success": "#a6d189", 9 | "warning": "#ef9f76", 10 | "tooltip": "#000000", 11 | "error": "#e78284", 12 | "hover": "rgba(35, 38, 52, 0.75)", 13 | "scrollbar-thumb": "#babbf1", 14 | "scrollbar-track": "transparent", 15 | "primary-background": "#303446", 16 | "primary-header": "#292c3c", 17 | "secondary-background": "#292c3c", 18 | "secondary-foreground": "#737994", 19 | "secondary-header": "#292c3c", 20 | "tertiary-background": "#232634", 21 | "tertiary-foreground": "#626880", 22 | "status-online": "#a6d189", 23 | "status-away": "#e5c890", 24 | "status-focus": "#8caaee", 25 | "status-busy": "#e78284", 26 | "status-streaming": "#ca9ee6", 27 | "status-invisible": "#626880", 28 | "light": false 29 | } 30 | -------------------------------------------------------------------------------- /themes/catppuccin-latte/Preset.toml: -------------------------------------------------------------------------------- 1 | slug = "catppuccin-latte" 2 | name = "Catppuccin Latte" 3 | creator = "Catppuccin Org" 4 | description = "Soothing pastel theme for Revolt." 5 | tags = ["pastel", "soothing", "light"] 6 | version = "2.0.0" 7 | 8 | [variables] 9 | light = true 10 | accent = "#8839ef" 11 | background = "#eff1f5" 12 | foreground = "#4c4f69" 13 | block = "#dce0e8" 14 | message-box = "#dce0e8" 15 | mention = "rgba(239, 241, 245, 0.10)" 16 | success = "#40a02b" 17 | warning = "#fe640b" 18 | tooltip = "#000000" 19 | error = "#d20f39" 20 | hover = "rgba(220, 224, 232, 0.75)" 21 | 22 | [variables.scrollbar] 23 | thumb = "#7287fd" 24 | track = "transparent" 25 | 26 | [variables.primary] 27 | background = "#eff1f5" 28 | header = "#e6e9ef" 29 | 30 | [variables.secondary] 31 | background = "#e6e9ef" 32 | foreground = "#9ca0b0" 33 | header = "#e6e9ef" 34 | 35 | [variables.tertiary] 36 | background = "#dce0e8" 37 | foreground = "#acb0be" 38 | 39 | [variables.status] 40 | online = "#40a02b" 41 | away = "#df8e1d" 42 | focus = "#1e66f5" 43 | busy = "#d20f39" 44 | streaming = "#8839ef" 45 | invisible = "#acb0be" 46 | -------------------------------------------------------------------------------- /themes/catppuccin-latte/overrides.json: -------------------------------------------------------------------------------- 1 | { 2 | "accent": "#8839ef", 3 | "background": "#eff1f5", 4 | "foreground": "#4c4f69", 5 | "block": "#dce0e8", 6 | "message-box": "#dce0e8", 7 | "mention": "rgba(239, 241, 245, 0.10)", 8 | "success": "#40a02b", 9 | "warning": "#fe640b", 10 | "tooltip": "#000000", 11 | "error": "#d20f39", 12 | "hover": "rgba(220, 224, 232, 0.75)", 13 | "scrollbar-thumb": "#7287fd", 14 | "scrollbar-track": "transparent", 15 | "primary-background": "#eff1f5", 16 | "primary-header": "#e6e9ef", 17 | "secondary-background": "#e6e9ef", 18 | "secondary-foreground": "#9ca0b0", 19 | "secondary-header": "#e6e9ef", 20 | "tertiary-background": "#dce0e8", 21 | "tertiary-foreground": "#acb0be", 22 | "status-online": "#40a02b", 23 | "status-away": "#df8e1d", 24 | "status-focus": "#1e66f5", 25 | "status-busy": "#d20f39", 26 | "status-streaming": "#8839ef", 27 | "status-invisible": "#acb0be", 28 | "light": true 29 | } 30 | -------------------------------------------------------------------------------- /themes/catppuccin-macchiato/Preset.toml: -------------------------------------------------------------------------------- 1 | slug = "catppuccin-macchiato" 2 | name = "Catppuccin Macchiato" 3 | creator = "Catppuccin Org" 4 | description = "Soothing pastel theme for Revolt." 5 | tags = ["pastel", "soothing", "dark"] 6 | version = "2.0.0" 7 | 8 | [variables] 9 | light = false 10 | accent = "#c6a0f6" 11 | background = "#24273a" 12 | foreground = "#cad3f5" 13 | block = "#181926" 14 | message-box = "#181926" 15 | mention = "rgba(36, 39, 58, 0.10)" 16 | success = "#a6da95" 17 | warning = "#f5a97f" 18 | tooltip = "#000000" 19 | error = "#ed8796" 20 | hover = "rgba(24, 25, 38, 0.75)" 21 | 22 | [variables.scrollbar] 23 | thumb = "#b7bdf8" 24 | track = "transparent" 25 | 26 | [variables.primary] 27 | background = "#24273a" 28 | header = "#1e2030" 29 | 30 | [variables.secondary] 31 | background = "#1e2030" 32 | foreground = "#6e738d" 33 | header = "#1e2030" 34 | 35 | [variables.tertiary] 36 | background = "#181926" 37 | foreground = "#5b6078" 38 | 39 | [variables.status] 40 | online = "#a6da95" 41 | away = "#eed49f" 42 | focus = "#8aadf4" 43 | busy = "#ed8796" 44 | streaming = "#c6a0f6" 45 | invisible = "#5b6078" 46 | -------------------------------------------------------------------------------- /themes/catppuccin-macchiato/overrides.json: -------------------------------------------------------------------------------- 1 | { 2 | "accent": "#c6a0f6", 3 | "background": "#24273a", 4 | "foreground": "#cad3f5", 5 | "block": "#181926", 6 | "message-box": "#181926", 7 | "mention": "rgba(36, 39, 58, 0.10)", 8 | "success": "#a6da95", 9 | "warning": "#f5a97f", 10 | "tooltip": "#000000", 11 | "error": "#ed8796", 12 | "hover": "rgba(24, 25, 38, 0.75)", 13 | "scrollbar-thumb": "#b7bdf8", 14 | "scrollbar-track": "transparent", 15 | "primary-background": "#24273a", 16 | "primary-header": "#1e2030", 17 | "secondary-background": "#1e2030", 18 | "secondary-foreground": "#6e738d", 19 | "secondary-header": "#1e2030", 20 | "tertiary-background": "#181926", 21 | "tertiary-foreground": "#5b6078", 22 | "status-online": "#a6da95", 23 | "status-away": "#eed49f", 24 | "status-focus": "#8aadf4", 25 | "status-busy": "#ed8796", 26 | "status-streaming": "#c6a0f6", 27 | "status-invisible": "#5b6078", 28 | "light": false 29 | } 30 | -------------------------------------------------------------------------------- /themes/catppuccin-mocha/Preset.toml: -------------------------------------------------------------------------------- 1 | slug = "catppuccin-mocha" 2 | name = "Catppuccin Mocha" 3 | creator = "Catppuccin Org" 4 | description = "Soothing pastel theme for Revolt." 5 | tags = ["pastel", "soothing", "dark"] 6 | version = "2.0.0" 7 | 8 | [variables] 9 | light = false 10 | accent = "#cba6f7" 11 | background = "#1e1e2e" 12 | foreground = "#cdd6f4" 13 | block = "#11111b" 14 | message-box = "#11111b" 15 | mention = "rgba(30, 30, 46, 0.10)" 16 | success = "#a6e3a1" 17 | warning = "#fab387" 18 | tooltip = "#000000" 19 | error = "#f38ba8" 20 | hover = "rgba(17, 17, 27, 0.75)" 21 | 22 | [variables.scrollbar] 23 | thumb = "#b4befe" 24 | track = "transparent" 25 | 26 | [variables.primary] 27 | background = "#1e1e2e" 28 | header = "#181825" 29 | 30 | [variables.secondary] 31 | background = "#181825" 32 | foreground = "#6c7086" 33 | header = "#181825" 34 | 35 | [variables.tertiary] 36 | background = "#11111b" 37 | foreground = "#585b70" 38 | 39 | [variables.status] 40 | online = "#a6e3a1" 41 | away = "#f9e2af" 42 | focus = "#89b4fa" 43 | busy = "#f38ba8" 44 | streaming = "#cba6f7" 45 | invisible = "#585b70" 46 | -------------------------------------------------------------------------------- /themes/catppuccin-mocha/overrides.json: -------------------------------------------------------------------------------- 1 | { 2 | "accent": "#cba6f7", 3 | "background": "#1e1e2e", 4 | "foreground": "#cdd6f4", 5 | "block": "#11111b", 6 | "message-box": "#11111b", 7 | "mention": "rgba(30, 30, 46, 0.10)", 8 | "success": "#a6e3a1", 9 | "warning": "#fab387", 10 | "tooltip": "#000000", 11 | "error": "#f38ba8", 12 | "hover": "rgba(17, 17, 27, 0.75)", 13 | "scrollbar-thumb": "#b4befe", 14 | "scrollbar-track": "transparent", 15 | "primary-background": "#1e1e2e", 16 | "primary-header": "#181825", 17 | "secondary-background": "#181825", 18 | "secondary-foreground": "#6c7086", 19 | "secondary-header": "#181825", 20 | "tertiary-background": "#11111b", 21 | "tertiary-foreground": "#585b70", 22 | "status-online": "#a6e3a1", 23 | "status-away": "#f9e2af", 24 | "status-focus": "#89b4fa", 25 | "status-busy": "#f38ba8", 26 | "status-streaming": "#cba6f7", 27 | "status-invisible": "#585b70", 28 | "light": false 29 | } 30 | --------------------------------------------------------------------------------