Press ESC to close

Flutter App : Arna Framework – A unique set of widgets for building applications with Flutter

Arna

Arna Framework – A unique set of widgets for building applications with Flutter.

pub.dev


Awesome Flutter Desktop


Main_light
Main_dark

Getting Started

Add Arna as a dependency in your pubspec.yaml

dependencies:
  arna: ^0.1.8

And import it

import 'package:arna/arna.dart';

Usage

Arna App

ArnaApp(
    debugShowCheckedModeBanner: false,
    themeMode: ArnaThemeMode.light,
    home: Home(),
);

Arna Scaffold

ArnaScaffold(
    headerBarLeading: ArnaIconButton(
        icon: Icons.add_outlined,
        onPressed: () {},
    ),
    title: "Title",
    headerBarTrailing: ArnaIconButton(
        icon: Icons.info_outlined,
        onPressed: () {},
    ),
    body: Container(),
);

Arna Side Scaffold

ArnaSideScaffold( headerBarLeading: ArnaIconButton( icon: Icons.add_outlined, onPressed: () {}, ), title: "Title", headerBarTrailing: ArnaIconButton( icon: Icons.info_outlined, onPressed: () {}, ), items: [ NavigationItem( title: "Dummy", icon: Icons.info_outlined, builder: (_) => Container(), ), NavigationItem( title: "Dummy", icon: Icons.info_outlined, builder: (_) => Container(), ), ], );

Arna Master Detail Scaffold

ArnaMasterDetailScaffold( headerBarLeading: ArnaIconButton( icon: Icons.add_outlined, onPressed: () {}, ), title: "Title", headerBarTrailing: ArnaIconButton( icon: Icons.info_outlined, onPressed: () {}, ), emptyBody : Container(), items: [ MasterNavigationItem( title: "Title 1", subtitle: "Subtitle 1", builder: (_) => Container(), ), MasterNavigationItem( title: "Title 2", subtitle: "Subtitle 2", builder: (_) => Container(), ), ], );

Arna Button

ArnaButton(
    label: "Add",
    icon: Icons.add_outlined,
    onPressed: () {},
);

Arna Icon Button

ArnaIconButton(
    icon: Icons.add_outlined,
    onPressed: () {},
    tooltipMessage: "Add",
);

Arna Text Button

ArnaTextButton(
    label: "Add",
    onPressed: () {},
    tooltipMessage: "Add",
);

Arna Linked Buttons

ArnaLinkedButtons(
    buttons: [
        ArnaLinkedButton(
            label: "Add",
            icon: Icons.add_outlined,
            onPressed: () {},
            tooltipMessage: "Add",
        ),
        ArnaLinkedButton(
            icon: Icons.add_outlined,
            onPressed: () {},
            tooltipMessage: "Add",
        ),
        ArnaLinkedButton(
            label: "Add",
            onPressed: () {},
            tooltipMessage: "Add",
        ),
    ],
);

Arna CheckBox

ArnaCheckBox( value: _throwShotAway, onChanged: (bool? newValue) => setState(() => _throwShotAway = newValue!), );

Arna CheckBox List Tile

ArnaCheckBoxListTile( value: _throwShotAway, title: "Title", subtitle: "Subtitle", onChanged: (bool? newValue) => setState(() => _throwShotAway = newValue!), trailingButton: ArnaIconButton( icon: Icons.add_outlined, onPressed: () {}, ), );

Arna Radio

ArnaRadio<SingingCharacter>( value: SingingCharacter.lafayette, groupValue: _character, onChanged: (SingingCharacter newValue) => setState(() => _character = newValue), );

Arna Radio List Tile

ArnaRadioListTile<SingingCharacter>( value: SingingCharacter.lafayette, groupValue: _character, title: "Title", subtitle: "Subtitle", onChanged: (SingingCharacter newValue) => setState(() => _character = newValue), trailingButton: ArnaIconButton( icon: Icons.add_outlined, onPressed: () {}, ), );

Arna Switch

ArnaSwitch( value: _giveVerse, onChanged: (bool newValue) => setState(() => _giveVerse = newValue), );

Arna Switch List Tile

ArnaSwitchListTile( value: _giveVerse, title: "Title", subtitle: "Subtitle", onChanged: (bool newValue) => setState(() => _giveVerse = newValue), trailingButton: ArnaIconButton( icon: Icons.add_outlined, onPressed: () {}, ), );

Arna List

ArnaList(
    title: "Title",
    items: [
        ArnaListTile(
            title: "Title 1",
            subtitle: "Subtitle 1",
            trailing: ArnaBadge(title: "Badge 1"),
            onTap: () {},
        ),
        ArnaListTile(
            title: "Title 2",
            subtitle: "Subtitle 2",
            trailing: ArnaBadge(title: "Badge 2"),
        ),
    ],
);

Arna Expansion Panel

ArnaExpansionPanel(
    title: "Title 1",
    subtitle: "Subtitle 1",
    child: Container(),
);

Arna Card

ArnaCard(
    height: 200,
    width: 200,
    child: Container(),
);

Arna Badge

ArnaBadge(title: "Title");

Arna Dividers

ArnaHorizontalDivider();
ArnaVerticalDivider();

Arna Separators

ArnaHorizontalSeparator();
ArnaVerticalSeparator();

Arna PopupDialog

ArnaIconButton( icon: Icons.info_outlined, onPressed: () => showArnaPopupDialog( context: context, title: "Title", body: Container(), ), );

Arna Alert Dialog

ArnaIconButton( icon: Icons.info_outlined, onPressed: () => showArnaDialog( context: context, barrierDismissible: true, builder: (_) => ArnaAlertDialog( title: "Title", message: "Message", primary: ArnaTextButton( label: "OK", onPressed: Navigator.of(context).pop, ) ), ), );

Arna TextField

ArnaTextField(
  obscureText: true,
);

Arna Slider

ArnaSlider( value: _sliderValue, min: 0, max: 100, onChanged: (double newValue) { setState(() => _sliderValue = newValue); }, );

Arna Tooltip

ArnaTooltip(
    message: _sliderValue,
    child: ArnaIconButton(
        icon: Icons.add_outlined,
        onPressed: () {},
    ),
);

Arna Indicator

ArnaIndicator(value: 0.35);

Arna Search Field

ArnaSearchField(
    showSearch: showSearch,
    controller: controller,
);

TODO

  • Tab
  • Browser Tab
  • Dropdown Button
  • Popup Button
  • Date and Time Pickers
  • Snackbar
  • Status Bar
  • Banner
  • Chip

Special thanks

GitHub

View Github

Footer Example