fix(escuchar,reproductor): add the section-heading token and screen 1-3 polish
Audit S7 plus the open items on screens 1-3. Escuchar gains the prototype's own 52px "now listening" eyebrow header (t4:53), which is structurally different from the 56px title row every other root uses (t4:325) -- the earlier wiring test asserted PluriRootHeader on all five roots, an over-broad premise now corrected to guard what actually holds: no AppBar, and the sleep-timer action still reachable.
This commit is contained in:
@@ -2,8 +2,11 @@ import 'package:flutter/material.dart';
|
||||
|
||||
/// Design ADR-1: the named type scale, split out of [PluriWaveTokens] into
|
||||
/// its own ThemeExtension so screens stop copy-pasting
|
||||
/// `.copyWith(fontWeight: w900, letterSpacing: …)`. The set is closed at six
|
||||
/// styles — a seventh requires amending ADR-1.
|
||||
/// `.copyWith(fontWeight: w900, letterSpacing: …)`. The set was closed at
|
||||
/// six styles; S7 (visual fidelity pass) amended ADR-1 to add a seventh —
|
||||
/// [inPageSectionHeading] — rather than have four screens each keep
|
||||
/// copy-pasting their own `titleMedium.copyWith(fontWeight: w900)` override,
|
||||
/// the exact duplication this extension exists to eliminate.
|
||||
///
|
||||
/// [eyebrowLabel] never applies `toUpperCase()` — casing is a
|
||||
/// locale-hostile transform (Turkish dotless i, and scripts with no case at
|
||||
@@ -18,6 +21,7 @@ class PluriWaveTypography extends ThemeExtension<PluriWaveTypography> {
|
||||
required this.cardTitle,
|
||||
required this.bodyStrong,
|
||||
required this.eyebrowLabel,
|
||||
required this.inPageSectionHeading,
|
||||
});
|
||||
|
||||
/// 88 / w800 / height 1.0 / ls -2.0. Alarm ringing, inline time editor.
|
||||
@@ -41,6 +45,14 @@ class PluriWaveTypography extends ThemeExtension<PluriWaveTypography> {
|
||||
/// headers.
|
||||
final TextStyle eyebrowLabel;
|
||||
|
||||
/// 15 / w800 / ls -0.2. S7 (visual fidelity, t4 lines 80, 153, 164, 173):
|
||||
/// an in-page section heading living directly on a screen's content —
|
||||
/// "Tus emisoras", "Cerca de ti", "Explorar por", "Populares ahora".
|
||||
/// Distinct from both [sectionTitle] (23, a ROOT screen's own title) and
|
||||
/// [screenTitle] (19, a pushed screen's AppBar title) — this is smaller
|
||||
/// than either, for a heading living one level below the screen itself.
|
||||
final TextStyle inPageSectionHeading;
|
||||
|
||||
/// Builds the scale from [family] — the SAME resolved Google Fonts
|
||||
/// TextTheme instance [PluriWaveTheme.dark] already computes. Building the
|
||||
/// styles anywhere else would re-merge the font family, which is the
|
||||
@@ -79,6 +91,7 @@ class PluriWaveTypography extends ThemeExtension<PluriWaveTypography> {
|
||||
letterSpacing: 0.8,
|
||||
color: const Color(0xFFF2F7FA).withValues(alpha: 0.42),
|
||||
),
|
||||
inPageSectionHeading: style(15, FontWeight.w800, letterSpacing: -0.2),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -90,6 +103,7 @@ class PluriWaveTypography extends ThemeExtension<PluriWaveTypography> {
|
||||
TextStyle? cardTitle,
|
||||
TextStyle? bodyStrong,
|
||||
TextStyle? eyebrowLabel,
|
||||
TextStyle? inPageSectionHeading,
|
||||
}) {
|
||||
return PluriWaveTypography(
|
||||
heroTime: heroTime ?? this.heroTime,
|
||||
@@ -98,6 +112,7 @@ class PluriWaveTypography extends ThemeExtension<PluriWaveTypography> {
|
||||
cardTitle: cardTitle ?? this.cardTitle,
|
||||
bodyStrong: bodyStrong ?? this.bodyStrong,
|
||||
eyebrowLabel: eyebrowLabel ?? this.eyebrowLabel,
|
||||
inPageSectionHeading: inPageSectionHeading ?? this.inPageSectionHeading,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -117,6 +132,9 @@ class PluriWaveTypography extends ThemeExtension<PluriWaveTypography> {
|
||||
bodyStrong: TextStyle.lerp(bodyStrong, other.bodyStrong, t) ?? bodyStrong,
|
||||
eyebrowLabel:
|
||||
TextStyle.lerp(eyebrowLabel, other.eyebrowLabel, t) ?? eyebrowLabel,
|
||||
inPageSectionHeading:
|
||||
TextStyle.lerp(inPageSectionHeading, other.inPageSectionHeading, t) ??
|
||||
inPageSectionHeading,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user