mirror of
https://github.com/tommyxchow/frosty.git
synced 2026-03-13 09:10:02 +08:00
extract kCardBorderRadius constant for card thumbnails
Replace 13 occurrences of BorderRadius.all(Radius.circular(8)) with a shared kCardBorderRadius constant in constants.dart. All uses represent the same design token: card/thumbnail corner radius across stream cards, category cards, and their skeleton loader placeholders. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
|
||||
@@ -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: [
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -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<CategoryStreams> {
|
||||
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,
|
||||
),
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user