fix(alarma-sonando): restyle Stop as a neutral translucent surface

Audit 9.11 (t4 line 434): the Stop button was a FilledButton in
colorScheme.primary (brand cyan), the wrong colour family for the
largest element on the ringing screen. The prototype draws a neutral
rgba(255,255,255,.08) surface with a rgba(255,255,255,.16) border and
radius 24 (none of PluriWaveTokens' three named radii).
This commit is contained in:
2026-07-29 23:27:28 +02:00
parent cd77ec256e
commit dcb716cbc3
2 changed files with 67 additions and 1 deletions
+20 -1
View File
@@ -283,9 +283,22 @@ class _PantallaAlarmaSonandoState extends State<PantallaAlarmaSonando> {
child: FilledButton.icon(
key: const ValueKey('ringing-stop-button'),
style: FilledButton.styleFrom(
// Audit 9.11 (t4 line 434): the prototype's Stop is a
// NEUTRAL translucent surface — not the brand cyan
// `colorScheme.primary` this used to render in. It is
// the largest element on a full-screen surface, so
// the wrong colour family was maximally visible.
backgroundColor: Colors.white.withValues(alpha: 0.08),
foregroundColor:
Theme.of(context).colorScheme.onSurface,
side: BorderSide(
color: Colors.white.withValues(alpha: 0.16),
),
minimumSize: const Size.fromHeight(76),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(tokens.radiusLg),
borderRadius: BorderRadius.circular(
_stopButtonRadius,
),
),
),
onPressed: _detener,
@@ -341,6 +354,12 @@ class _PantallaAlarmaSonandoState extends State<PantallaAlarmaSonando> {
String _hora(AlarmaMusical alarma) =>
'${alarma.hora.toString().padLeft(2, '0')}:${alarma.minuto.toString().padLeft(2, '0')}';
/// Audit 9.11 (t4 line 434): the Stop button's radius — doesn't match any of
/// [PluriWaveTokens]'s three named radii (14/18/30), so it stays a local
/// constant here rather than growing the shared token surface for a single
/// call site (mirrors `_ArteEscuchar._radio` in `pantalla_inicio.dart`).
const _stopButtonRadius = 24.0;
/// Full-bleed blurred backdrop (WU11, replaces the `PluriGlassSurface` card
/// container per task 11.3). This app has no per-station artwork/favicon
/// safe to render here: `Emisora.favicon` is a network URL, and rendering