flextrix 0.1.3 copy "flextrix: ^0.1.3" to clipboard
flextrix: ^0.1.3 copied to clipboard

An extension of the layout package, adding adaptive UI helpers and extra responsive utilities.


Flextrix Example App 🚀 #

Pub Version
License: MIT Platform

Flextrix Example App demonstrates how to create adaptive and responsive UIs effortlessly using the Flextrix package. It automatically adjusts UI elements based on screen size, making your app look great on mobile, tablet, and desktop 📱💻.


Features #

Automatic Layout Adaptation – No need for manual screen size checks.
Adaptive Widgets & Styling – Adjusts padding, font sizes, and container sizes dynamically.
Easy Integration – Just wrap your app and start using context.adaptive().
Works on Any Screen Size – Mobile, Tablet, and Desktop support.
Lightweight & Efficient – No extra dependencies, just pure Flutter goodness!


📦 Installation #

Step 1: Add Dependency #

Add Flextrix to your pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter
  flextrix: latest_version  # Replace with the latest version

Run the following command:

flutter pub get

🚀 Getting Started #

Step 2: Import Flextrix #

import 'package:flextrix/flextrix.dart';

Step 3: Wrap Your App with Flextrix #

Modify your main.dart to wrap the app for automatic responsiveness:

void main() {
  runApp(FlextrixExampleApp().addFlextrix()); // Wraps app with responsive layout
}

🎨 Creating a Responsive UI #

Example: Adaptive Padding, Container & Text #

class ResponsiveHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Flextrix Example")),
      body: Center(
        child: Padding(
          padding: EdgeInsets.all(
            context.adaptive(8.0, 32.0, sm: 16.0, md: 24.0), // Adaptive padding
          ),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              // Displays Current Screen Type
              Text(
                "Current Screen: ${_getScreenType(context)}",
                style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
              ),
              SizedBox(height: 20),

              // Adaptive Box
              Container(
                width: context.adaptive(100.0, 300.0, sm: 200.0),
                height: 100,
                color: Colors.blue,
                child: Center(
                  child: Text(
                    "Adaptive Box",
                    style: TextStyle(color: Colors.white),
                  ),
                ),
              ),

              SizedBox(height: 20),

              // Adaptive Font Size
              Text(
                "Adaptive Font Size",
                style: TextStyle(
                  fontSize: context.adaptive(14.0, 24.0, sm: 18.0, md: 20.0),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }

  /// Determines the current screen type
  String _getScreenType(BuildContext context) {
    if (context.isMobile) return "Mobile";
    if (context.isTablet) return "Tablet";
    return "Desktop";
  }
}

🛠 How Adaptive Utilities Work? #

What is context.adaptive()? #

context.adaptive() automatically adjusts UI properties based on screen size.
This allows dynamic UI scaling without manually checking screen widths.

Example Usage:

context.adaptive(
  10.0,  // Mobile (xs)
  40.0,  // Desktop (lg)
  sm: 20.0, // Small tablets (sm)
  md: 30.0  // Large tablets (md)
);

💡 How it Works #

Device Type Value Used
Extra Small (xs) - Mobile 10.0
Small (sm) - Small Tablet 20.0
Medium (md) - Large Tablet 30.0
Large (lg) - Desktop 40.0

🌟 Common Use Cases for context.adaptive() #

1️⃣ Adaptive Padding #

padding: EdgeInsets.all(
  context.adaptive(8.0, 32.0, sm: 16.0, md: 24.0),
),

✔️ Mobile: 8.0
✔️ Tablet: 16.0 or 24.0
✔️ Desktop: 32.0


2️⃣ Adaptive Container Width #

width: context.adaptive(100.0, 300.0, sm: 200.0),

✔️ Mobile: 100.0
✔️ Small Tablet: 200.0
✔️ Desktop: 300.0


3️⃣ Adaptive Font Size #

style: TextStyle(
  fontSize: context.adaptive(14.0, 24.0, sm: 18.0, md: 20.0),
),

✔️ Mobile: 14.0
✔️ Small Tablet: 18.0
✔️ Large Tablet: 20.0
✔️ Desktop: 24.0


4️⃣ Detecting Screen Type #

if (context.isMobile) {
  print("This is a mobile device");
} else if (context.isTablet) {
  print("This is a tablet");
} else {
  print("This is a desktop");
}

✔️ Helps in adjusting layouts dynamically.


🔗 More Resources #

📖 Flutter Documentation: flutter.dev
📦 Flextrix on Pub.dev: pub.dev/packages/flextrix


👤 Author #

Chinmay NagarFlutter Developer & Tech Enthusiast

🔗 Portfolio: chinmaynagar-dev.web.app
💼 LinkedIn: chinmay-nagar-55786424b
📧 Email: nagar.chinmay.7@gmail.com


Now your Flutter app is fully responsive using Flextrix! 🚀
Drop a ⭐ if you like this package! ❤️


0
likes
150
points
135
downloads

Publisher

verified publisherchipnexa.in

Weekly Downloads

An extension of the layout package, adding adaptive UI helpers and extra responsive utilities.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on flextrix