Skip to content

Commit 474cea5

Browse files
feat(ui): redesign chat, reports, settings, and biomarker screens
Applies the Stitch mockup design system across all remaining app screens, replacing the default Material theme colors with the Koshika palette via AppColors. Changes are visual-only; all logic, state, and navigation remain untouched. chat_screen (all 6 model lifecycle states): - State views (not-downloaded, downloading, ready, loading, error) now use circular icon containers with AppColors.primaryContainer tinted backgrounds instead of bare icons, giving each state a distinct, branded look. - Download progress bar uses AppColors.primary as the fill color. - Search mode indicator bar switches between a tinted primary background (semantic search active) and a neutral surface color (keyword fallback). - Input field fill changed to AppColors.surfaceContainerLow; send button explicitly styled with AppColors.primary when active. - Suggestion chips in the empty chat state use AppColors.surfaceContainerLow fill + AppColors.outlineVariant border for a softer appearance. reports_screen: - Empty state uses the same circular icon container pattern (primary tint). - FAB explicitly styled AppColors.primary / white to override theme default. - Swipe-to-delete background uses AppColors.error with a rounded decoration instead of a flat Colors.red fill. - Report list cards use white fill, AppColors.primary icons, and AppColors.onSurface / onSurfaceVariant text for consistent typography. settings_screen: - Section header icon and label color updated to AppColors.primary. - Model status badge colors replaced: loaded → AppColors.statusActive (dark teal), ready → AppColors.statusReady (blue), downloading/loading → AppColors.statusBusy (amber), error → AppColors.error. Applies to both the Chat model tile and the Embedding model tile. biomarker_detail_screen: - Latest value displayed in AppColors.primary; unit label in onSurfaceVariant. - History list row tint colors aligned to the palette: normal rows use AppColors.statusActive at low alpha, borderline/low rows use AppColors.statusBusy, high/critical rows use AppColors.error.
1 parent 0eb9b5b commit 474cea5

4 files changed

Lines changed: 231 additions & 120 deletions

File tree

lib/screens/biomarker_detail_screen.dart

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import '../widgets/flag_badge.dart';
66
import '../widgets/biomarker_trend_chart.dart';
77
import '../widgets/reference_range_gauge.dart';
88

9+
import '../theme/app_colors.dart';
10+
911
class BiomarkerDetailScreen extends StatefulWidget {
1012
final String biomarkerKey;
1113

@@ -168,15 +170,15 @@ class _BiomarkerDetailScreenState extends State<BiomarkerDetailScreen> {
168170
latestResult.formattedValue,
169171
style: theme.textTheme.displaySmall?.copyWith(
170172
fontWeight: FontWeight.bold,
171-
color: theme.colorScheme.primary,
173+
color: AppColors.primary,
172174
),
173175
),
174176
const SizedBox(width: 8),
175177
if (latestResult.unit != null)
176178
Text(
177179
latestResult.unit!,
178180
style: theme.textTheme.titleMedium?.copyWith(
179-
color: theme.colorScheme.onSurfaceVariant,
181+
color: AppColors.onSurfaceVariant,
180182
),
181183
),
182184
],
@@ -298,15 +300,15 @@ class _BiomarkerDetailScreenState extends State<BiomarkerDetailScreen> {
298300
Color _flagRowColor(BiomarkerFlag flag) {
299301
switch (flag) {
300302
case BiomarkerFlag.normal:
301-
return Colors.green.withValues(alpha: 0.06);
303+
return AppColors.statusActive.withValues(alpha: 0.06);
302304
case BiomarkerFlag.borderline:
303-
return Colors.amber.withValues(alpha: 0.10);
305+
return AppColors.statusBusy.withValues(alpha: 0.08);
304306
case BiomarkerFlag.low:
305-
return Colors.orange.withValues(alpha: 0.08);
307+
return AppColors.statusBusy.withValues(alpha: 0.08);
306308
case BiomarkerFlag.high:
307-
return Colors.red.withValues(alpha: 0.08);
309+
return AppColors.error.withValues(alpha: 0.07);
308310
case BiomarkerFlag.critical:
309-
return Colors.red.withValues(alpha: 0.14);
311+
return AppColors.error.withValues(alpha: 0.12);
310312
case BiomarkerFlag.unknown:
311313
return Colors.transparent;
312314
}

0 commit comments

Comments
 (0)