ticketcher 0.1.0 copy "ticketcher: ^0.1.0" to clipboard
ticketcher: ^0.1.0 copied to clipboard

A Flutter package for creating beautiful ticket-style cards with customizable borders, dividers, and patterns. Perfect for event tickets, boarding passes, and coupons.

example/lib/main.dart

import 'package:example/show_cases/colored_ticket.dart';
import 'package:example/show_cases/flight.dart';
import 'package:example/show_cases/flight_multi_section.dart';
import 'package:example/show_cases/gradient_card.dart';
import 'package:example/show_cases/horizontal_ticket.dart';
import 'package:example/show_cases/sales_offer.dart';
import 'package:example/show_cases/social_media.dart';
import 'package:example/show_cases/stacked_ticket.dart';
import 'package:flutter/material.dart';
import 'show_cases/circle_divider.dart';
import 'show_cases/wave_divider.dart';
import 'show_cases/smooth_wave_divider.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Ticketcher Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      debugShowCheckedModeBanner: false,
      home: const MyHomePage(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Ticketcher Examples')),
      body: ListView(
        padding: const EdgeInsets.all(16),
        children: [
          Card(
            child: ListTile(
              leading: const Icon(Icons.flight),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Flight Card'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => const FlightCard()),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.flight_takeoff),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Flight Card with Multiple Sections'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => const FlightCardMultiSection(),
                  ),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.gradient_outlined),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Gradient Card'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => const GradientCard()),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.people_outline),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Social Media Card'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => const SocialMedia()),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.local_offer_outlined),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Sales Offer'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => const SalesOffer()),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.circle_outlined),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Circle Divider'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => const CircleDivider(),
                  ),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.waves),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Wave Divider'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => const WaveDivider()),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.waves_outlined),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Smooth Wave Divider'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => const SmoothWaveDivider(),
                  ),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.receipt_long),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Horizontal Ticket'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => const HorizontalTicket(),
                  ),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.color_lens_outlined),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Colored Sections Ticket'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => const ColoredTicket(),
                  ),
                );
              },
            ),
          ),
          Card(
            child: ListTile(
              leading: const Icon(Icons.stacked_line_chart),
              trailing: const Icon(Icons.arrow_forward_ios, size: 14),
              title: const Text('Stacked Ticket'),
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => const StackedTicket(),
                  ),
                );
              },
            ),
          ),
        ],
      ),
    );
  }
}
26
likes
0
points
120
downloads

Publisher

verified publisherqomrah.ly

Weekly Downloads

A Flutter package for creating beautiful ticket-style cards with customizable borders, dividers, and patterns. Perfect for event tickets, boarding passes, and coupons.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on ticketcher