Skip to content
CAI
Software that uses CAICheck a score

ionicfirebaseapp/getwidget

63.1

Adequate · 23 September 2026

13.8k

lines of production code

Dart

primary language

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

GetWidget is a comprehensive Flutter UI component library that provides a wide array of pre-built, customizable widgets for building user interfaces. The system offers a rich set of interactive elements including forms, buttons, cards, and navigation controls, alongside utility components for animations, loading states, and typography. It supports cross-platform development with native configurations for Android, iOS, macOS, Windows, and Linux, ensuring consistent behavior across devices. The library is designed to accelerate frontend development by offering a cohesive set of styled, accessible, and themeable UI primitives.

How it got here

2019 — comprehensive UI component library expansion

20 changes.

This period focused on significantly expanding the GetWidget library by introducing a wide array of new UI components, including buttons, cards, tabs, toggles, and toast notifications. The work also established robust platform support for the example application across Android, iOS, and Linux, while updating dependencies to ensure compatibility with modern Flutter versions.

2020 — UI component expansion

26 changes.

This period focused on significantly expanding the library's UI component library, introducing a wide array of new widgets such as drawers, carousels, and bottom sheets. The work also included adding form-related components and enhancing existing elements with customization options and validation support. Comprehensive test coverage was added to ensure the reliability of these new features.

2021–2022 — Form and UI component expansion

5 changes.

This period focused on expanding the library's component library with new form management tools and input widgets, alongside adding macOS platform support to the example application. The work introduced a comprehensive form system with validation and state management, as well as various specialized form field widgets.

Features

Add GFAlert widget with customizable title, subtitle, content, and action buttons

A new GFAlert widget is introduced, allowing users to display a modal-like alert with a title, subtitle, and optional content widget. The component supports customizable text styles, alignments, background colors, and border radius. It includes configurable ok and cancel buttons with custom text and styles, along with onTap callbacks for both buttons, enabling interactive user responses to the alert.

lib/components/alert · high confidence

Add GFAnimation component for widget animations

Introduced the new GFAnimation widget in the animation component library, enabling developers to apply various animation effects to child widgets. The component supports multiple animation types including rotate, scale, slide, and container size transitions, with configurable properties for duration, alignment, colors, and text styling.

lib/components/animation · high confidence

Add GFBottomSheet component with expandable content and drag interactions

Introduced the GFBottomSheet widget in lib/components/bottom\_sheet/gf\_bottom\_sheet.dart, providing a customizable bottom sheet with support for sticky headers and footers, elevation, and animation duration. The component enables vertical drag interactions to expand or collapse the content body, with an optional expandable mode that allows the content to grow beyond a minimum height. A GFBottomSheetController is required to programmatically show, hide, or adjust the sheet's height.

_lib/components/bottom\sheet · high confidence

Add GFCard component with image overlay and gradient support

Introduced the new GFCard widget, a material design card component that supports background colors, elevation, and rounded corners. The component now allows for an optional image, an overlay image with customizable fit and color filters, and gradient backgrounds. This adds a new UI element for displaying related information such as albums, locations, or contact details.

lib/components/card · high confidence

Add GFCheckboxListTile component

A new GFCheckboxListTile widget has been introduced, providing a tile-based interface for checkboxes with customizable colors, icons, and positions. The component wraps a GFCheckbox within a GFListTile, enabling users to select options in a list format with support for active/inactive states, custom icons, and semantic merging.

_lib/components/checkbox\_list\tile · high confidence

Add GFDrawer and GFDrawerHeader components

Introduced new GFDrawer and GFDrawerHeader components for the mobile navigation drawer. The GFDrawer supports background customization via color, gradient, or image, while the GFDrawerHeader provides a user profile header with support for a close button, multiple account pictures, and center alignment.

lib/components/drawer · high confidence

Add GFDropdown and GFMultiSelect components

Introduced new GFDropdown and GFMultiSelect widgets in the components library. The single-select GFDropdown provides a styled dropdown button with configurable borders, colors, and validation support. The multi-select GFMultiSelect component allows users to select multiple items from a list, featuring customizable checkbox styles, initial selection states, and submit/cancel actions.

lib/components/dropdown · high confidence

Add GFFloatingWidget for overlaying content with optional background blur

A new GFFloatingWidget component has been introduced, allowing developers to float a child widget over a body content area. The widget supports configurable horizontal and vertical positioning, and includes an optional background blur effect controlled by the showBlurness and blurnessColor properties, enabling UI patterns like toast messages or alerts over a blurred backdrop.

_lib/components/floating\widget · high confidence

Add GFLoader component with multiple animation styles

Introduced the GFLoader widget in lib/components/loader, providing animated loading indicators for Android, iOS, circle, square, and custom types. Users can customize loader colors, sizes, durations, and icons, with support for both standard and custom child widgets.

lib/components/loader · high confidence

Add GFProgressBar component with drag and animation support

Introduced the GFProgressBar widget, supporting both linear and circular progress displays. The component features configurable animations, gradient support, and a new drag interaction for linear progress bars, allowing users to update progress via touch or mouse gestures.

_lib/components/progress\bar · high confidence

Add GFRadio component with validation support

Introduced the GFRadio widget in lib/components/radio/gf\_radio.dart, providing a customizable radio button selection indicator. The component supports multiple visual types (basic, square, circular, custom), configurable colors, sizes, and icons. It integrates with Flutter's FormField to support form validation via an optional validator callback, allowing users to enforce input rules on radio selection.

lib/components/radio · high confidence

Add GFRadioListTile component

A new GFRadioListTile widget has been introduced in the UI component library, wrapping a GFRadio within a GFListTile. This component allows users to select a single option from a group of radio buttons, with support for customizing colors, icons, and sizes, and integrates with the existing GFListTile for layout and interaction handling.

_lib/components/radio\_list\tile · high confidence

Add GFRating component for interactive star ratings

A new GFRating widget is introduced, allowing users to select a rating via tap or horizontal drag. The component supports customizable icons for filled, half-filled, and empty states, allows half-star ratings, and can optionally display a TextFormField for manual numeric input.

lib/components/rating · high confidence

Add GFSearchBar component with async query support

A new GFSearchBar widget is introduced, allowing users to search and filter a list of items using either synchronous or asynchronous query builders. The component supports customization of text and progress indicator colors, input decoration, padding, and margin, and provides an overlay list for search results with an optional callback when an item is selected.

_lib/components/search\bar · high confidence

Add GFShimmerDirection enum for shimmer animation

Introduced the GFShimmerDirection enum to control the direction of the shimmer effect. Users can now specify leftToRight, rightToLeft, topToBottom, or bottomToTop to define the animation flow of the shimmer effect on child widgets.

lib/direction · high confidence

Add GFStickyHeader component for sticky headers in scrollable lists

Introduces the GFStickyHeader widget and its associated builder and render objects, enabling developers to create headers that remain fixed while scrolling through content in ListView, GridView, or CustomScrollView. The component supports vertical and horizontal scrolling directions, allows the header to overlap content, and provides a callback to track the header's stuck offset value.

_lib/components/sticky\header · high confidence

Add GFToggle component with custom text support

A new GFToggle component is introduced, allowing users to switch between two states with customizable enabled and disabled text labels. The component supports multiple visual styles (Android, iOS, square, and custom) and includes animation effects. Users can now provide custom text for the toggle states, with a maximum character limit of four characters enforced for both enabledText and disabledText to prevent text cropping issues.

lib/components/toggle · high confidence

Add customizable border component with support for multiple shapes and dashed lines

A new \GFBorder\ widget has been introduced in the \lib/components/border\ directory, allowing users to apply borders around child widgets. The component supports four border types (circle, rectangle, rounded rectangle, and oval) and allows customization of color, stroke width, padding, and radius. It also supports dashed line patterns via a \dashedLine\ parameter, enabling users to create various visual styles for their UI components.

lib/components/border · high confidence

Add example app entry point with external links

The example app now includes a main entry point (main.dart) that serves as a landing page, providing direct links to the GetWidget GitHub repositories and the Play Store app, along with descriptive text about the library's usage and capabilities.

example/lib · high confidence

Add image overlay component with shape and styling options

A new GFImageOverlay widget has been introduced in the image component library, allowing users to display images with a shaded overlay. This component supports customization of dimensions, background color, padding, margins, child widgets, alignment, border radius, and box shape (rectangle or circle), enabling flexible image presentation with visual effects like color filters and borders.

lib/components/image · high confidence

Add macOS platform support to the example app

The example application now includes a complete macOS implementation, enabling the app to run on macOS. This change adds the necessary Xcode project configuration, Swift source files (including the app delegate, main window, and plugin registrant), and resource files (such as the app icon and menu bar layout) required to build and run the Flutter application on the macOS platform.

example/macos, example/windows · high confidence

Added GFCarousel and GFItemsCarousel components

Introduced two new carousel components for Flutter: GFCarousel, which provides a slideshow with animation, auto-play, and pagination controls, and GFItemsCarousel, which displays multiple items in a scrollable row with drag and slide event callbacks.

lib/components/carousel · high confidence

Added GFSize constants for widget sizing

A new \GFSize\ class has been introduced in \lib/size/gf\_size.dart\, providing static constants for widget dimensions: \SMALL\ (30), \MEDIUM\ (35), and \LARGE\ (40). This allows developers to apply consistent sizing across components using these predefined values.

lib/size · high confidence

Added GfForm widget for managing form state and validation

Introduced a new GfForm widget that manages form state, validation, and data collection. The change adds GfFormHandlerWidget for state management, GfForm as the main container handling submission and validation logic, and GfFormProvider to coordinate form field data retrieval. Users can now create forms with built-in validation and easy access to submitted field values.

lib/components/form · high confidence

Added Linux platform support for the example app

The example application now includes a complete Linux build configuration, enabling the app to run on Linux desktops. This adds the necessary CMake build files, GTK application entry points, and plugin registration code to support the Flutter Linux embedding. Users can now build and run the example on Linux, matching the existing Android and iOS support.

example/android · high confidence

GetWidget library exports expanded with new form, text field, and bottom sheet components

The main library entry point (lib/getwidget.dart) has been updated to export a broader set of components, including form-related widgets (GfForm, GfFormField, GfFormDropdown, GfFormRadioButton, GfQuestionWidget, GfMultiChoiceChip, GfMultiCheckbox, GfDatePicker, GfTimePicker), text field variants (GfTextField, GfTextFieldPill, GfTextFieldRounded, GfTextFieldSquared), and UI elements like GfBottomSheet, GfIntroScreen, and GfStickyHeader. This change makes these specific widgets directly accessible via the primary library import, simplifying usage for developers.

lib · high confidence

Introduction of GFAvatar component

A new GFAvatar widget has been added to the library, providing a customizable avatar component that supports multiple shapes (circle, square, standard), background images, and size variations via GFSize. This component allows users to display user profile pictures or initials with flexible styling options including border radius and background color adjustments based on theme brightness.

lib/components/avatar · high confidence

New Accordion component for collapsible content

Added a new GFAccordion widget that allows users to show and hide content sections. The component supports custom titles, content, icons, and styling for both collapsed and expanded states, with an optional callback triggered on toggle.

lib/components/accordion · high confidence

A new GFAppBar widget has been introduced, providing a material design app bar that supports standard toolbar elements (leading, title, actions) along with a built-in search bar feature. Users can now configure search functionality directly within the app bar, including customizing hint text, styles, colors, and handling input events via callbacks like onTap, onChanged, and onSubmitted.

lib/components/appbar · high confidence

New GFCheckbox component with validation support

A new GFCheckbox widget has been introduced, offering customizable appearance options including size, background/border colors, and four style types (basic, square, circular, and custom) with corresponding icons. The component now supports form validation through an optional validator callback, allowing developers to enforce input rules on the checkbox state.

lib/components/checkbox · high confidence

New GFIntroScreen component for app onboarding

Introduced the GFIntroScreen component, a customizable slider-based introduction screen for apps. It supports multiple slides, a bottom navigation bar with back/forward/done/skip buttons, and pagination dots. Users can customize colors, text, button styles, and visibility of navigation elements to guide new users through an app's features.

_lib/components/intro\screen · high confidence

New GFListTile component with enhanced customization

A new GFListTile widget has been introduced to the library, providing a customizable list tile component. It supports standard properties like title, subtitle, avatar, and icon, alongside new parameters for two action buttons (firstButtonTitle, secondButtonTitle) and their respective tap callbacks. The component allows for extensive styling via color, padding, margin, radius, and shadow properties, enabling users to create varied list item designs with interactive states and accessibility features.

_lib/components/list\tile · high confidence

New GFShimmer component for loading placeholders

A new GFShimmer widget is introduced to display a shimmer loading effect over child widgets. It supports configurable animation duration, direction (left-to-right), color customization (main and secondary colors), gradient-based or solid-color modes, and a repeat count for the animation. This provides a ready-to-use placeholder UI component for loading states.

lib/components/shimmer · high confidence

New GFTextField components with customizable border styles

Added three new text field widget variants—GFTextField, GFTextFieldPill, and GFTextFieldSquared—each offering distinct border styling options (standard, pill-shaped, and squared) while supporting common input configurations like validation, focus states, and content styling.

_lib/components/text\field · high confidence

New GFToast component with position and animation support

Introduced the GFToast component, enabling developers to display temporary notification messages on the screen. The implementation supports configurable toast duration, background color, text styling, border radius, and a trailing widget. It also allows positioning the toast at various screen locations (top, bottom, center, left, right) and includes a fade-in/fade-out animation for a smoother user experience.

lib/components/toast · high confidence

New GFTypography component with customizable typography styles and dividers

A new GFTypography component has been added to the library, providing six predefined title styles (typo1 through typo6) with corresponding font sizes. The component supports optional icons, text or child widgets, and a customizable divider with configurable width, height, color, and border radius. Users can also apply a background image with a color filter to the typography header.

lib/components/typography · high confidence

New badge components: GFBadge, GFButtonBadge, and GFIconBadge

The library introduces three new Flutter components for displaying badges: GFBadge for standard counter badges, GFButtonBadge for interactive button-style badges, and GFIconBadge for placing badges on icons. These components allow users to add visual indicators to their UI, with support for various shapes, colors, and sizes.

lib/components/badge · high confidence

New button components: GFButton, GFButtonBar, GFIconButton, and GFSocialButton

The library introduces a new set of button components in the \lib/components/button\ directory. This includes \GFButton\ for standard, outline, and transparent button styles; \GFButtonBar\ for arranging buttons in a wrap layout; \GFIconButton\ for icon-based actions; and \GFSocialButton\ for social media actions (WhatsApp, Facebook, Twitter, Google, YouTube, Dribbble, LinkedIn, Pinterest, and Slack). These components provide consistent styling, elevation, shape, and size options for UI development.

lib/components/button · high confidence

New color palettes for specialized themes and social platforms

The color library has been expanded with new static color classes for distinct use cases: a comprehensive set of social media brand colors (GFSocialColors), specialized palettes for medical/healthcare interfaces (GFMedicalHealthcareColors), kids' education themes (GFKidsEducationColors), luxury aesthetics (GFLuxuryColors), food and beverage themes (GFFoodColors), emotional and elemental color groups (GFEmotionColors, GFElementColors), and space-themed backgrounds (GFSpaceColors). These additions provide ready-to-use color constants for UI components without requiring manual hex code lookups.

lib/colors · high confidence

New form field decoration and validation utilities

Added GfFormFieldDecoration to customize the visual styling of form fields, including border colors, fill colors, border radius, and padding. Additionally, a new GfFormValidators class provides reusable validation functions for common input types such as name, email, password, phone number, text, and numeric fields, each supporting customizable error messages and minimum length constraints.

_lib/components/form/form\field/decorations · high confidence

New form field widgets for date, time, dropdown, radio, and multi-select inputs

Added new form field widgets for date, time, dropdown, radio, and multi-select inputs. The diff introduces GfDatePicker, GfFormField, GfFormDropDown, GfFormGenderbutton, GfMultiChoiceChip, GfMultiCheckbox, GfFormQuestionWidget, and GfTimePicker. Each widget is paired with a corresponding data provider (e.g., GfDatePickerData, GfFormDropdownData) to manage state and integrate with the form handler.

_lib/components/form/form\field/widgets · high confidence

New positioning options for badges, icons, and toasts

Users can now control the placement of UI elements with new position configurations. A new GFBadgePosition class allows precise top, bottom, start, and end offsets for badge placement on icon buttons. The GFPosition enum provides start and end placement options for icons and badges on buttons. Additionally, the GFToastPosition enum introduces nine distinct screen locations for toast notifications, including corners and center positions.

lib/position · high confidence

New shape configuration enums for UI components

Added new shape configuration enums for the avatar, badge, button, icon button, and text field components. Each enum defines the available shape options (such as circle, standard, square, and pills) that can be applied to the respective widgets, allowing users to customize the visual appearance of these elements.

lib/shape · high confidence

New tabbed navigation components: GFTabs, GFTabBar, GFTabBarView, and GFSegmentTabs

The library introduces a new set of tabbed navigation widgets in the \lib/components/tabs\ directory. \GFTabs\ serves as a composite widget that bundles a \GFTabBar\ (a material design horizontal row of tabs) and a \GFTabBarView\ (a page view displaying the corresponding content) with automatic controller management. \GFTabBar\ provides the standard tab bar with customizable indicators, colors, and scrollability. \GFTabBarView\ handles the page switching logic, including a new \tabScrollDuration\ parameter to control the animation speed of tab transitions. Additionally, \GFSegmentTabs\ offers an alternative pill-style tab bar with border and radius customization. These components enable users to implement standard and segmented tabbed interfaces in their Flutter applications.

lib/components/tabs · high confidence

New type enums for UI components

Added new type definition files for various UI components, including alerts, animations, borders, buttons, checkboxes, form fields, loaders, progress bars, radio buttons, social buttons, toast messages, toggles, and typography. These enums define the available styles and configurations for each component, enabling users to select specific visual or functional variants (e.g., solid, outline, or transparent button styles; android, ios, or square toggle shapes).

lib/types · high confidence

Project scaffolding and documentation structure added

The repository was initialized with essential project files: a \.gitignore\ configuration for Flutter/Dart/Android/iOS build artifacts, a \.metadata\ file for Flutter tooling, a \.travis.yml\ for CI, a \CHANGELOG.md\ documenting versions 1.0.2 through 7.0.2 (including compatibility updates for Flutter 3.27/3.29/3.35.0 and bug fixes), a \README.md\ with comprehensive documentation and links, a \LICENSE\ file (updated to MIT), an \analysis\_options.yaml\ for Dart linting, and standard repository files like \config\, \description\, and \HEAD\. Additionally, \CODE\_OF\_CONDUCT.md\ and \CONTRIBUTING.md\ were added to establish community guidelines and contribution workflows.

(repo-wide) · high confidence

iOS example app scaffolding and configuration

The iOS example application has been initialized with the standard Flutter project structure, including the Xcode project configuration (project.pbxproj), workspace settings, and build configurations (Debug/Release.xcconfig). This includes the primary application entry point (AppDelegate.swift), the main and launch screen storyboards, the Info.plist with the app name 'GetWidget', and asset catalogs for the app icon and launch image. These changes establish the native iOS environment required to build and run the example app.

example/ios · high confidence

Behavioural changes

Example app configuration and documentation added

The example directory now includes a .gitignore file to exclude build artifacts and IDE-specific files, a .metadata file to track Flutter project properties and migration state across platforms, an analysis\_options.yaml file to enforce Flutter linting standards, and a comprehensive README.md documenting the GetWidget library, its features, and contribution guidelines.

example · high confidence

Test coverage

Added basic widget test; Added comprehensive test coverage for GetWidget UI components.

Dependencies

Updated example app and library dependencies for Flutter 3.27+ compatibility

The example app's Android build configuration was updated to use the new Flutter Gradle plugin and Java 21, while the iOS and macOS build files were regenerated to support the latest Flutter tooling. Additionally, the main library's \pubspec.yaml\ was updated to support Dart SDK versions up to 4.0.0, and the \pubspec.lock\ files were refreshed to reflect current dependency versions, ensuring the example app and library remain compatible with modern Flutter SDKs.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 63 → 63 (-0.3)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 98 → 90 (-8.6)
  • Architecture 100 → 98 (-1.7)
  • Maturity 49 → 53 (+4.0)
  • Readiness 50 → 50 (-0.0)
  • Security 100 → 98 (-2.3)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (8)

  • Concentrated knowledge decay
  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Further sole-owners (lower concentration)
  • No exposed public API
  • Off-boarding risk: anonymized user #1
  • Test reliability not included
  • complexity unreadable for .dart, .py, .swift — churn × complexity hotspots could not be measured

New (63)

  • Change coupling: gf_segment_tabs.dart ↔ gf_tabbar.dart (lib/components/tabs/gf_segment_tabs.dart)
  • ClassTooLong: _GfFormFieldState (lib/components/form/form_field/widgets/gf_form_field.dart)
  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Dormant codebase
  • Duplicated block (10 lines × 6) (lib/components/form/form_field/widgets/gf_form_field.dart)
  • Duplicated block (10 lines × 9) (lib/components/form/form_field/widgets/gf_form_field.dart)
  • Duplicated block (11 lines × 2) (lib/components/checkbox/gf_checkbox.dart)
  • Duplicated block (11 lines × 2) (lib/components/tabs/gf_tabbar.dart)
  • Duplicated block (11 lines × 2) (lib/components/text_field/gf_text_field_pill.dart)
  • Duplicated block (11–12 lines × 6) (lib/components/form/form_field/widgets/gf_form_field.dart)
  • Duplicated block (12 lines × 2) (lib/components/button/gf_button.dart)
  • Duplicated block (13 lines × 6) (lib/components/form/form_field/widgets/gf_form_field.dart)
  • Duplicated block (15 lines × 2) (lib/components/button/gf_button.dart)
  • Duplicated block (15 lines × 2) (lib/components/form/form_field/widgets/gf_multichoicechip.dart)
  • Duplicated block (15–16 lines × 9) (lib/components/form/form_field/widgets/gf_form_field.dart)
  • Duplicated block (16 lines × 2) (lib/components/form/form_field/widgets/gf_formradiobutton.dart)
  • Duplicated block (16–17 lines × 2) (lib/components/form/form_field/widgets/gf_multichoicechip.dart)
  • Duplicated block (17 lines × 2) (lib/components/form/form_field/widgets/gf_datepicker.dart)
  • Duplicated block (17 lines × 3) (lib/components/form/form_field/widgets/gf_form_field.dart)
  • Duplicated block (17–18 lines × 3) (lib/components/form/form_field/widgets/gf_form_field.dart)
  • …and 43 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ionicfirebaseapp/getwidget was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 2bcf1e05d2580653c9606af0d8922a0348f4f3ab — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.