mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
## Description This adds support for M3 easing and duration tokens. This PR includes these changes: * Generation of duration and easing constants, in `Durations` and `Easing`, respectively (`Curves` is already taken in the `animation` library) * Add 3 Dart fixes Once this is merged, I'll migrate packages/plugins/customers and then uncomment the deprecation notices for the 3 M2 curves, all of which have 1:1 replacements. ## Related Issues - Fixes https://github.com/flutter/flutter/issues/116525 ## Tests - Added Dart fix tests ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [Features we expect every widget to implement]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
235 lines
12 KiB
Dart
235 lines
12 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'package:flutter/animation.dart';
|
|
|
|
// BEGIN GENERATED TOKEN PROPERTIES - Motion
|
|
|
|
// Do not edit by hand. The code between the "BEGIN GENERATED" and
|
|
// "END GENERATED" comments are generated from data in the Material
|
|
// Design token database by the script:
|
|
// dev/tools/gen_defaults/bin/gen_defaults.dart.
|
|
|
|
/// The set of durations in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
abstract final class Durations {
|
|
/// The short1 duration (50ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration short1 = Duration(milliseconds: 50);
|
|
|
|
/// The short2 duration (100ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration short2 = Duration(milliseconds: 100);
|
|
|
|
/// The short3 duration (150ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration short3 = Duration(milliseconds: 150);
|
|
|
|
/// The short4 duration (200ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration short4 = Duration(milliseconds: 200);
|
|
|
|
/// The medium1 duration (250ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration medium1 = Duration(milliseconds: 250);
|
|
|
|
/// The medium2 duration (300ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration medium2 = Duration(milliseconds: 300);
|
|
|
|
/// The medium3 duration (350ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration medium3 = Duration(milliseconds: 350);
|
|
|
|
/// The medium4 duration (400ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration medium4 = Duration(milliseconds: 400);
|
|
|
|
/// The long1 duration (450ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration long1 = Duration(milliseconds: 450);
|
|
|
|
/// The long2 duration (500ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration long2 = Duration(milliseconds: 500);
|
|
|
|
/// The long3 duration (550ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration long3 = Duration(milliseconds: 550);
|
|
|
|
/// The long4 duration (600ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration long4 = Duration(milliseconds: 600);
|
|
|
|
/// The extralong1 duration (700ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration extralong1 = Duration(milliseconds: 700);
|
|
|
|
/// The extralong2 duration (800ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration extralong2 = Duration(milliseconds: 800);
|
|
|
|
/// The extralong3 duration (900ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration extralong3 = Duration(milliseconds: 900);
|
|
|
|
/// The extralong4 duration (1000ms) in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Duration tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#c009dec6-f29b-4503-b9f0-482af14a8bbd)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Duration extralong4 = Duration(milliseconds: 1000);
|
|
}
|
|
|
|
|
|
// TODO(guidezpl): Improve with description and assets, b/289870605
|
|
|
|
/// The set of easing curves in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
/// * [Curves], for a collection of non-Material animation easing curves.
|
|
abstract final class Easing {
|
|
/// The emphasizedAccelerate easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve emphasizedAccelerate = Cubic(0.3, 0.0, 0.8, 0.15);
|
|
|
|
/// The emphasizedDecelerate easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve emphasizedDecelerate = Cubic(0.05, 0.7, 0.1, 1.0);
|
|
|
|
/// The linear easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve linear = Cubic(0.0, 0.0, 1.0, 1.0);
|
|
|
|
/// The standard easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve standard = Cubic(0.2, 0.0, 0.0, 1.0);
|
|
|
|
/// The standardAccelerate easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve standardAccelerate = Cubic(0.3, 0.0, 1.0, 1.0);
|
|
|
|
/// The standardDecelerate easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve standardDecelerate = Cubic(0.0, 0.0, 0.0, 1.0);
|
|
|
|
/// The legacyDecelerate easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve legacyDecelerate = Cubic(0.0, 0.0, 0.2, 1.0);
|
|
|
|
/// The legacyAccelerate easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve legacyAccelerate = Cubic(0.4, 0.0, 1.0, 1.0);
|
|
|
|
/// The legacy easing curve in the Material specification.
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [M3 guidelines: Easing tokens](https://m3.material.io/styles/motion/easing-and-duration/tokens-specs#433b1153-2ea3-4fe2-9748-803a47bc97ee)
|
|
/// * [M3 guidelines: Applying easing and duration](https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration)
|
|
static const Curve legacy = Cubic(0.4, 0.0, 0.2, 1.0);
|
|
}
|
|
|
|
// END GENERATED TOKEN PROPERTIES - Motion
|