Square every corner, enlarge the main surfaces and add a to-do list
Rounded rectangles and round controls are now square across the app; only status dots, glows, the sun, rings and the breathing circle stay round. Cards, rows, thumbnails, featured cards, category tiles, the standing card and the nav are larger. Home gets a quick To-do list kept on the device (TodoItem in InternalMemory), seeded with sample items in mock mode. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KhQh614DMeYoQEH9SoMRUw
This commit is contained in:
@@ -402,7 +402,7 @@ class RoutineBuilderState extends State<RoutineBuilder>
|
||||
height: 124,
|
||||
padding: const EdgeInsets.all(12),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
borderRadius: BorderRadius.zero,
|
||||
gradient: selected
|
||||
? LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
@@ -424,7 +424,6 @@ class RoutineBuilderState extends State<RoutineBuilder>
|
||||
color: selected
|
||||
? colorWhite.withValues(alpha: 0.16)
|
||||
: kindBackground(kind),
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
child: Icon(kindIcon(kind),
|
||||
size: 17, color: selected ? colorWhite : tone),
|
||||
@@ -470,7 +469,7 @@ class RoutineBuilderState extends State<RoutineBuilder>
|
||||
padding: const EdgeInsets.fromLTRB(14, 12, 14, 12),
|
||||
decoration: BoxDecoration(
|
||||
color: applied ? kindBackground(_routine.kind) : colorWhite,
|
||||
borderRadius: BorderRadius.circular(14),
|
||||
borderRadius: BorderRadius.zero,
|
||||
border: Border.all(
|
||||
color: applied
|
||||
? kindColor(_routine.kind).withValues(alpha: 0.4)
|
||||
@@ -515,7 +514,6 @@ class RoutineBuilderState extends State<RoutineBuilder>
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: on ? tone : colorWhite,
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: on ? tone : colorBorder),
|
||||
),
|
||||
child: text(weekdayInitial(day), 13,
|
||||
@@ -576,7 +574,7 @@ class RoutineBuilderState extends State<RoutineBuilder>
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: kindBackground(_routine.kind),
|
||||
borderRadius: BorderRadius.circular(9),
|
||||
borderRadius: BorderRadius.zero,
|
||||
),
|
||||
child: text("${index + 1}", 12, TextType.Bold, color: tone),
|
||||
),
|
||||
|
||||
@@ -457,7 +457,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
Widget _totalPill() {
|
||||
return GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(99),
|
||||
radius: BorderRadius.zero,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 11),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
@@ -496,7 +496,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
track: colorWhite.withValues(alpha: 0.22),
|
||||
child: GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(100),
|
||||
radius: BorderRadius.zero,
|
||||
child: SizedBox(
|
||||
width: 150,
|
||||
height: 150,
|
||||
@@ -552,7 +552,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
),
|
||||
GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(200),
|
||||
radius: BorderRadius.zero,
|
||||
child: SizedBox(
|
||||
width: 120 + 50 * t,
|
||||
height: 120 + 50 * t,
|
||||
@@ -588,7 +588,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
children: [
|
||||
GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(99),
|
||||
radius: BorderRadius.zero,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 7),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
@@ -610,7 +610,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
const SizedBox(width: 8),
|
||||
GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(99),
|
||||
radius: BorderRadius.zero,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 7),
|
||||
child: text("Left app ${_run.backgroundedCount}×", 11,
|
||||
TextType.Medium,
|
||||
@@ -727,7 +727,6 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
height: size,
|
||||
padding: const EdgeInsets.all(2.5),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: isCurrent ? colorNight : colorWhite,
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
@@ -737,7 +736,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
),
|
||||
],
|
||||
),
|
||||
child: ClipOval(
|
||||
child: ClipRect(
|
||||
child: Stack(
|
||||
fit: StackFit.expand,
|
||||
children: [
|
||||
@@ -794,7 +793,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
margin: const EdgeInsets.only(right: 4),
|
||||
decoration: BoxDecoration(
|
||||
color: filled || active ? tone : tone.withValues(alpha: 0.15),
|
||||
borderRadius: BorderRadius.circular(999),
|
||||
borderRadius: BorderRadius.zero,
|
||||
),
|
||||
);
|
||||
}),
|
||||
@@ -894,7 +893,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: colorNight,
|
||||
borderRadius: BorderRadius.circular(999),
|
||||
borderRadius: BorderRadius.zero,
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
color: Color(0x331A1F1C),
|
||||
@@ -956,8 +955,8 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
decoration: const BoxDecoration(
|
||||
color: colorSheetBackground,
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(28),
|
||||
topRight: Radius.circular(28),
|
||||
topLeft: Radius.zero,
|
||||
topRight: Radius.zero,
|
||||
),
|
||||
),
|
||||
child: ListView(
|
||||
@@ -985,7 +984,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
padding: const EdgeInsets.fromLTRB(12, 12, 14, 12),
|
||||
decoration: BoxDecoration(
|
||||
color: current ? kindBackground(_run.chain.kind) : colorWhite,
|
||||
borderRadius: BorderRadius.circular(14),
|
||||
borderRadius: BorderRadius.zero,
|
||||
border: Border.all(
|
||||
color: current ? tone.withValues(alpha: 0.35) : colorBorder,
|
||||
),
|
||||
@@ -998,7 +997,6 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: step.completed ? tone : colorSecondary,
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
child: step.completed
|
||||
? Icon(Icons.check_rounded,
|
||||
@@ -1072,7 +1070,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
children: [
|
||||
GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(99),
|
||||
radius: BorderRadius.zero,
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 12, vertical: 7),
|
||||
child: text(
|
||||
@@ -1096,7 +1094,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
track: colorWhite.withValues(alpha: 0.3),
|
||||
child: GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(100),
|
||||
radius: BorderRadius.zero,
|
||||
child: SizedBox(
|
||||
width: 158,
|
||||
height: 158,
|
||||
@@ -1128,7 +1126,7 @@ class RoutineRunnerState extends State<RoutineRunner>
|
||||
),
|
||||
const SizedBox(height: 22),
|
||||
GlassSurface(
|
||||
radius: BorderRadius.circular(24),
|
||||
radius: BorderRadius.zero,
|
||||
tint: colorGlassStrong,
|
||||
padding: const EdgeInsets.fromLTRB(18, 16, 18, 16),
|
||||
child: Row(
|
||||
|
||||
@@ -330,7 +330,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
..sort((a, b) => a.startMinute.compareTo(b.startMinute));
|
||||
|
||||
return GlassSurface(
|
||||
radius: BorderRadius.circular(24),
|
||||
radius: BorderRadius.zero,
|
||||
tint: colorGlassStrong,
|
||||
padding: const EdgeInsets.fromLTRB(18, 16, 18, 16),
|
||||
child: Row(
|
||||
@@ -391,18 +391,17 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
onTap: () => _onSelectKind(kind),
|
||||
behavior: HitTestBehavior.opaque,
|
||||
child: SizedBox(
|
||||
width: 74,
|
||||
width: 88,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
AnimatedContainer(
|
||||
duration: const Duration(milliseconds: 200),
|
||||
curve: Curves.easeOut,
|
||||
width: 64,
|
||||
height: 64,
|
||||
width: 78,
|
||||
height: 78,
|
||||
padding: const EdgeInsets.all(2.5),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: selected ? colorNight : colorWhite,
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
@@ -412,7 +411,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
),
|
||||
],
|
||||
),
|
||||
child: ClipOval(
|
||||
child: ClipRect(
|
||||
child: kind == null
|
||||
? Container(
|
||||
color: colorWhite,
|
||||
@@ -450,7 +449,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
final List<RoutineChain> items = _upNext;
|
||||
|
||||
return SizedBox(
|
||||
height: 240,
|
||||
height: 290,
|
||||
child: ListView.separated(
|
||||
scrollDirection: Axis.horizontal,
|
||||
clipBehavior: Clip.none,
|
||||
@@ -470,9 +469,9 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
return GestureDetector(
|
||||
onTap: () => _onPreview(routine),
|
||||
child: Container(
|
||||
width: 200,
|
||||
width: 244,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(26),
|
||||
borderRadius: BorderRadius.zero,
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
color: Color(0x262A3A30),
|
||||
@@ -482,7 +481,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
],
|
||||
),
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(26),
|
||||
borderRadius: BorderRadius.zero,
|
||||
child: Stack(
|
||||
fit: StackFit.expand,
|
||||
children: [
|
||||
@@ -503,7 +502,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
children: [
|
||||
GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(99),
|
||||
radius: BorderRadius.zero,
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 10, vertical: 5),
|
||||
child: text(
|
||||
@@ -611,10 +610,10 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
child: Row(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 70,
|
||||
height: 70,
|
||||
width: 90,
|
||||
height: 90,
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(18),
|
||||
borderRadius: BorderRadius.zero,
|
||||
child: SceneArt(
|
||||
palette: scenePalette(routine.kind),
|
||||
seed: sceneSeed(routine.title),
|
||||
@@ -665,7 +664,6 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: tone,
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
child: Icon(Icons.check_rounded,
|
||||
size: 22, color: colorWhite),
|
||||
@@ -717,8 +715,8 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
decoration: const BoxDecoration(
|
||||
color: colorAmbientMid,
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(32),
|
||||
topRight: Radius.circular(32),
|
||||
topLeft: Radius.zero,
|
||||
topRight: Radius.zero,
|
||||
),
|
||||
),
|
||||
clipBehavior: Clip.antiAlias,
|
||||
@@ -755,7 +753,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
height: 4,
|
||||
decoration: BoxDecoration(
|
||||
color: colorWhite.withValues(alpha: 0.7),
|
||||
borderRadius: BorderRadius.circular(999),
|
||||
borderRadius: BorderRadius.zero,
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -772,7 +770,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
children: [
|
||||
GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(99),
|
||||
radius: BorderRadius.zero,
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 10, vertical: 5),
|
||||
child: text(kindLabel(routine.kind), 10,
|
||||
@@ -782,7 +780,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
const SizedBox(width: 6),
|
||||
GlassSurface(
|
||||
onDark: true,
|
||||
radius: BorderRadius.circular(99),
|
||||
radius: BorderRadius.zero,
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 10, vertical: 5),
|
||||
child: text(
|
||||
@@ -816,7 +814,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
GlassSurface(
|
||||
radius: BorderRadius.circular(22),
|
||||
radius: BorderRadius.zero,
|
||||
tint: colorGlassStrong,
|
||||
padding: const EdgeInsets.fromLTRB(16, 14, 16, 14),
|
||||
child: Row(
|
||||
@@ -895,7 +893,7 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
padding: const EdgeInsets.fromLTRB(10, 10, 14, 10),
|
||||
decoration: BoxDecoration(
|
||||
color: colorWhite,
|
||||
borderRadius: BorderRadius.circular(18),
|
||||
borderRadius: BorderRadius.zero,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
@@ -905,7 +903,6 @@ class RoutinesState extends State<Routines> implements ConnectRoutines {
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: tone.withValues(alpha: 0.10),
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
child: text("${index + 1}", 12, TextType.Medium, color: tone),
|
||||
),
|
||||
|
||||
@@ -67,8 +67,8 @@ class StepEditorState extends State<StepEditor> {
|
||||
decoration: const BoxDecoration(
|
||||
color: colorSheetBackground,
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(28),
|
||||
topRight: Radius.circular(28),
|
||||
topLeft: Radius.zero,
|
||||
topRight: Radius.zero,
|
||||
),
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
@@ -234,7 +234,7 @@ class StepEditorState extends State<StepEditor> {
|
||||
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 12),
|
||||
decoration: BoxDecoration(
|
||||
color: kindBackground(widget.kind),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
borderRadius: BorderRadius.zero,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
|
||||
Reference in New Issue
Block a user