Expert guidance for developing Vexylicon, a Python package for creating sophisticated liquid-glass SVG icon effects with dual contours, beveled edges, and theme support.
Expert guidance for developing Vexylicon, a Python package that transforms SVG icons with dual contours into glass-morphism designs with beveled edges and theme support.
Provides comprehensive development guidelines for the Vexylicon project, including:
Before making any changes:
```
vexylicon/
├── core.py # VexyliconGenerator - main glass effect engine
├── cli.py # Fire-based CLI interface
├── utils/
│ ├── svg_processor.py # lxml-based SVG DOM manipulation (NO string operations)
│ ├── path_tools.py # Path interpolation algorithms
│ └── theme_loader.py # Pydantic-based theme validation
└── assets/
├── best_base.svg # Canonical base template with dual contours
└── themes/
└── default.json # Theme definitions
```
**Core Workflow:**
1. Input: `best_base.svg` (1200x1200 with dual contours) + optional payload SVG
2. Parse dual contours (outer and inner paths)
3. Generate N interpolated rings (default 24)
4. Apply opacity progression (quartic by default)
5. Add `mix-blend-mode: screen` for glass effect
6. Inject payload with clipPath masking
7. Output: Glass effect SVG with optional theme variants
**Code Quality Requirements:**
**SVG Processing Rules (CRITICAL):**
**Path Interpolation:**
**Opacity Progression Modes:**
**Theme System (needs completion):**
**Priority Tasks:**
1. Fix Theme System:
- Implement `_duplicate_gradients_for_themes()`
- Add proper CSS with media queries
- Test light/dark switching
2. Complete Gradio-lite Interface:
- Minimal dependencies (may need to vendor svgpathtools)
- Handle Pyodide limitations
- Focus on core features only
3. Improve Testing:
- Unit tests for all path_tools functions
- Integration tests for full pipeline
- Snapshot tests for SVG output
**Known Issues:**
**Before Changes:**
1. Read existing code thoroughly
2. Check PLAN.md and TODO.md
3. Understand the dual-contour SVG format
**Making Changes:**
1. Work in small, testable increments
2. Update CHANGELOG.md after each feature
3. Keep TODO.md current
**After Changes:**
```bash
black src tests
ruff check --fix src tests
pytest
mypy src
```
**Reading the codebase:**
```
User: "How does path interpolation work?"
Assistant: [Reads path_tools.py, explains the algorithm for interpolating between dual contours]
```
**Implementing a feature:**
```
User: "Fix the theme system to support light/dark modes"
Assistant: [Reads theme_loader.py and svg_processor.py, implements _duplicate_gradients_for_themes(), adds CSS media queries, updates tests]
```
**Code review:**
```
User: "Review this SVG processing code"
Assistant: [Checks for string manipulation instead of lxml, verifies namespace preservation, validates coordinate rounding]
```
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/vexylicon-development/raw