Agent skill

flutter-ui-ux

Comprehensive Flutter UI/UX development skill for creating beautiful, responsive, and animated mobile applications. Use when user asks to: (1) Build Flutter UI components or screens (2) Implement animations and transitions (3) Design responsive layouts (4) Create custom widgets and themes (5) Optimize UI performance and accessibility Triggers: "create Flutter UI", "build Flutter screen", "Flutter animations", "responsive Flutter layout", "custom Flutter widgets", "Flutter theme design"

Stars 1
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/ajianaz/skills-collection/tree/main/skills/flutter-ui-ux

SKILL.md

Flutter UI/UX Development

Create beautiful, responsive, and animated Flutter applications with modern design patterns and best practices.

Core Philosophy

"Mobile-first, animation-enhanced, accessible design" - Focus on:

Priority Area Purpose
1 Widget Composition Reusable, maintainable UI components
2 Responsive Design Adaptive layouts for all screen sizes
3 Animations Smooth, purposeful transitions and micro-interactions
4 Custom Themes Consistent, branded visual identity
5 Performance 60fps rendering and optimal resource usage

Development Workflow

Execute phases sequentially. Complete each before proceeding.

Phase 1: Analyze Requirements

  1. Understand app structure - Identify existing widgets, screens, and navigation
  2. Design system review - Check existing themes, colors, and typography
  3. Platform considerations - Note iOS/Android specific requirements
  4. Performance constraints - Identify animation complexity and rendering needs

Output: UI requirements analysis with component breakdown.

Phase 2: Design Widget Architecture

  1. Widget hierarchy planning - Design composition tree
  2. State management strategy - Choose StatefulWidget vs StatelessWidget
  3. Custom widget identification - Plan reusable components
  4. Theme integration - Define color schemes and typography

Output: Widget architecture diagram and component specifications.

Phase 3: Implement Core UI

  1. Create base widgets - Build foundational components
  2. Implement responsive layouts - Use MediaQuery, LayoutBuilder, Flex/Expanded
  3. Add custom themes - ThemeData, ColorScheme, TextThemes
  4. Integrate navigation - Implement routing and transitions

Widget Composition Patterns:

dart
// ✅ DO: Compose small, reusable widgets
class CustomCard extends StatelessWidget {
  final Widget child;
  final EdgeInsets padding;

  const CustomCard({required this.child, this.padding = EdgeInsets.all(16)});

  @override
  Widget build(BuildContext context) {
    return Card(
      elevation: 4,
      child: Padding(padding: padding, child: child),
    );
  }
}

// ✅ DO: Use const constructors where possible
const Icon(Icons.add) // Better than Icon(Icons.add)

Phase 4: Add Animations

  1. Implicit animations - AnimatedContainer, AnimatedOpacity
  2. Explicit animations - AnimationController with Tween
  3. Hero animations - Screen transitions with Hero widgets
  4. Micro-interactions - Button presses, hover effects, loading states

Animation Performance Rules:

dart
// ✅ DO: Use performance-optimized animations
AnimatedBuilder(
  animation: controller,
  builder: (context, child) => Transform.rotate(
    angle: controller.value * 2 * math.pi,
    child: child, // Pass child to avoid rebuilding
  ),
  child: const Icon(Icons.refresh),
)

// ❌ DON'T: Animate expensive operations
// Avoid animating complex layouts or heavy widgets

Phase 5: Optimize and Test

  1. Performance profiling - Use Flutter DevTools
  2. Accessibility testing - Screen readers, contrast ratios
  3. Responsive testing - Multiple screen sizes and orientations
  4. Animation smoothness - 60fps validation

Quick Reference

Responsive Design Patterns

Technique Use Case Implementation
LayoutBuilder Responsive layouts LayoutBuilder(builder: (context, constraints) => ...)
MediaQuery Screen info MediaQuery.of(context).size.width
Flexible/Expanded Flex layouts Flexible(child: ...) or Expanded(child: ...)
AspectRatio Fixed ratios AspectRatio(aspectRatio: 16/9, child: ...)

Animation Types

Type Widget Duration Use Case
Fade AnimatedOpacity 200-300ms Show/hide content
Slide SlideTransition 250-350ms Screen transitions
Scale AnimatedScale 150-250ms Button presses
Rotation RotationTransition 1000-2000ms Loading indicators

Custom Widget Examples

Themed Button:

dart
class ThemedButton extends StatelessWidget {
  final String text;
  final VoidCallback onPressed;

  const ThemedButton({required this.text, required this.onPressed});

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: onPressed,
      style: ElevatedButton.styleFrom(
        backgroundColor: Theme.of(context).colorScheme.primary,
        foregroundColor: Theme.of(context).colorScheme.onPrimary,
        padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
      ),
      child: Text(text),
    );
  }
}

Responsive Card:

dart
class ResponsiveCard extends StatelessWidget {
  final Widget child;

  const ResponsiveCard({required this.child});

  @override
  Widget build(BuildContext context) {
    return LayoutBuilder(
      builder: (context, constraints) {
        if (constraints.maxWidth > 600) {
          return _buildWideLayout(child);
        } else {
          return _buildNarrowLayout(child);
        }
      },
    );
  }

  Widget _buildWideLayout(Widget child) {
    return Card(
      margin: const EdgeInsets.all(16),
      child: Padding(padding: const EdgeInsets.all(24), child: child),
    );
  }

  Widget _buildNarrowLayout(Widget child) {
    return Card(
      margin: const EdgeInsets.all(8),
      child: Padding(padding: const EdgeInsets.all(16), child: child),
    );
  }
}

Resources

  • Widget patterns: See references/widget-patterns.md
  • Animation examples: See references/animation-patterns.md
  • Theme templates: See references/theme-templates.md
  • Performance guide: See references/performance-optimization.md

Technical Stack

  • Core Widgets: StatelessWidget, StatefulWidget, InheritedWidget
  • Layout: Row, Column, Stack, GridView, ListView
  • Animation: AnimationController, Tween, AnimatedWidget
  • Themes: ThemeData, ColorScheme, TextTheme
  • Navigation: Navigator, MaterialPageRoute, Hero

Accessibility (Required)

Always implement:

dart
// Semantic labels for screen readers
Semantics(
  label: 'Add item to cart',
  button: true,
  child: IconButton(icon: Icon(Icons.add_cart), onPressed: () {}),
)

// High contrast support
Theme.of(context).colorScheme.contrast() == Brightness.dark

// Font scaling
MediaQuery.of(context).accessibleNavigation

Performance Guidelines

  • Use const widgets where possible
  • Prefer ListView.builder for long lists
  • Avoid unnecessary rebuilds with const keys
  • Use RepaintBoundary for complex animations
  • Profile with Flutter DevTools regularly

This Flutter UI/UX skill transforms mobile app development into a systematic process that ensures beautiful, responsive, and performant applications with exceptional user experiences.

Expand your agent's capabilities with these related and highly-rated skills.

ajianaz/skills-collection

task-planner

Generate structured task lists from specs or requirements. IMPORTANT: After completing ANY spec via ExitSpecMode, ALWAYS ask the user: "Would you like me to generate a task list for this spec?" Use when user confirms or explicitly requests task generation from a plan/spec/PRD.

1 0
Explore
ajianaz/skills-collection

security-auth

Comprehensive security and authentication workflow that orchestrates security architecture, identity management, access control, and compliance implementation. Handles everything from authentication system design and authorization frameworks to security auditing and threat protection.

1 0
Explore
ajianaz/skills-collection

shadcn-svelte-management

Manage UI components using MCP tools with primary focus on Svelte ecosystem. Specialized in Svelte component libraries including shadcn-svelte, Skeleton UI, and Melt UI. Use when user needs to: (1) Add new Svelte UI components to a project (2) Build complex UI features requiring multiple components (3) Research component implementations and examples (4) Get component installation commands (5) Choose appropriate Svelte component library Triggers: "add components", "UI components", "build UI", "install component", "create form", "create dialog", "svelte components", "shadcn-svelte", "skeleton ui"

1 0
Explore
ajianaz/skills-collection

svelte-ui-animator

Analyze and implement purposeful UI animations for Svelte/SvelteKit + Tailwind projects. Specialized in Svelte transitions, actions, and animation patterns. Use when user asks to add animations, enhance UI motion, animate pages/components, or improve visual feedback. Triggers on "add animations", "animate UI", "motion design", "hover effects", "scroll animations", "page transitions", "micro-interactions".

1 0
Explore
ajianaz/skills-collection

mobile-devops

Comprehensive mobile DevOps workflow that orchestrates mobile application development, CI/CD for mobile, app store deployment, and mobile device testing. Handles everything from mobile app build automation and testing to app store submission, monitoring, and mobile-specific DevOps practices.

1 0
Explore
ajianaz/skills-collection

svelte-design

Create distinctive, production-grade frontend interfaces with high design quality. Specialized in Svelte/SvelteKit applications with full-stack capabilities. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.

1 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results