Skip to content
CAI
Software that uses CAICheck a score

Idean/Flutter-Neumorphic

62.0

Adequate · 23 September 2026

17.3k

lines of production code

Dart

primary language

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Flutter UI library that provides a comprehensive set of neumorphic-styled widgets, including buttons, sliders, checkboxes, and progress indicators. It features a modular architecture with extensible shape and decoration systems, allowing for deep visual customization via theme configuration and real-time preview in an interactive example app. The codebase also includes cross-platform scaffolding for iOS, macOS, and web, alongside automation scripts for deployment and publishing.

Features

Add AnimatedScale widget for scaling animations

A new AnimatedScale widget has been added to the library, enabling smooth scaling animations for child widgets. Users can now animate the scale of a widget by providing a target scale value and an optional duration, with the widget handling the transition using a ScaleTransition internally.

lib/src/widget/animation · high confidence

Add Container widget example with shape and theme customization

A new example page for the Container widget has been added to the example app, demonstrating various styling options including default, circle, and round-rectangle shapes. The page integrates a theme configurator to allow users to adjust visual properties like text color and box shapes, providing a practical reference for implementing neumorphic containers with different geometries and styles.

example/lib/widgets/container · high confidence

Add Indicator widget example page with orientation, color, and duration demos

A new example page for the Indicator widget has been added, demonstrating default, horizontal orientation, color, and duration variations. The page includes a theme configurator for live styling adjustments and showcases the NeumorphicIndicator component with different styles and orientations.

example/lib/widgets/indicator · high confidence

Add Neumorphic AppBar examples with theme and size customization

A new example file for the Neumorphic library's AppBar widget has been added, demonstrating how to style the app bar using NeumorphicThemeData (including button styles, text styles, and icon themes) and how to set a custom height for the app bar.

example/lib/widgets/appbar · high confidence

Add NeumorphicApp, AppBar, and core widget implementations

Introduces the foundational widgets for the Neumorphic UI kit, including NeumorphicApp, NeumorphicAppBar, NeumorphicButton, NeumorphicCheckbox, NeumorphicRadio, NeumorphicSlider, NeumorphicRangeSlider, NeumorphicProgress, NeumorphicIndicator, NeumorphicFloatingActionButton, NeumorphicIcon, NeumorphicBackground, and NeumorphicCloseButton. The NeumorphicApp widget now supports theme modes (light/dark) and integrates with the NeumorphicTheme for consistent styling. The NeumorphicAppBar provides customizable title, leading, and actions with neumorphic styling. The NeumorphicButton supports haptic feedback and animation states. The NeumorphicCheckbox and NeumorphicRadio are stateless widgets that notify parents of changes. The NeumorphicSlider and NeumorphicRangeSlider allow for value selection with customizable styles. The NeumorphicProgress and NeumorphicIndicator provide visual feedback for progress and status. The NeumorphicFloatingActionButton offers a floating action button with neumorphic styling. The NeumorphicIcon renders icons with neumorphic effects. The NeumorphicBackground provides a container with neumorphic styling. The NeumorphicCloseButton provides a close button with neumorphic styling.

lib/src/widget · high confidence

Add Range Slider example widget

A new example page for the Range Slider component has been added to the Flutter Neumorphic library's example app. This widget demonstrates how to implement a range slider with default styling and custom color variants, allowing users to see the component in action within the example application.

_example/lib/widgets/range\slider · high confidence

Add Switch widget example with theme configurator and enable/disable controls

The Switch widget example page now includes a ThemeConfigurator for live theme adjustments and a button to toggle the switch's enabled/disabled state. The page also demonstrates various switch styles (default, colorizable, flat/concave/convex) and displays the corresponding code snippets for each variant.

example/lib/widgets/switch · high confidence

Add checkbox widget example with color customization

The example app now includes a dedicated page for the Checkbox widget, demonstrating default states, enabled/disabled conditions, and color customization via a color selector. The implementation uses NeumorphicCheckbox with support for custom selected colors and includes code snippets for reference.

example/lib/widgets/checkbox · high confidence

Add clock and alarm sample screens

Added two new example screens for the clock feature: a primary clock display and a secondary alarm list. The clock sample includes a neumorphic clock widget and navigation to the alarm page, while the alarm sample displays a list of alarms with toggle switches.

example/lib/samples/clock · high confidence

Add indeterminate progress widget example page

The example app now includes a dedicated page for the indeterminate progress indicator, showcasing the default appearance, color customization via accent and variant styles, size adjustments, duration settings, reversed animation direction, and curve configuration. This provides users with interactive examples and code snippets for integrating the NeumorphicProgressIndeterminate widget.

_example/lib/widgets/indeterminate\progress · medium confidence

Add neumorphic background widget example

A new example page for the neumorphic background widget has been added to the example app. The page demonstrates the NeumorphicBackground widget with a light theme, black background container, and a theme configurator in the top bar.

example/lib/widgets/background · high confidence

Add neumorphic button samples and theme configurator

Added new example files for the button widget, including a theme configurator and various button style demonstrations (default, circle, min distance, etc.). The implementation uses the Flutter Neumorphic library to showcase button variants with configurable themes and styles.

example/lib/widgets/button · high confidence

Add progress bar widget example

A new example page for the progress bar widget has been added to the application. This includes a demo page that showcases the default progress bar as well as variants with customizable accent and background colors, allowing users to see how to implement and style the progress indicator in their own apps.

example/lib/widgets/progress · high confidence

Add radio button widget example with theme configurator

A new example page for radio buttons has been added to the UI library. It demonstrates default and circular radio button styles using the Neumorphic library, and includes a theme configurator to adjust visual properties like text color and box shape.

example/lib/widgets/radiobutton · high confidence

Add slider widget example with customizable colors

A new example page for the NeumorphicSlider is added, demonstrating both a default configuration and a color-customized variant. Users can now see how to set the slider's accent and variant colors using the SliderStyle, and the example includes a ThemeConfigurator to adjust the overall theme.

example/lib/widgets/slider · high confidence

Added Firebase hosting configuration for the example app

The example app now includes configuration files for deploying to Firebase Hosting. A .firebaserc file defines the default project as 'flutter-neumorphic', and a firebase.json file configures the 'build/web' directory as the public root, with rewrites to index.html. The README.md has also been updated to describe the example as a showcase for Flutter-Neumorphic with embedded images.

example · medium confidence

Added Neumorphic painter cache implementation

Introduced a new caching system for Neumorphic decorations, including an abstract base class and concrete implementations for emboss and standard painter caching. This change improves performance by caching computed layer rectangles, shadow colors, and translation values, ensuring that visual updates to neumorphic elements are handled efficiently.

lib/src/decoration/cache · high confidence

Added border and embossing example pages

New example pages were added to demonstrate neumorphic border styles and recursive embossing effects. The 'tips\_border' page showcases various combinations of flat, convex, and concave shapes with different depth settings, while the 'tips\_emboss\_inside\_emboss' page demonstrates nested Neumorphic widgets to create deep, recursive shadow effects. Both pages include code snippets and interactive theme configurators to help users understand how to apply these visual styles in their own applications.

example/lib/tips/border · high confidence

Added example UI components for theme configuration and navigation

The example application now includes new helper widgets to support dynamic theme customization and navigation. A ThemeConfigurator dialog allows users to adjust the base color, intensity, and depth of the neumorphic theme in real-time. Additionally, a NeumorphicBack button and a TopBar header component have been added to provide consistent navigation and title display across example screens.

example/lib/lib · high confidence

Added macOS example app scaffolding

The example/macos directory now contains a complete, buildable macOS application project. This includes the Xcode project configuration (project.pbxproj), workspace settings, and scheme definitions. It also adds the necessary Swift source files (AppDelegate, MainFlutterWindow, GeneratedPluginRegistrant) and supporting configuration files (xcconfig, entitlements, Info.plist, and assets) required to run a Flutter app on macOS.

example/macos · high confidence

Added neumorphic accessibility example page

Introduced a new example page for neumorphic accessibility, featuring a configurable UI with tabs for Style, Element, and Border. The page allows users to adjust visual properties such as light source, shape, depth, and intensity, demonstrating how the library's theming and shape systems work in practice.

example/lib/accessibility · high confidence

Added toggle widget example

A new example page for the toggle widget has been added to the example app, demonstrating both default and small toggle variants using the Neumorphic library. The page includes a theme configurator and displays code snippets for each variant, allowing users to see how to implement the toggle with different styles and configurations.

example/lib/widgets/toggle · high confidence

Added web support for the example project

The example project now includes web support, introducing an HTML entry point and a PWA manifest. Users can now run the example in a browser, with the addition of service worker registration for offline capabilities and standard PWA metadata for mobile home-screen installation.

example/web · high confidence

Expanded example app with new interactive samples

The example app now includes several new interactive samples, including an audio player, calculator, credit card, form, galaxy, and widgets showcase. These samples demonstrate various UI components and state management patterns within the library.

example/lib/samples · high confidence

Introduce extensible path provider architecture for shapes

The shape system has been refactored to use a new \NeumorphicPathProvider\ abstract class, allowing each shape (such as beveled, circle, rectangle, rounded rectangle, and stadium) to be represented by its own dedicated path provider class. This change replaces the previous monolithic shape implementation with a modular structure where each shape type defines its own \getPath\ logic, enabling easier maintenance and future extensibility for custom shapes.

lib/src/shape · high confidence

Introduced dedicated theme configuration and app bar styling

Users can now customize the appearance of the app bar via a new \NeumorphicAppBarThemeData\ class, which allows setting the background color, icon theme, button style, text style, and custom icons (back, forward, menu, close). Additionally, the main \NeumorphicThemeData\ now exposes \iconTheme\ and \buttonStyle\ properties, enabling global styling of icons and buttons across the application.

lib/src/theme · high confidence

New neumorphic decoration and painter implementations

Added new files in lib/src/decoration to implement neumorphic styling for both box and text elements. This includes NeumorphicDecoration and NeumorphicTextDecoration classes that manage the rendering of shadows, gradients, and borders. The implementation introduces dedicated painters (NeumorphicDecorationPainter, NeumorphicEmbossDecorationPainter, NeumorphicDecorationTextPainter) that handle the actual drawing logic, including cache management for performance and support for light source direction and depth. The changes also introduce helper classes and cache structures to support these new rendering capabilities.

lib/src/decoration · high confidence

New neumorphic playgrounds for interactive component exploration

Added new interactive playgrounds for the Neumorphic library, including a general neumorphic component playground and a dedicated text playground. These allow users to visually adjust and preview properties such as light source, depth, intensity, shape, and text styling in real-time, providing a hands-on way to explore the library's capabilities.

example/lib/playground · high confidence

New widgets home screen with navigation to all widget demos

A new 'Widgets Home' screen has been added to the example app, serving as a central hub for navigating to individual widget demonstrations. This includes buttons, icons, checkboxes, radio buttons, switches, toggles, sliders, range sliders, indicators, progress bars, and background styles. Each item in the list navigates to its respective demo page, providing a structured way to explore the available UI components.

example/lib/widgets · medium confidence

Updated project documentation and added deployment scripts

The README has been significantly expanded to include a comprehensive widget showcase, installation instructions, and detailed attribute documentation for the Neumorphic UI kit. Additionally, new shell scripts (deployWeb.sh, format.sh, publish.sh) were added to automate web deployment, code formatting, and package publishing workflows.

(repo-wide) · high confidence

Behavioural changes

2 commits (0 fixes) modifying medias/doc

A change to existing behaviour in medias/doc — 2 commits, 8 files.

medias, medias/doc · medium confidence · unverified

Redesign of the example app's main entry point and navigation structure

The example app's root widget has been refactored to use NeumorphicApp with explicit light/dark theme configurations, replacing the previous Material-based setup. The main entry point now routes to a new FullSampleHomePage that serves as a central hub, providing navigation to dedicated pages for Playgrounds, Samples, Widgets, Tips, and Accessibility. This change introduces a more structured and modular navigation flow within the example application, allowing users to easily access different feature demonstrations.

example/lib · high confidence

Refactored core shape and color logic into lib/src

The library's internal structure has been reorganized, with core components such as colors, light source definitions, box shapes, and shape enums moved into the lib/src directory. This refactoring introduces a new NeumorphicColors class to centralize theme and shadow color generation, adds support for beveled box shapes via BeveledPathProvider, and defines the NeumorphicShape enum (concave, convex, flat) to control widget curvature. These changes provide a more modular foundation for neumorphic styling and shape customization.

lib/src · high confidence

Removal of auto-generated i18n localization classes

The auto-generated i18n localization file (lib/generated/i18n.dart) has been removed. This file previously provided the S class and GeneratedLocalizationsDelegate for English (en) localization. Users relying on this generated localization setup will need to update their code to use the new localization approach.

lib/generated · medium confidence

Removal of auto-generated i18n localization file

The auto-generated internationalization file (i18n.dart) has been removed from the example project. This file previously provided English language support for the application's localizations. Users relying on this specific generated localization setup will need to update their configuration or remove references to this file.

example/lib/generated · high confidence

Reworked library structure and exports

The library's public API has been reorganized. The previous top-level exports for 'colors' and 'container' have been removed. Instead, the library now exports a comprehensive set of neumorphic widgets (such as button, checkbox, slider, and theme components) from the 'src/' directory, alongside standard Flutter material and widget libraries.

lib · high confidence

Updated Firebase hosting cache for the example app

The Firebase hosting cache file for the example app has been updated, reflecting changes to the built web assets. This includes updated hashes for core files like index.html, main.dart.js, and various assets (images, fonts) used in the example application.

example/.firebase · medium confidence

Updated Flutter build cache

The Flutter build cache file (.last\_build\_id) was updated to reflect a new build identifier (8c0473fda4da7556287e1eab51e6d5ae). This ensures the iOS example project uses the correct cached state for subsequent builds.

example/ios/Flutter · medium confidence

iOS example project updated to use modern build system

The iOS example project has been updated to use the modern Xcode build system. This includes adding workspace configuration files (IDEWorkspaceChecks.plist and WorkspaceSettings.xcsettings) and updating the project.pbxproj to remove manual framework embedding for App.framework and Flutter.framework, instead relying on the 'embed\_and\_thin' script phase for framework processing.

example/ios/Runner.xcodeproj · high confidence

Test coverage

Cleanup of Flutter test imports; Removal of widget test suite.

Dependencies

Removed lockfiles and updated package configuration

The \pubspec.lock\ files for the main package and example app have been removed, likely to allow for more flexible dependency resolution. The main package's \pubspec.yaml\ was updated to require Dart SDK 2.12.0 or higher and Flutter 1.13.18 or higher, and the package description and homepage were updated. Additionally, a custom font (SamsungSans-Bold.ttf) was added to the example app, and a new font (NeumorphicIcons.ttf) was added to the main package.

(dependencies) · medium 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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 54 → 62 (+8.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 93 (-6.5)
  • Architecture 100 → 99 (-0.8)
  • Maturity 34 → 46 (+12.3)
  • Readiness 47 → 59 (+12.7)
  • Security 85 → 84 (-1.1)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (8)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No exposed public API
  • Test reliability not included
  • complexity unreadable for .dart, .swift — churn × complexity hotspots could not be measured
  • dormant codebase — no living knowledge left to concentrate

New (122)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no architecture or design documentation (README.md)
  • Duplicated block (10 lines × 2) (lib/src/widget/progress.dart)
  • Duplicated block (11 lines × 2) (example/lib/main.dart)
  • Duplicated block (11 lines × 2) (example/lib/samples/audio_player_sample.dart)
  • Duplicated block (11 lines × 2) (example/lib/widgets/toggle/widget_toggle.dart)
  • Duplicated block (11 lines × 3) (example/lib/accessibility/neumorphic_accessibility.dart)
  • Duplicated block (11 lines × 4) (example/lib/main_home.dart)
  • Duplicated block (11 lines × 5) (example/lib/widgets/button/widget_button.dart)
  • Duplicated block (11 lines × 9) (example/lib/widgets/background/widget_background.dart)
  • Duplicated block (11–12 lines × 2) (lib/src/decoration/neumorphic_decoration_painter.dart)
  • Duplicated block (11–12 lines × 3) (lib/src/decoration/neumorphic_decoration_painter.dart)
  • Duplicated block (12 lines × 2) (example/lib/samples/audio_player_sample.dart)
  • Duplicated block (12 lines × 2) (example/lib/tips/border/tips_border.dart)
  • Duplicated block (12 lines × 2) (example/lib/widgets/container/widget_container.dart)
  • Duplicated block (12 lines × 2) (lib/src/neumorphic_box_shape.dart)
  • Duplicated block (12 lines × 3) (example/lib/widgets/progress/widget_progress.dart)
  • Duplicated block (12–13 lines × 2) (example/lib/samples/widgets_sample.dart)
  • Duplicated block (13 lines × 15) (example/lib/tips/border/tips_border.dart)
  • Duplicated block (13 lines × 2) (lib/src/decoration/neumorphic_decoration_painter.dart)
  • …and 102 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

Idean/Flutter-Neumorphic 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 57f2b1f54f52fb9cb8bfa22eca812ebb69af086d — 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.