Rebuilt the purple color palette from scratch using a 4-level luminance
scale (~3-5x jump per level: #06000f → #110028 → #1d0845 → #3a158a),
matching the approach of high-contrast Bootswatch dark themes (Darkly,
Cyborg). All contrast ratios are now WCAG-compliant: body text 16:1,
card header white text 8.5:1, primary button 5.5:1.
Chart axis improvements: Y-axis large numbers abbreviated (1.4M, 568K),
X-axis max 6 ticks at 30° rotation, Inter font throughout, dark-glass
tooltips, network_charts settings added to settings.json.tmpl with
transparent canvas background
- New 'Purple' theme based on Vapor with deep violet palette
- custom.scss: full UX redesign — pill search bar, gradient tables,
card hover effects, purple badges, contrasted placeholder text
- Fix btn-success → purple gradient (was green)
- Switch default theme to Purple in settings template
- Dockerfile: node:20-alpine, compiles SCSS at build time, single image
used for web server and all sync modes (blocks, peers, markets)
- docker-compose.yml: explorer + MongoDB (bind-mounted ./db) on shared
'purple' network alongside bitcoinpurpled and electrumx
- docker/entrypoint.sh: generates settings.json from env vars via
envsubst, dispatches to web/sync-blocks/sync-peers/reindex modes
- docker/settings.json.tmpl: minimal settings template parametrized
for BitcoinPurple (coin, wallet RPC, MongoDB, theme)
- docker/mongo-init.sh: creates app user in explorerdb on first start
- .env.example: pre-filled defaults for BitcoinPurple
- CLAUDE.md: codebase guidance for Claude Code
- .gitignore: add db/ (MongoDB bind-mount data directory)