fix(ux): make the scroll cue visible — edge scrim + chevron

The fade-to-transparent was invisible: the row sits on the same pale
canvas, so masking the edge to transparent just revealed more of the
same colour (and often landed on an inter-chip gap). Replace it with a
surface-coloured scrim the chips slide under, topped by an outward
chevron, shown only on an edge with more content. RTL-mirrored.
This commit is contained in:
vjrj 2026-07-11 07:25:14 +02:00
parent 94cf2f5448
commit 05227706fd
2 changed files with 84 additions and 31 deletions

View file

@ -35,6 +35,16 @@ void main() {
await tester.pump(); // let the post-layout metrics notification land
expect(state(tester).fadeLeft, isFalse);
expect(state(tester).fadeRight, isFalse);
expect(find.byIcon(Icons.chevron_left), findsNothing);
expect(find.byIcon(Icons.chevron_right), findsNothing);
});
testWidgets('a trailing chevron cue appears when the row overflows',
(tester) async {
await tester.pumpWidget(harness(count: 20));
await tester.pump();
expect(find.byIcon(Icons.chevron_right), findsOneWidget);
expect(find.byIcon(Icons.chevron_left), findsNothing);
});
testWidgets('LTR: at start only the trailing (right) edge fades',