Tc

pub package License

A sleek, premium, and highly-customizable Flutter UI design system inspired by the modern MUI (Material UI) and Minimals design language.

Tc provides a complete set of visually stunning, flexible, and robust components designed to speed up development while offering custom theme structures (typography, shadow depths, and curated HSL palettes).


🚀 Key Features

  • Beautiful Foundations: Comprehensive brand colors (Primary, Secondary, Success, Warning, Info, Error, and Grey shades), modern typography scale (using Google Sans), and smooth elevation shadows.
  • Segmented & Contained Controls: Premium iOS/macOS styled contained tabs tray, capsule pill tabs, and classic line indicators with zero horizontal layout overflows.
  • Google-Style Progress Loaders: Indeterminate progress bars that cycle smoothly through a list of custom brand colors.
  • Robust Feedback & Modals: Overlay-based tooltip bubble notes with 4 direction support, rating star bars (half stars & tap gestures), timeline step guides, drag sliders, sheet drawers, dialogs, and snackbars.
  • Responsive & Adaptive: Zero hardcoded overflows, flexible layout constraints, and cross-platform layout compatibility.

🤖 AI & Agent Ready

Tc is built to be easily understood and integrated by AI coding assistants (such as Copilot, Cursor, Gemini, and GPT). We provide a single-file, structured API specification that you can feed directly to your AI agents:

  • TECTA_SPECS.md: A complete, structured cheatsheet containing all design tokens, signatures, constructor parameters, and code snippets for our 23+ components.

How to use with AI:

When prompting your coding assistant, simply reference @TECTA_SPECS.md in your IDE context window (or copy its content to the system prompt) and say:

"Create a page using Tc components. Refer to TECTA_SPECS.md for accurate widget signatures."


📦 Installed Components

Category Components
Foundation TcColors, TcTypography, TcShadows
Buttons TcButton, TcIconButton, TcFab (Outlined, Soft, Contained)
Inputs TcTextField (Text & Selection), TcCheckbox, TcRadio, TcSwitch, TcUpload (Box & Avatar Upload zones)
Data Display TcCard (with compartment zones & hover lift animations), TcAccordion, TcAvatar, TcAvatarGroup, TcBadge, TcChip (Tag style), TcLabel (Status chips), TcTimeline (Solid & dashed step paths)
Feedback & Modal TcAlert, TcSnackbar (Toasts), TcDialog, TcBottomSheet (Scrollable / Draggable layout)
Overlays & Controls TcTooltip (4-direction overlays), TcRating (half/full stars), TcSlider, TcTabs (Line, Pill, Contained)
Loading & Placeholders TcSkeleton (pulsing shimmers), TcEmptyState (clean placeholder layout screens)

🏁 Getting Started

1. Add dependency

Add tecta_ui to your pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  tecta_ui: ^0.1.0 # Or latest version from pub.dev

Or run this command in your terminal:

flutter pub add tecta_ui

2. Import package

Import the library in your Dart code:

import 'package:tecta_ui/tecta_ui.dart';

💡 Usage Examples

1. Primary Button

TcButton(
  label: 'Get Started',
  variant: TcButtonVariant.contained,
  onPressed: () {
    print('Button Pressed!');
  },
)

2. Contained Segmented Tabs (iOS/macOS Control Style)

TcTabs(
  selectedIndex: _activeIndex,
  variant: TcTabsVariant.contained,
  tabs: const [
    TcTab(label: 'Daily'),
    TcTab(label: 'Weekly'),
    TcTab(label: 'Monthly'),
  ],
  onTabChanged: (index) {
    setState(() => _activeIndex = index);
  },
)

3. Google-Style Multi-Color Progress Spinner

TcCircularProgress(
  size: 40.0,
  strokeWidth: 4.0,
  colors: [
    TcColors.infoMain,
    TcColors.errorMain,
    TcColors.warningMain,
    TcColors.successMain,
  ],
)

4. Interactive Rating Star Bar

TcRating(
  rating: 3.5,
  allowHalfRating: true,
  onRatingChanged: (newRating) {
    print('New rating: $newRating');
  },
)

5. Premium Empty State Screen

TcEmptyState(
  title: 'No Mail Found',
  description: 'Your inbox is clear! Check back later for incoming messages.',
  iconData: Icons.folder_off_outlined,
  action: TcButton(
    label: 'Refresh Inbox',
    onPressed: () => refresh(),
  ),
)

🎨 Theme Customization

Tc UI components support dynamic brand colors. By default, components will look up and inherit colors from Theme.of(context).colorScheme.primary and secondary.

1. Standard ThemeData Customization

If you use standard Flutter themes, components automatically adjust to the active colors:

MaterialApp(
  theme: ThemeData(
    useMaterial3: true,
    colorScheme: ColorScheme.fromSeed(
      seedColor: Colors.deepPurple,
      primary: Colors.deepPurple,
      secondary: Colors.amber,
    ),
  ),
  // ...
);

2. Custom TcTheme Builder

Alternatively, use the custom TcTheme builder from the package to preserve MUI/Minimals styled radius, elevation, and fonts while applying custom colors:

MaterialApp(
  theme: TcTheme.buildTheme(
    brightness: Brightness.light,
    primaryColor: Colors.teal,
    secondaryColor: Colors.pink,
  ),
  darkTheme: TcTheme.buildTheme(
    brightness: Brightness.dark,
    primaryColor: Colors.tealAccent,
    secondaryColor: Colors.pinkAccent,
  ),
  // ...
);

🛠️ Running the Showcase Application

To see all components in action and inspect their design parameters, run the included example app:

cd example
flutter run

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Libraries

tecta_ui
A premium, clean, and highly customizable UI component design system for Flutter, featuring beautiful colors, smooth typography, and refined feedback elements.