Major expansion of Neo’s input capabilities! 🚀 This release introduces the multi-line NeoTextArea widget, comprehensive date validation utilities, a clean card component, and significant improvements to date field functionality with a completely rewritten segmented input experience.
API standardization and UX polish across the board. This release finalizes the Date Field, unifies disabled/error states, and introduces a few small but meaningful visual improvements and fixes.
Major improvements across the framework! 🚀 This release introduces a new Modal widget and brings significant enhancements to buttons, toasts, theming—plus important API improvements and some breaking changes to be aware of.
NeoButton: Removed NeoButtonSize.expanded from the size property enum—use the new isExpanded boolean property instead
NeoTabBar: activeTabId and onChange properties are now required (changed from nullable)
Field widgets height change: NeoTextField, NeoDropdownField, and NeoDateField changed from flexible height to fixed height (44.0) - may affect layouts relying on flexible field height
Added label property to NeoDivider for labeled dividers
Added errorText and allowDeselect properties to NeoDropdownField
Added fixedRowHeight property to NeoTable for consistent row heights
Added optional focusNode property to NeoTextField for better focus management
Added smart log filtering to NeoLogger with automatic build mode detection
Debug builds show all log levels (trace, debug, info, warning, error, fatal) for comprehensive debugging
Release builds only show info level and above to reduce noise and improve performance
This means you can safely leave trace and debug calls throughout your codebase during development - they won’t clutter the user experience in production builds
Added the enabled property to NeoCheckbox. If it is false, it is not clickable and has a visual disabled state
Added onRowHover property to NeoTable. This is a callback that can be used, for example, to show action buttons only on hover over a single row, giving your overall screen a cleaner look
Added defaultLightTheme and defaultDarkTheme properties to NeoApp. This will now allow you to set default themes at startup. When not provided, NeoApp will use the default NeoThemeLight and NeoThemeDark
The official 1.0.0 release of Neo! 🎉 This is a major milestone in our journey to empower developers to create stunning, responsive apps with ease. From the first pre-release almost exactly one year ago to now, we’ve been building a robust foundation, and this release brings powerful new features and polished improvements to make your development experience smoother and more delightful. Now let’s craft beautiful apps together! 🚀
Added the NeoSidebarLayout assembly (we’re still deciding on the naming of these big “widgets”). It manages the layout of a NeoSidebar and main content, providing the ability to collapse or completely hide the sidebar. Hiding the sidebar will now also completely hide the padding around the main area, giving a more fullscreen feel. This change animates so everything feels fluent! The NeoSidebarLayout also supports mobile platforms, and there the sidebar pushes the main content to the side instead of scaling it
Made the NeoBadge stable. It now always scales correctly to its contents; this was a bit wonky before, but not anymore!
Improve the look of the NeoBadge; it’s now a lot more visible in different theming scenarios.
Made the NeoSidebarButton work with the improved NeoBadge, it now correctly animated into an indicator when collapsing the sidebar
Added isIndeterminate property to NeoCheckbox which will show a dash inside of the checkbox for indeterminate states like a select/deselect all box in a table when some but not all rows are selected
Added optional MacOS support toggle for haptic feedback methods (disabled by default since trackpads already provide native feedback for clicks - enable with enableMacOS: true when additional feedback is desired, e.g., during drag operations)
Updated documentation to align with all the recent changes and the Neo CLI
Here we go again… We forgot to keep track of changes again so this is a bit rough. 😵💫 But… we’ve implemented a new system for creating release notes so from now on it should be a lot better! 🎉There are a lot more small improvements and fixes but here are the most notable ones:
Added NeoInitializer widget. A utility widget designed to streamline the initialization process of the Neo framework. This widget manages crucial startup tasks, ensuring that the environment is properly set up before any UI components are loaded
Added Geist and Geist Mono fonts. These are now the default fonts for Neo
The first pre-release of Neo is here! 🎉 This is just the beginning—our starting line. With this release, we lay the groundwork for a future where our developers can build beautiful apps incredibly fast. Here’s to the journey ahead! 🍻