Clara

Clara is a Dart & Flutter package providing a collection of helpful extension methods for common tasks.
It includes extensions for String, int, double, DateTime, Widget, and BuildContext to simplify coding and UI work.


Features

  • String extensions: localization, null/empty checks, numeric checks, conversions, formatting, UI helpers, URL launching.
  • Int & Double extensions: numeric conversions, currency/percent formatting, math operations, UI helpers.
  • DateTime extensions: formatting, manipulation, date checks.
  • Widget extensions: padding, margin, decoration, visibility, alignment, interaction, animations, debug helpers.
  • BuildContext extensions: screen sizes, device type checks, theme shortcuts, border radius values.

Getting Started

Add clara to your pubspec.yaml:

dependencies:
  clara: <latest-version>
Import the package:
import 'package:Clara/my_package.dart';
Usage Examples
String Extensions
import 'package:flutter/material.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:url_launcher/url_launcher.dart';

void main() {
  String? name = "john doe";

  print(name?.capitalize());           // "John doe"
  print(name?.titleCase());            // "John Doe"
  print("123".isNumeric);              // true
  print("test@example.com".isEmail);   // true

  name?.launchWebsite();               // Opens website in browser
  name?.launchPhone();                 // Starts phone call
  name?.launchSms(body: "Hello");      // Opens SMS screen
  name?.launchEmail(subject: "Hi");   // Opens email client
}
Widget Extensions
Text("Hello World")
    .paddingNormal()
    .marginLow()
    .cornerRadius(12)
    .backgroundColor(Colors.blue)
    .onTap(() => print("Tapped"))
    .fadeVisible(true, duration: Duration(milliseconds: 300));
Other examples:
Container().shadow(blurRadius: 8, spreadRadius: 2);
Container().withBorder(color: Colors.red, width: 2);
Text("Label").toLabel(fontSize: 18, color: Colors.green);
Text("Rich").toRichText(style: TextStyle(color: Colors.black), children: []);
Int & Double Extensions
int? number = 42;
print(number.toStr());                       // "42"
print(number.toCurrencyString(symbol: "\$")); // "$42"
print(number.toPercentString());             // "4200%"

double? price = 1234.567;
print(price.toCurrencyString(locale: "en_US")); // "$1,234.57"
print(price.toPercentString());                 // "123456.70%"
DateTime Extensions
DateTime now = DateTime.now();

print(now.toFormattedString());   // "2025-11-12 14:00"
print(now.toDateOnlyString());    // "2025-11-12"
print(now.toTimeOnlyString());    // "14:00"
print(now.isToday);               // true
print(now.isWeekend);             // false
print(now.addDays(5));            // DateTime 5 days later
print(now.startOfDay());          // DateTime at 00:00
print(now.endOfDay());            // DateTime at 23:59:59
BuildContext Extensions
BuildContext context;

print(context.screenWidth);           // Screen width
print(context.screenHeight);          // Screen height
print(context.isPhone);               // true/false
print(context.isTablet);              // true/false
print(context.lowRadiusValue);        // 8.0
print(context.normalBorderRadius);    // BorderRadius.circular(16)
print(context.theme.primaryColor);    // Theme primary color