diff --git a/packages/dievas/lib/src/extensions/dievas_theme_context_extension.dart b/packages/dievas/lib/src/extensions/dievas_theme_context_extension.dart index fe38d3f..269b905 100644 --- a/packages/dievas/lib/src/extensions/dievas_theme_context_extension.dart +++ b/packages/dievas/lib/src/extensions/dievas_theme_context_extension.dart @@ -9,7 +9,7 @@ import 'package:dievas/src/theme.dart'; /// /// Usage inside a widget's [build] method: /// ```dart -/// final color = context.colours.action.actionPrimary; +/// final colour = context.colours.action.actionPrimary; /// final style = context.typography.labelMd; /// final gap = context.spacing.md; /// ``` @@ -35,6 +35,9 @@ extension DievasThemeContextExtension on BuildContext { /// The opacity sub-system — fractional opacity values. DievasOpacityThemeData get opacity => DievasTheme.opacityOf(this); + /// The animation sub-system — motion durations and easing curves. + DievasAnimationThemeData get animation => DievasTheme.animationOf(this); + /// The component-level theme data sub-system. DievasComponentThemeData get components => DievasTheme.componentsOf(this); diff --git a/packages/dievas/test/theme/dievas_theme_test.dart b/packages/dievas/test/theme/dievas_theme_test.dart index bff73d6..075cc1e 100644 --- a/packages/dievas/test/theme/dievas_theme_test.dart +++ b/packages/dievas/test/theme/dievas_theme_test.dart @@ -209,6 +209,13 @@ void main() { expect(DievasTheme.componentsOf(ctx), isA()); }); + testWidgets('context.animation returns animation theme', (tester) async { + await tester.pumpWidget(const Harness(child: SizedBox(key: childKey))); + final ctx = tester.element(find.byKey(childKey)); + expect(ctx.animation, isA()); + expect(ctx.animation, same(DievasTheme.animationOf(ctx))); + }); + testWidgets('typographyOf returns typography theme', (tester) async { await tester.pumpWidget(const Harness(child: SizedBox(key: childKey))); final ctx = tester.element(find.byKey(childKey));