Showing preview only (450K chars total). Download the full file or copy to clipboard to get everything.
Repository: jenslys/zed-catppuccin-blur
Branch: master
Commit: c2eefcfad723
Files: 10
Total size: 438.0 KB
Directory structure:
gitextract_4ora5glf/
├── .gitattributes
├── .github/
│ └── workflows/
│ ├── manual-release.yml
│ └── sync-theme.yml
├── .gitignore
├── LICENSE
├── README.md
├── extension.toml
├── sync_theme.py
├── theme_overrides.py
└── themes/
└── catppuccin-blur.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto
================================================
FILE: .github/workflows/manual-release.yml
================================================
name: Manual Release
on:
workflow_dispatch:
inputs:
version_bump:
description: "Version bump type"
required: true
type: choice
options:
- patch
- minor
- major
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: master
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests semver
- name: Get current version
id: version
run: |
CURRENT_VERSION=$(grep '^version = ' extension.toml | sed 's/version = "\(.*\)"/\1/')
if [ "${{ github.event.inputs.version_bump }}" = "patch" ]; then
NEW_VERSION=$(python -c "import semver; print(str(semver.VersionInfo.parse('${CURRENT_VERSION}').bump_patch()))")
elif [ "${{ github.event.inputs.version_bump }}" = "minor" ]; then
NEW_VERSION=$(python -c "import semver; print(str(semver.VersionInfo.parse('${CURRENT_VERSION}').bump_minor()))")
else
NEW_VERSION=$(python -c "import semver; print(str(semver.VersionInfo.parse('${CURRENT_VERSION}').bump_major()))")
fi
echo "new_version=${NEW_VERSION}" >> $GITHUB_OUTPUT
echo "Current version: ${CURRENT_VERSION}"
echo "New version: ${NEW_VERSION}"
- name: Sync theme
run: python sync_theme.py
- name: Update extension.toml version
run: |
sed -i "s/^version = .*/version = \"${{ steps.version.outputs.new_version }}\"/" extension.toml
- name: Commit changes
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add themes/catppuccin-blur.json extension.toml
git commit -m "chore: prepare release ${{ steps.version.outputs.new_version }}"
- name: Push changes to master
run: |
git push origin master
- name: Create and push tag
run: |
git tag v${{ steps.version.outputs.new_version }}
git push origin v${{ steps.version.outputs.new_version }}
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
name: v${{ steps.version.outputs.new_version }}
tag_name: v${{ steps.version.outputs.new_version }}
generate_release_notes: true
- name: Publish to Zed
uses: huacnlee/zed-extension-action@v1
with:
extension-name: catppuccin-blur
push-to: jenslys/extensions
tag-name: v${{ steps.version.outputs.new_version }}
env:
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}
================================================
FILE: .github/workflows/sync-theme.yml
================================================
name: Sync Theme
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
repository_dispatch:
types: [catppuccin-update]
permissions:
contents: write
pull-requests: write
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests
- name: Configure Git
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
- name: Sync theme
run: python sync_theme.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.COMMITTER_TOKEN || secrets.GITHUB_TOKEN }}
commit-message: "chore: sync theme"
title: "chore: sync theme"
body: |
Automated theme sync with latest Catppuccin theme.
- Synced with latest Catppuccin theme
- Applied blur customizations
- Updated all variants including Espresso
branch: chore/theme-sync
delete-branch: true
labels: |
theme
automated pr
add-paths: |
themes/catppuccin-blur.json
================================================
FILE: .gitignore
================================================
assets/.DS_Store
.DS_Store
__pycache__/
*.py[cod]
*$py.class
.theme_schema_cache.json
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2024 Catppuccin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# 🌿 Catppuccin Blur for Zed
> **Note**
> The blur effect may not work on all operating systems. This is a limitation of Zed's window transparency implementation, not a theme issue. If you experience issues with blur, please report them to the [Zed repository](https://github.com/zed-industries/zed).
> **Note**
> This is an opinionated fork of the original Catppuccin theme. In addition to the blur effects, it includes various UI tweaks and modifications to create a unique visual experience. The changes go beyond just adding transparency.
<p align="center">
<a href="https://github.com/jenslys/zed-catppuccin-blur/stargazers">
<img src="https://img.shields.io/github/stars/jenslys/zed-catppuccin-blur?colorA=363a4f&colorB=b7bdf8&style=for-the-badge">
</a>
<a href="https://github.com/jenslys/zed-catppuccin-blur/issues">
<img src="https://img.shields.io/github/issues/jenslys/zed-catppuccin-blur?colorA=363a4f&colorB=f5a97f&style=for-the-badge">
</a>
<a href="https://github.com/jenslys/zed-catppuccin-blur/contributors">
<img src="https://img.shields.io/github/contributors/jenslys/zed-catppuccin-blur?colorA=363a4f&colorB=a6da95&style=for-the-badge">
</a>
</p>
<p align="center">
A modern, blurred variant of the <a href="https://github.com/catppuccin/zed">Catppuccin theme</a> for <a href="https://zed.dev">Zed</a>
</p>
## 📸 Previews
<details>
<summary>🌅 Latte</summary>
<img src="assets/latte.png">
</details>
<details>
<summary>🧊 Iced Latte</summary>
<img src="assets/iced-latte.png">
</details>
<details>
<summary>❄️ Frappé</summary>
<img src="assets/frappe.png">
</details>
<details>
<summary>☕ Macchiato</summary>
<img src="assets/macchiato.png">
</details>
<details>
<summary>🌿 Mocha</summary>
<img src="assets/mocha.png">
</details>
<details>
<summary>🖤 Espresso</summary>
<img src="assets/espresso.png">
</details>
## 📦 Installation
1. Clone this repository to your local machine
2. Open the Extensions panel in Zed, click "Install Dev Extension" and select the cloned repository folder
## ⚙️ Recommended Settings
<details>
<summary>Click to expand</summary>
For the best experience with this theme, add the following to your Zed settings:
```json
{
"project_panel": {
"sticky_scroll": false
}
}
```
This disables sticky scroll in the project panel, which can interfere with the blur effect on the panel overlays.
</details>
### 🎨 Recommended Icon Theme
For a cohesive visual experience, we recommend installing the [Catppuccin Icons](https://github.com/catppuccin/zed-icons) extension alongside this theme. The icon colors are specifically designed to complement the Catppuccin color palette.
## 🔧 Development
### Syncing with Upstream
This theme is kept in sync with the official Catppuccin theme using the `sync_theme.py` script. The script:
1. Fetches the latest theme from the official Catppuccin repository
2. Applies blur-specific overrides defined in `theme_overrides.py`
3. Generates the final theme file
**Important**: Do not manually edit `themes/catppuccin-blur.json` directly. All customizations should be made in the `theme_overrides.py` file. Any manual changes to the JSON file will be overwritten when the sync script runs.
To update the theme:
```bash
python3 sync_theme.py
```
### Making Theme Customizations
To customize the theme, edit the `THEME_OVERRIDES` dictionary in `theme_overrides.py`. Each variant (latte, iced_latte, frappe, macchiato, mocha, espresso) has its own set of overrides. For example:
```python
"latte": {
"background": "#f9fafcd7",
"panel.overlay_background": "#f9fafc",
# Add more overrides here
}
```
================================================
FILE: extension.toml
================================================
id = "catppuccin-blur"
name = "Catppuccin Blur"
schema_version = 1
version = "0.3.4"
authors = ["Jens Lystad <jens@lystad.io>"]
description = "Catppuccin themes with blur"
repository = "https://github.com/jenslys/zed-catppuccin-blur"
================================================
FILE: sync_theme.py
================================================
#!/usr/bin/env python3
import json
import requests
import os
import re
import sys
import time
import hashlib
from theme_overrides import THEME_OVERRIDES, VARIANT_MAP, BLUR_LEVELS, BASE_THEME_OVERRIDES
try:
import jsonschema
except ImportError:
print("jsonschema package not found. Installing...")
import subprocess
subprocess.check_call([sys.executable, "-m", "pip", "install", "jsonschema"])
import jsonschema
# ANSI color codes
class Colors:
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
PURPLE = '\033[95m'
CYAN = '\033[96m'
RESET = '\033[0m'
BOLD = '\033[1m'
DIM = '\033[2m'
# URLs
THEME_URL = "https://raw.githubusercontent.com/catppuccin/zed/main/themes/catppuccin-mauve.json"
SCHEMA_URL = "https://zed.dev/schema/themes/v0.2.0.json"
SCHEMA_CACHE_FILE = ".theme_schema_cache.json"
def print_header():
print(f"\n{Colors.PURPLE}╭{'─' * 48}╮{Colors.RESET}")
print(f"{Colors.PURPLE}│{Colors.RESET} {Colors.BOLD}🎨 Catppuccin Blur Theme Sync{Colors.RESET}{' ' * 9}{Colors.PURPLE}│{Colors.RESET}")
print(f"{Colors.PURPLE}╰{'─' * 48}╯{Colors.RESET}\n")
def print_step(step: str, status: str = "info"):
icons = {
"info": f"{Colors.BLUE}ℹ{Colors.RESET}",
"success": f"{Colors.GREEN}✓{Colors.RESET}",
"error": f"{Colors.RED}✗{Colors.RESET}",
"warning": f"{Colors.YELLOW}⚠{Colors.RESET}",
"processing": f"{Colors.CYAN}◆{Colors.RESET}"
}
print(f"{icons.get(status, icons['info'])} {step}")
def progress_bar(current: int, total: int, prefix: str = "", width: int = 30):
percent = current / total
filled = int(width * percent)
bar = f"{'█' * filled}{'░' * (width - filled)}"
sys.stdout.write(f"\r{prefix} {Colors.CYAN}[{bar}]{Colors.RESET} {percent:.0%}")
sys.stdout.flush()
if current == total:
print() # New line when complete
def get_file_hash(filepath: str) -> str:
"""Calculate SHA256 hash of a file."""
if not os.path.exists(filepath):
return ""
sha256_hash = hashlib.sha256()
with open(filepath, "rb") as f:
for byte_block in iter(lambda: f.read(4096), b""):
sha256_hash.update(byte_block)
return sha256_hash.hexdigest()
def get_content_hash(content: str) -> str:
"""Calculate SHA256 hash of string content."""
return hashlib.sha256(content.encode()).hexdigest()
def fetch_schema() -> dict:
"""
Fetch and cache the Zed theme schema.
Cache expires after 7 days to ensure we stay up-to-date.
Falls back to cached version if network request fails.
"""
if os.path.exists(SCHEMA_CACHE_FILE):
cache_age = time.time() - os.path.getmtime(SCHEMA_CACHE_FILE)
if cache_age < 7 * 24 * 60 * 60:
print_step("Using cached theme schema", "info")
with open(SCHEMA_CACHE_FILE, 'r') as f:
return json.load(f)
print_step("Fetching theme schema...", "processing")
try:
response = requests.get(SCHEMA_URL)
response.raise_for_status()
schema = response.json()
with open(SCHEMA_CACHE_FILE, 'w') as f:
json.dump(schema, f, indent=2)
print_step("Theme schema fetched and cached", "success")
return schema
except Exception as e:
print_step(f"Failed to fetch schema: {str(e)}", "warning")
if os.path.exists(SCHEMA_CACHE_FILE):
print_step("Falling back to cached schema", "info")
with open(SCHEMA_CACHE_FILE, 'r') as f:
return json.load(f)
return None
def validate_theme(theme: dict, schema: dict) -> bool:
"""Validate theme against the Zed schema."""
if not schema:
print_step("Skipping validation - no schema available", "warning")
return True
try:
jsonschema.validate(instance=theme, schema=schema)
print_step("Theme validation passed", "success")
return True
except jsonschema.ValidationError as e:
print_step(f"Theme validation failed: {e.message}", "error")
print(f"{Colors.DIM} Path: {'.'.join(str(p) for p in e.path)}{Colors.RESET}")
return False
except Exception as e:
print_step(f"Validation error: {str(e)}", "error")
return False
def fix_json(json_str):
"""
Fix common JSON syntax errors in theme files.
Removes trailing commas before closing brackets/braces.
"""
json_str = re.sub(r',(\s*[}\]])', r'\1', json_str)
return json_str
def remove_alpha(color):
"""
Remove alpha channel from hex colors.
#RRGGBBAA -> #RRGGBB
"""
if isinstance(color, str) and color.startswith('#'):
if len(color) == 9:
return color[:-2]
elif len(color) == 6:
return color
return color
def fetch_theme():
"""
Download the upstream Catppuccin theme from GitHub.
Shows animated spinner during download with file size progress.
"""
print_step("Fetching theme from upstream...", "processing")
try:
response = requests.get(THEME_URL, stream=True)
response.raise_for_status()
block_size = 8192
downloaded = 0
content = []
spinner = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']
spinner_idx = 0
for data in response.iter_content(block_size):
content.append(data)
downloaded += len(data)
sys.stdout.write(f"\r {Colors.CYAN}{spinner[spinner_idx]}{Colors.RESET} Downloading... ({downloaded / 1024:.1f} KB)")
sys.stdout.flush()
spinner_idx = (spinner_idx + 1) % len(spinner)
print()
full_content = b''.join(content).decode('utf-8')
print_step(f"Download complete! ({downloaded / 1024:.1f} KB)", "success")
print_step("Parsing theme data...", "processing")
fixed_json = fix_json(full_content)
theme_data = json.loads(fixed_json)
print_step("Theme data parsed successfully", "success")
return theme_data
except requests.RequestException as e:
print_step(f"Failed to fetch theme: {str(e)}", "error")
raise
except json.JSONDecodeError as e:
print_step(f"Failed to parse theme JSON: {str(e)}", "error")
raise
def apply_blur(theme, generate_all_levels=False):
"""
Apply blur modifications to the Catppuccin theme.
Creates Espresso variants and applies custom overrides to all variants.
Args:
theme: The theme data to modify
generate_all_levels: If True, generates all blur level variants
"""
print_step("Applying blur modifications...", "processing")
# Store original themes to create variants from
original_themes = theme["themes"].copy()
new_themes = []
print_step("Creating custom variants...", "processing")
macchiato_theme = None
latte_theme = None
for theme_variant in original_themes:
if "macchiato" in theme_variant["name"].lower():
macchiato_theme = theme_variant.copy()
elif "latte" in theme_variant["name"].lower():
latte_theme = theme_variant.copy()
# Create Iced Latte variants
if latte_theme:
print_step("Creating Iced Latte variants...", "processing")
for level_name, level_config in BLUR_LEVELS.items():
iced_theme = latte_theme.copy()
iced_theme["name"] = f"Catppuccin Iced Latte"
iced_theme["appearance"] = "light"
iced_style = latte_theme["style"].copy()
iced_overrides = BASE_THEME_OVERRIDES["iced_latte"].copy()
# Apply blur level to iced latte overrides
from theme_overrides import generate_theme_overrides_for_level
level_overrides = generate_theme_overrides_for_level(iced_overrides, level_config)
for k, v in level_overrides.items():
iced_style[k] = v
iced_theme["style"] = iced_style
if level_name == "medium":
iced_theme["name"] = "Catppuccin Iced Latte (Blur)"
else:
iced_theme["name"] = f"Catppuccin Iced Latte (Blur) [{level_name.capitalize()}]"
new_themes.append(iced_theme)
print_step("Iced Latte variants created", "success")
if macchiato_theme:
# Add Espresso to base overrides for all blur levels
for level_name, level_config in BLUR_LEVELS.items():
espresso_theme = macchiato_theme.copy()
espresso_theme["name"] = f"Catppuccin Espresso"
espresso_theme["appearance"] = "dark"
espresso_style = macchiato_theme["style"].copy()
espresso_overrides = BASE_THEME_OVERRIDES["espresso"].copy()
# Apply blur level to espresso overrides
from theme_overrides import generate_theme_overrides_for_level
level_overrides = generate_theme_overrides_for_level(espresso_overrides, level_config)
for k, v in level_overrides.items():
espresso_style[k] = v
espresso_theme["style"] = espresso_style
if level_name == "medium":
# Use original name for medium blur
espresso_theme["name"] = "Catppuccin Espresso (Blur)"
else:
# Use bracketed name for light/heavy
espresso_theme["name"] = f"Catppuccin Espresso (Blur) [{level_name.capitalize()}]"
new_themes.append(espresso_theme)
print_step("Espresso variants created", "success")
print(f"\n{Colors.BOLD}Generating all blur level variants:{Colors.RESET}")
# Create variants for each blur level
for level_name, level_config in BLUR_LEVELS.items():
print(f"\n {Colors.PURPLE}◆{Colors.RESET} Creating {Colors.BOLD}{level_name.capitalize()}{Colors.RESET} blur variants...")
for original_theme in original_themes:
variant_name = original_theme["name"].lower()
# Find matching base variant
for name, key_prefix in VARIANT_MAP.items():
base_key = key_prefix.replace("_medium", "") # Remove _medium suffix
if name in variant_name:
new_theme = original_theme.copy()
# Original name for medium blur, bracketed names for others
if level_name == "medium":
new_theme["name"] = f"{original_theme['name']} (Blur)"
else:
new_theme["name"] = f"{original_theme['name']} (Blur) [{level_name.capitalize()}]"
style = new_theme["style"].copy()
override_key = f"{base_key}_{level_name}"
if override_key in THEME_OVERRIDES:
overrides = THEME_OVERRIDES[override_key]
for k, v in overrides.items():
style[k] = v
new_theme["style"] = style
new_themes.append(new_theme)
print(f" {Colors.GREEN}✓{Colors.RESET} {original_theme['name']} ({level_name})")
break
# Replace theme variants with new ones
theme["themes"] = new_themes
print(f"\n{Colors.GREEN}✓{Colors.RESET} All blur modifications applied successfully!")
return theme
def main():
print_header()
start_time = time.time()
output_path = "themes/catppuccin-blur.json"
# Create themes directory
os.makedirs("themes", exist_ok=True)
print_step("Initialized themes directory", "success")
# Get hash of existing file
existing_hash = get_file_hash(output_path)
try:
print()
schema = fetch_schema()
print()
theme = fetch_theme()
print()
theme = apply_blur(theme, True)
print(f"\n{Colors.BOLD}Finalizing theme:{Colors.RESET}")
print_step("Updating theme metadata...", "processing")
theme["name"] = "Catppuccin Blur"
theme["author"] = "Jens Lystad <jens@lystad.io>"
theme["$schema"] = SCHEMA_URL
variant_count = len(theme["themes"])
print_step(f"Updated {variant_count} variant names", "success")
# Validate theme before saving
print(f"\n{Colors.BOLD}Validating theme:{Colors.RESET}")
if not validate_theme(theme, schema):
print_step("Theme validation failed - aborting", "error")
sys.exit(1)
# Generate new content
new_content = json.dumps(theme, indent=2)
new_hash = get_content_hash(new_content)
# Check if content has changed
if existing_hash == new_hash:
print_step("No changes detected - theme is already up to date!", "info")
# Summary for no changes
elapsed = time.time() - start_time
print(f"\n{Colors.BLUE}{'═' * 50}{Colors.RESET}")
print(f"{Colors.BLUE}ℹ Theme is already up to date{Colors.RESET}")
print(f"{Colors.DIM} • No changes required{Colors.RESET}")
print(f"{Colors.DIM} • Time: {elapsed:.2f}s{Colors.RESET}")
print(f"{Colors.DIM} • Output: {output_path}{Colors.RESET}")
print(f"{Colors.BLUE}{'═' * 50}{Colors.RESET}\n")
return
# Save theme if changes detected
print_step("Changes detected - updating theme file...", "processing")
with open(output_path, "w") as f:
f.write(new_content)
# Calculate file size
file_size = os.path.getsize(output_path) / 1024 # KB
print_step(f"Theme saved to {Colors.BOLD}{output_path}{Colors.RESET} ({file_size:.1f} KB)", "success")
# Summary
elapsed = time.time() - start_time
print(f"\n{Colors.GREEN}{'═' * 50}{Colors.RESET}")
print(f"{Colors.GREEN}✨ Theme synchronization complete!{Colors.RESET}")
print(f"{Colors.DIM} • Variants: {variant_count}{Colors.RESET}")
print(f"{Colors.DIM} • Time: {elapsed:.2f}s{Colors.RESET}")
print(f"{Colors.DIM} • Output: {output_path}{Colors.RESET}")
print(f"{Colors.GREEN}{'═' * 50}{Colors.RESET}\n")
except KeyboardInterrupt:
print(f"\n\n{Colors.YELLOW}⚠{Colors.RESET} Operation cancelled by user")
sys.exit(1)
except Exception as e:
print(f"\n{Colors.RED}✗ Failed to update theme:{Colors.RESET} {str(e)}")
sys.exit(1)
if __name__ == "__main__":
main()
================================================
FILE: theme_overrides.py
================================================
#!/usr/bin/env python3
"""
Theme override definitions for Catppuccin Blur variants.
Each variant has specific color and transparency overrides to create
the blur effect while maintaining Catppuccin's color scheme.
"""
# Blur intensity levels - higher values = less transparency/more opaque
BLUR_LEVELS = {
"light": {"main": "99", "surface": "8c", "elements": "80", "active": "90"}, # 60% opacity for main, solid for buttons
"medium": {"main": "d7", "surface": "d0", "elements": "a0", "active": "b0"}, # 85% opacity for main, solid for buttons
"heavy": {"main": "e0", "surface": "db", "elements": "c0", "active": "d0"}, # 88% opacity for main, solid for buttons
}
def generate_theme_overrides_for_level(base_overrides, level_config):
"""Generate theme overrides for a specific blur level."""
overrides = base_overrides.copy()
# Update transparency values based on blur level
for key, value in overrides.items():
if isinstance(value, str) and len(value) == 9 and value.startswith('#'):
# Extract base color and replace alpha channel
base_color = value[:7]
if "background" in key and ("status_bar" in key or "title_bar" in key or key == "background"):
overrides[key] = base_color + level_config["main"]
elif "surface" in key:
overrides[key] = base_color + level_config["surface"]
elif any(elem in key for elem in ["drop_target", "tab.active"]):
overrides[key] = base_color + level_config["active"]
elif any(elem in key for elem in ["thumb", "hover", "selected"]) and "ghost_element" not in key:
overrides[key] = base_color + level_config["elements"]
# Note: ghost_element colors are kept as-is for solid buttons
return overrides
# Base theme overrides (will be used to generate variants)
BASE_THEME_OVERRIDES = {
"latte": {
"background.appearance": "blurred",
"background": "#f9fafcd7",
"status_bar.background": "#f9fafcd7",
"title_bar.background": "#f9fafcd7",
"elevated_surface.background": "#f9fafc",
"surface.background": "#f9fafcd0",
"border": "#ccd0da15",
"hint.background": "#e8e8e8c0",
"editor.background": "#00000000",
"editor.line_number": "#00000020",
"editor.active_line_number": "#0079ff90",
"editor.gutter.background": "#00000000",
"tab_bar.background": "#00000000",
"terminal.background": "#00000000",
"toolbar.background": "#00000000",
"tab.active_background": "#f9fafc60",
"tab.inactive_background": "#00000000",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.overlay_background": "#f9fafc",
"pane_group.border": "#ccd0da15",
"pane.focused_border": "#ccd0da10",
"element.active": "#00000000",
"border.variant": "#00000000",
"scrollbar.track.border": "#00000000",
"editor.active_line.background": "#00000000",
"scrollbar.track.background": "#00000000",
"scrollbar.thumb.background": "#8c8fa130",
"ghost_element.background": "#f9fafc60",
"ghost_element.hover": "#f9fafc90",
"ghost_element.active": "#8839ef30",
"ghost_element.selected": "#8839ef50",
"drop_target.background": "#8839ef20",
"editor.highlighted_line.background": "#007aff12",
"error.background": "#ffd7d9",
"warning.background": "#ffe5c0",
"info.background": "#cce9f3",
"success.background": "#d4eecf"
},
"iced_latte": {
"background.appearance": "blurred",
"background": "#e8f4ffd7",
"status_bar.background": "#e8f4ffd7",
"title_bar.background": "#e8f4ffd7",
"elevated_surface.background": "#ddeeff",
"surface.background": "#e8f4ffd0",
"border": "#ccd0da15",
"hint.background": "#d0e8ffc0",
"editor.background": "#00000000",
"editor.line_number": "#0066cc25",
"editor.active_line_number": "#0077ee90",
"editor.gutter.background": "#00000000",
"tab_bar.background": "#00000000",
"terminal.background": "#00000000",
"toolbar.background": "#00000000",
"tab.active_background": "#ddeeff60",
"tab.inactive_background": "#00000000",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.overlay_background": "#ddeeff",
"pane_group.border": "#ccd0da15",
"pane.focused_border": "#ccd0da10",
"element.active": "#00000000",
"border.variant": "#00000000",
"scrollbar.track.border": "#00000000",
"editor.active_line.background": "#00000000",
"scrollbar.track.background": "#00000000",
"scrollbar.thumb.background": "#8cb4ff40",
"ghost_element.background": "#ddeeff60",
"ghost_element.hover": "#ddeeff90",
"ghost_element.active": "#7287fd30",
"ghost_element.selected": "#7287fd50",
"drop_target.background": "#7287fd30",
"editor.highlighted_line.background": "#0077ee15",
"error.background": "#ffcad5",
"warning.background": "#ffd8b8",
"info.background": "#c0e0ff",
"success.background": "#c8e8c0",
"text": "#1a3855",
"text.muted": "#3a5575",
"text.accent": "#0066dd",
"icon": "#1a3855",
"icon.accent": "#0066dd",
"element.hover": "#d0e8ffa0",
"element.selected": "#7287fd40"
},
"frappe": {
"background.appearance": "blurred",
"background": "#303446d7",
"status_bar.background": "#303446d7",
"title_bar.background": "#303446d7",
"elevated_surface.background": "#292c3c",
"surface.background": "#303446d0",
"border": "#41455915",
"hint.background": "#414559c0",
"editor.background": "#00000000",
"editor.line_number": "#ffffff20",
"editor.active_line_number": "#ca9ee690",
"editor.gutter.background": "#00000000",
"tab_bar.background": "#00000000",
"terminal.background": "#00000000",
"toolbar.background": "#00000000",
"tab.active_background": "#292c3c60",
"tab.inactive_background": "#00000000",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.overlay_background": "#303446",
"pane_group.border": "#41455915",
"pane.focused_border": "#41455910",
"element.active": "#00000000",
"border.variant": "#00000000",
"scrollbar.track.border": "#00000000",
"editor.active_line.background": "#00000000",
"scrollbar.track.background": "#00000000",
"scrollbar.thumb.background": "#62688030",
"ghost_element.background": "#292c3c60",
"ghost_element.hover": "#292c3c90",
"ghost_element.active": "#ca9ee630",
"ghost_element.selected": "#ca9ee650",
"drop_target.background": "#ca9ee630",
"editor.highlighted_line.background": "#ca9ee612",
"error.background": "#3f2325",
"warning.background": "#382d20",
"info.background": "#1f3137",
"success.background": "#243427"
},
"macchiato": {
"background.appearance": "blurred",
"background": "#24273ad7",
"status_bar.background": "#24273ad7",
"title_bar.background": "#24273ad7",
"elevated_surface.background": "#1e2030",
"surface.background": "#24273ad0",
"border": "#363a4f15",
"hint.background": "#363a4fc0",
"editor.background": "#00000000",
"editor.line_number": "#ffffff20",
"editor.active_line_number": "#f4dbd690",
"editor.gutter.background": "#00000000",
"tab_bar.background": "#00000000",
"terminal.background": "#00000000",
"toolbar.background": "#00000000",
"tab.active_background": "#1e203060",
"tab.inactive_background": "#00000000",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.overlay_background": "#24273a",
"pane_group.border": "#363a4f15",
"pane.focused_border": "#363a4f10",
"element.active": "#00000000",
"border.variant": "#00000000",
"scrollbar.track.border": "#00000000",
"editor.active_line.background": "#00000000",
"scrollbar.track.background": "#00000000",
"scrollbar.thumb.background": "#8087a230",
"ghost_element.background": "#1e203060",
"ghost_element.hover": "#1e203090",
"ghost_element.active": "#c6a0f630",
"ghost_element.selected": "#c6a0f650",
"drop_target.background": "#c6a0f620",
"editor.highlighted_line.background": "#f4dbd612",
"error.background": "#3d2224",
"warning.background": "#362c1f",
"info.background": "#1e2f35",
"success.background": "#233225"
},
"mocha": {
"background.appearance": "blurred",
"background": "#1e1e2ed7",
"status_bar.background": "#1e1e2ed7",
"title_bar.background": "#1e1e2ed7",
"elevated_surface.background": "#181825",
"surface.background": "#1e1e2ed0",
"border": "#31324415",
"hint.background": "#313244c0",
"editor.background": "#00000000",
"editor.line_number": "#ffffff20",
"editor.active_line_number": "#f5e0dc90",
"editor.gutter.background": "#00000000",
"tab_bar.background": "#00000000",
"terminal.background": "#00000000",
"toolbar.background": "#00000000",
"tab.active_background": "#18182560",
"tab.inactive_background": "#00000000",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.overlay_background": "#1e1e2e",
"pane_group.border": "#31324415",
"pane.focused_border": "#31324410",
"element.active": "#00000000",
"border.variant": "#00000000",
"scrollbar.track.border": "#00000000",
"editor.active_line.background": "#00000000",
"scrollbar.track.background": "#00000000",
"scrollbar.thumb.background": "#7f849c30",
"ghost_element.background": "#18182560",
"ghost_element.hover": "#18182590",
"ghost_element.active": "#cba6f730",
"ghost_element.selected": "#cba6f750",
"drop_target.background": "#cba6f720",
"editor.highlighted_line.background": "#f5e0dc12",
"error.background": "#3b2022",
"warning.background": "#342a1e",
"info.background": "#1c2d33",
"success.background": "#213023"
},
"espresso": {
"background.appearance": "blurred",
"background": "#000000d7",
"status_bar.background": "#000000d7",
"title_bar.background": "#000000d7",
"elevated_surface.background": "#0a0a0a",
"surface.background": "#000000d0",
"border": "#363a4f15",
"hint.background": "#1a1a1ac0",
"editor.background": "#00000000",
"editor.line_number": "#ffffff20",
"editor.active_line_number": "#f4dbd690",
"editor.gutter.background": "#00000000",
"tab_bar.background": "#00000000",
"terminal.background": "#00000000",
"toolbar.background": "#00000000",
"tab.active_background": "#0a0a0a60",
"tab.inactive_background": "#00000000",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.overlay_background": "#1a1a1a",
"pane_group.border": "#363a4f15",
"pane.focused_border": "#363a4f10",
"element.active": "#00000000",
"border.variant": "#00000000",
"scrollbar.track.border": "#00000000",
"editor.active_line.background": "#00000000",
"scrollbar.track.background": "#00000000",
"scrollbar.thumb.background": "#8087a230",
"ghost_element.background": "#0a0a0a60",
"ghost_element.hover": "#0a0a0a90",
"ghost_element.active": "#c6a0f630",
"ghost_element.selected": "#c6a0f650",
"drop_target.background": "#c6a0f620",
"editor.highlighted_line.background": "#f4dbd612",
"error.background": "#391e20",
"warning.background": "#32281d",
"info.background": "#1a2b31",
"success.background": "#1f2e21"
}
}
# Generate all theme overrides for all blur levels
THEME_OVERRIDES = {}
for level_name, level_config in BLUR_LEVELS.items():
for variant_name, base_overrides in BASE_THEME_OVERRIDES.items():
key = f"{variant_name}_{level_name}"
THEME_OVERRIDES[key] = generate_theme_overrides_for_level(base_overrides, level_config)
"""
Map variant names from upstream to our override keys.
Handles both accented and plain versions of Frappé.
Maps to medium blur level (85% opacity) - this is the default blur level
used for original theme names like "Catppuccin Latte (Blur)".
"""
VARIANT_MAP = {
"latte": "latte_medium",
"frappé": "frappe_medium",
"frappe": "frappe_medium",
"macchiato": "macchiato_medium",
"mocha": "mocha_medium"
}
================================================
FILE: themes/catppuccin-blur.json
================================================
{
"$schema": "https://zed.dev/schema/themes/v0.2.0.json",
"name": "Catppuccin Blur",
"author": "Jens Lystad <jens@lystad.io>",
"themes": [
{
"name": "Catppuccin Iced Latte (Blur) [Light]",
"appearance": "light",
"style": {
"accents": [
"#8839ef",
"#7287fd",
"#209fb5",
"#40a02b",
"#df8e1d",
"#fe640b",
"#d20f39"
],
"vim.mode.text": "#dce0e8",
"vim.normal.foreground": "#dce0e8",
"vim.helix_normal.foreground": "#dce0e8",
"vim.visual.foreground": "#dce0e8",
"vim.helix_select.foreground": "#dce0e8",
"vim.insert.foreground": "#dce0e8",
"vim.visual_line.foreground": "#dce0e8",
"vim.visual_block.foreground": "#dce0e8",
"vim.replace.foreground": "#dce0e8",
"vim.normal.background": "#dc8a78",
"vim.helix_normal.background": "#dc8a78",
"vim.visual.background": "#7287fd",
"vim.helix_select.background": "#7287fd",
"vim.insert.background": "#40a02b",
"vim.visual_line.background": "#7287fd",
"vim.visual_block.background": "#8839ef",
"vim.replace.background": "#e64553",
"background.appearance": "blurred",
"border": "#ccd0da15",
"border.variant": "#00000000",
"border.focused": "#7287fd",
"border.selected": "#8839ef",
"border.transparent": "#40a02b",
"border.disabled": "#9ca0b0",
"elevated_surface.background": "#ddeeff",
"surface.background": "#e8f4ff8c",
"background": "#e8f4ff99",
"element.background": "#dce0e8",
"element.hover": "#d0e8ff80",
"element.active": "#00000000",
"element.selected": "#7287fd80",
"element.disabled": "#9ca0b0",
"drop_target.background": "#7287fd90",
"ghost_element.background": "#ddeeff60",
"ghost_element.hover": "#ddeeff90",
"ghost_element.active": "#7287fd30",
"ghost_element.selected": "#7287fd50",
"ghost_element.disabled": "#9ca0b0",
"text": "#1a3855",
"text.muted": "#3a5575",
"text.placeholder": "#acb0be",
"text.disabled": "#bcc0cc",
"text.accent": "#0066dd",
"icon": "#1a3855",
"icon.muted": "#8c8fa1",
"icon.disabled": "#9ca0b0",
"icon.placeholder": "#acb0be",
"icon.accent": "#0066dd",
"status_bar.background": "#e8f4ff99",
"title_bar.background": "#e8f4ff99",
"title_bar.inactive_background": "#e6e9ee",
"toolbar.background": "#00000000",
"tab_bar.background": "#00000000",
"tab.inactive_background": "#00000000",
"tab.active_background": "#ddeeff90",
"search.match_background": "#1792994d",
"search.active_match_background": "#d20f394d",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.indent_guide": "#ccd0da99",
"panel.indent_guide_active": "#acb0be",
"panel.indent_guide_hover": "#8839ef",
"panel.overlay_background": "#ddeeff",
"pane.focused_border": "#ccd0da10",
"pane_group.border": "#ccd0da15",
"scrollbar.thumb.background": "#8cb4ff80",
"scrollbar.thumb.hover_background": "#9ca0b0",
"scrollbar.thumb.active_background": null,
"scrollbar.thumb.border": null,
"scrollbar.track.background": "#00000000",
"scrollbar.track.border": "#00000000",
"minimap.thumb.background": "#8839ef33",
"minimap.thumb.hover_background": "#8839ef66",
"minimap.thumb.active_background": "#8839ef99",
"minimap.thumb.border": null,
"editor.foreground": "#4c4f69",
"editor.background": "#00000000",
"editor.gutter.background": "#00000000",
"editor.subheader.background": "#e6e9ef",
"editor.active_line.background": "#00000000",
"editor.highlighted_line.background": "#0077ee15",
"editor.line_number": "#0066cc25",
"editor.active_line_number": "#0077ee90",
"editor.invisible": "#7c7f9366",
"editor.wrap_guide": "#acb0be",
"editor.active_wrap_guide": "#acb0be",
"editor.document_highlight.bracket_background": "#8839ef17",
"editor.document_highlight.read_background": "#6c6f8529",
"editor.document_highlight.write_background": "#6c6f8529",
"editor.indent_guide": "#ccd0da99",
"editor.indent_guide_active": "#acb0be",
"terminal.background": "#00000000",
"terminal.ansi.background": "#eff1f5",
"terminal.foreground": "#4c4f69",
"terminal.dim_foreground": "#8c8fa1",
"terminal.bright_foreground": "#4c4f69",
"terminal.ansi.black": "#5c5f77",
"terminal.ansi.white": "#acb0be",
"terminal.ansi.red": "#d20f39",
"terminal.ansi.green": "#40a02b",
"terminal.ansi.yellow": "#df8e1d",
"terminal.ansi.blue": "#1e66f5",
"terminal.ansi.magenta": "#ea76cb",
"terminal.ansi.cyan": "#179299",
"terminal.ansi.bright_black": "#6c6f85",
"terminal.ansi.bright_white": "#bcc0cc",
"terminal.ansi.bright_red": "#de293e",
"terminal.ansi.bright_green": "#49af3d",
"terminal.ansi.bright_yellow": "#eea02d",
"terminal.ansi.bright_blue": "#456eff",
"terminal.ansi.bright_magenta": "#fe85d8",
"terminal.ansi.bright_cyan": "#2d9fa8",
"terminal.ansi.dim_black": "#5c5f77",
"terminal.ansi.dim_white": "#acb0be",
"terminal.ansi.dim_red": "#d20f39",
"terminal.ansi.dim_green": "#40a02b",
"terminal.ansi.dim_yellow": "#df8e1d",
"terminal.ansi.dim_blue": "#1e66f5",
"terminal.ansi.dim_magenta": "#ea76cb",
"terminal.ansi.dim_cyan": "#179299",
"link_text.hover": "#04a5e5",
"conflict": "#fe640b",
"conflict.border": "#fe640b",
"conflict.background": "#fe640b26",
"created": "#40a02b",
"created.border": "#40a02b",
"created.background": "#40a02b26",
"deleted": "#d20f39",
"deleted.border": "#d20f39",
"deleted.background": "#d20f3926",
"hidden": "#9ca0b0",
"hidden.border": "#9ca0b0",
"hidden.background": "#e6e9ef",
"hint": "#acb0be",
"hint.border": "#acb0be",
"hint.background": "#d0e8ffc0",
"ignored": "#9ca0b0",
"ignored.border": "#9ca0b0",
"ignored.background": "#9ca0b026",
"modified": "#df8e1d",
"modified.border": "#df8e1d",
"modified.background": "#df8e1d26",
"predictive": "#9ca0b0",
"predictive.border": "#7287fd",
"predictive.background": "#e6e9ef",
"renamed": "#209fb5",
"renamed.border": "#209fb5",
"renamed.background": "#209fb526",
"info": "#179299",
"info.border": "#179299",
"info.background": "#c0e0ff",
"warning": "#df8e1d",
"warning.border": "#df8e1d",
"warning.background": "#ffd8b8",
"error": "#d20f39",
"error.border": "#d20f39",
"error.background": "#ffcad5",
"success": "#40a02b",
"success.border": "#40a02b",
"success.background": "#c8e8c0",
"unreachable": "#d20f39",
"unreachable.border": "#d20f39",
"unreachable.background": "#d20f391f",
"players": [
{
"cursor": "#dc8a78",
"selection": "#7c7f934d",
"background": "#dc8a78"
},
{
"cursor": "#8839ef",
"selection": "#8839ef4d",
"background": "#8839ef"
},
{
"cursor": "#7287fd",
"selection": "#7287fd4d",
"background": "#7287fd"
},
{
"cursor": "#209fb5",
"selection": "#209fb54d",
"background": "#209fb5"
},
{
"cursor": "#40a02b",
"selection": "#40a02b4d",
"background": "#40a02b"
},
{
"cursor": "#df8e1d",
"selection": "#df8e1d4d",
"background": "#df8e1d"
},
{
"cursor": "#fe640b",
"selection": "#fe640b4d",
"background": "#fe640b"
},
{
"cursor": "#d20f39",
"selection": "#d20f394d",
"background": "#d20f39"
}
],
"version_control.added": "#40a02b",
"version_control.deleted": "#d20f39",
"version_control.modified": "#df8e1d",
"version_control.renamed": "#209fb5",
"version_control.conflict": "#fe640b",
"version_control.conflict_marker.ours": "#40a02b33",
"version_control.conflict_marker.theirs": "#1e66f533",
"version_control.ignored": "#9ca0b0",
"debugger.accent": "#d20f39",
"editor.debugger_active_line.background": "#fe640b12",
"syntax": {
"variable": {
"color": "#4c4f69",
"font_style": null,
"font_weight": null
},
"variable.builtin": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"variable.parameter": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"variable.member": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "#d20f39",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"constant.builtin": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"constant.macro": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"module": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"label": {
"color": "#209fb5",
"font_style": null,
"font_weight": null
},
"string": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"string.documentation": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"string.regexp": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special.path": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"string.special.url": {
"color": "#dc8a78",
"font_style": "italic",
"font_weight": null
},
"character": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"character.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"boolean": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"number": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"number.float": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"tag.attribute": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"tag.delimiter": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"type": {
"color": "#df8e1d",
"font_style": null,
"font_weight": null
},
"type.builtin": {
"color": "#8839ef",
"font_style": "italic",
"font_weight": null
},
"type.definition": {
"color": "#df8e1d",
"font_style": null,
"font_weight": null
},
"type.interface": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"type.super": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"attribute": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"property": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.builtin": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"function.call": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.macro": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"function.method": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.method.call": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "#04a5e5",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.modifier": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.type": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.coroutine": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.function": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.operator": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.import": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.repeat": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.return": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.debug": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.exception": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.conditional": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.conditional.ternary": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.directive": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"keyword.directive.define": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"keyword.export": {
"color": "#04a5e5",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"punctuation.special.symbol": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.documentation": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.info": {
"color": "#179299",
"font_style": "italic",
"font_weight": null
},
"comment.error": {
"color": "#d20f39",
"font_style": "italic",
"font_weight": null
},
"comment.warning": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"comment.warn": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"comment.hint": {
"color": "#1e66f5",
"font_style": "italic",
"font_weight": null
},
"comment.todo": {
"color": "#dd7878",
"font_style": "italic",
"font_weight": null
},
"comment.note": {
"color": "#dc8a78",
"font_style": "italic",
"font_weight": null
},
"diff.plus": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"diff.minus": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"parameter": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"field": {
"color": "#7287fd",
"font_style": null,
"font_weight": null
},
"namespace": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"float": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"symbol": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"text": {
"color": "#4c4f69",
"font_style": null,
"font_weight": null
},
"emphasis.strong": {
"color": "#e64553",
"font_style": null,
"font_weight": 700
},
"emphasis": {
"color": "#e64553",
"font_style": "italic",
"font_weight": null
},
"embedded": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"concept": {
"color": "#209fb5",
"font_style": null,
"font_weight": null
},
"enum": {
"color": "#179299",
"font_style": null,
"font_weight": 700
},
"function.decorator": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"type.class.definition": {
"color": "#df8e1d",
"font_style": null,
"font_weight": 700
},
"hint": {
"color": "#8c8fa1",
"font_style": "italic",
"font_weight": null
},
"link_text": {
"color": "#7287fd",
"font_style": null,
"font_weight": null
},
"link_uri": {
"color": "#1e66f5",
"font_style": "italic",
"font_weight": null
},
"parent": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"predictive": {
"color": "#9ca0b0",
"font_style": null,
"font_weight": null
},
"predoc": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"primary": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"tag.doctype": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"string.doc": {
"color": "#179299",
"font_style": "italic",
"font_weight": null
},
"title": {
"color": "#4c4f69",
"font_style": null,
"font_weight": 800
},
"variant": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
}
}
}
},
{
"name": "Catppuccin Iced Latte (Blur)",
"appearance": "light",
"style": {
"accents": [
"#8839ef",
"#7287fd",
"#209fb5",
"#40a02b",
"#df8e1d",
"#fe640b",
"#d20f39"
],
"vim.mode.text": "#dce0e8",
"vim.normal.foreground": "#dce0e8",
"vim.helix_normal.foreground": "#dce0e8",
"vim.visual.foreground": "#dce0e8",
"vim.helix_select.foreground": "#dce0e8",
"vim.insert.foreground": "#dce0e8",
"vim.visual_line.foreground": "#dce0e8",
"vim.visual_block.foreground": "#dce0e8",
"vim.replace.foreground": "#dce0e8",
"vim.normal.background": "#dc8a78",
"vim.helix_normal.background": "#dc8a78",
"vim.visual.background": "#7287fd",
"vim.helix_select.background": "#7287fd",
"vim.insert.background": "#40a02b",
"vim.visual_line.background": "#7287fd",
"vim.visual_block.background": "#8839ef",
"vim.replace.background": "#e64553",
"background.appearance": "blurred",
"border": "#ccd0da15",
"border.variant": "#00000000",
"border.focused": "#7287fd",
"border.selected": "#8839ef",
"border.transparent": "#40a02b",
"border.disabled": "#9ca0b0",
"elevated_surface.background": "#ddeeff",
"surface.background": "#e8f4ffd0",
"background": "#e8f4ffd7",
"element.background": "#dce0e8",
"element.hover": "#d0e8ffa0",
"element.active": "#00000000",
"element.selected": "#7287fda0",
"element.disabled": "#9ca0b0",
"drop_target.background": "#7287fdb0",
"ghost_element.background": "#ddeeff60",
"ghost_element.hover": "#ddeeff90",
"ghost_element.active": "#7287fd30",
"ghost_element.selected": "#7287fd50",
"ghost_element.disabled": "#9ca0b0",
"text": "#1a3855",
"text.muted": "#3a5575",
"text.placeholder": "#acb0be",
"text.disabled": "#bcc0cc",
"text.accent": "#0066dd",
"icon": "#1a3855",
"icon.muted": "#8c8fa1",
"icon.disabled": "#9ca0b0",
"icon.placeholder": "#acb0be",
"icon.accent": "#0066dd",
"status_bar.background": "#e8f4ffd7",
"title_bar.background": "#e8f4ffd7",
"title_bar.inactive_background": "#e6e9ee",
"toolbar.background": "#00000000",
"tab_bar.background": "#00000000",
"tab.inactive_background": "#00000000",
"tab.active_background": "#ddeeffb0",
"search.match_background": "#1792994d",
"search.active_match_background": "#d20f394d",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.indent_guide": "#ccd0da99",
"panel.indent_guide_active": "#acb0be",
"panel.indent_guide_hover": "#8839ef",
"panel.overlay_background": "#ddeeff",
"pane.focused_border": "#ccd0da10",
"pane_group.border": "#ccd0da15",
"scrollbar.thumb.background": "#8cb4ffa0",
"scrollbar.thumb.hover_background": "#9ca0b0",
"scrollbar.thumb.active_background": null,
"scrollbar.thumb.border": null,
"scrollbar.track.background": "#00000000",
"scrollbar.track.border": "#00000000",
"minimap.thumb.background": "#8839ef33",
"minimap.thumb.hover_background": "#8839ef66",
"minimap.thumb.active_background": "#8839ef99",
"minimap.thumb.border": null,
"editor.foreground": "#4c4f69",
"editor.background": "#00000000",
"editor.gutter.background": "#00000000",
"editor.subheader.background": "#e6e9ef",
"editor.active_line.background": "#00000000",
"editor.highlighted_line.background": "#0077ee15",
"editor.line_number": "#0066cc25",
"editor.active_line_number": "#0077ee90",
"editor.invisible": "#7c7f9366",
"editor.wrap_guide": "#acb0be",
"editor.active_wrap_guide": "#acb0be",
"editor.document_highlight.bracket_background": "#8839ef17",
"editor.document_highlight.read_background": "#6c6f8529",
"editor.document_highlight.write_background": "#6c6f8529",
"editor.indent_guide": "#ccd0da99",
"editor.indent_guide_active": "#acb0be",
"terminal.background": "#00000000",
"terminal.ansi.background": "#eff1f5",
"terminal.foreground": "#4c4f69",
"terminal.dim_foreground": "#8c8fa1",
"terminal.bright_foreground": "#4c4f69",
"terminal.ansi.black": "#5c5f77",
"terminal.ansi.white": "#acb0be",
"terminal.ansi.red": "#d20f39",
"terminal.ansi.green": "#40a02b",
"terminal.ansi.yellow": "#df8e1d",
"terminal.ansi.blue": "#1e66f5",
"terminal.ansi.magenta": "#ea76cb",
"terminal.ansi.cyan": "#179299",
"terminal.ansi.bright_black": "#6c6f85",
"terminal.ansi.bright_white": "#bcc0cc",
"terminal.ansi.bright_red": "#de293e",
"terminal.ansi.bright_green": "#49af3d",
"terminal.ansi.bright_yellow": "#eea02d",
"terminal.ansi.bright_blue": "#456eff",
"terminal.ansi.bright_magenta": "#fe85d8",
"terminal.ansi.bright_cyan": "#2d9fa8",
"terminal.ansi.dim_black": "#5c5f77",
"terminal.ansi.dim_white": "#acb0be",
"terminal.ansi.dim_red": "#d20f39",
"terminal.ansi.dim_green": "#40a02b",
"terminal.ansi.dim_yellow": "#df8e1d",
"terminal.ansi.dim_blue": "#1e66f5",
"terminal.ansi.dim_magenta": "#ea76cb",
"terminal.ansi.dim_cyan": "#179299",
"link_text.hover": "#04a5e5",
"conflict": "#fe640b",
"conflict.border": "#fe640b",
"conflict.background": "#fe640b26",
"created": "#40a02b",
"created.border": "#40a02b",
"created.background": "#40a02b26",
"deleted": "#d20f39",
"deleted.border": "#d20f39",
"deleted.background": "#d20f3926",
"hidden": "#9ca0b0",
"hidden.border": "#9ca0b0",
"hidden.background": "#e6e9ef",
"hint": "#acb0be",
"hint.border": "#acb0be",
"hint.background": "#d0e8ffc0",
"ignored": "#9ca0b0",
"ignored.border": "#9ca0b0",
"ignored.background": "#9ca0b026",
"modified": "#df8e1d",
"modified.border": "#df8e1d",
"modified.background": "#df8e1d26",
"predictive": "#9ca0b0",
"predictive.border": "#7287fd",
"predictive.background": "#e6e9ef",
"renamed": "#209fb5",
"renamed.border": "#209fb5",
"renamed.background": "#209fb526",
"info": "#179299",
"info.border": "#179299",
"info.background": "#c0e0ff",
"warning": "#df8e1d",
"warning.border": "#df8e1d",
"warning.background": "#ffd8b8",
"error": "#d20f39",
"error.border": "#d20f39",
"error.background": "#ffcad5",
"success": "#40a02b",
"success.border": "#40a02b",
"success.background": "#c8e8c0",
"unreachable": "#d20f39",
"unreachable.border": "#d20f39",
"unreachable.background": "#d20f391f",
"players": [
{
"cursor": "#dc8a78",
"selection": "#7c7f934d",
"background": "#dc8a78"
},
{
"cursor": "#8839ef",
"selection": "#8839ef4d",
"background": "#8839ef"
},
{
"cursor": "#7287fd",
"selection": "#7287fd4d",
"background": "#7287fd"
},
{
"cursor": "#209fb5",
"selection": "#209fb54d",
"background": "#209fb5"
},
{
"cursor": "#40a02b",
"selection": "#40a02b4d",
"background": "#40a02b"
},
{
"cursor": "#df8e1d",
"selection": "#df8e1d4d",
"background": "#df8e1d"
},
{
"cursor": "#fe640b",
"selection": "#fe640b4d",
"background": "#fe640b"
},
{
"cursor": "#d20f39",
"selection": "#d20f394d",
"background": "#d20f39"
}
],
"version_control.added": "#40a02b",
"version_control.deleted": "#d20f39",
"version_control.modified": "#df8e1d",
"version_control.renamed": "#209fb5",
"version_control.conflict": "#fe640b",
"version_control.conflict_marker.ours": "#40a02b33",
"version_control.conflict_marker.theirs": "#1e66f533",
"version_control.ignored": "#9ca0b0",
"debugger.accent": "#d20f39",
"editor.debugger_active_line.background": "#fe640b12",
"syntax": {
"variable": {
"color": "#4c4f69",
"font_style": null,
"font_weight": null
},
"variable.builtin": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"variable.parameter": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"variable.member": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "#d20f39",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"constant.builtin": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"constant.macro": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"module": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"label": {
"color": "#209fb5",
"font_style": null,
"font_weight": null
},
"string": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"string.documentation": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"string.regexp": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special.path": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"string.special.url": {
"color": "#dc8a78",
"font_style": "italic",
"font_weight": null
},
"character": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"character.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"boolean": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"number": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"number.float": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"tag.attribute": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"tag.delimiter": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"type": {
"color": "#df8e1d",
"font_style": null,
"font_weight": null
},
"type.builtin": {
"color": "#8839ef",
"font_style": "italic",
"font_weight": null
},
"type.definition": {
"color": "#df8e1d",
"font_style": null,
"font_weight": null
},
"type.interface": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"type.super": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"attribute": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"property": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.builtin": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"function.call": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.macro": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"function.method": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.method.call": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "#04a5e5",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.modifier": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.type": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.coroutine": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.function": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.operator": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.import": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.repeat": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.return": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.debug": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.exception": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.conditional": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.conditional.ternary": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.directive": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"keyword.directive.define": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"keyword.export": {
"color": "#04a5e5",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"punctuation.special.symbol": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.documentation": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.info": {
"color": "#179299",
"font_style": "italic",
"font_weight": null
},
"comment.error": {
"color": "#d20f39",
"font_style": "italic",
"font_weight": null
},
"comment.warning": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"comment.warn": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"comment.hint": {
"color": "#1e66f5",
"font_style": "italic",
"font_weight": null
},
"comment.todo": {
"color": "#dd7878",
"font_style": "italic",
"font_weight": null
},
"comment.note": {
"color": "#dc8a78",
"font_style": "italic",
"font_weight": null
},
"diff.plus": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"diff.minus": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"parameter": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"field": {
"color": "#7287fd",
"font_style": null,
"font_weight": null
},
"namespace": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"float": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"symbol": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"text": {
"color": "#4c4f69",
"font_style": null,
"font_weight": null
},
"emphasis.strong": {
"color": "#e64553",
"font_style": null,
"font_weight": 700
},
"emphasis": {
"color": "#e64553",
"font_style": "italic",
"font_weight": null
},
"embedded": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"concept": {
"color": "#209fb5",
"font_style": null,
"font_weight": null
},
"enum": {
"color": "#179299",
"font_style": null,
"font_weight": 700
},
"function.decorator": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"type.class.definition": {
"color": "#df8e1d",
"font_style": null,
"font_weight": 700
},
"hint": {
"color": "#8c8fa1",
"font_style": "italic",
"font_weight": null
},
"link_text": {
"color": "#7287fd",
"font_style": null,
"font_weight": null
},
"link_uri": {
"color": "#1e66f5",
"font_style": "italic",
"font_weight": null
},
"parent": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"predictive": {
"color": "#9ca0b0",
"font_style": null,
"font_weight": null
},
"predoc": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"primary": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"tag.doctype": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"string.doc": {
"color": "#179299",
"font_style": "italic",
"font_weight": null
},
"title": {
"color": "#4c4f69",
"font_style": null,
"font_weight": 800
},
"variant": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
}
}
}
},
{
"name": "Catppuccin Iced Latte (Blur) [Heavy]",
"appearance": "light",
"style": {
"accents": [
"#8839ef",
"#7287fd",
"#209fb5",
"#40a02b",
"#df8e1d",
"#fe640b",
"#d20f39"
],
"vim.mode.text": "#dce0e8",
"vim.normal.foreground": "#dce0e8",
"vim.helix_normal.foreground": "#dce0e8",
"vim.visual.foreground": "#dce0e8",
"vim.helix_select.foreground": "#dce0e8",
"vim.insert.foreground": "#dce0e8",
"vim.visual_line.foreground": "#dce0e8",
"vim.visual_block.foreground": "#dce0e8",
"vim.replace.foreground": "#dce0e8",
"vim.normal.background": "#dc8a78",
"vim.helix_normal.background": "#dc8a78",
"vim.visual.background": "#7287fd",
"vim.helix_select.background": "#7287fd",
"vim.insert.background": "#40a02b",
"vim.visual_line.background": "#7287fd",
"vim.visual_block.background": "#8839ef",
"vim.replace.background": "#e64553",
"background.appearance": "blurred",
"border": "#ccd0da15",
"border.variant": "#00000000",
"border.focused": "#7287fd",
"border.selected": "#8839ef",
"border.transparent": "#40a02b",
"border.disabled": "#9ca0b0",
"elevated_surface.background": "#ddeeff",
"surface.background": "#e8f4ffdb",
"background": "#e8f4ffe0",
"element.background": "#dce0e8",
"element.hover": "#d0e8ffc0",
"element.active": "#00000000",
"element.selected": "#7287fdc0",
"element.disabled": "#9ca0b0",
"drop_target.background": "#7287fdd0",
"ghost_element.background": "#ddeeff60",
"ghost_element.hover": "#ddeeff90",
"ghost_element.active": "#7287fd30",
"ghost_element.selected": "#7287fd50",
"ghost_element.disabled": "#9ca0b0",
"text": "#1a3855",
"text.muted": "#3a5575",
"text.placeholder": "#acb0be",
"text.disabled": "#bcc0cc",
"text.accent": "#0066dd",
"icon": "#1a3855",
"icon.muted": "#8c8fa1",
"icon.disabled": "#9ca0b0",
"icon.placeholder": "#acb0be",
"icon.accent": "#0066dd",
"status_bar.background": "#e8f4ffe0",
"title_bar.background": "#e8f4ffe0",
"title_bar.inactive_background": "#e6e9ee",
"toolbar.background": "#00000000",
"tab_bar.background": "#00000000",
"tab.inactive_background": "#00000000",
"tab.active_background": "#ddeeffd0",
"search.match_background": "#1792994d",
"search.active_match_background": "#d20f394d",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.indent_guide": "#ccd0da99",
"panel.indent_guide_active": "#acb0be",
"panel.indent_guide_hover": "#8839ef",
"panel.overlay_background": "#ddeeff",
"pane.focused_border": "#ccd0da10",
"pane_group.border": "#ccd0da15",
"scrollbar.thumb.background": "#8cb4ffc0",
"scrollbar.thumb.hover_background": "#9ca0b0",
"scrollbar.thumb.active_background": null,
"scrollbar.thumb.border": null,
"scrollbar.track.background": "#00000000",
"scrollbar.track.border": "#00000000",
"minimap.thumb.background": "#8839ef33",
"minimap.thumb.hover_background": "#8839ef66",
"minimap.thumb.active_background": "#8839ef99",
"minimap.thumb.border": null,
"editor.foreground": "#4c4f69",
"editor.background": "#00000000",
"editor.gutter.background": "#00000000",
"editor.subheader.background": "#e6e9ef",
"editor.active_line.background": "#00000000",
"editor.highlighted_line.background": "#0077ee15",
"editor.line_number": "#0066cc25",
"editor.active_line_number": "#0077ee90",
"editor.invisible": "#7c7f9366",
"editor.wrap_guide": "#acb0be",
"editor.active_wrap_guide": "#acb0be",
"editor.document_highlight.bracket_background": "#8839ef17",
"editor.document_highlight.read_background": "#6c6f8529",
"editor.document_highlight.write_background": "#6c6f8529",
"editor.indent_guide": "#ccd0da99",
"editor.indent_guide_active": "#acb0be",
"terminal.background": "#00000000",
"terminal.ansi.background": "#eff1f5",
"terminal.foreground": "#4c4f69",
"terminal.dim_foreground": "#8c8fa1",
"terminal.bright_foreground": "#4c4f69",
"terminal.ansi.black": "#5c5f77",
"terminal.ansi.white": "#acb0be",
"terminal.ansi.red": "#d20f39",
"terminal.ansi.green": "#40a02b",
"terminal.ansi.yellow": "#df8e1d",
"terminal.ansi.blue": "#1e66f5",
"terminal.ansi.magenta": "#ea76cb",
"terminal.ansi.cyan": "#179299",
"terminal.ansi.bright_black": "#6c6f85",
"terminal.ansi.bright_white": "#bcc0cc",
"terminal.ansi.bright_red": "#de293e",
"terminal.ansi.bright_green": "#49af3d",
"terminal.ansi.bright_yellow": "#eea02d",
"terminal.ansi.bright_blue": "#456eff",
"terminal.ansi.bright_magenta": "#fe85d8",
"terminal.ansi.bright_cyan": "#2d9fa8",
"terminal.ansi.dim_black": "#5c5f77",
"terminal.ansi.dim_white": "#acb0be",
"terminal.ansi.dim_red": "#d20f39",
"terminal.ansi.dim_green": "#40a02b",
"terminal.ansi.dim_yellow": "#df8e1d",
"terminal.ansi.dim_blue": "#1e66f5",
"terminal.ansi.dim_magenta": "#ea76cb",
"terminal.ansi.dim_cyan": "#179299",
"link_text.hover": "#04a5e5",
"conflict": "#fe640b",
"conflict.border": "#fe640b",
"conflict.background": "#fe640b26",
"created": "#40a02b",
"created.border": "#40a02b",
"created.background": "#40a02b26",
"deleted": "#d20f39",
"deleted.border": "#d20f39",
"deleted.background": "#d20f3926",
"hidden": "#9ca0b0",
"hidden.border": "#9ca0b0",
"hidden.background": "#e6e9ef",
"hint": "#acb0be",
"hint.border": "#acb0be",
"hint.background": "#d0e8ffc0",
"ignored": "#9ca0b0",
"ignored.border": "#9ca0b0",
"ignored.background": "#9ca0b026",
"modified": "#df8e1d",
"modified.border": "#df8e1d",
"modified.background": "#df8e1d26",
"predictive": "#9ca0b0",
"predictive.border": "#7287fd",
"predictive.background": "#e6e9ef",
"renamed": "#209fb5",
"renamed.border": "#209fb5",
"renamed.background": "#209fb526",
"info": "#179299",
"info.border": "#179299",
"info.background": "#c0e0ff",
"warning": "#df8e1d",
"warning.border": "#df8e1d",
"warning.background": "#ffd8b8",
"error": "#d20f39",
"error.border": "#d20f39",
"error.background": "#ffcad5",
"success": "#40a02b",
"success.border": "#40a02b",
"success.background": "#c8e8c0",
"unreachable": "#d20f39",
"unreachable.border": "#d20f39",
"unreachable.background": "#d20f391f",
"players": [
{
"cursor": "#dc8a78",
"selection": "#7c7f934d",
"background": "#dc8a78"
},
{
"cursor": "#8839ef",
"selection": "#8839ef4d",
"background": "#8839ef"
},
{
"cursor": "#7287fd",
"selection": "#7287fd4d",
"background": "#7287fd"
},
{
"cursor": "#209fb5",
"selection": "#209fb54d",
"background": "#209fb5"
},
{
"cursor": "#40a02b",
"selection": "#40a02b4d",
"background": "#40a02b"
},
{
"cursor": "#df8e1d",
"selection": "#df8e1d4d",
"background": "#df8e1d"
},
{
"cursor": "#fe640b",
"selection": "#fe640b4d",
"background": "#fe640b"
},
{
"cursor": "#d20f39",
"selection": "#d20f394d",
"background": "#d20f39"
}
],
"version_control.added": "#40a02b",
"version_control.deleted": "#d20f39",
"version_control.modified": "#df8e1d",
"version_control.renamed": "#209fb5",
"version_control.conflict": "#fe640b",
"version_control.conflict_marker.ours": "#40a02b33",
"version_control.conflict_marker.theirs": "#1e66f533",
"version_control.ignored": "#9ca0b0",
"debugger.accent": "#d20f39",
"editor.debugger_active_line.background": "#fe640b12",
"syntax": {
"variable": {
"color": "#4c4f69",
"font_style": null,
"font_weight": null
},
"variable.builtin": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"variable.parameter": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"variable.member": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "#d20f39",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"constant.builtin": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"constant.macro": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"module": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"label": {
"color": "#209fb5",
"font_style": null,
"font_weight": null
},
"string": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"string.documentation": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"string.regexp": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special.path": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"string.special.url": {
"color": "#dc8a78",
"font_style": "italic",
"font_weight": null
},
"character": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"character.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"boolean": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"number": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"number.float": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"tag.attribute": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"tag.delimiter": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"type": {
"color": "#df8e1d",
"font_style": null,
"font_weight": null
},
"type.builtin": {
"color": "#8839ef",
"font_style": "italic",
"font_weight": null
},
"type.definition": {
"color": "#df8e1d",
"font_style": null,
"font_weight": null
},
"type.interface": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"type.super": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"attribute": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"property": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.builtin": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"function.call": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.macro": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"function.method": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.method.call": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "#04a5e5",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.modifier": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.type": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.coroutine": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.function": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.operator": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.import": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.repeat": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.return": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.debug": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.exception": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.conditional": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.conditional.ternary": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.directive": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"keyword.directive.define": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"keyword.export": {
"color": "#04a5e5",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"punctuation.special.symbol": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.documentation": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.info": {
"color": "#179299",
"font_style": "italic",
"font_weight": null
},
"comment.error": {
"color": "#d20f39",
"font_style": "italic",
"font_weight": null
},
"comment.warning": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"comment.warn": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"comment.hint": {
"color": "#1e66f5",
"font_style": "italic",
"font_weight": null
},
"comment.todo": {
"color": "#dd7878",
"font_style": "italic",
"font_weight": null
},
"comment.note": {
"color": "#dc8a78",
"font_style": "italic",
"font_weight": null
},
"diff.plus": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"diff.minus": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"parameter": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"field": {
"color": "#7287fd",
"font_style": null,
"font_weight": null
},
"namespace": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"float": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"symbol": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"text": {
"color": "#4c4f69",
"font_style": null,
"font_weight": null
},
"emphasis.strong": {
"color": "#e64553",
"font_style": null,
"font_weight": 700
},
"emphasis": {
"color": "#e64553",
"font_style": "italic",
"font_weight": null
},
"embedded": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"concept": {
"color": "#209fb5",
"font_style": null,
"font_weight": null
},
"enum": {
"color": "#179299",
"font_style": null,
"font_weight": 700
},
"function.decorator": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"type.class.definition": {
"color": "#df8e1d",
"font_style": null,
"font_weight": 700
},
"hint": {
"color": "#8c8fa1",
"font_style": "italic",
"font_weight": null
},
"link_text": {
"color": "#7287fd",
"font_style": null,
"font_weight": null
},
"link_uri": {
"color": "#1e66f5",
"font_style": "italic",
"font_weight": null
},
"parent": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"predictive": {
"color": "#9ca0b0",
"font_style": null,
"font_weight": null
},
"predoc": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"primary": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"tag.doctype": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"string.doc": {
"color": "#179299",
"font_style": "italic",
"font_weight": null
},
"title": {
"color": "#4c4f69",
"font_style": null,
"font_weight": 800
},
"variant": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
}
}
}
},
{
"name": "Catppuccin Espresso (Blur) [Light]",
"appearance": "dark",
"style": {
"accents": [
"#c6a0f6",
"#b7bdf8",
"#7dc4e4",
"#a6da95",
"#eed49f",
"#f5a97f",
"#ed8796"
],
"vim.mode.text": "#181926",
"vim.normal.foreground": "#181926",
"vim.helix_normal.foreground": "#181926",
"vim.visual.foreground": "#181926",
"vim.helix_select.foreground": "#181926",
"vim.insert.foreground": "#181926",
"vim.visual_line.foreground": "#181926",
"vim.visual_block.foreground": "#181926",
"vim.replace.foreground": "#181926",
"vim.normal.background": "#f4dbd6",
"vim.helix_normal.background": "#f4dbd6",
"vim.visual.background": "#b7bdf8",
"vim.helix_select.background": "#b7bdf8",
"vim.insert.background": "#a6da95",
"vim.visual_line.background": "#b7bdf8",
"vim.visual_block.background": "#c6a0f6",
"vim.replace.background": "#ee99a0",
"background.appearance": "blurred",
"border": "#363a4f15",
"border.variant": "#00000000",
"border.focused": "#b7bdf8",
"border.selected": "#c6a0f6",
"border.transparent": "#a6da95",
"border.disabled": "#6e738d",
"elevated_surface.background": "#0a0a0a",
"surface.background": "#0000008c",
"background": "#00000099",
"element.background": "#181926",
"element.hover": "#363a4f",
"element.active": "#00000000",
"element.selected": "#363a4f4d",
"element.disabled": "#6e738d",
"drop_target.background": "#c6a0f690",
"ghost_element.background": "#0a0a0a60",
"ghost_element.hover": "#0a0a0a90",
"ghost_element.active": "#c6a0f630",
"ghost_element.selected": "#c6a0f650",
"ghost_element.disabled": "#6e738d",
"text": "#cad3f5",
"text.muted": "#b8c0e0",
"text.placeholder": "#5b6078",
"text.disabled": "#494d64",
"text.accent": "#c6a0f6",
"icon": "#cad3f5",
"icon.muted": "#8087a2",
"icon.disabled": "#6e738d",
"icon.placeholder": "#5b6078",
"icon.accent": "#c6a0f6",
"status_bar.background": "#00000099",
"title_bar.background": "#00000099",
"title_bar.inactive_background": "#1e1f30",
"toolbar.background": "#00000000",
"tab_bar.background": "#00000000",
"tab.inactive_background": "#00000000",
"tab.active_background": "#0a0a0a90",
"search.match_background": "#8bd5ca4d",
"search.active_match_background": "#ed87964d",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.indent_guide": "#363a4f99",
"panel.indent_guide_active": "#5b6078",
"panel.indent_guide_hover": "#c6a0f6",
"panel.overlay_background": "#1a1a1a",
"pane.focused_border": "#363a4f10",
"pane_group.border": "#363a4f15",
"scrollbar.thumb.background": "#8087a280",
"scrollbar.thumb.hover_background": "#6e738d",
"scrollbar.thumb.active_background": null,
"scrollbar.thumb.border": null,
"scrollbar.track.background": "#00000000",
"scrollbar.track.border": "#00000000",
"minimap.thumb.background": "#c6a0f633",
"minimap.thumb.hover_background": "#c6a0f666",
"minimap.thumb.active_background": "#c6a0f699",
"minimap.thumb.border": null,
"editor.foreground": "#cad3f5",
"editor.background": "#00000000",
"editor.gutter.background": "#00000000",
"editor.subheader.background": "#1e2030",
"editor.active_line.background": "#00000000",
"editor.highlighted_line.background": "#f4dbd612",
"editor.line_number": "#ffffff20",
"editor.active_line_number": "#f4dbd690",
"editor.invisible": "#939ab766",
"editor.wrap_guide": "#5b6078",
"editor.active_wrap_guide": "#5b6078",
"editor.document_highlight.bracket_background": "#c6a0f617",
"editor.document_highlight.read_background": "#a5adcb29",
"editor.document_highlight.write_background": "#a5adcb29",
"editor.indent_guide": "#363a4f99",
"editor.indent_guide_active": "#5b6078",
"terminal.background": "#00000000",
"terminal.ansi.background": "#24273a",
"terminal.foreground": "#cad3f5",
"terminal.dim_foreground": "#8087a2",
"terminal.bright_foreground": "#cad3f5",
"terminal.ansi.black": "#494d64",
"terminal.ansi.white": "#a5adcb",
"terminal.ansi.red": "#ed8796",
"terminal.ansi.green": "#a6da95",
"terminal.ansi.yellow": "#eed49f",
"terminal.ansi.blue": "#8aadf4",
"terminal.ansi.magenta": "#f5bde6",
"terminal.ansi.cyan": "#8bd5ca",
"terminal.ansi.bright_black": "#5b6078",
"terminal.ansi.bright_white": "#b8c0e0",
"terminal.ansi.bright_red": "#ec7486",
"terminal.ansi.bright_green": "#8ccf7f",
"terminal.ansi.bright_yellow": "#e1c682",
"terminal.ansi.bright_blue": "#78a1f6",
"terminal.ansi.bright_magenta": "#f2a9dd",
"terminal.ansi.bright_cyan": "#63cbc0",
"terminal.ansi.dim_black": "#494d64",
"terminal.ansi.dim_white": "#a5adcb",
"terminal.ansi.dim_red": "#ed8796",
"terminal.ansi.dim_green": "#a6da95",
"terminal.ansi.dim_yellow": "#eed49f",
"terminal.ansi.dim_blue": "#8aadf4",
"terminal.ansi.dim_magenta": "#f5bde6",
"terminal.ansi.dim_cyan": "#8bd5ca",
"link_text.hover": "#91d7e3",
"conflict": "#f5a97f",
"conflict.border": "#f5a97f",
"conflict.background": "#f5a97f26",
"created": "#a6da95",
"created.border": "#a6da95",
"created.background": "#a6da9526",
"deleted": "#ed8796",
"deleted.border": "#ed8796",
"deleted.background": "#ed879626",
"hidden": "#6e738d",
"hidden.border": "#6e738d",
"hidden.background": "#1e2030",
"hint": "#5b6078",
"hint.border": "#5b6078",
"hint.background": "#1a1a1ac0",
"ignored": "#6e738d",
"ignored.border": "#6e738d",
"ignored.background": "#6e738d26",
"modified": "#eed49f",
"modified.border": "#eed49f",
"modified.background": "#eed49f26",
"predictive": "#6e738d",
"predictive.border": "#b7bdf8",
"predictive.background": "#1e2030",
"renamed": "#7dc4e4",
"renamed.border": "#7dc4e4",
"renamed.background": "#7dc4e426",
"info": "#8bd5ca",
"info.border": "#8bd5ca",
"info.background": "#1a2b31",
"warning": "#eed49f",
"warning.border": "#eed49f",
"warning.background": "#32281d",
"error": "#ed8796",
"error.border": "#ed8796",
"error.background": "#391e20",
"success": "#a6da95",
"success.border": "#a6da95",
"success.background": "#1f2e21",
"unreachable": "#ed8796",
"unreachable.border": "#ed8796",
"unreachable.background": "#ed87961f",
"players": [
{
"cursor": "#f4dbd6",
"selection": "#939ab740",
"background": "#f4dbd6"
},
{
"cursor": "#c6a0f6",
"selection": "#c6a0f640",
"background": "#c6a0f6"
},
{
"cursor": "#b7bdf8",
"selection": "#b7bdf840",
"background": "#b7bdf8"
},
{
"cursor": "#7dc4e4",
"selection": "#7dc4e440",
"background": "#7dc4e4"
},
{
"cursor": "#a6da95",
"selection": "#a6da9540",
"background": "#a6da95"
},
{
"cursor": "#eed49f",
"selection": "#eed49f40",
"background": "#eed49f"
},
{
"cursor": "#f5a97f",
"selection": "#f5a97f40",
"background": "#f5a97f"
},
{
"cursor": "#ed8796",
"selection": "#ed879640",
"background": "#ed8796"
}
],
"version_control.added": "#a6da95",
"version_control.deleted": "#ed8796",
"version_control.modified": "#eed49f",
"version_control.renamed": "#7dc4e4",
"version_control.conflict": "#f5a97f",
"version_control.conflict_marker.ours": "#a6da9533",
"version_control.conflict_marker.theirs": "#8aadf433",
"version_control.ignored": "#6e738d",
"debugger.accent": "#ed8796",
"editor.debugger_active_line.background": "#f5a97f12",
"syntax": {
"variable": {
"color": "#cad3f5",
"font_style": null,
"font_weight": null
},
"variable.builtin": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"variable.parameter": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"variable.member": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "#ed8796",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"constant.builtin": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"constant.macro": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"module": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"label": {
"color": "#7dc4e4",
"font_style": null,
"font_weight": null
},
"string": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"string.documentation": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"string.regexp": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special.path": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"string.special.url": {
"color": "#f4dbd6",
"font_style": "italic",
"font_weight": null
},
"character": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"character.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"boolean": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"number": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"number.float": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"tag.attribute": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"tag.delimiter": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"type": {
"color": "#eed49f",
"font_style": null,
"font_weight": null
},
"type.builtin": {
"color": "#c6a0f6",
"font_style": "italic",
"font_weight": null
},
"type.definition": {
"color": "#eed49f",
"font_style": null,
"font_weight": null
},
"type.interface": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"type.super": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"attribute": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"property": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.builtin": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"function.call": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.macro": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"function.method": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.method.call": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "#91d7e3",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.modifier": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.type": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.coroutine": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.function": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.operator": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.import": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.repeat": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.return": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.debug": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.exception": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.conditional": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.conditional.ternary": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.directive": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"keyword.directive.define": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"keyword.export": {
"color": "#91d7e3",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"punctuation.special.symbol": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.documentation": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.info": {
"color": "#8bd5ca",
"font_style": "italic",
"font_weight": null
},
"comment.error": {
"color": "#ed8796",
"font_style": "italic",
"font_weight": null
},
"comment.warning": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"comment.warn": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"comment.hint": {
"color": "#8aadf4",
"font_style": "italic",
"font_weight": null
},
"comment.todo": {
"color": "#f0c6c6",
"font_style": "italic",
"font_weight": null
},
"comment.note": {
"color": "#f4dbd6",
"font_style": "italic",
"font_weight": null
},
"diff.plus": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"diff.minus": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"parameter": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"field": {
"color": "#b7bdf8",
"font_style": null,
"font_weight": null
},
"namespace": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"float": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"symbol": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"text": {
"color": "#cad3f5",
"font_style": null,
"font_weight": null
},
"emphasis.strong": {
"color": "#ee99a0",
"font_style": null,
"font_weight": 700
},
"emphasis": {
"color": "#ee99a0",
"font_style": "italic",
"font_weight": null
},
"embedded": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"concept": {
"color": "#7dc4e4",
"font_style": null,
"font_weight": null
},
"enum": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": 700
},
"function.decorator": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"type.class.definition": {
"color": "#eed49f",
"font_style": null,
"font_weight": 700
},
"hint": {
"color": "#8087a2",
"font_style": "italic",
"font_weight": null
},
"link_text": {
"color": "#b7bdf8",
"font_style": null,
"font_weight": null
},
"link_uri": {
"color": "#8aadf4",
"font_style": "italic",
"font_weight": null
},
"parent": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"predictive": {
"color": "#6e738d",
"font_style": null,
"font_weight": null
},
"predoc": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"primary": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"tag.doctype": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"string.doc": {
"color": "#8bd5ca",
"font_style": "italic",
"font_weight": null
},
"title": {
"color": "#cad3f5",
"font_style": null,
"font_weight": 800
},
"variant": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
}
}
}
},
{
"name": "Catppuccin Espresso (Blur)",
"appearance": "dark",
"style": {
"accents": [
"#c6a0f6",
"#b7bdf8",
"#7dc4e4",
"#a6da95",
"#eed49f",
"#f5a97f",
"#ed8796"
],
"vim.mode.text": "#181926",
"vim.normal.foreground": "#181926",
"vim.helix_normal.foreground": "#181926",
"vim.visual.foreground": "#181926",
"vim.helix_select.foreground": "#181926",
"vim.insert.foreground": "#181926",
"vim.visual_line.foreground": "#181926",
"vim.visual_block.foreground": "#181926",
"vim.replace.foreground": "#181926",
"vim.normal.background": "#f4dbd6",
"vim.helix_normal.background": "#f4dbd6",
"vim.visual.background": "#b7bdf8",
"vim.helix_select.background": "#b7bdf8",
"vim.insert.background": "#a6da95",
"vim.visual_line.background": "#b7bdf8",
"vim.visual_block.background": "#c6a0f6",
"vim.replace.background": "#ee99a0",
"background.appearance": "blurred",
"border": "#363a4f15",
"border.variant": "#00000000",
"border.focused": "#b7bdf8",
"border.selected": "#c6a0f6",
"border.transparent": "#a6da95",
"border.disabled": "#6e738d",
"elevated_surface.background": "#0a0a0a",
"surface.background": "#000000d0",
"background": "#000000d7",
"element.background": "#181926",
"element.hover": "#363a4f",
"element.active": "#00000000",
"element.selected": "#363a4f4d",
"element.disabled": "#6e738d",
"drop_target.background": "#c6a0f6b0",
"ghost_element.background": "#0a0a0a60",
"ghost_element.hover": "#0a0a0a90",
"ghost_element.active": "#c6a0f630",
"ghost_element.selected": "#c6a0f650",
"ghost_element.disabled": "#6e738d",
"text": "#cad3f5",
"text.muted": "#b8c0e0",
"text.placeholder": "#5b6078",
"text.disabled": "#494d64",
"text.accent": "#c6a0f6",
"icon": "#cad3f5",
"icon.muted": "#8087a2",
"icon.disabled": "#6e738d",
"icon.placeholder": "#5b6078",
"icon.accent": "#c6a0f6",
"status_bar.background": "#000000d7",
"title_bar.background": "#000000d7",
"title_bar.inactive_background": "#1e1f30",
"toolbar.background": "#00000000",
"tab_bar.background": "#00000000",
"tab.inactive_background": "#00000000",
"tab.active_background": "#0a0a0ab0",
"search.match_background": "#8bd5ca4d",
"search.active_match_background": "#ed87964d",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.indent_guide": "#363a4f99",
"panel.indent_guide_active": "#5b6078",
"panel.indent_guide_hover": "#c6a0f6",
"panel.overlay_background": "#1a1a1a",
"pane.focused_border": "#363a4f10",
"pane_group.border": "#363a4f15",
"scrollbar.thumb.background": "#8087a2a0",
"scrollbar.thumb.hover_background": "#6e738d",
"scrollbar.thumb.active_background": null,
"scrollbar.thumb.border": null,
"scrollbar.track.background": "#00000000",
"scrollbar.track.border": "#00000000",
"minimap.thumb.background": "#c6a0f633",
"minimap.thumb.hover_background": "#c6a0f666",
"minimap.thumb.active_background": "#c6a0f699",
"minimap.thumb.border": null,
"editor.foreground": "#cad3f5",
"editor.background": "#00000000",
"editor.gutter.background": "#00000000",
"editor.subheader.background": "#1e2030",
"editor.active_line.background": "#00000000",
"editor.highlighted_line.background": "#f4dbd612",
"editor.line_number": "#ffffff20",
"editor.active_line_number": "#f4dbd690",
"editor.invisible": "#939ab766",
"editor.wrap_guide": "#5b6078",
"editor.active_wrap_guide": "#5b6078",
"editor.document_highlight.bracket_background": "#c6a0f617",
"editor.document_highlight.read_background": "#a5adcb29",
"editor.document_highlight.write_background": "#a5adcb29",
"editor.indent_guide": "#363a4f99",
"editor.indent_guide_active": "#5b6078",
"terminal.background": "#00000000",
"terminal.ansi.background": "#24273a",
"terminal.foreground": "#cad3f5",
"terminal.dim_foreground": "#8087a2",
"terminal.bright_foreground": "#cad3f5",
"terminal.ansi.black": "#494d64",
"terminal.ansi.white": "#a5adcb",
"terminal.ansi.red": "#ed8796",
"terminal.ansi.green": "#a6da95",
"terminal.ansi.yellow": "#eed49f",
"terminal.ansi.blue": "#8aadf4",
"terminal.ansi.magenta": "#f5bde6",
"terminal.ansi.cyan": "#8bd5ca",
"terminal.ansi.bright_black": "#5b6078",
"terminal.ansi.bright_white": "#b8c0e0",
"terminal.ansi.bright_red": "#ec7486",
"terminal.ansi.bright_green": "#8ccf7f",
"terminal.ansi.bright_yellow": "#e1c682",
"terminal.ansi.bright_blue": "#78a1f6",
"terminal.ansi.bright_magenta": "#f2a9dd",
"terminal.ansi.bright_cyan": "#63cbc0",
"terminal.ansi.dim_black": "#494d64",
"terminal.ansi.dim_white": "#a5adcb",
"terminal.ansi.dim_red": "#ed8796",
"terminal.ansi.dim_green": "#a6da95",
"terminal.ansi.dim_yellow": "#eed49f",
"terminal.ansi.dim_blue": "#8aadf4",
"terminal.ansi.dim_magenta": "#f5bde6",
"terminal.ansi.dim_cyan": "#8bd5ca",
"link_text.hover": "#91d7e3",
"conflict": "#f5a97f",
"conflict.border": "#f5a97f",
"conflict.background": "#f5a97f26",
"created": "#a6da95",
"created.border": "#a6da95",
"created.background": "#a6da9526",
"deleted": "#ed8796",
"deleted.border": "#ed8796",
"deleted.background": "#ed879626",
"hidden": "#6e738d",
"hidden.border": "#6e738d",
"hidden.background": "#1e2030",
"hint": "#5b6078",
"hint.border": "#5b6078",
"hint.background": "#1a1a1ac0",
"ignored": "#6e738d",
"ignored.border": "#6e738d",
"ignored.background": "#6e738d26",
"modified": "#eed49f",
"modified.border": "#eed49f",
"modified.background": "#eed49f26",
"predictive": "#6e738d",
"predictive.border": "#b7bdf8",
"predictive.background": "#1e2030",
"renamed": "#7dc4e4",
"renamed.border": "#7dc4e4",
"renamed.background": "#7dc4e426",
"info": "#8bd5ca",
"info.border": "#8bd5ca",
"info.background": "#1a2b31",
"warning": "#eed49f",
"warning.border": "#eed49f",
"warning.background": "#32281d",
"error": "#ed8796",
"error.border": "#ed8796",
"error.background": "#391e20",
"success": "#a6da95",
"success.border": "#a6da95",
"success.background": "#1f2e21",
"unreachable": "#ed8796",
"unreachable.border": "#ed8796",
"unreachable.background": "#ed87961f",
"players": [
{
"cursor": "#f4dbd6",
"selection": "#939ab740",
"background": "#f4dbd6"
},
{
"cursor": "#c6a0f6",
"selection": "#c6a0f640",
"background": "#c6a0f6"
},
{
"cursor": "#b7bdf8",
"selection": "#b7bdf840",
"background": "#b7bdf8"
},
{
"cursor": "#7dc4e4",
"selection": "#7dc4e440",
"background": "#7dc4e4"
},
{
"cursor": "#a6da95",
"selection": "#a6da9540",
"background": "#a6da95"
},
{
"cursor": "#eed49f",
"selection": "#eed49f40",
"background": "#eed49f"
},
{
"cursor": "#f5a97f",
"selection": "#f5a97f40",
"background": "#f5a97f"
},
{
"cursor": "#ed8796",
"selection": "#ed879640",
"background": "#ed8796"
}
],
"version_control.added": "#a6da95",
"version_control.deleted": "#ed8796",
"version_control.modified": "#eed49f",
"version_control.renamed": "#7dc4e4",
"version_control.conflict": "#f5a97f",
"version_control.conflict_marker.ours": "#a6da9533",
"version_control.conflict_marker.theirs": "#8aadf433",
"version_control.ignored": "#6e738d",
"debugger.accent": "#ed8796",
"editor.debugger_active_line.background": "#f5a97f12",
"syntax": {
"variable": {
"color": "#cad3f5",
"font_style": null,
"font_weight": null
},
"variable.builtin": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"variable.parameter": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"variable.member": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "#ed8796",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"constant.builtin": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"constant.macro": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"module": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"label": {
"color": "#7dc4e4",
"font_style": null,
"font_weight": null
},
"string": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"string.documentation": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"string.regexp": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special.path": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"string.special.url": {
"color": "#f4dbd6",
"font_style": "italic",
"font_weight": null
},
"character": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"character.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"boolean": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"number": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"number.float": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"tag.attribute": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"tag.delimiter": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"type": {
"color": "#eed49f",
"font_style": null,
"font_weight": null
},
"type.builtin": {
"color": "#c6a0f6",
"font_style": "italic",
"font_weight": null
},
"type.definition": {
"color": "#eed49f",
"font_style": null,
"font_weight": null
},
"type.interface": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"type.super": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"attribute": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"property": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.builtin": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"function.call": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.macro": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"function.method": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.method.call": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "#91d7e3",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.modifier": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.type": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.coroutine": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.function": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.operator": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.import": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.repeat": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.return": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.debug": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.exception": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.conditional": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.conditional.ternary": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.directive": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"keyword.directive.define": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"keyword.export": {
"color": "#91d7e3",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"punctuation.special.symbol": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.documentation": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.info": {
"color": "#8bd5ca",
"font_style": "italic",
"font_weight": null
},
"comment.error": {
"color": "#ed8796",
"font_style": "italic",
"font_weight": null
},
"comment.warning": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"comment.warn": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"comment.hint": {
"color": "#8aadf4",
"font_style": "italic",
"font_weight": null
},
"comment.todo": {
"color": "#f0c6c6",
"font_style": "italic",
"font_weight": null
},
"comment.note": {
"color": "#f4dbd6",
"font_style": "italic",
"font_weight": null
},
"diff.plus": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"diff.minus": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"parameter": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"field": {
"color": "#b7bdf8",
"font_style": null,
"font_weight": null
},
"namespace": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"float": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"symbol": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"text": {
"color": "#cad3f5",
"font_style": null,
"font_weight": null
},
"emphasis.strong": {
"color": "#ee99a0",
"font_style": null,
"font_weight": 700
},
"emphasis": {
"color": "#ee99a0",
"font_style": "italic",
"font_weight": null
},
"embedded": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"concept": {
"color": "#7dc4e4",
"font_style": null,
"font_weight": null
},
"enum": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": 700
},
"function.decorator": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"type.class.definition": {
"color": "#eed49f",
"font_style": null,
"font_weight": 700
},
"hint": {
"color": "#8087a2",
"font_style": "italic",
"font_weight": null
},
"link_text": {
"color": "#b7bdf8",
"font_style": null,
"font_weight": null
},
"link_uri": {
"color": "#8aadf4",
"font_style": "italic",
"font_weight": null
},
"parent": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"predictive": {
"color": "#6e738d",
"font_style": null,
"font_weight": null
},
"predoc": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"primary": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"tag.doctype": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"string.doc": {
"color": "#8bd5ca",
"font_style": "italic",
"font_weight": null
},
"title": {
"color": "#cad3f5",
"font_style": null,
"font_weight": 800
},
"variant": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
}
}
}
},
{
"name": "Catppuccin Espresso (Blur) [Heavy]",
"appearance": "dark",
"style": {
"accents": [
"#c6a0f6",
"#b7bdf8",
"#7dc4e4",
"#a6da95",
"#eed49f",
"#f5a97f",
"#ed8796"
],
"vim.mode.text": "#181926",
"vim.normal.foreground": "#181926",
"vim.helix_normal.foreground": "#181926",
"vim.visual.foreground": "#181926",
"vim.helix_select.foreground": "#181926",
"vim.insert.foreground": "#181926",
"vim.visual_line.foreground": "#181926",
"vim.visual_block.foreground": "#181926",
"vim.replace.foreground": "#181926",
"vim.normal.background": "#f4dbd6",
"vim.helix_normal.background": "#f4dbd6",
"vim.visual.background": "#b7bdf8",
"vim.helix_select.background": "#b7bdf8",
"vim.insert.background": "#a6da95",
"vim.visual_line.background": "#b7bdf8",
"vim.visual_block.background": "#c6a0f6",
"vim.replace.background": "#ee99a0",
"background.appearance": "blurred",
"border": "#363a4f15",
"border.variant": "#00000000",
"border.focused": "#b7bdf8",
"border.selected": "#c6a0f6",
"border.transparent": "#a6da95",
"border.disabled": "#6e738d",
"elevated_surface.background": "#0a0a0a",
"surface.background": "#000000db",
"background": "#000000e0",
"element.background": "#181926",
"element.hover": "#363a4f",
"element.active": "#00000000",
"element.selected": "#363a4f4d",
"element.disabled": "#6e738d",
"drop_target.background": "#c6a0f6d0",
"ghost_element.background": "#0a0a0a60",
"ghost_element.hover": "#0a0a0a90",
"ghost_element.active": "#c6a0f630",
"ghost_element.selected": "#c6a0f650",
"ghost_element.disabled": "#6e738d",
"text": "#cad3f5",
"text.muted": "#b8c0e0",
"text.placeholder": "#5b6078",
"text.disabled": "#494d64",
"text.accent": "#c6a0f6",
"icon": "#cad3f5",
"icon.muted": "#8087a2",
"icon.disabled": "#6e738d",
"icon.placeholder": "#5b6078",
"icon.accent": "#c6a0f6",
"status_bar.background": "#000000e0",
"title_bar.background": "#000000e0",
"title_bar.inactive_background": "#1e1f30",
"toolbar.background": "#00000000",
"tab_bar.background": "#00000000",
"tab.inactive_background": "#00000000",
"tab.active_background": "#0a0a0ad0",
"search.match_background": "#8bd5ca4d",
"search.active_match_background": "#ed87964d",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.indent_guide": "#363a4f99",
"panel.indent_guide_active": "#5b6078",
"panel.indent_guide_hover": "#c6a0f6",
"panel.overlay_background": "#1a1a1a",
"pane.focused_border": "#363a4f10",
"pane_group.border": "#363a4f15",
"scrollbar.thumb.background": "#8087a2c0",
"scrollbar.thumb.hover_background": "#6e738d",
"scrollbar.thumb.active_background": null,
"scrollbar.thumb.border": null,
"scrollbar.track.background": "#00000000",
"scrollbar.track.border": "#00000000",
"minimap.thumb.background": "#c6a0f633",
"minimap.thumb.hover_background": "#c6a0f666",
"minimap.thumb.active_background": "#c6a0f699",
"minimap.thumb.border": null,
"editor.foreground": "#cad3f5",
"editor.background": "#00000000",
"editor.gutter.background": "#00000000",
"editor.subheader.background": "#1e2030",
"editor.active_line.background": "#00000000",
"editor.highlighted_line.background": "#f4dbd612",
"editor.line_number": "#ffffff20",
"editor.active_line_number": "#f4dbd690",
"editor.invisible": "#939ab766",
"editor.wrap_guide": "#5b6078",
"editor.active_wrap_guide": "#5b6078",
"editor.document_highlight.bracket_background": "#c6a0f617",
"editor.document_highlight.read_background": "#a5adcb29",
"editor.document_highlight.write_background": "#a5adcb29",
"editor.indent_guide": "#363a4f99",
"editor.indent_guide_active": "#5b6078",
"terminal.background": "#00000000",
"terminal.ansi.background": "#24273a",
"terminal.foreground": "#cad3f5",
"terminal.dim_foreground": "#8087a2",
"terminal.bright_foreground": "#cad3f5",
"terminal.ansi.black": "#494d64",
"terminal.ansi.white": "#a5adcb",
"terminal.ansi.red": "#ed8796",
"terminal.ansi.green": "#a6da95",
"terminal.ansi.yellow": "#eed49f",
"terminal.ansi.blue": "#8aadf4",
"terminal.ansi.magenta": "#f5bde6",
"terminal.ansi.cyan": "#8bd5ca",
"terminal.ansi.bright_black": "#5b6078",
"terminal.ansi.bright_white": "#b8c0e0",
"terminal.ansi.bright_red": "#ec7486",
"terminal.ansi.bright_green": "#8ccf7f",
"terminal.ansi.bright_yellow": "#e1c682",
"terminal.ansi.bright_blue": "#78a1f6",
"terminal.ansi.bright_magenta": "#f2a9dd",
"terminal.ansi.bright_cyan": "#63cbc0",
"terminal.ansi.dim_black": "#494d64",
"terminal.ansi.dim_white": "#a5adcb",
"terminal.ansi.dim_red": "#ed8796",
"terminal.ansi.dim_green": "#a6da95",
"terminal.ansi.dim_yellow": "#eed49f",
"terminal.ansi.dim_blue": "#8aadf4",
"terminal.ansi.dim_magenta": "#f5bde6",
"terminal.ansi.dim_cyan": "#8bd5ca",
"link_text.hover": "#91d7e3",
"conflict": "#f5a97f",
"conflict.border": "#f5a97f",
"conflict.background": "#f5a97f26",
"created": "#a6da95",
"created.border": "#a6da95",
"created.background": "#a6da9526",
"deleted": "#ed8796",
"deleted.border": "#ed8796",
"deleted.background": "#ed879626",
"hidden": "#6e738d",
"hidden.border": "#6e738d",
"hidden.background": "#1e2030",
"hint": "#5b6078",
"hint.border": "#5b6078",
"hint.background": "#1a1a1ac0",
"ignored": "#6e738d",
"ignored.border": "#6e738d",
"ignored.background": "#6e738d26",
"modified": "#eed49f",
"modified.border": "#eed49f",
"modified.background": "#eed49f26",
"predictive": "#6e738d",
"predictive.border": "#b7bdf8",
"predictive.background": "#1e2030",
"renamed": "#7dc4e4",
"renamed.border": "#7dc4e4",
"renamed.background": "#7dc4e426",
"info": "#8bd5ca",
"info.border": "#8bd5ca",
"info.background": "#1a2b31",
"warning": "#eed49f",
"warning.border": "#eed49f",
"warning.background": "#32281d",
"error": "#ed8796",
"error.border": "#ed8796",
"error.background": "#391e20",
"success": "#a6da95",
"success.border": "#a6da95",
"success.background": "#1f2e21",
"unreachable": "#ed8796",
"unreachable.border": "#ed8796",
"unreachable.background": "#ed87961f",
"players": [
{
"cursor": "#f4dbd6",
"selection": "#939ab740",
"background": "#f4dbd6"
},
{
"cursor": "#c6a0f6",
"selection": "#c6a0f640",
"background": "#c6a0f6"
},
{
"cursor": "#b7bdf8",
"selection": "#b7bdf840",
"background": "#b7bdf8"
},
{
"cursor": "#7dc4e4",
"selection": "#7dc4e440",
"background": "#7dc4e4"
},
{
"cursor": "#a6da95",
"selection": "#a6da9540",
"background": "#a6da95"
},
{
"cursor": "#eed49f",
"selection": "#eed49f40",
"background": "#eed49f"
},
{
"cursor": "#f5a97f",
"selection": "#f5a97f40",
"background": "#f5a97f"
},
{
"cursor": "#ed8796",
"selection": "#ed879640",
"background": "#ed8796"
}
],
"version_control.added": "#a6da95",
"version_control.deleted": "#ed8796",
"version_control.modified": "#eed49f",
"version_control.renamed": "#7dc4e4",
"version_control.conflict": "#f5a97f",
"version_control.conflict_marker.ours": "#a6da9533",
"version_control.conflict_marker.theirs": "#8aadf433",
"version_control.ignored": "#6e738d",
"debugger.accent": "#ed8796",
"editor.debugger_active_line.background": "#f5a97f12",
"syntax": {
"variable": {
"color": "#cad3f5",
"font_style": null,
"font_weight": null
},
"variable.builtin": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"variable.parameter": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"variable.member": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "#ed8796",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"constant.builtin": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"constant.macro": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"module": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"label": {
"color": "#7dc4e4",
"font_style": null,
"font_weight": null
},
"string": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"string.documentation": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"string.regexp": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special.path": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"string.special.url": {
"color": "#f4dbd6",
"font_style": "italic",
"font_weight": null
},
"character": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"character.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"boolean": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"number": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"number.float": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"tag.attribute": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"tag.delimiter": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"type": {
"color": "#eed49f",
"font_style": null,
"font_weight": null
},
"type.builtin": {
"color": "#c6a0f6",
"font_style": "italic",
"font_weight": null
},
"type.definition": {
"color": "#eed49f",
"font_style": null,
"font_weight": null
},
"type.interface": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"type.super": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"attribute": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"property": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.builtin": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"function.call": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.macro": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"function.method": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"function.method.call": {
"color": "#8aadf4",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "#91d7e3",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.modifier": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.type": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.coroutine": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.function": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.operator": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.import": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.repeat": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.return": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.debug": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.exception": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.conditional": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.conditional.ternary": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"keyword.directive": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"keyword.directive.define": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"keyword.export": {
"color": "#91d7e3",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "#939ab7",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"punctuation.special.symbol": {
"color": "#f0c6c6",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.documentation": {
"color": "#939ab7",
"font_style": "italic",
"font_weight": null
},
"comment.info": {
"color": "#8bd5ca",
"font_style": "italic",
"font_weight": null
},
"comment.error": {
"color": "#ed8796",
"font_style": "italic",
"font_weight": null
},
"comment.warning": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"comment.warn": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"comment.hint": {
"color": "#8aadf4",
"font_style": "italic",
"font_weight": null
},
"comment.todo": {
"color": "#f0c6c6",
"font_style": "italic",
"font_weight": null
},
"comment.note": {
"color": "#f4dbd6",
"font_style": "italic",
"font_weight": null
},
"diff.plus": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"diff.minus": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"parameter": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"field": {
"color": "#b7bdf8",
"font_style": null,
"font_weight": null
},
"namespace": {
"color": "#eed49f",
"font_style": "italic",
"font_weight": null
},
"float": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"symbol": {
"color": "#f5bde6",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"text": {
"color": "#cad3f5",
"font_style": null,
"font_weight": null
},
"emphasis.strong": {
"color": "#ee99a0",
"font_style": null,
"font_weight": 700
},
"emphasis": {
"color": "#ee99a0",
"font_style": "italic",
"font_weight": null
},
"embedded": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "#a6da95",
"font_style": null,
"font_weight": null
},
"concept": {
"color": "#7dc4e4",
"font_style": null,
"font_weight": null
},
"enum": {
"color": "#8bd5ca",
"font_style": null,
"font_weight": 700
},
"function.decorator": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"type.class.definition": {
"color": "#eed49f",
"font_style": null,
"font_weight": 700
},
"hint": {
"color": "#8087a2",
"font_style": "italic",
"font_weight": null
},
"link_text": {
"color": "#b7bdf8",
"font_style": null,
"font_weight": null
},
"link_uri": {
"color": "#8aadf4",
"font_style": "italic",
"font_weight": null
},
"parent": {
"color": "#f5a97f",
"font_style": null,
"font_weight": null
},
"predictive": {
"color": "#6e738d",
"font_style": null,
"font_weight": null
},
"predoc": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
},
"primary": {
"color": "#ee99a0",
"font_style": null,
"font_weight": null
},
"tag.doctype": {
"color": "#c6a0f6",
"font_style": null,
"font_weight": null
},
"string.doc": {
"color": "#8bd5ca",
"font_style": "italic",
"font_weight": null
},
"title": {
"color": "#cad3f5",
"font_style": null,
"font_weight": 800
},
"variant": {
"color": "#ed8796",
"font_style": null,
"font_weight": null
}
}
}
},
{
"name": "Catppuccin Latte (Blur) [Light]",
"appearance": "light",
"style": {
"accents": [
"#8839ef",
"#7287fd",
"#209fb5",
"#40a02b",
"#df8e1d",
"#fe640b",
"#d20f39"
],
"vim.mode.text": "#dce0e8",
"vim.normal.foreground": "#dce0e8",
"vim.helix_normal.foreground": "#dce0e8",
"vim.visual.foreground": "#dce0e8",
"vim.helix_select.foreground": "#dce0e8",
"vim.insert.foreground": "#dce0e8",
"vim.visual_line.foreground": "#dce0e8",
"vim.visual_block.foreground": "#dce0e8",
"vim.replace.foreground": "#dce0e8",
"vim.normal.background": "#dc8a78",
"vim.helix_normal.background": "#dc8a78",
"vim.visual.background": "#7287fd",
"vim.helix_select.background": "#7287fd",
"vim.insert.background": "#40a02b",
"vim.visual_line.background": "#7287fd",
"vim.visual_block.background": "#8839ef",
"vim.replace.background": "#e64553",
"background.appearance": "blurred",
"border": "#ccd0da15",
"border.variant": "#00000000",
"border.focused": "#7287fd",
"border.selected": "#8839ef",
"border.transparent": "#40a02b",
"border.disabled": "#9ca0b0",
"elevated_surface.background": "#f9fafc",
"surface.background": "#f9fafc8c",
"background": "#f9fafc99",
"element.background": "#dce0e8",
"element.hover": "#ccd0da",
"element.active": "#00000000",
"element.selected": "#ccd0da4d",
"element.disabled": "#9ca0b0",
"drop_target.background": "#8839ef90",
"ghost_element.background": "#f9fafc60",
"ghost_element.hover": "#f9fafc90",
"ghost_element.active": "#8839ef30",
"ghost_element.selected": "#8839ef50",
"ghost_element.disabled": "#9ca0b0",
"text": "#4c4f69",
"text.muted": "#5c5f77",
"text.placeholder": "#acb0be",
"text.disabled": "#bcc0cc",
"text.accent": "#8839ef",
"icon": "#4c4f69",
"icon.muted": "#8c8fa1",
"icon.disabled": "#9ca0b0",
"icon.placeholder": "#acb0be",
"icon.accent": "#8839ef",
"status_bar.background": "#f9fafc99",
"title_bar.background": "#f9fafc99",
"title_bar.inactive_background": "#e6e9ee",
"toolbar.background": "#00000000",
"tab_bar.background": "#00000000",
"tab.inactive_background": "#00000000",
"tab.active_background": "#f9fafc90",
"search.match_background": "#1792994d",
"search.active_match_background": "#d20f394d",
"panel.background": "#00000000",
"panel.focused_border": "00000000",
"panel.indent_guide": "#ccd0da99",
"panel.indent_guide_active": "#acb0be",
"panel.indent_guide_hover": "#8839ef",
"panel.overlay_background": "#f9fafc",
"pane.focused_border": "#ccd0da10",
"pane_group.border": "#ccd0da15",
"scrollbar.thumb.background": "#8c8fa180",
"scrollbar.thumb.hover_background": "#9ca0b0",
"scrollbar.thumb.active_background": null,
"scrollbar.thumb.border": null,
"scrollbar.track.background": "#00000000",
"scrollbar.track.border": "#00000000",
"minimap.thumb.background": "#8839ef33",
"minimap.thumb.hover_background": "#8839ef66",
"minimap.thumb.active_background": "#8839ef99",
"minimap.thumb.border": null,
"editor.foreground": "#4c4f69",
"editor.background": "#00000000",
"editor.gutter.background": "#00000000",
"editor.subheader.background": "#e6e9ef",
"editor.active_line.background": "#00000000",
"editor.highlighted_line.background": "#007aff12",
"editor.line_number": "#00000020",
"editor.active_line_number": "#0079ff90",
"editor.invisible": "#7c7f9366",
"editor.wrap_guide": "#acb0be",
"editor.active_wrap_guide": "#acb0be",
"editor.document_highlight.bracket_background": "#8839ef17",
"editor.document_highlight.read_background": "#6c6f8529",
"editor.document_highlight.write_background": "#6c6f8529",
"editor.indent_guide": "#ccd0da99",
"editor.indent_guide_active": "#acb0be",
"terminal.background": "#00000000",
"terminal.ansi.background": "#eff1f5",
"terminal.foreground": "#4c4f69",
"terminal.dim_foreground": "#8c8fa1",
"terminal.bright_foreground": "#4c4f69",
"terminal.ansi.black": "#5c5f77",
"terminal.ansi.white": "#acb0be",
"terminal.ansi.red": "#d20f39",
"terminal.ansi.green": "#40a02b",
"terminal.ansi.yellow": "#df8e1d",
"terminal.ansi.blue": "#1e66f5",
"terminal.ansi.magenta": "#ea76cb",
"terminal.ansi.cyan": "#179299",
"terminal.ansi.bright_black": "#6c6f85",
"terminal.ansi.bright_white": "#bcc0cc",
"terminal.ansi.bright_red": "#de293e",
"terminal.ansi.bright_green": "#49af3d",
"terminal.ansi.bright_yellow": "#eea02d",
"terminal.ansi.bright_blue": "#456eff",
"terminal.ansi.bright_magenta": "#fe85d8",
"terminal.ansi.bright_cyan": "#2d9fa8",
"terminal.ansi.dim_black": "#5c5f77",
"terminal.ansi.dim_white": "#acb0be",
"terminal.ansi.dim_red": "#d20f39",
"terminal.ansi.dim_green": "#40a02b",
"terminal.ansi.dim_yellow": "#df8e1d",
"terminal.ansi.dim_blue": "#1e66f5",
"terminal.ansi.dim_magenta": "#ea76cb",
"terminal.ansi.dim_cyan": "#179299",
"link_text.hover": "#04a5e5",
"conflict": "#fe640b",
"conflict.border": "#fe640b",
"conflict.background": "#fe640b26",
"created": "#40a02b",
"created.border": "#40a02b",
"created.background": "#40a02b26",
"deleted": "#d20f39",
"deleted.border": "#d20f39",
"deleted.background": "#d20f3926",
"hidden": "#9ca0b0",
"hidden.border": "#9ca0b0",
"hidden.background": "#e6e9ef",
"hint": "#acb0be",
"hint.border": "#acb0be",
"hint.background": "#e8e8e8c0",
"ignored": "#9ca0b0",
"ignored.border": "#9ca0b0",
"ignored.background": "#9ca0b026",
"modified": "#df8e1d",
"modified.border": "#df8e1d",
"modified.background": "#df8e1d26",
"predictive": "#9ca0b0",
"predictive.border": "#7287fd",
"predictive.background": "#e6e9ef",
"renamed": "#209fb5",
"renamed.border": "#209fb5",
"renamed.background": "#209fb526",
"info": "#179299",
"info.border": "#179299",
"info.background": "#cce9f3",
"warning": "#df8e1d",
"warning.border": "#df8e1d",
"warning.background": "#ffe5c0",
"error": "#d20f39",
"error.border": "#d20f39",
"error.background": "#ffd7d9",
"success": "#40a02b",
"success.border": "#40a02b",
"success.background": "#d4eecf",
"unreachable": "#d20f39",
"unreachable.border": "#d20f39",
"unreachable.background": "#d20f391f",
"players": [
{
"cursor": "#dc8a78",
"selection": "#7c7f934d",
"background": "#dc8a78"
},
{
"cursor": "#8839ef",
"selection": "#8839ef4d",
"background": "#8839ef"
},
{
"cursor": "#7287fd",
"selection": "#7287fd4d",
"background": "#7287fd"
},
{
"cursor": "#209fb5",
"selection": "#209fb54d",
"background": "#209fb5"
},
{
"cursor": "#40a02b",
"selection": "#40a02b4d",
"background": "#40a02b"
},
{
"cursor": "#df8e1d",
"selection": "#df8e1d4d",
"background": "#df8e1d"
},
{
"cursor": "#fe640b",
"selection": "#fe640b4d",
"background": "#fe640b"
},
{
"cursor": "#d20f39",
"selection": "#d20f394d",
"background": "#d20f39"
}
],
"version_control.added": "#40a02b",
"version_control.deleted": "#d20f39",
"version_control.modified": "#df8e1d",
"version_control.renamed": "#209fb5",
"version_control.conflict": "#fe640b",
"version_control.conflict_marker.ours": "#40a02b33",
"version_control.conflict_marker.theirs": "#1e66f533",
"version_control.ignored": "#9ca0b0",
"debugger.accent": "#d20f39",
"editor.debugger_active_line.background": "#fe640b12",
"syntax": {
"variable": {
"color": "#4c4f69",
"font_style": null,
"font_weight": null
},
"variable.builtin": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"variable.parameter": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"variable.member": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "#d20f39",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"constant.builtin": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"constant.macro": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"module": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"label": {
"color": "#209fb5",
"font_style": null,
"font_weight": null
},
"string": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"string.documentation": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"string.regexp": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special.path": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"string.special.url": {
"color": "#dc8a78",
"font_style": "italic",
"font_weight": null
},
"character": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"character.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"boolean": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"number": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"number.float": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"tag.attribute": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"tag.delimiter": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"type": {
"color": "#df8e1d",
"font_style": null,
"font_weight": null
},
"type.builtin": {
"color": "#8839ef",
"font_style": "italic",
"font_weight": null
},
"type.definition": {
"color": "#df8e1d",
"font_style": null,
"font_weight": null
},
"type.interface": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"type.super": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"attribute": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"property": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.builtin": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"function.call": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.macro": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"function.method": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"function.method.call": {
"color": "#1e66f5",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "#04a5e5",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.modifier": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.type": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.coroutine": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.function": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.operator": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.import": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.repeat": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.return": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.debug": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.exception": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.conditional": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.conditional.ternary": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"keyword.directive": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"keyword.directive.define": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"keyword.export": {
"color": "#04a5e5",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "#7c7f93",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"punctuation.special.symbol": {
"color": "#dd7878",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "#179299",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.documentation": {
"color": "#7c7f93",
"font_style": "italic",
"font_weight": null
},
"comment.info": {
"color": "#179299",
"font_style": "italic",
"font_weight": null
},
"comment.error": {
"color": "#d20f39",
"font_style": "italic",
"font_weight": null
},
"comment.warning": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"comment.warn": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"comment.hint": {
"color": "#1e66f5",
"font_style": "italic",
"font_weight": null
},
"comment.todo": {
"color": "#dd7878",
"font_style": "italic",
"font_weight": null
},
"comment.note": {
"color": "#dc8a78",
"font_style": "italic",
"font_weight": null
},
"diff.plus": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"diff.minus": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"parameter": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"field": {
"color": "#7287fd",
"font_style": null,
"font_weight": null
},
"namespace": {
"color": "#df8e1d",
"font_style": "italic",
"font_weight": null
},
"float": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"symbol": {
"color": "#ea76cb",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"text": {
"color": "#4c4f69",
"font_style": null,
"font_weight": null
},
"emphasis.strong": {
"color": "#e64553",
"font_style": null,
"font_weight": 700
},
"emphasis": {
"color": "#e64553",
"font_style": "italic",
"font_weight": null
},
"embedded": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "#40a02b",
"font_style": null,
"font_weight": null
},
"concept": {
"color": "#209fb5",
"font_style": null,
"font_weight": null
},
"enum": {
"color": "#179299",
"font_style": null,
"font_weight": 700
},
"function.decorator": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"type.class.definition": {
"color": "#df8e1d",
"font_style": null,
"font_weight": 700
},
"hint": {
"color": "#8c8fa1",
"font_style": "italic",
"font_weight": null
},
"link_text": {
"color": "#7287fd",
"font_style": null,
"font_weight": null
},
"link_uri": {
"color": "#1e66f5",
"font_style": "italic",
"font_weight": null
},
"parent": {
"color": "#fe640b",
"font_style": null,
"font_weight": null
},
"predictive": {
"color": "#9ca0b0",
"font_style": null,
"font_weight": null
},
"predoc": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
},
"primary": {
"color": "#e64553",
"font_style": null,
"font_weight": null
},
"tag.doctype": {
"color": "#8839ef",
"font_style": null,
"font_weight": null
},
"string.doc": {
"color": "#179299",
"font_style": "italic",
"font_weight": null
},
"title": {
"color": "#4c4f69",
"font_style": null,
"font_weight": 800
},
"variant": {
"color": "#d20f39",
"font_style": null,
"font_weight": null
}
}
}
},
{
"name": "Catppuccin Frapp\u00e9 (Blur) [Light]",
"appearance": "dark",
"style": {
"accents": [
"#ca9ee6",
"#babbf1",
"#85c1dc",
"#a6d189",
"#e5c890",
"#ef9f76",
"#e78284"
],
"vim.mode.text": "#232634",
"vim.normal.foreground": "#232634",
"vim.helix_normal.foreground": "#232634",
"vim.visual.foreground": "#232634",
"vim.helix_select.foreground": "#232634",
"vim.insert.foreground": "#232634",
"vim.visual_line.foreground": "#232634",
"vim.visual_block.foreground": "#232634",
"vim.replace.foreground": "#232634",
"vim.normal.background": "#f2d5cf",
"vim.helix_normal.background": "#f2d5cf",
"vim.visual.background": "#babbf1",
"vim.helix_select.background": "#babbf1",
"vim.insert.background": "#a6d189",
"vim.visual_line.background": "#babbf1",
"vim.visual_block.background": "#ca9ee6",
"vim.replace.background": "#ea999c",
"background.appearance": "blurred",
"border": "#41455915",
"border.variant": "#00000000",
"border.focused": "#babbf1",
"border.selected": "#ca9ee6",
"border.transparent": "#a6d189",
"border.disabled": "#737994",
"elevated_surface.background": "#292c3c",
"surface.background": "#3034468c",
"background": "#30344699",
"element.background
gitextract_4ora5glf/
├── .gitattributes
├── .github/
│ └── workflows/
│ ├── manual-release.yml
│ └── sync-theme.yml
├── .gitignore
├── LICENSE
├── README.md
├── extension.toml
├── sync_theme.py
├── theme_overrides.py
└── themes/
└── catppuccin-blur.json
SYMBOL INDEX (14 symbols across 2 files) FILE: sync_theme.py class Colors (line 20) | class Colors: function print_header (line 36) | def print_header(): function print_step (line 41) | def print_step(step: str, status: str = "info"): function progress_bar (line 51) | def progress_bar(current: int, total: int, prefix: str = "", width: int ... function get_file_hash (line 62) | def get_file_hash(filepath: str) -> str: function get_content_hash (line 73) | def get_content_hash(content: str) -> str: function fetch_schema (line 77) | def fetch_schema() -> dict: function validate_theme (line 109) | def validate_theme(theme: dict, schema: dict) -> bool: function fix_json (line 127) | def fix_json(json_str): function remove_alpha (line 135) | def remove_alpha(color): function fetch_theme (line 147) | def fetch_theme(): function apply_blur (line 193) | def apply_blur(theme, generate_all_levels=False): function main (line 316) | def main(): FILE: theme_overrides.py function generate_theme_overrides_for_level (line 16) | def generate_theme_overrides_for_level(base_overrides, level_config):
Condensed preview — 10 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (499K chars).
[
{
"path": ".gitattributes",
"chars": 66,
"preview": "# Auto detect text files and perform LF normalization\n* text=auto\n"
},
{
"path": ".github/workflows/manual-release.yml",
"chars": 2942,
"preview": "name: Manual Release\n\non:\n workflow_dispatch:\n inputs:\n version_bump:\n description: \"Version bump type\"\n"
},
{
"path": ".github/workflows/sync-theme.yml",
"chars": 1488,
"preview": "name: Sync Theme\n\non:\n schedule:\n - cron: \"0 0 * * *\"\n workflow_dispatch:\n repository_dispatch:\n types: [catppu"
},
{
"path": ".gitignore",
"chars": 87,
"preview": "\nassets/.DS_Store\n.DS_Store\n__pycache__/\n*.py[cod]\n*$py.class\n.theme_schema_cache.json\n"
},
{
"path": "LICENSE",
"chars": 1067,
"preview": "MIT License\n\nCopyright (c) 2024 Catppuccin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
},
{
"path": "README.md",
"chars": 3630,
"preview": "# 🌿 Catppuccin Blur for Zed\n\n> **Note**\n> The blur effect may not work on all operating systems. This is a limitation of"
},
{
"path": "extension.toml",
"chars": 234,
"preview": "id = \"catppuccin-blur\"\nname = \"Catppuccin Blur\"\nschema_version = 1\nversion = \"0.3.4\"\nauthors = [\"Jens Lystad <jens@lysta"
},
{
"path": "sync_theme.py",
"chars": 14530,
"preview": "#!/usr/bin/env python3\nimport json\nimport requests\nimport os\nimport re\nimport sys\nimport time\nimport hashlib\nfrom theme_"
},
{
"path": "theme_overrides.py",
"chars": 13189,
"preview": "#!/usr/bin/env python3\n\"\"\"\nTheme override definitions for Catppuccin Blur variants.\n\nEach variant has specific color and"
},
{
"path": "themes/catppuccin-blur.json",
"chars": 411235,
"preview": "{\n \"$schema\": \"https://zed.dev/schema/themes/v0.2.0.json\",\n \"name\": \"Catppuccin Blur\",\n \"author\": \"Jens Lystad <jens@"
}
]
About this extraction
This page contains the full source code of the jenslys/zed-catppuccin-blur GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 10 files (438.0 KB), approximately 114.3k tokens, and a symbol index with 14 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.