Full Code of jenslys/zed-catppuccin-blur for AI

master c2eefcfad723 cached
10 files
438.0 KB
114.3k tokens
14 symbols
1 requests
Download .txt
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
Download .txt
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
Download .txt
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.

Copied to clipboard!