feat(ui): add premium PluriWave redesign
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# Proposal: Premium award UI, icons, and code-review hardening
|
||||
|
||||
## Intent
|
||||
|
||||
Elevar PluriWave a una UI premium coherente y “award-ready” sin caer en maquillaje visual. Primero se deben corregir defectos de lifecycle/estado que hoy degradan confiabilidad; después se aplica un sistema visual propio: “Ondas vivas globales”.
|
||||
|
||||
## Scope
|
||||
|
||||
### In Scope
|
||||
- Hardening previo: listeners, streams, favoritos, reproductor, timer y errores.
|
||||
- Sistema visual token-first: violeta profundo, magenta eléctrico, coral cálido, vidrio oscuro y glow controlado.
|
||||
- Sistema de iconos propios para navegación, reproducción, favoritos, búsqueda, ajustes y estados.
|
||||
- Mockup/refresh de Inicio, Buscar, Reproductor, Favoritos y Ajustes.
|
||||
- Tests Strict TDD con `flutter test`; sin build.
|
||||
|
||||
### Out of Scope
|
||||
- Reemplazar Provider/ChangeNotifier.
|
||||
- Rediseñar backend/API de radios.
|
||||
- Branding completo externo a la app.
|
||||
- Release packaging o `flutter build`.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
- `ui-technical-hardening`: estabilidad previa a la capa premium.
|
||||
- `premium-visual-system`: tokens, superficies, motion y composición visual.
|
||||
- `premium-icon-system`: iconografía propia con estados outline/filled/active glow.
|
||||
- `premium-screen-refresh`: aplicación coherente en las cinco pantallas principales.
|
||||
|
||||
### Modified Capabilities
|
||||
- None; no existing OpenSpec source specs exist yet.
|
||||
|
||||
## Approach
|
||||
|
||||
Primero cerrar deuda crítica verificada: subscriptions cancelables, favorito global consistente, reorder persistente, reproductor desacoplado de snapshots viejos y errores observables. Luego introducir tokens visuales reutilizables e iconos propios, aplicándolos pantalla por pantalla con el Reproductor como referencia fuerte.
|
||||
|
||||
## Affected Areas
|
||||
|
||||
| Area | Impact | Description |
|
||||
|---|---|---|
|
||||
| `lib/app.dart` | Modified | Listener único/cancelable para errores. |
|
||||
| `lib/widgets/visualizador_audio.dart` | Modified | Stream subscriptions seguras. |
|
||||
| `lib/servicios/servicio_favoritos.dart` | Modified | Reordenado persistente completo. |
|
||||
| `lib/pantallas/pantalla_favoritos.dart` | Modified | UX reorder consistente. |
|
||||
| `lib/widgets/tarjeta_emisora.dart` | Modified | Favorito derivado del estado global. |
|
||||
| `lib/pantallas/pantalla_reproductor.dart` | Modified | UI premium y estado de reproducción confiable. |
|
||||
| `assets/icons/` | New | Iconos propios premium. |
|
||||
| `test/` | Modified | Cobertura de hardening y UI behavior. |
|
||||
|
||||
## Risks
|
||||
|
||||
| Risk | Likelihood | Mitigation |
|
||||
|---|---:|---|
|
||||
| UI linda pero frágil | High | Hardening MUST precede visual rollout. |
|
||||
| Iconos inconsistentes | Med | Definir geometría/estados antes de integrarlos. |
|
||||
| Glow/motion excesivo | Med | Tokens, límites de contraste y reduced motion. |
|
||||
|
||||
## Rollback Plan
|
||||
|
||||
Revertir commits del cambio. Los assets nuevos y tokens pueden eliminarse sin migración de datos. Hardening debe revertirse solo si sus tests también se ajustan.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- Flutter/Material existente.
|
||||
- `flutter_test`.
|
||||
- Assets locales bajo `assets/icons`.
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- [ ] No listeners duplicados ni stream leaks verificados por tests.
|
||||
- [ ] Favoritos y orden se mantienen consistentes.
|
||||
- [ ] Reproductor usa estado actual confiable.
|
||||
- [ ] Las cinco pantallas comparten lenguaje premium.
|
||||
- [ ] Iconos propios reemplazan Material genérico en puntos clave.
|
||||
- [ ] `flutter test` valida el cambio; no se ejecuta build.
|
||||
Reference in New Issue
Block a user