@@ -6,6 +6,7 @@ import 'package:figma_squircle/figma_squircle.dart';
66import 'package:flutter/cupertino.dart' ;
77import 'package:flutter/material.dart' ;
88import 'package:flutter_map/flutter_map.dart' ;
9+ import 'package:palette_generator/palette_generator.dart' ;
910import 'package:progressive_blur/progressive_blur.dart' ;
1011
1112Future <void > main () async {
@@ -77,7 +78,10 @@ class _MainPageState extends State<MainPage> {
7778 sliver: SliverLayoutBuilder (
7879 builder: (context, constraints) {
7980 const preferredItemSize = 160.0 ;
80- final crossAxisCount = math.max (1 , (constraints.crossAxisExtent / preferredItemSize).floor ());
81+ final crossAxisCount = math.max (
82+ 1 ,
83+ (constraints.crossAxisExtent / preferredItemSize).floor (),
84+ );
8185
8286 return SliverGrid .builder (
8387 gridDelegate: SliverGridDelegateWithFixedCrossAxisCount (
@@ -165,6 +169,29 @@ class _AlbumCard extends StatefulWidget {
165169
166170class _AlbumCardState extends State <_AlbumCard >
167171 with AutomaticKeepAliveClientMixin {
172+ Color ? _prominentColor;
173+
174+ @override
175+ void initState () {
176+ super .initState ();
177+ _loadProminentColor ();
178+ }
179+
180+ Future <void > _loadProminentColor () async {
181+ final palette = await PaletteGenerator .fromImageProvider (
182+ NetworkImage (widget.imageUrl),
183+ );
184+
185+ if (palette.dominantColor? .color != null ) {
186+ _prominentColor = Color .lerp (
187+ palette.dominantColor? .color,
188+ Colors .black,
189+ 0.5 ,
190+ );
191+ if (mounted) setState (() {});
192+ }
193+ }
194+
168195 @override
169196 Widget build (BuildContext context) {
170197 super .build (context);
@@ -192,7 +219,7 @@ class _AlbumCardState extends State<_AlbumCard>
192219 cornerSmoothing: 0.6 ,
193220 ),
194221 child: ProgressiveBlurWidget (
195- tintColor: Colors .black.withValues (alpha: 0.5 ),
222+ tintColor: _prominentColor ?? Colors .black.withValues (alpha: 0.5 ),
196223 linearGradientBlur: const LinearGradientBlur (
197224 values: [0 , 1 ],
198225 stops: [0.5 , 0.8 ],
0 commit comments