flartdart 2.0.0
flartdart: ^2.0.0 copied to clipboard
A comprehensive Flutter-inspired UI framework for Dart Web applications with 100+ widgets, animations, forms, and media support.
Changelog 📝 #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.0.0 - 2026-08-23 #
🚀 Major Architectural Shift: Virtual DOM Engine #
- Flart Virtual DOM (VDOM): Completely overhauled the underlying rendering architecture. The framework now builds an intermediate Virtual DOM (
FlartNode) instead of concatenating raw HTML strings, enabling significantly higher performance, true state persistence, and fine-grained DOM patching. - Progressive Migration Bridge: Introduced a robust bridging system (
FlartRawHtmlNodeandWidget.renderfallback) that allows seamlessly mixing newly-migrated VDOM widgets with older string-based widgets. All core layout and structure widgets have been migrated to the newbuildNode(context)architecture. - SEO & Performance Driven Animations: Rebuilt the animation engine (
AnimatedWidget,AnimatedBuilder,AnimationController,Ticker) to synchronize directly with the new VDOM architecture. Animations now efficiently patch inline styles without unnecessarily thrashing the DOM or losing input focus. - DOM Reconciler: Replaced the naive
innerHTMLpatching inStatefulWidgetwith a granularVDOMReconcilerthat efficiently diffs and patches node attributes, styles, events, and text content independently, keeping UI state completely intact across updates.
1.6.0 - 2026-05-05 #
🏗️ Architecture & Internals #
- Unified Event System: Rewrote
FDGestureDetectorto useFlartCallbackManagerexclusively, eliminating the competingFuture.delayed+getElementByIdevent architecture. The entire framework now uses a single, consistent event bridge pattern. - Smart DOM Reconciler Activated:
SmartReconcileris now wired intoStatefulWidget._performScopedUpdate(). Instead of rawinnerHTMLreplacement, scoped updates now patch the DOM tree recursively — preserving focus, scroll positions, and input state automatically. - Stable State Keys:
StatefulWidgetnow uses a monotonic positional counter instead ofhashCodefor state keys when no explicitKeyis provided. This prevents silent state loss across re-renders. - Consolidated on
package:web: Migratedrun_app.dart,stateful_widget.dart,gesture_detector.dart,callback_manager.dart,animation_controller.dart, andreconciler.dartfrom the deprecateddart:html/dart:jsAPIs topackage:web+dart:js_interop. - Fixed Style Tag Accumulation:
FDAnimatenow injects all@keyframesinto a single shared<style>element instead of creating a new<style>tag per animated widget. Also uses a monotonic counter for IDs to prevent microsecond collisions.
🚀 CLI Improvements #
- Project Templates:
flartdart createnow supports--templateflag with three options:default,counter, androuting. - Auto Dependency Resolution:
flartdart createautomatically runsdart pub getafter scaffolding.flartdart runauto-runspub geton first run if.dart_tooldoesn't exist. - Project Name Validation: CLI now validates that project names are valid Dart package names before creating.
- Richer Doctor Output:
flartdart doctornow checks webdev availability, dependency resolution state, and Dart SDK version compatibility. - Beautiful Help Output: Redesigned
--helpwith a quick-start guide, formatted command reference, and useful links.
🛠️ Improvements & Fixes #
FDGestureDetectornow has a properconstconstructor.- All widget ID generation uses monotonic counters instead of
DateTime.now().microsecondsSinceEpochto prevent collisions. SmartReconcilernow usesnodeNamechecks instead ofistype checks forpackage:webextension type compatibility.
1.5.1 - 2026-03-09 #
🛠️ Improvements & Fixes #
- CLI Development Server: Fixed the
flartdart runcommand to successfully bindwebdev serveinside Windows environments by running in shell mode. Starter projects are now generated with thewebdevdependency automatically. - Type Safety: Upgraded the entire UI framework to Dart 3 strict typing (
strict-casts,strict-inference,strict-raw-types), refactoring core classes likeFDFormFieldStateandFDStreamBuilderfor enhanced type stability. - Quality Gates: Adopted rigorous formatting (
dart format) and static analysis rules to enforce an enterprise-level standard moving forward.
1.5.0 - 2026-03-06 #
🚀 Major CLI & Tooling Upgrades #
- Integrated CLI: A powerful
flartdarttool for project management.flartdart run: Serve application with Hot Reload.flartdart build: Optimized production bundling.flartdart test: Integrated test runner.flartdart clean: Efficiently wipe build artifacts and caches.flartdart doctor: Detailed environment diagnostics.flartdart fix: Automatic application of code fixes.
- Responsive Framework: Introduced
ScreenUtiland numeric extensions (.w,.h,.sp,.sw,.sh).- Native support for responsive scaling across desktop (1440x900 default) and mobile.
- High-performance scaling for fonts and layouts.
🌟 Framework Core Upgrades #
- Reactive State Management: Introduced a robust
StatefulWidgetandStatearchitecture that perfectly scopes DOM repaints to individual component wrappers. Say goodbye to full-page re-renders! - Pure CSS Animations: Overhauled
FDAnimateto dynamically inject highly performant@keyframesanimations instead of relying on inline JSrequestAnimationFrame. Wait-for-mount delays and multi-step animations now work flawlessly. - Form Controls & Inputs: Added the comprehensive
FDEditableTextand refactoredFDTextField. These now natively bind toTextEditingControllerwhich extends the newly introduced pure-DartChangeNotifier. Inputs maintain their focus and cursor position smoothly across renders.
🌟 New UI Components #
- Advanced Layout: Added
FDSliverAppBarandFDDataTablefor creating complex, scrollable structures and dynamic admin dashboards natively in Dart Web. - Glassmorphism & Theming: Expanded the
flartdarttheming engine and styling API to rigorously support deep web layouts.FDGestureDetectornow cleanly formats standard Web button UX out of the box. - Utility Widgets: Introduced
FDRawHTMLfor specialized DOM injection andFDSpacer/FDExpandedwhich now correctly utilize layout constraints. - Real-Time Context: Added a fully usable
FDWebSocketimplementation natively binding WS protocols into widget trees.
🛠️ Improvements & Fixes #
FDViewModelBuilderno longer forces page-level rebuilds.FDGestureDetectorproperly wraps bounds and avoids destroying CSS border/border-radius geometry.- The default flart starter template has been optimized into an ultra-clean, standalone
main.dartdemonstrating the core reactivity features. - Fixed CLI boilerplate generator to use POSIX-compliant paths and include
testdependencies by default.
1.2.0 - 2026-01-27 #
🌟 New Features #
- Flartdart CLI: Introduced a new command-line tool
flartdartfor scaffolding new projects.- Usage:
flartdart create <project_name> - Supports local path linking for development with
--local-path.
- Usage:
- Documentation Overhaul: Completely rewritten
README.md,WIDGET_GUIDE.md,CONTRIBUTING.md, andPUBLISHING.mdfor better clarity and accuracy.
🛠️ Improvements #
- Project Structure: Improved naming consistency for exported widgets.
- Scaffolding Template: The default template now includes a full structure with
web/main.dart,pubspec.yaml, andanalysis_options.yaml.
1.1.0 - 2026-01-08 #
1.0.0 - 2026-01-02 #
🎉 Initial Release #
- Core Framework: Base
Widget,BuildContext,StatelessWidget, andStatefulWidgetclasses. - Comprehensive Widget Library: 100+ widgets across 10 categories.
- Zero Dependencies: Pure Dart implementation for the web.
- Animations: Transition and fade effects.
- Forms: Built-in validation and input management.
- Media: Native support for Video, Audio, YouTube, and Maps.