mirror of
https://github.com/KRTirtho/spotube.git
synced 2026-11-04 10:13:59 +00:00
- Add Spotify design system (colors, typography, ThemeData, components) - Build Spotify shell (Sidebar, TopBar, BottomPlayer, ContentArea) - Redesign Home, Search, Library pages with Spotify cards/track rows - Restyle context menus, shimmer loaders, hover states - Rebrand app name to Spotify across Android/iOS/macOS/Linux/Windows - Update launcher icons and splash config to Spotify logo No backend/API/state/audio logic changed.
102 lines
3.2 KiB
Dart
102 lines
3.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
import 'package:spotube/theme/spotify_colors.dart';
|
|
|
|
class SpotifyTypography {
|
|
static const double _letterSpacing = -0.04;
|
|
|
|
static TextTheme buildTextTheme(BuildContext context) {
|
|
final base = GoogleFonts.poppinsTextTheme();
|
|
return base.copyWith(
|
|
displayLarge: base.displayLarge!.copyWith(
|
|
fontWeight: FontWeight.w700,
|
|
color: SpotifyColors.primaryText,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
displayMedium: base.displayMedium!.copyWith(
|
|
fontWeight: FontWeight.w700,
|
|
color: SpotifyColors.primaryText,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
displaySmall: base.displaySmall!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
color: SpotifyColors.primaryText,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
headlineLarge: base.headlineLarge!.copyWith(
|
|
fontWeight: FontWeight.w700,
|
|
color: SpotifyColors.primaryText,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
headlineMedium: base.headlineMedium!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
color: SpotifyColors.primaryText,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
headlineSmall: base.headlineSmall!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
color: SpotifyColors.primaryText,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
titleLarge: base.titleLarge!.copyWith(
|
|
fontWeight: FontWeight.w700,
|
|
color: SpotifyColors.primaryText,
|
|
fontSize: 16,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
titleMedium: base.titleMedium!.copyWith(
|
|
fontWeight: FontWeight.w700,
|
|
color: SpotifyColors.primaryText,
|
|
fontSize: 14,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
titleSmall: base.titleSmall!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
color: SpotifyColors.primaryText,
|
|
fontSize: 14,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
bodyLarge: base.bodyLarge!.copyWith(
|
|
fontWeight: FontWeight.w400,
|
|
color: SpotifyColors.primaryText,
|
|
fontSize: 16,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
bodyMedium: base.bodyMedium!.copyWith(
|
|
fontWeight: FontWeight.w400,
|
|
color: SpotifyColors.primaryText,
|
|
fontSize: 14,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
bodySmall: base.bodySmall!.copyWith(
|
|
fontWeight: FontWeight.w400,
|
|
color: SpotifyColors.secondaryText,
|
|
fontSize: 13,
|
|
letterSpacing: _letterSpacing,
|
|
),
|
|
labelLarge: base.labelLarge!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
color: SpotifyColors.primaryText,
|
|
fontSize: 12,
|
|
letterSpacing: 0.16,
|
|
),
|
|
labelMedium: base.labelMedium!.copyWith(
|
|
fontWeight: FontWeight.w500,
|
|
color: SpotifyColors.secondaryText,
|
|
fontSize: 11,
|
|
letterSpacing: 0.16,
|
|
),
|
|
labelSmall: base.labelSmall!.copyWith(
|
|
fontWeight: FontWeight.w500,
|
|
color: SpotifyColors.disabledText,
|
|
fontSize: 11,
|
|
letterSpacing: 0.16,
|
|
),
|
|
);
|
|
}
|
|
|
|
static const FontWeight regular = FontWeight.w400;
|
|
static const FontWeight medium = FontWeight.w500;
|
|
static const FontWeight bold = FontWeight.w700;
|
|
}
|