updates
This commit is contained in:
parent
981b4836f9
commit
ed910748cb
34 changed files with 2054 additions and 153 deletions
|
|
@ -3,10 +3,10 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|||
|
||||
import 'tokens.dart';
|
||||
|
||||
/// Holds the current accent color — the "hero" of Ratune's aesthetic.
|
||||
/// Holds the current accent color — the "hero" of Timbre's aesthetic.
|
||||
///
|
||||
/// In the `dynamic` theme this is extracted from the playing track's album
|
||||
/// art and boosted for readability in OKLab space (Ratune `color.rs:11-64`),
|
||||
/// art and boosted for readability in OKLab space (Timbre `color.rs:11-64`),
|
||||
/// then interpolated toward over ~400ms. Phase 1 just exposes the default and
|
||||
/// a setter; the extraction + animation land in Phase 2 with playback.
|
||||
class AccentNotifier extends StateNotifier<Color> {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:palette_generator/palette_generator.dart';
|
||||
|
||||
/// Extract a lively accent color from album art, mirroring Ratune's
|
||||
/// Extract a lively accent color from album art, mirroring Timbre's
|
||||
/// art-driven `dynamic` theme (`color.rs`): pick the most vibrant swatch, then
|
||||
/// nudge it into a readable lightness/saturation band. Ratune does the boost in
|
||||
/// nudge it into a readable lightness/saturation band. Timbre does the boost in
|
||||
/// OKLab; this HSL approximation is close enough for now (OKLab is a later
|
||||
/// refinement noted in the roadmap).
|
||||
Future<Color?> extractAccent(ImageProvider image) async {
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ import 'package:google_fonts/google_fonts.dart';
|
|||
|
||||
import 'tokens.dart';
|
||||
|
||||
/// Builds the app [ThemeData] from the Ratune tokens.
|
||||
/// Builds the app [ThemeData] from the Timbre tokens.
|
||||
///
|
||||
/// Monospace type is core to the identity — every surface uses JetBrains Mono
|
||||
/// (a close analog to the terminal fonts in Ratune's screenshots). The [accent]
|
||||
/// (a close analog to the terminal fonts in Timbre's screenshots). The [accent]
|
||||
/// is passed in so the theme rebuilds when album-art extraction changes it.
|
||||
ThemeData buildTimbreTheme(Color accent) {
|
||||
final mono = GoogleFonts.jetBrainsMonoTextTheme(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/widgets.dart';
|
||||
|
||||
/// Design tokens mirroring Ratune's `dynamic`/`static` theme defaults
|
||||
/// (see ratune `docs/sample-config.toml`, `theme.rs`, `color.rs`).
|
||||
/// Design tokens mirroring Timbre's `dynamic`/`static` theme defaults
|
||||
/// (see timbre `docs/sample-config.toml`, `theme.rs`, `color.rs`).
|
||||
///
|
||||
/// The palette is intentionally near-black and low-contrast; the *accent*
|
||||
/// is the one lively color and, in the `dynamic` theme, is extracted live
|
||||
|
|
@ -25,7 +25,7 @@ class TimbreColors {
|
|||
static const Color border = Color(0xFF252525);
|
||||
|
||||
/// Hairline borders when a pane is focused — `border_active`.
|
||||
/// Ratune tints this toward the accent; we start with a lighter grey and
|
||||
/// Timbre tints this toward the accent; we start with a lighter grey and
|
||||
/// swap in the accent at runtime once art extraction lands.
|
||||
static const Color borderActive = Color(0xFF3A3A3A);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue