Files
bookshelf/books_flutter/lib/constants/constants.dart
Yuriy Panov 5c7b65a0d3 Implement light minimalistic tech redesign with Material 3
Complete transformation from dark to light theme with a professional,
tech-forward design system featuring:

- Material 3 theming with cyan-based color palette (#0891B2 primary)
- Inter font family integration via Google Fonts
- Comprehensive theme system (colors, spacing, typography, shadows)
- Responsive component redesign across all screens
- Enhanced UX with hover animations, Hero transitions, and shimmer loading
- Accessibility features (reduced motion support, high contrast)
- Clean architecture with zero hardcoded values

Theme System:
- Created app_colors.dart with semantic color constants
- Created app_spacing.dart with 8px base spacing scale
- Created app_theme.dart with complete Material 3 configuration
- Added shimmer_loading.dart for image loading states

UI Components Updated:
- Book cards with hover effects and Hero animations
- Bottom navigation with refined styling
- All screens migrated to theme-based colors and typography
- Forms and inputs using consistent design system

Documentation:
- Added REDESIGN_SUMMARY.md with complete implementation overview
- Added IMPLEMENTATION_CHECKLIST.md with detailed task completion status

All components now use centralized theme with no hardcoded values,
ensuring consistency and easy future customization.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-07 13:26:06 +06:00

121 lines
3.3 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:flutter/material.dart';
import '../models/models.dart';
const List<Book> initialBooks = [
(
id: '1',
title: 'Великий Гэтсби',
author: 'Ф. Скотт Фицджеральд',
genre: 'Classic',
annotation:
'История о таинственном миллионере Джее Гэтсби и его страсти к прекрасной Дейзи Бьюкенен.',
coverUrl: 'https://picsum.photos/seed/gatsby/400/600',
pages: 208,
language: 'English',
publishedYear: 1925,
rating: 4.8,
status: 'reading',
progress: 45.0,
isFavorite: true,
),
(
id: '2',
title: '1984',
author: 'Джордж Оруэлл',
genre: 'Dystopian',
annotation:
'Мрачное пророчество о тоталитарном обществе, где Большой Брат следит за каждым.',
coverUrl: 'https://picsum.photos/seed/1984/400/600',
pages: 328,
language: 'English',
publishedYear: 1949,
rating: 4.9,
status: 'want_to_read',
progress: null,
isFavorite: true,
),
(
id: '3',
title: 'Дюна',
author: 'Фрэнк Герберт',
genre: 'Sci-Fi',
annotation:
'Эпическая сага о пустынной планете Арракис и борьбе за самый ценный ресурс во вселенной.',
coverUrl: 'https://picsum.photos/seed/dune/400/600',
pages: 896,
language: 'English',
publishedYear: 1965,
rating: 4.7,
status: 'reading',
progress: 12.0,
isFavorite: false,
),
(
id: '4',
title: 'Хоббит',
author: 'Дж. Р. Р. Толкин',
genre: 'Fantasy',
annotation:
'Приключения Бильбо Бэггинса, который отправляется в неожиданное путешествие с гномами.',
coverUrl: 'https://picsum.photos/seed/hobbit/400/600',
pages: 310,
language: 'English',
publishedYear: 1937,
rating: 4.9,
status: 'done',
progress: null,
isFavorite: false,
),
];
final List<Category> categories = [
(
id: 'fiction',
name: 'Фантастика',
count: 24,
icon: Icons.rocket_launch,
iconColor: Colors.indigoAccent.shade100,
backgroundColor: Colors.indigo.withValues(alpha: 0.2),
),
(
id: 'fantasy',
name: 'Фэнтези',
count: 18,
icon: Icons.auto_fix_high,
iconColor: Colors.purpleAccent.shade100,
backgroundColor: Colors.purple.withValues(alpha: 0.2),
),
(
id: 'nonfiction',
name: 'Научпоп',
count: 7,
icon: Icons.psychology,
iconColor: Colors.tealAccent.shade100,
backgroundColor: Colors.teal.withValues(alpha: 0.2),
),
(
id: 'business',
name: 'Бизнес',
count: 3,
icon: Icons.business_center,
iconColor: Colors.blueAccent.shade100,
backgroundColor: Colors.blue.withValues(alpha: 0.2),
),
(
id: 'education',
name: 'Учебная',
count: 0,
icon: Icons.school,
iconColor: Colors.orangeAccent.shade100,
backgroundColor: Colors.orange.withValues(alpha: 0.2),
),
(
id: 'classics',
name: 'Классика',
count: 15,
icon: Icons.history_edu,
iconColor: Colors.amberAccent.shade100,
backgroundColor: Colors.amber.withValues(alpha: 0.2),
),
];