From 63e7e645dd313b4521a47f1615be63ce3c1e525d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Eduardo=20Garc=C3=ADa=20M=C3=A1rquez?= Date: Sun, 11 Jan 2026 19:49:36 -0500 Subject: [PATCH] docs: Add project documentation - README.md: Project overview, features, installation guide - DEVELOPMENT.md: Lessons learned, common errors to avoid, VLC Skins2 reference, and development checklist - CLAUDE.md: Project-specific Claude Code instructions Key documented issues: - Invalid XML attributes (action on Video, var on Playtree) - Non-existent actions (dialogs.equalizer, vlc.setLoop) - Shadow rendering problems in VLC Skins2 - Margin calculations for element positioning Co-Authored-By: Claude Opus 4.5 --- CLAUDE.md | 78 +++++++++++++++++++ DEVELOPMENT.md | 205 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 83 ++++++++++++++++++++ 3 files changed, 366 insertions(+) create mode 100644 CLAUDE.md create mode 100644 DEVELOPMENT.md create mode 100644 README.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..01211ef --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,78 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +AppleVLC is a VLC Media Player skin implementing Apple Human Interface Guidelines (HIG) design principles. It creates a macOS-style interface with superellipse corners, SF Symbols-inspired icons, and Apple color palette. + +## Build Commands + +```bash +# Generate all PNG assets (buttons, sliders, background) +python3 generate_assets_v3.py + +# Package skin as .vlt file (zip archive) +zip -r AppleVLC.vlt theme.xml images/ fonts/ + +# Install skin to VLC +cp AppleVLC.vlt ~/.local/share/vlc/skins2/ + +# Test skin with VLC +vlc --intf skins2 --skins2-last ~/.local/share/vlc/skins2/AppleVLC.vlt +``` + +## Architecture + +### File Structure +- `theme.xml` - VLC Skins2 XML definition (layout, controls, bitmaps, fonts) +- `generate_assets_v3.py` - Python/PIL script generating all PNG assets +- `images/` - Generated PNG files with alpha transparency +- `fonts/` - TTF fonts (LiberationSans) +- `AppleVLC.vlt` - Final packaged skin (zip format) + +### VLC Skins2 Key Concepts + +**Bitmap declarations require `alphacolor`:** +```xml + +``` + +**Button states:** Each button needs 3 images: `_up`, `_down`, `_over` + +**Checkbox states:** 6 images: `_off_up/down/over` and `_on_up/down/over` + +**Window dragging:** Use `action="move"` on background Image + +**Text variables:** +- `$N` - Track name +- `$T` / `$D` - Current time / Duration +- `$B` - Audio bitrate (kb/s) +- `$V` - Volume percentage + +**VLC Actions:** +- `vlc.play()`, `vlc.pause()`, `vlc.stop()` +- `playlist.previous()`, `playlist.next()` +- `playlist.setRandom(true/false)`, `playlist.setLoop(true/false)`, `playlist.setRepeat(true/false)` + +### Design Constants (Apple HIG) + +```python +APPLE = { + 'blue': (0, 122, 255, 255), # Primary action color + 'bg_primary': (242, 242, 247, 255), # Window background + 'win_close': (255, 95, 87, 255), # macOS red + 'win_min': (255, 189, 46, 255), # macOS yellow + 'win_max': (39, 201, 63, 255), # macOS green +} +``` + +**Touch targets:** Minimum 44px for all interactive controls + +### Workflow + +1. Edit `generate_assets_v3.py` to modify icons/colors +2. Run `python3 generate_assets_v3.py` to regenerate PNGs +3. Edit `theme.xml` to modify layout/controls +4. Package with `zip -r AppleVLC.vlt theme.xml images/ fonts/` +5. Test with VLC using skins2 interface diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 0000000..3cbb4d6 --- /dev/null +++ b/DEVELOPMENT.md @@ -0,0 +1,205 @@ +# Guía de Desarrollo - AppleVLC Skin + +## Lecciones Aprendidas y Errores a Evitar + +### 1. Validación XML Estricta + +VLC Skins2 usa un DTD estricto. **SIEMPRE** verificar que los atributos sean válidos. + +#### Atributos NO válidos encontrados: +```xml + +