-
Mahmoud Aglan authored
Theme loader (theme.js): - Reads theme.json on boot, applies CSS custom properties - All colors, animations, button shapes, and radii are live-editable - assetImg() helper renders uploaded assets at exact expected size with object-fit:contain (prevents pixelation/oversizing) Admin panel updates: - Button shapes section: radius, height, font weight, shadow, borders - 25 asset upload slots (up from 19) including tab bar icons - Each slot shows expected dimensions + usage hint in Arabic - Upload accepts SVG, PNG, JPG, WebP, GIF - Preview renders at exact expected size (not pixelated, not huge) - Old files for same slot are cleaned up on re-upload CSS connected to theme variables: - --btn-press-scale, --btn-min-height, --btn-weight, --btn-shadow - --r-full (button radius), --r-btn-secondary, --r-input - --card-border-width - All existing color variables mapped from theme.json Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
00ea47bc