Implemented QuickInfoTile

This commit is contained in:
2025-11-09 19:10:11 +01:00
parent 5b75a325ea
commit 3916cca2ca
7 changed files with 196 additions and 8 deletions

View File

@@ -3,7 +3,9 @@ import 'package:flutter/material.dart';
class CustomTheme {
static Color primaryColor = const Color(0xFF7505E4);
static Color secondaryColor = const Color(0xFFAFA2FF);
static Color backgroundColor = const Color(0xFF1A1A1A);
static Color backgroundColor = const Color(0xFF0B0B0B);
static Color boxColor = const Color(0xFF101010);
static Color boxBorder = const Color(0xFF272727);
static AppBarTheme appBarTheme = AppBarTheme(
backgroundColor: backgroundColor,

View File

@@ -1,10 +1,25 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:game_tracker/presentation/widgets/quick_info_tile.dart';
class HomeView extends StatelessWidget {
const HomeView({super.key});
@override
Widget build(BuildContext context) {
return const Center(child: Text('Home View'));
return const Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
QuickInfoTile(title: 'Games', icon: Icons.casino, value: 42),
QuickInfoTile(
title: 'Groups',
icon: Icons.groups_rounded,
value: 5,
),
],
),
],
);
}
}

View File

@@ -0,0 +1,56 @@
import 'package:flutter/material.dart';
import 'package:game_tracker/core/custom_theme.dart';
class QuickInfoTile extends StatefulWidget {
final String title;
final IconData icon;
final int value;
const QuickInfoTile({
super.key,
required this.title,
required this.icon,
required this.value,
});
@override
State<QuickInfoTile> createState() => _QuickInfoTileState();
}
class _QuickInfoTileState extends State<QuickInfoTile> {
@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.all(12),
height: 110,
width: 180,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: CustomTheme.boxColor,
border: Border.all(color: CustomTheme.boxBorder),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Row(
children: [
const Icon(Icons.casino),
const SizedBox(width: 5),
Text(
widget.title,
style: const TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
],
),
const Spacer(),
Text(
widget.value.toString(),
style: const TextStyle(fontSize: 32, fontWeight: FontWeight.bold),
),
],
),
);
}
}