Cover-Farbe, Teilen aus YouTube, Android Auto, geschärfte Typografie
P3-Liste aus dem UX-Review: Player nimmt Cover-Farbe auf, "Teilen" aus YouTube trägt die Adresse in den Downloader ein, Android Auto blättert durch die Bibliothek, Laufweite der Typografie geschärft, Überschriften vereinheitlicht. 533 Tests grün, flutter analyze ohne Befund.
This commit is contained in:
+41
-10
@@ -93,28 +93,53 @@ class MeloTheme {
|
||||
/// Flächen sauberer als ein Schatten, den man ohnehin nicht sieht.
|
||||
static Border get hairline => Border.all(color: border, width: 1);
|
||||
|
||||
/// Die Stufenleiter der Schrift.
|
||||
///
|
||||
/// Melo bleibt bei der System-Schrift (auf Android Roboto): sie ist immer
|
||||
/// da, trägt jede Sprache und kostet nichts an App-Größe. Geschärft wird
|
||||
/// stattdessen, was ohne eigene Schrift geht — Größenabstände, Gewichte
|
||||
/// und vor allem die **Laufweite**: große Grade wirken mit den Standard-
|
||||
/// abständen auseinandergezogen, Großbuchstaben dagegen gedrängt.
|
||||
static TextTheme get _textTheme => const TextTheme(
|
||||
// Bildschirm-Überschrift ("Meine Musik", "Online").
|
||||
// Bildschirm-Überschrift ("Favoriten", "Download", "Suchen").
|
||||
// Etwas enger gesetzt, damit die Zeile als ein Wortbild steht.
|
||||
displaySmall: TextStyle(
|
||||
fontSize: 28, height: 1.15, fontWeight: FontWeight.w700, color: text1),
|
||||
fontSize: 26,
|
||||
height: 1.15,
|
||||
fontWeight: FontWeight.w700,
|
||||
letterSpacing: -0.4,
|
||||
color: text1),
|
||||
// Titelleiste, Kopf eines Sheets.
|
||||
headlineSmall: TextStyle(
|
||||
fontSize: 22, height: 1.2, fontWeight: FontWeight.w700, color: text1),
|
||||
fontSize: 22,
|
||||
height: 1.2,
|
||||
fontWeight: FontWeight.w700,
|
||||
letterSpacing: -0.3,
|
||||
color: text1),
|
||||
// Hervorgehobene Zeile ("Shuffle-Wiedergabe").
|
||||
titleMedium: TextStyle(
|
||||
fontSize: 17, height: 1.3, fontWeight: FontWeight.w600, color: text1),
|
||||
// Titel in einer Liste.
|
||||
bodyLarge: TextStyle(fontSize: 15, height: 1.4, color: text1),
|
||||
fontSize: 17,
|
||||
height: 1.3,
|
||||
fontWeight: FontWeight.w600,
|
||||
letterSpacing: -0.1,
|
||||
color: text1),
|
||||
// Titel in einer Liste. Zeilenhöhe bleibt bei 1,4 — dass Fließtext
|
||||
// nicht enger gesetzt wird, hält `theme_kontrast_test.dart` als
|
||||
// Lesbarkeitsregel fest, und die ist älter als diese Politur.
|
||||
bodyLarge: TextStyle(
|
||||
fontSize: 15, height: 1.4, letterSpacing: 0, color: text1),
|
||||
// Untertitel in einer Liste.
|
||||
bodyMedium: TextStyle(fontSize: 13, height: 1.35, color: text2),
|
||||
bodyMedium: TextStyle(
|
||||
fontSize: 13, height: 1.35, letterSpacing: 0, color: text2),
|
||||
// Beiwerk: Anzahl, Dauer.
|
||||
bodySmall: TextStyle(fontSize: 12, height: 1.3, color: text3),
|
||||
// Abschnitts-Beschriftung, Knopftext.
|
||||
// Abschnitts-Beschriftung, Knopftext. Wird in Großbuchstaben
|
||||
// gesetzt — und die brauchen mehr Luft, nicht weniger.
|
||||
labelLarge: TextStyle(
|
||||
fontSize: 12,
|
||||
height: 1.2,
|
||||
fontWeight: FontWeight.w600,
|
||||
letterSpacing: 0.4,
|
||||
letterSpacing: 0.6,
|
||||
color: text3),
|
||||
);
|
||||
|
||||
@@ -138,8 +163,14 @@ class MeloTheme {
|
||||
backgroundColor: black,
|
||||
surfaceTintColor: Colors.transparent,
|
||||
centerTitle: false,
|
||||
// Dieselbe Stufe wie eine Überschrift — sonst hätte derselbe Rang
|
||||
// zwei verschiedene Schriftbilder.
|
||||
titleTextStyle: TextStyle(
|
||||
fontSize: 22, height: 1.2, fontWeight: FontWeight.w700, color: text1),
|
||||
fontSize: 22,
|
||||
height: 1.2,
|
||||
fontWeight: FontWeight.w700,
|
||||
letterSpacing: -0.3,
|
||||
color: text1),
|
||||
),
|
||||
listTileTheme: const ListTileThemeData(
|
||||
contentPadding: EdgeInsets.symmetric(horizontal: MeloSpace.md),
|
||||
|
||||
Reference in New Issue
Block a user