Version 1.6 of Unovis is here! This is one of our most feature-packed releases yet, bringing exciting new components, enhanced graph functionality, improved axis customization, and numerous quality of life improvements.
We're excited to welcome our new first-time contributors to the Unovis community: @dennisadriaans, @curran, @50rayn, and @devgru. Thank you for your valuable contributions! 🎉
Release Highlights
📊 New Components: Treemap, Plotline, Plotband & Rolling Pin Legend
Introducing four new components:
Treemap
- Hierarchical data visualization with customizable layers
- Rich styling options including
tileColor, tilePadding, tileBorderRadius and lightnessVariationAmount
- Interactive features with hover states:
--vis-treemap-tile-hover-stroke-color, --vis-treemap-tile-hover-stroke-opacity
Plotline - Draw precise reference lines across your charts:
- Support for both X and Y axis orientation
- Customizable line styles (solid, dashed, dotted)
- Configurable colors, widths, and positioning
- Works with all XY components
Plotband - Highlight ranges and areas in your visualizations:
- Create horizontal or vertical bands across chart areas
- Customizable colors with transparency support
- Flexible labeling with multiple positioning options
Rolling Pin Legend - Compact legend for displaying color scales:
- Displays color gradients in a horizontal rolling pin format
- Left and right label support for scale endpoints
- Customizable font sizes and styling
Check out Plotline's documentation, Plotband's documentation, Treemap's documentation, and Rolling Pin Legend's documentation with examples to learn how to use them.
🎯 Enhanced Crosshair Component
Allow enforcement of crosshair display at certain position, this can be used to enable synchronized crosshair display
📈 Line Chart Interpolation
New interpolation feature for handling missing data in line charts:
interpolateMissingData property fills data gaps with dashed lines
- Customizable appearance with CSS variables
--vis-line-gapfill-stroke-dasharray: 2 3;
--vis-line-gapfill-stroke-opacity: 0.8;
--vis-line-gapfill-stroke-dashoffset: 0;
- Works seamlessly with fallback values for better data visualization
🔘 Bullet Legend Enhancements
Bullet Legend now supports multiple colors per item, enabling more sophisticated legend designs:
- Multiple color arrays for complex legend items
📏 Axis Customization
New CSS variables for greater axis styling control:
--vis-axis-line-stroke-color: Customize axis line color
--vis-axis-line-stroke-width: Control axis line thickness
- Better separation between domain line and tick styling
- Label Trim and Wrap: Add trim and wrap functionality to axis labels for better text handling
⏱️ Timeline Component Enhancements
Major updates to the Timeline component with new features and improved functionality:
- Row Icons: Support for enhanced visual categorization with icons alongside row labels
- Line Icons: Add start and end icons to timeline lines with configurable positioning
- Arrow Support: Connect related timeline entries with customizable arrows allowing user to create Gantt Charts
- Hover Styles: Better visual feedback with configurable hover states
- Animation Control: Configurable animation positions for line enter/exit transitions
- Label Positioning: Improved label positioning and clipping behavior with dedicated clipPath
labelTextAlign: Adds labelTextAlign config option to Timeline component to control label alignment
🔗 Graph Component Updates
Continued improvements to the Graph component:
- Enhanced panel documentation and examples
- Configurable node and group spacing in Parallel layouts (doc)
Other Changes
Enhancements
- Component | Graph: Enhanced panel documentation and examples #616
- Container | XY: Handle edge cases when
scaleByDomain is true #588
- Website | Gallery: New custom nodes graph with tooltips example #603
- Website | Gallery: New patchy line chart gallery example #558
- Website | Gallery: New stacked area chart with attributes example #597
- Website | Docs: Enhanced documentation for multiple components
Bug Fixes
- Component | Tooltip: Fix dynamic config retrieval for mousemove handler #606
- Component | Graph: Fix link flow group dot issue #575
- Component | Graph: Fix link flow animation update #577
- Component | Timeline: Fix icon data binding, ordinal scale domain, and arrow exit transition #536
- Solid | Bug: Component destroy method #602
- Core | Types: Making
fontSize optional in UnovisText #585
Quality of Life Improvements
- TS: Replace deprecated JSX.Element with React.ReactNode #545
- Testing: Continued improvements to visual testing infrastructure