springster 1.0.0-dev.3 copy "springster: ^1.0.0-dev.3" to clipboard
springster: ^1.0.0-dev.3 copied to clipboard

Spring animations and simulations, simplified.

example/lib/main.dart

import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:springster_example/2d_redirection.dart';
import 'package:springster_example/draggable_icons.dart';
import 'package:springster_example/flip-card.dart';
import 'package:springster_example/one_dimension.dart';
import 'package:springster_example/pip.dart';

void main() async {
  runApp(
    CupertinoApp.router(
      routerConfig: router.config(),
    ),
  );
}

final springsterRoutes = [
  NamedRouteDef(
    name: 'Springster Examples',
    path: '',
    type: RouteType.cupertino(),
    builder: (context, state) => const SpringsterExample(),
  ),
  NamedRouteDef(
    name: OneDimensionExample.name,
    path: OneDimensionExample.path,
    type: RouteType.cupertino(),
    builder: (context, state) => OneDimensionExample(),
  ),
  NamedRouteDef(
    name: TwoDimensionRedirectionExample.name,
    path: TwoDimensionRedirectionExample.path,
    type: RouteType.cupertino(),
    builder: (context, state) => TwoDimensionRedirectionExample(),
  ),
  NamedRouteDef(
    name: DraggableIconsExample.name,
    path: DraggableIconsExample.path,
    type: RouteType.cupertino(),
    builder: (context, state) => DraggableIconsExample(),
  ),
  NamedRouteDef(
    name: PipExample.name,
    path: PipExample.path,
    type: RouteType.cupertino(),
    builder: (context, state) => PipExample(),
  ),
  NamedRouteDef(
    name: FlipCardExample.name,
    path: FlipCardExample.path,
    type: RouteType.cupertino(),
    builder: (context, state) => FlipCardExample(),
  ),
];

final router = RootStackRouter.build(
  routes: [
    NamedRouteDef.shell(
      name: 'Home',
      path: '/',
      type: RouteType.cupertino(),
      children: springsterRoutes,
    ),
  ],
);

class SpringsterExample extends StatelessWidget {
  const SpringsterExample({super.key});

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      child: CustomScrollView(
        slivers: [
          CupertinoSliverNavigationBar(),
          SliverPadding(
            padding: const EdgeInsets.all(16),
            sliver: SliverToBoxAdapter(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.stretch,
                spacing: 16,
                children: [
                  buildDestinationButton(
                    context,
                    OneDimensionExample.name,
                  ),
                  buildDestinationButton(
                    context,
                    TwoDimensionRedirectionExample.name,
                  ),
                  buildDestinationButton(
                    context,
                    DraggableIconsExample.name,
                  ),
                  buildDestinationButton(
                    context,
                    PipExample.name,
                  ),
                  buildDestinationButton(
                    context,
                    FlipCardExample.name,
                  ),
                ],
              ),
            ),
          )
        ],
      ),
    );
  }

  Widget buildDestinationButton(BuildContext context, String name) {
    return CupertinoButton.filled(
      onPressed: () => context.navigateTo(NamedRoute(name)),
      child: Text(name),
    );
  }
}
copied to clipboard
60
likes
140
points
424
downloads

Publisher

verified publisherwhynotmake.it

Weekly Downloads

2024.05.30 - 2025.04.24

Spring animations and simulations, simplified.

Homepage
Repository (GitHub)

Topics

#spring #animation #physics

Documentation

API reference

License

MIT (license)

Dependencies

flutter, meta

More

Packages that depend on springster