# Cristalyse > High-performance, interactive charting library for Flutter based on the Grammar of Graphics. ## Overview Cristalyse is an advanced, production-ready charting library built entirely in Dart for the Flutter framework. It offers a declarative Grammar-of-Graphics API, enabling deeply customized, interactive, and beautifully rendering data visualizations across mobile, desktop, and web. ## Core Capabilities - **Performance**: High frame rate (60fps) animations and interactions. Built for massive data sets without dropping frames across 6+ native platforms. - **Grammar of Graphics API**: A flexible API structured around functional data mappings (`mapping(x:, y:, color:)`), rather than rigid chart templates. ## Supported Chart Types - Line Charts (single, multi-series). - Area Charts. - Bar Charts (stacked, grouped) with smart outward edge rounding for positive/negative split values. - Heatmaps (unified gradient color systems). - Bubble Charts with dynamic size guide legends. - Combo Charts (e.g. Bar + Line overlapping). ## Deep Interaction & Gestures - **Comprehensive Zoom**: Native support for pinch-to-zoom (multi-touch), scroll wheel, and optional floating +/- UI buttons. Zoom can be restricted to X-axis, Y-axis, or both. - **Pan Controller**: Manual and programmatic panning with a dedicated `PanController`. Enforced boundaries via `boundaryClamping` to prevent scrolling into blank spaces. - **Interactive Legends**: Click-to-hide/show categories with real-time chart reflowing, visual strikethrough feedback, and intelligent preservation of original color mappings. Floating legends with custom negative offsets are supported. - **Smart Tooltips**: Advanced flickering prevention algorithms ensuring smooth hover states even with microscopic mouse movements. Works flawlessly across multi-series datasets and interactive legends. ## Advanced Scales & Axes - **Continuous and Ordinal Scales**: Precise domain calculation including smart limits and bounds fallback prevention. - **Wilkinson Labeling**: Advanced algorithm generating human-readable axis ticks. Accommodates astronomical epoch timestamp ranges natively. - **Tick Configurations**: Support for strictly integer-only ticks (e.g. for counts), uniform Simple Linear spacing, or entirely bespoke explicit tick arrays. - **Styling**: Configurable padding, rotating axes labels, and automatically positioned Axis Titles (X, Y, Y2) adapting fully to dark/light modes. ## Resources - **Website**: [cristalyse.com](https://cristalyse.com) - **Package**: [pub.dev/packages/cristalyse](https://pub.dev/packages/cristalyse) - **Documentation**: [docs.cristalyse.com](https://docs.cristalyse.com) - **GitHub**: [github.com/rudi-q/cristalyse](https://github.com/rudi-q/cristalyse)