neo_mobile_kit 0.1.2 copy "neo_mobile_kit: ^0.1.2" to clipboard
neo_mobile_kit: ^0.1.2 copied to clipboard

A mobile-first neobrutalist Flutter UI kit with theme tokens, widgets, navigation, backgrounds, and motion helpers.

example/lib/main.dart

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: NeoTheme.buildTheme(Brightness.light),
      darkTheme: NeoTheme.buildTheme(Brightness.dark),
      home: NeoSplashPage(
        logoText: 'WorldSkills',
        nextPageBuilder: (_) => const ExampleOnboardingPage(),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return NeoOnboardingPage(
      appName: 'School Lab',
      steps: const [
        NeoOnboardingStep(
          title: 'Organize dados',
          description: 'Gerencie alunos, turmas, salas e informacoes principais em poucos toques.',
          icon: Icons.dashboard_rounded,
        ),
        NeoOnboardingStep(
          title: 'Acompanhe indicadores',
          description: 'Veja notas, presencas e resumos importantes com uma leitura rapida.',
          icon: Icons.bar_chart_rounded,
        ),
        NeoOnboardingStep(
          title: 'Personalize tudo',
          description: 'Troque tema, paleta e aparencia para adaptar o app ao briefing.',
          icon: Icons.tune_rounded,
        ),
      ],
      onFinish: () {
        Navigator.of(context).pushReplacement(
          MaterialPageRoute(builder: (_) => const ExampleHomePage()),
        );
      },
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    final palette = NeoPalette.of(context);

    return NeoPageShell(
      background: NeoOrbBackground(specs: buildAuthOrbs(palette)),
      alignment: Alignment.center,
      child: NeoPanel(
        color: palette.surface,
        shadowColor: palette.shadowStrong,
        child: Column(
          mainAxisSize: MainAxisSize.min,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            const NeoPill(label: 'NEO MOBILE KIT'),
            const SizedBox(height: 18),
            Text(
              'Onboarding finalizado',
              style: Theme.of(context).textTheme.headlineMedium?.copyWith(
                color: palette.textPrimary,
                fontWeight: FontWeight.w900,
              ),
            ),
            const SizedBox(height: 18),
            NeoButton(
              label: 'Ver novamente',
              icon: Icons.replay_rounded,
              onPressed: () {
                Navigator.of(context).pushReplacement(
                  MaterialPageRoute(
                    builder: (_) => const ExampleOnboardingPage(),
                  ),
                );
              },
            ),
          ],
        ),
      ),
    );
  }
}
0
likes
150
points
235
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A mobile-first neobrutalist Flutter UI kit with theme tokens, widgets, navigation, backgrounds, and motion helpers.

Repository (GitHub)

Topics

#flutter #widget #ui #neobrutalism #mobile

License

MIT (license)

Dependencies

flutter

More

Packages that depend on neo_mobile_kit