almohad_design_system 0.2.4 copy "almohad_design_system: ^0.2.4" to clipboard
almohad_design_system: ^0.2.4 copied to clipboard

A personalized design system for Flutter applications, providing reusable UI components like buttons, cards, chat bubbles, and more.

Flutter Design System #

This Design System is a collection of reusable UI components for Flutter applications, including buttons, cards, chat bubbles, and more.

Features #

  • Reusable Components: Pre-built widgets for buttons, cards, chat bubbles, and more.
  • Customizable: Easily modify styles and layouts to match your design needs.
  • Lightweight: Designed for efficiency with minimal dependencies.

Installation #

Add the following to your pubspec.yaml:

dependencies:
  flutter_design_system: latest_version

🎨 UI Components #

πŸ”˜ Buttons #

  DesignSystem.button(
  text: "Primary Button",
  onPressed: () {
    debugPrint("Primary Button Clicked");
  },
  type: ButtonType.primary,
  textColor: Colors.white,
  animationType: ButtonAnimationType.slide,
),

DesignSystem.button(
  text: "Secondary Button",
  onPressed: () {
    debugPrint("Secondary Button Clicked");
  },
  type: ButtonType.secondary,
  textColor: Colors.black,
  borderColor: Colors.black,
),

DesignSystem.button(
  text: "Icon Start",
  onPressed: () {
    debugPrint("Button with Icon Clicked");
  },
  type: ButtonType.primary,
  textColor: Colors.white,
  buttonColor: Colors.green,
  icon: const Icon(Icons.thumb_up, color: Colors.white),
  iconAffinity: IconAffinity.start,
),

DesignSystem.button(
  text: "Icon End",
  onPressed: () {
    debugPrint("Button with Icon End Clicked");
  },
  type: ButtonType.primary,
  textColor: Colors.white,
  buttonColor: Colors.orange,
  icon: const Icon(Icons.arrow_forward, color: Colors.white),
  iconAffinity: IconAffinity.end,
),

DesignSystem.button(
  text: "Square Button",
  onPressed: () {
    debugPrint("Square Button Clicked");
  },
  type: ButtonType.primary,
  buttonColor: Colors.red,
  textColor: Colors.white,
  radius: 0,
),

DesignSystem.button(
  text: "Small Button",
  onPressed: () {
    debugPrint("Small Button Clicked");
  },
  type: ButtonType.primary,
  textColor: Colors.white,
  height: 35,
  width: 120,
  fontSize: 12,
),

DesignSystem.button(
  text: "Large Button",
  onPressed: () {
    debugPrint("Large Button Clicked");
  },
  type: ButtonType.primary,
  textColor: Colors.white,
  height: 60,
  width: 250,
  fontSize: 20,
  fontWeight: FontWeight.bold,
),

DesignSystem.button(
  text: "Custom Colored",
  onPressed: () {
    debugPrint("Custom Colored Button Clicked");
  },
  type: ButtonType.primary,
  buttonColor: Colors.purple,
  textColor: Colors.white,
  borderColor: Colors.yellow,
),

DesignSystem.button(
  text: "Rounded Button",
  onPressed: () {
    debugPrint("Rounded Button Clicked");
  },
  type: ButtonType.primary,
  textColor: Colors.white,
  radius: 50,
),

πŸ”˜ Chats #

Bubble

DesignSystem.chatBubble(
  message: ChatMessage(
    text: "Hello, how are you?",
    time: DateTime.now(),
  ),
  isSender: true,
);

πŸ”˜ Audio Player

DesignSystem.audioPlayer(
  isSender: false,
  audioUrl:
      'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3',
  audioTitle: 'The SoundHelix Song',
  showUserAvatar: true,
  userAvatar: "i.pravatar.cc",
  backgroundColor: Colors.blue,
  doneColor: Colors.green,
  time: DateTime.now(),
  status: ChatStatus.read,
);

πŸ”˜ TextFormFields #

DesignSystem.textField(
  label: "Username",
  hintText: "Enter your username",
);

πŸ”˜ Containers #

DesignSystem.container(
  color: Colors.blueAccent,
  borderRadius: 10,
  padding: const EdgeInsets.all(16),
  child: Text("Hello Container!"),
);

πŸ”˜ Images #

Parallax Image View

DesignSystem.parallaxImage(
  imageUrl: "https://www.example.com/image.jpg",
  height: 200,
  parallaxFactor: 0.3,
);

Icon Image

DesignSystem.iconImage(
  assetPath: "https://www.example.com/image.jpg",
  size: 34,
  color: Colors.transparent
  isSvg: true,
);

πŸ”˜ LiveTime #

DesignSystem.liveTime(
  child: Text("Live Date & Time"),
);

πŸ”˜ Glassmorphism #

DesignSystem.glass(
  child: Text("Glass Effect"),
);

πŸ”˜ Neumorphism #

DesignSystem.neu(
  child: Icon(Icons.star, size: 40),
);

πŸ”˜ Expansions #

DesignSystem.expandedContent(
  expandedChildren: [
    Text("Expanded Content 1"),
    Text("Expanded Content 2"),
  ],
  collapsedContent: Text("Drag up to Expand"),
);

βœ… What's Improved? #

  • Structured Markdown format πŸ“‘.
  • Code blocks for each widget πŸ—οΈ.
  • Clear section headers for better readability 🎯.

Let me know if you need further refinements! πŸš€

πŸ”™ Handling Android Back Navigation (Android 13+) #

Starting from Android 13 (API 33), Android requires apps to register OnBackInvokedCallback for back gesture support.

To enable this in your Flutter app, make sure you are using Flutter 3.7+ (or later).

βœ… Solution #

Add this inside your AndroidManifest.xml:

<manifest>
    <application
        android:enableOnBackInvokedCallback="true"
        ... >
    </application>
</manifest>
1
likes
130
points
118
downloads

Publisher

unverified uploader

Weekly Downloads

A personalized design system for Flutter applications, providing reusable UI components like buttons, cards, chat bubbles, and more.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

another_flushbar, audioplayers, cached_network_image, flutter, flutter_animate, flutter_gutter, flutter_riverpod, flutter_svg, iconsax, intl, lottie, map_launcher, url_launcher, wolt_modal_sheet

More

Packages that depend on almohad_design_system