Repository navigation
Blinc 0.6.0 is rolling out to crates.io! #65
Pinned
BLINC Admin
announced in
Announcements
Replies: 1 comment
|
My idolo. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This release brings CSS-first styling, finer-grained reactivity, a larger component library, substantial rendering improvements, and lower idle overhead to Blinc, our GPU-accelerated Rust UI framework.
Signal and Computed throughout component APIs. Values, labels, placeholders, validation messages and disabled states can update through property bindings without rebuilding their component trees. Bound classes and attributes also update matching descendant styles.
Reactive component derives.
#[derive(BlincComponent)]now generates companionNamePropstypes withIntoReactive<T>constructors and fluent setters. Props accept constants, Signal and Computed sources while preserving their bindings. Named field hooks return persistent Signals, with explicit and automatic instance keys.CSS-first components. CN components take their colours, borders, shadows, typography and interaction states from stylesheets. Dialogs, sheets, drawers, toasts, tabs, spinners and skeletons use CSS transitions and keyframes. Documented classes and theme variables make components easier to restyle.
A stronger CSS engine. Additions include CSS Grid layout and placement, attribute selectors, component cascade layers, inherited typography, per-side borders, inset shadows, multi-value corner radii,
color-mix(), and more complete CSS colour parsing. Transition handling, transform composition and stylesheet merging also receive correctness fixes.New and expanded CN widgets. Date Picker, Time Picker and Colour Picker join Calendar, OTP input, numeric inputs, number gauges, range gauges, tables, toggles and toggle groups. The time picker supports 12/24-hour editing, optional seconds and a compact scrolling-wheel popup with provisional Save/Cancel edits. The colour picker supports saturation/brightness, hue, alpha, hex entry and swatches.
Interactive charts. Line, area, bar, pie/donut, sparkline, threshold, histogram and comparison charts share more consistent plotting, hover interactions, animation and theme palettes. Chart primitives render through the GPU drawing system.
Better keyboard navigation. Tab and Shift+Tab traverse enabled controls and start within the visible scroll area. OTP slots participate in traversal. Menus support roving focus, submenu navigation and keyboard activation. Nested overlays constrain focus and restore it to their triggers when dismissed.
:focus-visibledistinguishes keyboard focus rings from pointer focus.New themes and motion tokens. Restrained, Hybrid and Expressive themes provide different visual treatments, with shared shape, shadow, focus-ring, chart and semantic easing tokens. Theme-driven squircle corners also propagate through clipping and overlay surfaces.
More reliable rendering and composition. Extensive work improves nested glass, shared opacity, blur, blending, masks, transforms and clipping across text, SVGs, images, canvases and 3D content. Fixes address overlay ordering, disappearing content during fades, stale cached frames and recovery from zero opacity. Display-list rendering also gains broader support for effects, gradients, images, glyphs and custom GPU callbacks.
Compile-time Flow shaders.
flow!compiles declarative shader graphs into WGSL at compile time. Flow shaders are drawn through canvases, participating in their clips, transforms, groups and paint order.FlowLoopandFlowClockprovide animation control.Lower rendering and idle overhead. More animations reuse cached composition instead of repainting whole subtrees. Text measurement caching and layout update paths reduce repeated work. Offscreen animations and unfocused text fields are less likely to keep windows repainting. Animation scheduling, refresh-rate handling, configurable frame pacing and Vulkan pipeline warm-up receive improvements.
Lighter defaults and more control over dependencies. Desktop conveniences such as file dialogs, tray integration, notifications and global shortcuts are opt-in. Image decoding defaults to PNG and JPEG, with additional formats enabled through features or custom decoders. SVG and colour-glyph resources allocate more lazily, and idle texture pools release unused memory.
Platform and media improvements. Desktop input, Wayland presentation, scrolling and modifier handling receive fixes. Web asset loading gains non-blocking parallel preloading, progress reporting and better failure recovery. Browser video supports URL streaming with buffered-progress feedback, and the audio stack moves to rodio 0.22. Mobile bridges receive Rust 2024 compatibility updates.
Better development and testing tools. Experimental hot reload covers UI code, CSS and watched assets. Headless UI testing supports simulated input, controlled frames and visual snapshot comparisons. Documentation, examples, migration guidance and regression coverage have been expanded. Build scopes now clean up computations and effects across fresh tree rebuilds, while updates remain isolated to their owning window or tree.
Upgrading from 0.5: this release requires Rust 1.89 or newer and includes breaking API changes.
IntoReactive<T>.theme(...)withvar(--...).css!builds a stylesheet; the single-style form iscss_style!.See the migration guide for the detailed API changes, and the repository for examples and per-crate changelogs.
All reactions