neobrutalist_ui_elements 1.0.5 copy "neobrutalist_ui_elements: ^1.0.5" to clipboard
neobrutalist_ui_elements: ^1.0.5 copied to clipboard

This is a collection of neobrutalist UI elements for Flutter. The elements are designed to be simple, minimalistic, and easy to use.

This is a flutter package that aims to create beautiful, customizable and reusable UI elements that use "Neo Brutalistic" design language. It contains easy to use elements for developing beautiful UI pages.

Features #

  • NeoContainer - Main container element with customizable animations, shapes, and shadow effects
  • NeoInputField - Input field with controller support and customizable styling
  • NeoTextContainer - Text container with Neo Brutalistic shadow
  • NeoCircleIconButton - Circular icon button with press animations
  • NeoSwitch - Toggle switch with customizable colors and animations
  • NeoSegmentedOptions - Segmented control for multiple options
  • NeoDialog - Neobrutalist-style dialog with customizable content and buttons
  • NeoToast - Toast notification component with slide and fade animations
  • NeoWindow - Windows 95-style window component with title bar
  • NeoSlider - Slider with customizable track colors, thumb size, and value indicator
  • NeoLoadingIndicator - Loading indicator with customizable size, color, and animation duration

Usage #

Neobrutalist UI Elements is a comprehensive Flutter package that brings the bold, unapologetic aesthetic of neobrutalism to mobile and web applications. This design philosophy embraces raw, honest design with hard shadows, bold borders, vibrant colors, and geometric shapes that reject the minimalist trends of modern UI design.

NeoContainer(
    offset: 3,
    animate: true,
    padding: const EdgeInsets.all(16),
    bgcolor: const Color(0xFFFFD93D),
    borderRadius: 8,
    onPressed: () {
        _showSnackBar('ContainerNeo pressed!');
        },
        child: const Text(
        'Clickable Neo Container',
        style:
        TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
        ),
),
neocon
const NeoInputField(
                    hintText: 'Password',
                    width: 300,
                    obscureText: true,
                    bgcolor: Color(0xFFB0E0E6),
                    textStyle: TextStyle(color: Colors.black),
                  ),
input_field
NeoTextContainer(
    textWidget: Text(
        'Shadowy Text Container',
        style:
        TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
        ),
    width: 250,
    bgcolor: Color(0xFF3AC1FF),
),
text_container
NeoCircleIconButton(
    padding: const EdgeInsets.all(12),
    icon: const Icon(Icons.favorite,
        size: 40, color: Colors.black),
    backgroundColor: const Color(0xFFFF6B6B),
    offset: 3,
    onPressed: () {
        _showSnackBar("Favorite button pressed!");
        },
),
circleicon
NeoSwitch(
    onChanged: (value, context) {
            setState(() {
                _switchValue = value;
                });
                _showSnackBar('$_switchValue');
            },
    defaultState: _switchValue,
    width: 110,
    height: 50,
    falseColor: Colors.grey,
    trueColor: const Color(0xFFFFA6F6),
    borderRadius: BorderRadius.circular(30),
    optionalShadowOffset: 4,
    animationDuration: const Duration(milliseconds: 180),
),

switch
NeoSegmentedOptions(
    onOptionSelected: (index, context) {
        setState(() {
            _selectedSegment = index;
            });
    },
    width: 100,
    height: 50,
    borderThickness: 2,
    numberOfOptions: 3,
    selectedOption: _selectedSegment,
    activeColor: const Color(0xFFA8A6FF),
    optionWidgets: const [
        Text('Option 1',
            style: TextStyle(fontWeight: FontWeight.bold)),
        Text('Option 2',
            style: TextStyle(fontWeight: FontWeight.bold)),
        Text('Option 3',
            style: TextStyle(fontWeight: FontWeight.bold)),
    ],
),
segmented_options
NeoSlider(
    value: _sliderValue2,
    onChanged: (value) {
        setState(() {
            _sliderValue2 = value;
        });
    },
    min: 0.0,
    max: 100.0,
    trackColor: const Color(0xFFE0E0E0),
    activeTrackColor: const Color(0xFFFF6B6B),
    thumbColor: Colors.white,
    thumbInnerColor: const Color(0xFFFF6B6B),
    height: 20.0,
    thumbSize: 40.0,
    shadowOffset: 3.0,
    showValueIndicator: true,
),
slider
NeoLoadingIndicator(
    size: 64.0,
    color: Color(0xFFFF6B6B),
    duration: Duration(milliseconds: 500),
),
loading_indicator
NeoDialog(
    title: const Text(
        'NEO DIALOG',
        style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
    ),
    content: const Text(
        'This is a neobrutalist dialog example!',
        style: TextStyle(fontSize: 18),
        textAlign: TextAlign.center,
    ),
    backgroundColor: const Color(0xFFFF6B6B),
    buttons: (You can add a row of buttons here!
    ),
)
dialog
void _showToast() {
ToastNeoService.show(
    backgroundColor: Colors.limeAccent,
    hasButton: true,
    buttonMessage: 'View',
    icon: Icons.info,
    height: 70,
    borderRadius: 10,
    borderThickness: 2,
    borderChin: 4,
    shadowColor: Colors.black,
    context,
    'This is a toast!',
    );
  }

toast
NeoWindow95(
    title: 'Neobrutalist Window',
    titleBarColor: const Color(0xFF3AC1FF),
    width: 400,
    onClose: () {
        _showSnackBar('Window closed!');
    },
    child: const Padding(
    padding: EdgeInsets.all(16),
        child: Text(
            'This is a neobrutalist window component!',
            style: TextStyle(fontSize: 16),
        ),
    ),
),

Additional information #

This package is published on pub.dev!

2
likes
160
points
431
downloads

Publisher

verified publisherkeremfive.com

Weekly Downloads

This is a collection of neobrutalist UI elements for Flutter. The elements are designed to be simple, minimalistic, and easy to use.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on neobrutalist_ui_elements