mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-24 07:28:05 +02:00
feat(theme): complete redesign to Cyber-Cinematic Glass (Stitch)
Replace the legacy Apple TV-style purple/cyan theme with the full Google Stitch Cyber-Cinematic Glass design system across the entire app (desktop + mobile). - New Material 3 dark ColorScheme: background #121317, primary #adc6ff, primaryContainer #4b8eff, surface containers, etc. - Typography: Space Grotesk (headlines) + Inter (body/labels) - 3-level glassmorphism via GlassContainer: base, glass, floating - Primary gradient: #007AFF → #00C6FF with blue glow effects - Removed old compatibility aliases (focusColor, border, textPrimary, textSecondary); all code now uses semantic Stitch tokens - Systematically replaced all Colors.white/black/red/grey and GoogleFonts.roboto/outfit with Stitch equivalents - All 36 lib/ files updated, zero compilation errors Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
1 parent
a9a1127d6b
commit
f7eaa724e2
36 files changed
+1651
-986
No files matched your search
@@ -27,9 +27,9 @@ class PlaylistSelectionScreen extends ConsumerWidget {
|
||||
appBar: AppBar(
|
||||
title: Text(
|
||||
'Select Playlist',
|
||||
style: GoogleFonts.roboto(
|
||||
style: GoogleFonts.inter(
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Colors.white,
|
||||
color: AppColors.onSurface,
|
||||
),
|
||||
),
|
||||
backgroundColor: Colors.transparent,
|
||||
@@ -38,12 +38,12 @@ class PlaylistSelectionScreen extends ConsumerWidget {
|
||||
if (currentUser?.isAdmin ?? false)
|
||||
IconButton(
|
||||
icon:
|
||||
const Icon(Icons.admin_panel_settings, color: Colors.white70),
|
||||
const Icon(Icons.admin_panel_settings, color: AppColors.onSurfaceVariant),
|
||||
onPressed: () => context.go('/admin'),
|
||||
tooltip: 'Admin Panel',
|
||||
),
|
||||
IconButton(
|
||||
icon: const Icon(Icons.logout, color: Colors.white70),
|
||||
icon: const Icon(Icons.logout, color: AppColors.onSurfaceVariant),
|
||||
onPressed: () async {
|
||||
await ref.read(authProvider.notifier).logout();
|
||||
if (context.mounted) {
|
||||
@@ -78,9 +78,9 @@ class PlaylistSelectionScreen extends ConsumerWidget {
|
||||
const SizedBox(height: 16),
|
||||
Text(
|
||||
'Error loading playlists',
|
||||
style: GoogleFonts.outfit(
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
color: Colors.white70,
|
||||
color: AppColors.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
@@ -88,7 +88,7 @@ class PlaylistSelectionScreen extends ConsumerWidget {
|
||||
onPressed: () => ref.refresh(playlistsProvider),
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: AppColors.primary,
|
||||
foregroundColor: Colors.white,
|
||||
foregroundColor: AppColors.onSurface,
|
||||
),
|
||||
child: Text('Retry', style: GoogleFonts.inter()),
|
||||
),
|
||||
@@ -104,14 +104,14 @@ class PlaylistSelectionScreen extends ConsumerWidget {
|
||||
const Icon(
|
||||
Icons.playlist_remove,
|
||||
size: 64,
|
||||
color: Colors.white24,
|
||||
color: AppColors.outlineVariant,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
Text(
|
||||
'No playlists available',
|
||||
style: GoogleFonts.outfit(
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
color: Colors.white60,
|
||||
color: AppColors.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
@@ -121,7 +121,7 @@ class PlaylistSelectionScreen extends ConsumerWidget {
|
||||
: 'Contact administrator',
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 14,
|
||||
color: Colors.white38,
|
||||
color: AppColors.outline,
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -246,16 +246,16 @@ class _PlaylistCardState extends State<_PlaylistCard> {
|
||||
child: Icon(
|
||||
Icons.playlist_play_rounded,
|
||||
size: 32,
|
||||
color: _isHovered ? Colors.white : Colors.white70,
|
||||
color: _isHovered ? AppColors.onSurface : AppColors.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
widget.playlist.name,
|
||||
style: GoogleFonts.outfit(
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.white,
|
||||
color: AppColors.onSurface,
|
||||
height: 1.2,
|
||||
),
|
||||
maxLines: 2,
|
||||
@@ -266,7 +266,7 @@ class _PlaylistCardState extends State<_PlaylistCard> {
|
||||
Uri.tryParse(widget.playlist.dns)?.host ?? widget.playlist.dns,
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 13,
|
||||
color: Colors.white38,
|
||||
color: AppColors.outline,
|
||||
letterSpacing: 0.5,
|
||||
),
|
||||
maxLines: 1,
|
||||
|
||||
Reference in new issue
Block a user