termos_ui 0.1.1 copy "termos_ui: ^0.1.1" to clipboard
termos_ui: ^0.1.1 copied to clipboard

Maximalist Flutter UI widgets with dot-grid mesh, starfield particles, CRT scanlines, and themed controls.

termos_ui #

pub package

Maximalist Flutter widgets with a terminal-inspired look: an interactive dot-grid mesh that ripples under your finger, starfield glow, and CRT scanlines — wired into a themeable set of buttons, sliders, nav bars, and inputs.

[termos_ui widget gallery]

⚠️ Not ready for production use — the API is still settling and may change between releases.

Install #

flutter pub add termos_ui

Quick start #

Wrap your app (or any subtree) in a TermosTheme, then use the widgets:

import 'package:flutter/material.dart';
import 'package:termos_ui/termos_ui.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: TermosTheme(
        data: TermosThemeData.dark(),
        child: Scaffold(
          body: Center(
            child: TermosButton(
              label: const Text('Action'),
              onTap: () {},
            ),
          ),
        ),
      ),
    );
  }
}

Prefer Material's theming? Register TermosThemeData as a ThemeExtension instead:

MaterialApp(
  theme: ThemeData(extensions: [TermosThemeData.dark()]),
  home: ...,
)

Widgets resolve the theme via TermosTheme.of(context), which checks the TermosTheme inherited widget first, then the ThemeData extension, then a brightness-based default. Factories: TermosThemeData.dark(), TermosThemeData.light().

Widgets #

Widget What it does
TermosButton Primary CTA with dot-grid mesh and starfield; loading/saved states
TermosBackButton Compact back control with starfield
TermosNavBar Bottom tab bar with animated top-edge glow and PageController sync
TermosTabBar Scrollable top tabs with a swipe-tracking glow
TermosSegmentedSelector Horizontal segments with glow and starfield
TermosSwitch Particle-style ON/OFF toggle
TermosSlider · TermosFloatingSlider · TermosContinuousSlider · TermosDetailedSlider Discrete, floating-label, continuous, and major/minor-tick sliders
TermosTextField Text input with dot-grid, edge glow, and focus starfield
TermosTimePicker Drum-wheel picker with CRT band and scanlines
TermosExpandableSection Tap-to-expand card
TermosLoadingIndicator Small spinner or large comet-orbit animation
TermosCrt CRT wrapper: scanlines, vignette, bezel

Lower-level building blocks are exported too: DotGridWidget/DotGridController/DotGridGroup (the mesh engine), TermosTapTarget (dot-grid tap feedback), and the painters ReactiveStarfieldPainter, GlowTopBorderPainter, ScanlinesPainter, and EdgeGlowPainter.

Every widget's constructor is documented inline — see the source or your IDE's autocomplete for the full parameter list.

[Button] [Nav bar] [Segmented]
Button Nav bar Segmented
[Switch] [Sliders] [Text field]
Switch Sliders Text field
[Time picker] [CRT] [Loader]
Time picker CRT Loader

Theming #

TermosThemeData aggregates design tokens and supports copyWith and lerp (for animated theme transitions):

Token Controls
TermosColors Semantic palette (primary, surface, text levels, status colors)
TermosTextStyles Typography roles
TermosMetrics Radii, heights, paddings, durations
DotGridConfig Dot size, spacing, blob radius
TermosStarfieldConfig Starfield glow positions and intensity
Effect configs Per-widget tuning: TermosNavBarEffects, TermosButtonEffects, TermosCrtEffects, …

Lighter visuals: set heavyEffectsEnabled: false to drop the dot-grid mesh, starfield, and CRT overlays. Widgets fall back to simpler Material-style visuals with the same layout and colors.

Accessibility #

All interactive widgets expose Semantics for screen readers — button roles with labels, toggled state on the switch, selected state on nav/segments, slider roles with current value, and a labelled time picker.

Example #

A full interactive gallery with live theme/color controls lives in example/:

cd example
flutter run

License #

See LICENSE.

0
likes
145
points
6
downloads
screenshot

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Maximalist Flutter UI widgets with dot-grid mesh, starfield particles, CRT scanlines, and themed controls.

Repository (GitHub)
View/report issues

Topics

#ui #widget #theme #animations

License

MIT (license)

Dependencies

flutter

More

Packages that depend on termos_ui