diff --git a/lib/constants.dart b/lib/constants.dart index 3fcfcd3a..2edaddba 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -42,6 +42,9 @@ final regexLink = RegExp( caseSensitive: false, ); +/// Standard corner radius for card thumbnails and box art. +const kCardBorderRadius = BorderRadius.all(Radius.circular(8)); + /// The default badge width and height. const defaultBadgeSize = 18.0; diff --git a/lib/screens/home/stream_list/large_stream_card.dart b/lib/screens/home/stream_list/large_stream_card.dart index 95413874..5e7c88a5 100644 --- a/lib/screens/home/stream_list/large_stream_card.dart +++ b/lib/screens/home/stream_list/large_stream_card.dart @@ -2,6 +2,7 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:frosty/constants.dart'; import 'package:frosty/models/stream.dart'; import 'package:frosty/screens/channel/channel.dart'; import 'package:frosty/screens/channel/video/stream_info_bar.dart'; @@ -47,7 +48,7 @@ class LargeStreamCard extends StatelessWidget { final thumbnail = SizedBox( width: double.infinity, child: ClipRRect( - borderRadius: const BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, child: AspectRatio( aspectRatio: 16 / 9, child: FrostyCachedNetworkImage( @@ -57,7 +58,7 @@ class LargeStreamCard extends StatelessWidget { ), cacheKey: cacheKey, placeholder: (context, url) => const SkeletonLoader( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, ), useOldImageOnUrlChange: true, ), diff --git a/lib/screens/home/stream_list/stream_card.dart b/lib/screens/home/stream_list/stream_card.dart index f8cf6e28..50603ced 100644 --- a/lib/screens/home/stream_list/stream_card.dart +++ b/lib/screens/home/stream_list/stream_card.dart @@ -2,6 +2,7 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:frosty/constants.dart'; import 'package:frosty/models/stream.dart'; import 'package:frosty/screens/channel/channel.dart'; import 'package:frosty/screens/home/top/categories/category_streams.dart'; @@ -59,7 +60,7 @@ class StreamCard extends StatelessWidget { ), cacheKey: cacheKey, placeholder: (context, url) => const SkeletonLoader( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, ), useOldImageOnUrlChange: true, ), @@ -80,7 +81,7 @@ class StreamCard extends StatelessWidget { final fontColor = DefaultTextStyle.of(context).style.color; final imageSection = ClipRRect( - borderRadius: const BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, child: Stack( alignment: AlignmentDirectional.bottomEnd, children: [ diff --git a/lib/screens/home/top/categories/category_card.dart b/lib/screens/home/top/categories/category_card.dart index 91b71d6c..07a9038e 100644 --- a/lib/screens/home/top/categories/category_card.dart +++ b/lib/screens/home/top/categories/category_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:frosty/constants.dart'; import 'package:frosty/models/category.dart'; import 'package:frosty/screens/home/top/categories/category_streams.dart'; import 'package:frosty/widgets/frosty_cached_network_image.dart'; @@ -45,7 +46,7 @@ class CategoryCard extends StatelessWidget { SizedBox( width: 80, child: ClipRRect( - borderRadius: const BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, child: AspectRatio( aspectRatio: 3 / 4, child: FrostyCachedNetworkImage( @@ -55,7 +56,7 @@ class CategoryCard extends StatelessWidget { '${artWidth}x$artHeight.jpg', ), placeholder: (context, url) => const SkeletonLoader( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, ), ), ), diff --git a/lib/screens/home/top/categories/category_streams.dart b/lib/screens/home/top/categories/category_streams.dart index adc85c6f..f4753742 100644 --- a/lib/screens/home/top/categories/category_streams.dart +++ b/lib/screens/home/top/categories/category_streams.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:frosty/apis/twitch_api.dart'; +import 'package:frosty/constants.dart'; import 'package:frosty/screens/home/stream_list/stream_list_store.dart'; import 'package:frosty/screens/home/stream_list/streams_list.dart'; import 'package:frosty/screens/settings/stores/auth_store.dart'; @@ -110,9 +111,7 @@ class _CategoryStreamsState extends State { child: AspectRatio( aspectRatio: 3 / 4, child: SkeletonLoader( - borderRadius: BorderRadius.all( - Radius.circular(8), - ), + borderRadius: kCardBorderRadius, ), ), ), @@ -180,7 +179,7 @@ class _TransparentCategoryCard extends StatelessWidget { SizedBox( width: 80, child: ClipRRect( - borderRadius: const BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, child: AspectRatio( aspectRatio: 3 / 4, child: FrostyCachedNetworkImage( @@ -190,7 +189,7 @@ class _TransparentCategoryCard extends StatelessWidget { '${artWidth}x$artHeight.jpg', ), placeholder: (context, url) => const SkeletonLoader( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, ), fit: BoxFit.cover, ), diff --git a/lib/widgets/skeleton_loader.dart b/lib/widgets/skeleton_loader.dart index 53e6db28..75415d4e 100644 --- a/lib/widgets/skeleton_loader.dart +++ b/lib/widgets/skeleton_loader.dart @@ -1,6 +1,7 @@ import 'dart:math'; import 'package:flutter/material.dart'; +import 'package:frosty/constants.dart'; /// A skeleton loading widget that displays a pulsing placeholder class SkeletonLoader extends StatefulWidget { @@ -152,7 +153,7 @@ class CategorySkeletonLoader extends StatelessWidget { child: AspectRatio( aspectRatio: 3 / 4, child: const SkeletonLoader( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, ), ), ), @@ -198,7 +199,7 @@ class StreamCardSkeletonLoader extends StatelessWidget { child: AspectRatio( aspectRatio: 16 / 9, child: const SkeletonLoader( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, ), ), ), @@ -391,11 +392,11 @@ class LargeStreamCardSkeletonLoader extends StatelessWidget { SizedBox( width: double.infinity, child: ClipRRect( - borderRadius: const BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, child: AspectRatio( aspectRatio: 16 / 9, child: const SkeletonLoader( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: kCardBorderRadius, ), ), ),