caravaggio_ui 1.0.6 copy "caravaggio_ui: ^1.0.6" to clipboard
caravaggio_ui: ^1.0.6 copied to clipboard

A comprehensive UI package designed to streamline your Flutter app development process.

example/lib/main.dart

import 'package:caravaggio_ui/caravaggio_ui.dart';
import 'package:caravaggio_ui_app/main_app.dart';
import 'package:caravaggio_ui_app/webview_device_info.dart';
import 'package:device_preview/device_preview.dart';
import 'package:flutter/material.dart';
import 'package:intl/date_symbol_data_local.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Initialize date formatting
  await initializeDateFormatting('en', null);

  CaravaggioUI.initialize(
    primaryColor: const Color(0xFF6F513B), secondaryColor: const Color(0xFF405055),
    // primaryColor: Colors.blue,
    // secondaryColor: Colors.yellow,
    // primaryColor: const Color(0xFF662D8C),
    // secondaryColor: const Color(0xFFED1E79),
  );

  final bool isPreview = const bool.fromEnvironment('preview', defaultValue: false) ||
      const String.fromEnvironment('preview', defaultValue: 'false') == 'true' ||
      (const String.fromEnvironment('preview', defaultValue: '').toLowerCase() == 'true') ||
      (const String.fromEnvironment('preview', defaultValue: '').isNotEmpty && const String.fromEnvironment('preview', defaultValue: '').toLowerCase() != 'false');

  if (isPreview) {
    runApp(DevicePreview(
      builder: (context) => const MainApp(),
      backgroundColor: Colors.white,
      defaultDevice: webviewDeviceInfo,
      isToolbarVisible: false,
    ));
    return;
  }

  runApp(const MainApp());
}

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

  @override
  State<MainApp> createState() => _MainAppState();
}

class _MainAppState extends State<MainApp> {
  @override
  void initState() {
    super.initState();
    CaravaggioUI.instance.colorsListenable.addListener(_onColorsChanged);
  }

  @override
  void dispose() {
    CaravaggioUI.instance.colorsListenable.removeListener(_onColorsChanged);
    super.dispose();
  }

  void _onColorsChanged() {
    setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      locale: DevicePreview.locale(context),
      title: 'Caravaggio UI',
      theme: CUI.themeData,
      builder: (context, child) => CToast(child: DevicePreview.appBuilder(context, child)),
      home: const HomeScreen(),
    );
  }
}
3
likes
140
points
218
downloads

Documentation

API reference

Publisher

verified publisherlorenzobusi.it

Weekly Downloads

A comprehensive UI package designed to streamline your Flutter app development process.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

caravaggio_calendar_picker, device_preview, flutter, intl, percent_indicator, rxdart

More

Packages that depend on caravaggio_ui