Created App Surfaces for Theming

This commit is contained in:
2026-02-17 07:27:42 +08:00
parent e7c6f0d3b0
commit 7fb465f6c9
17 changed files with 336 additions and 22 deletions
+16 -5
View File
@@ -16,6 +16,7 @@ import '../../widgets/app_breakpoints.dart';
import '../../widgets/mono_text.dart';
import '../../widgets/responsive_body.dart';
import '../../widgets/status_pill.dart';
import '../../theme/app_surfaces.dart';
import '../../widgets/task_assignment_section.dart';
import '../../widgets/typing_dots.dart';
@@ -377,10 +378,18 @@ class _TaskDetailScreenState extends ConsumerState<TaskDetailScreen> {
decoration: BoxDecoration(
color: bubbleColor,
borderRadius: BorderRadius.only(
topLeft: const Radius.circular(16),
topRight: const Radius.circular(16),
bottomLeft: Radius.circular(isMe ? 16 : 4),
bottomRight: Radius.circular(isMe ? 4 : 16),
topLeft: Radius.circular(
AppSurfaces.of(context).cardRadius,
),
topRight: Radius.circular(
AppSurfaces.of(context).cardRadius,
),
bottomLeft: Radius.circular(
isMe ? AppSurfaces.of(context).cardRadius : 4,
),
bottomRight: Radius.circular(
isMe ? 4 : AppSurfaces.of(context).cardRadius,
),
),
),
child: _buildMentionText(message.content, textColor, profiles),
@@ -695,7 +704,9 @@ class _TaskDetailScreenState extends ConsumerState<TaskDetailScreen> {
constraints: const BoxConstraints(maxHeight: 200),
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.surfaceContainerHighest,
borderRadius: BorderRadius.circular(12),
borderRadius: BorderRadius.circular(
AppSurfaces.of(context).compactCardRadius,
),
),
child: ListView.separated(
shrinkWrap: true,
+7 -1
View File
@@ -17,6 +17,7 @@ import '../../widgets/mono_text.dart';
import '../../widgets/responsive_body.dart';
import '../../widgets/tasq_adaptive_list.dart';
import '../../widgets/typing_dots.dart';
import '../../theme/app_surfaces.dart';
class TasksListScreen extends ConsumerStatefulWidget {
const TasksListScreen({super.key});
@@ -385,6 +386,7 @@ class _TasksListScreenState extends ConsumerState<TasksListScreen> {
builder: (context, setState) {
final officesAsync = ref.watch(officesProvider);
return AlertDialog(
shape: AppSurfaces.of(context).dialogShape,
title: const Text('Create Task'),
content: SizedBox(
width: 360,
@@ -499,7 +501,9 @@ class _TasksListScreenState extends ConsumerState<TasksListScreen> {
alignment: Alignment.center,
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.primaryContainer,
borderRadius: BorderRadius.circular(12),
borderRadius: BorderRadius.circular(
AppSurfaces.of(context).compactCardRadius,
),
),
child: Text(
'#$queueOrder',
@@ -691,6 +695,8 @@ class _StatusSummaryCard extends StatelessWidget {
return Card(
color: background,
// summary cards are compact — use compact token for consistent density
shape: AppSurfaces.of(context).compactShape,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
child: Column(