creta_counter 0.3.0 copy "creta_counter: ^0.3.0" to clipboard
creta_counter: ^0.3.0 copied to clipboard

A beautiful, accessible, keyboard-friendly counter widget for Flutter.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:creta_counter/creta_counter.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Creta Counter Example',
      theme: ThemeData(colorSchemeSeed: Colors.indigo, useMaterial3: true),
      home: const ExampleHome(),
    );
  }
}

class ExampleHome extends StatefulWidget {
  const ExampleHome({super.key});

  @override
  State<ExampleHome> createState() => _ExampleHomeState();
}

class _ExampleHomeState extends State<ExampleHome> {
  int value = 3;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Creta Counter Example')),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            // Clamp behavior demo
            CretaCounter(
              width: 100,
              height: 100,
              radius: 16,
              elevation: 2,
              showButtons: true,
              min: -5,
              max: 5,
              boundaryBehavior: CretaCounterBoundaryBehavior.clamp,
              initialCount: value,
              textStyle: const TextStyle(fontSize: 28, fontWeight: FontWeight.w700),
              onChanged: (v) => setState(() => value = v),
            ),
            const SizedBox(height: 16),
            Text('Value (clamp): $value'),
            const SizedBox(height: 32),

            // Wrap behavior demo (separate state)
            _WrapDemo(),
          ],
        ),
      ),
    );
  }
}

class _WrapDemo extends StatefulWidget {
  @override
  State<_WrapDemo> createState() => _WrapDemoState();
}

class _WrapDemoState extends State<_WrapDemo> {
  int value = 1;

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisSize: MainAxisSize.min,
      children: [
        CretaCounter(
          width: 220,
          height: 72,
          radius: 12,
          elevation: 1,
          showButtons: true,
          min: 0,
          max: 3,
          boundaryBehavior: CretaCounterBoundaryBehavior.wrap,
          initialCount: value,
          backgroundColor: Colors.teal.shade50,
          foregroundColor: Colors.teal.shade900,
          onChanged: (v) => setState(() => value = v),
        ),
        const SizedBox(height: 8),
        const Text('Wrap behavior demo (0..3)'),
        Text('Value (wrap): $value'),
      ],
    );
  }
}
0
likes
130
points
42
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A beautiful, accessible, keyboard-friendly counter widget for Flutter.

License

unknown (license)

Dependencies

flutter

More

Packages that depend on creta_counter