swift_liquid 1.0.0 copy "swift_liquid: ^1.0.0" to clipboard
swift_liquid: ^1.0.0 copied to clipboard

Liquid UI animations and effects for Flutter - iOS-style fluid interactions with spring physics, drag gestures, and beautiful modals.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:swift_liquid/swift_liquid.dart';
import 'examples/scale_tap_example.dart';
import 'examples/bottom_sheet_example.dart';
import 'examples/popover_example.dart';
import 'examples/menu_example.dart';
import 'examples/buttons_example.dart';
import 'examples/extension_example.dart';
import 'examples/container_example.dart';
import 'examples/accessibility_example.dart';

void main() {
  runApp(const SwiftLiquidExampleApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Swift Liquid Examples',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
        useMaterial3: true,
      ),
      home: const ExampleHomePage(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Swift Liquid Examples'),
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
      ),
      body: ListView(
        padding: const EdgeInsets.all(16),
        children: [
          _buildSection(
            context,
            '🌊 Liquid Scale Tap',
            'Fluid button interactions with spring physics',
            () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const ScaleTapExample()),
            ),
          ),
          const SizedBox(height: 16),
          _buildSection(
            context,
            '📱 Bottom Sheets',
            'iOS-style modals with drag-to-dismiss',
            () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const BottomSheetExample()),
            ),
          ),
          const SizedBox(height: 16),
          _buildSection(
            context,
            '🎯 Popovers',
            'Anchored popovers with smart positioning',
            () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const PopoverExample()),
            ),
          ),
          const SizedBox(height: 16),
          _buildSection(
            context,
            '📋 Menus',
            'Interactive menu popovers',
            () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const MenuExample()),
            ),
          ),
          const SizedBox(height: 16),
          _buildSection(
            context,
            '🔘 Buttons',
            'Pre-built liquid buttons',
            () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const ButtonsExample()),
            ),
          ),
          const SizedBox(height: 16),
          _buildSection(
            context,
            '✨ Widget Extensions',
            'Add liquid effects to any widget',
            () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const ExtensionExample()),
            ),
          ),
          const SizedBox(height: 16),
          _buildSection(
            context,
            '🔮 Glass Container',
            'SContainer with built-in glass effect',
            () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const ContainerExample()),
            ),
          ),
          const SizedBox(height: 16),
          _buildSection(
            context,
            '♿ Accessibility',
            'Accessibility features and examples',
            () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const AccessibilityExample()),
            ),
          ),
        ],
      ),
    );
  }

  Widget _buildSection(
    BuildContext context,
    String title,
    String subtitle,
    VoidCallback onTap,
  ) {
    return SGestureDetector(
      onPressed: onTap,
      child: Container(
        padding: const EdgeInsets.all(20),
        decoration: BoxDecoration(
          color: Theme.of(context).colorScheme.surface,
          borderRadius: BorderRadius.circular(16),
          border: Border.all(
            color: Theme.of(context).colorScheme.outline.withOpacity(0.2),
          ),
          boxShadow: [
            BoxShadow(
              color: Colors.black.withOpacity(0.05),
              blurRadius: 10,
              offset: const Offset(0, 4),
            ),
          ],
        ),
        child: Row(
          children: [
            Expanded(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text(
                    title,
                    style: const TextStyle(
                      fontSize: 18,
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                  const SizedBox(height: 4),
                  Text(
                    subtitle,
                    style: TextStyle(
                      fontSize: 14,
                      color: Theme.of(context).colorScheme.onSurface.withOpacity(0.6),
                    ),
                  ),
                ],
              ),
            ),
            Icon(
              Icons.arrow_forward_ios,
              size: 16,
              color: Theme.of(context).colorScheme.onSurface.withOpacity(0.4),
            ),
          ],
        ),
      ),
    );
  }
}
1
likes
130
points
130
downloads

Publisher

verified publisherswiftflutter.com

Weekly Downloads

Liquid UI animations and effects for Flutter - iOS-style fluid interactions with spring physics, drag gestures, and beautiful modals.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, screen_corner_radius, swift_animations

More

Packages that depend on swift_liquid