Neo Mobile Kit

A mobile-first neobrutalist Flutter UI kit built for fast app prototyping.

It includes:

  • Theme tokens and color presets.
  • Core neobrutalist widgets.
  • Mobile app bar and bottom navigation.
  • Orb/moon animated backgrounds.
  • Page shell and layout helpers.
  • Submit and theme reveal transitions.

Install

From pub.dev:

dependencies:
  neo_mobile_kit: ^0.1.2

For local competition practice:

dependencies:
  neo_mobile_kit:
    path: ../packages/neo_mobile_kit

Basic Usage

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: NeoTheme.buildTheme(Brightness.light),
      darkTheme: NeoTheme.buildTheme(Brightness.dark),
      home: const DemoPage(),
    );
  }
}

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

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

    return NeoPageShell(
      background: NeoOrbBackground(specs: buildAuthOrbs(palette)),
      child: NeoPanel(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            const NeoPill(label: 'NEO KIT'),
            const SizedBox(height: 16),
            NeoButton(
              label: 'Comecar',
              icon: Icons.arrow_forward_rounded,
              onPressed: () {},
            ),
          ],
        ),
      ),
    );
  }
}

Offline Preparation

Expressive Onboarding

NeoSplashPage(
  logoText: 'WorldSkills',
  nextPageBuilder: (onboardingContext) => NeoOnboardingPage(
    appName: 'Nome do App',
    steps: const [
      NeoOnboardingStep(
        title: 'Organize dados',
        description: 'Gerencie as informacoes principais do app.',
        icon: Icons.dashboard_rounded,
      ),
      NeoOnboardingStep(
        title: 'Acompanhe indicadores',
        description: 'Veja resumo, status e progresso rapidamente.',
        icon: Icons.bar_chart_rounded,
      ),
      NeoOnboardingStep(
        title: 'Personalize',
        description: 'Troque tema, paleta e aparencia quando quiser.',
        icon: Icons.tune_rounded,
      ),
    ],
    onFinish: () {
      Navigator.of(onboardingContext).pushReplacement(
        MaterialPageRoute(builder: (_) => const WelcomePage()),
      );
    },
  ),
)

Before going offline, run:

flutter pub get
flutter pub get --offline
flutter test

If the offline command works, the package and its dependencies are already in the local Pub cache.

Libraries

core/theme/neo_theme
core/theme/neo_tokens
neo_mobile_kit
shared/animations/neo_animations
shared/animations/neo_entrance_group
shared/animations/neo_entrance_types
shared/animations/neo_fade_slide
shared/animations/neo_motion_tokens
shared/animations/neo_panel_drop
shared/animations/neo_pop
shared/animations/neo_press_motion
shared/animations/neo_scroll_reveal
shared/backgrounds/neo_auth_background
shared/backgrounds/neo_moon_background
shared/backgrounds/neo_orb_background
shared/backgrounds/neo_profile_motion_banner
shared/backgrounds/neo_shell_background
shared/layout/neo_breakpoints
shared/layout/neo_page_shell
shared/layout/neo_section_header
shared/layout/neo_spacing
shared/layout/neo_split_layout
shared/navigation/neo_app_bar
shared/navigation/neo_bottom_nav
shared/navigation/neo_orb_reveal_transition
shared/navigation/neo_side_menu
shared/onboarding/neo_onboarding_page
shared/splash/neo_splash_config
shared/splash/neo_splash_controller
shared/splash/neo_splash_page
shared/splash/widgets/bubble_wave_layer
shared/splash/widgets/floating_shape_layer
shared/splash/widgets/liquid_surface_layer
shared/splash/widgets/logo_reveal_layer
shared/splash/widgets/splash_drop_fill
shared/splash/widgets/splash_scene
shared/widgets/neo_app_settings_sheet
shared/widgets/neo_bottom_sheet_card
shared/widgets/neo_button
shared/widgets/neo_empty_state
shared/widgets/neo_icon_button
shared/widgets/neo_input_field
shared/widgets/neo_orb_submit_button
shared/widgets/neo_panel
shared/widgets/neo_pill
shared/widgets/neo_theme_toggle
shared/widgets/neo_window_panel