feat: branding admin fully connected to live system
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>
Showing
public/js/core/theme.js
0 → 100644
Please register or sign in to comment