
syncfusion-flutter-treemap
Implements Syncfusion Flutter TreeMap (SfTreemap) for visualizing hierarchical and proportional data in Flutter apps. Use when working with treemap layouts, nested rectangles, drill-down navigation, or hierarchical data visualization. This skill covers layouts, labels, tooltips, legends, selection, color mapping, and drilldown navigation.
- Installs
- 50
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/syncfusion/flutter-ui-components-skills --skill syncfusion-flutter-treemap- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads syncfusion-flutter-treemap automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Implementing Flutter TreeMaps
This skill guides you through implementing the Syncfusion Flutter TreeMap (SfTreemap) widget - a powerful visualization component for displaying hierarchical and proportional data using nested rectangles. TreeMaps excel at showing complex data relationships, making them ideal for dashboards, analytics, and data exploration interfaces.
When to Use This Skill
Use this skill when the user needs to:
- Visualize hierarchical or nested data structures in Flutter
- Display proportional data using nested rectangles
- Create interactive treemap visualizations with drilldown
- Show categorical data with color-coded tiles
- Represent large datasets in a space-efficient manner
- Build dashboards with hierarchical data displays
- Implement data exploration interfaces with selection and tooltips
- Create heat maps based on quantitative values
Component Overview
The Syncfusion Flutter TreeMap (SfTreemap) is a powerful data visualization widget that displays hierarchical data using nested rectangles. Each rectangle's size is proportional to a quantitative value, making it easy to compare values across different categories and levels.
TreeMap is ideal for:
- File system visualizations
- Budget breakdowns by category
- Market share analysis
- Organization hierarchies with metrics
- Resource allocation displays
- Portfolio compositions
- Sales data by region/product/category
Key Capabilities
- Multiple Layout Algorithms: Squarified (default), Slice, Dice
- Data Support: Both flat and hierarchical structures
- Customizable Labels: Use any Flutter widget as labels
- Interactive Features: Selection, tooltips, tap events
- Color Mapping: Value-based and range-based coloring
- Legend Support: Bar and gradient legends
- Drilldown Navigation: Navigate through hierarchical levels
- Accessibility: RTL support, semantic labels
- Theming: Full customization of colors and styles
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Package installation and setup
- Adding dependency to pubspec.yaml
- Importing the treemap package
- Creating your first treemap
- Basic data source structure
- Essential properties:
dataCount,weightValueMapper,levels - Minimal working example
Layout Configuration
📄 Read: references/layouts.md
- Understanding layout algorithms
- Squarified layout (default, balanced rectangles)
- Slice layout (horizontal divisions)
- Dice layout (vertical divisions)
- When to use each layout type
- Performance considerations
- Switching between layouts
Data Structure and Hierarchy
📄 Read: references/hierarchical-data.md
- Flat vs hierarchical data structures
- Configuring TreemapLevel for grouping
- Using
groupMapperto organize data - Using
weightValueMapperto size tiles - Creating multi-level hierarchies
dataCountproperty usage- Building complex nested data
Customization: Labels and Styling
📄 Read: references/labels-customization.md
- Adding labels with
labelBuilder - TreemapTile properties and data access
- Custom label widgets
- Label positioning and padding
- Text styling and formatting
- Conditional label display
- Responsive label sizing
Customization: Colors and Theming
📄 Read: references/colors-theming.md
- Color mapping overview
- Value-based color mapping
- Range-based color mapping
- Gradient support
- Theme integration
- Custom color palettes
- Per-tile color customization
Interactive Features: Tooltip and Selection
📄 Read: references/tooltip-selection.md
- Creating tooltips with
tooltipBuilder - Custom tooltip widgets and styling
- Enabling tile selection
- Handling
onSelectionChangedevents - Selected tile highlighting
- Multi-select support
- Touch and hover interactions
Legend
📄 Read: references/legend.md
- Adding TreemapLegend widget
- Bar legends vs gradient legends
- Legend positioning (top, bottom, left, right)
- Icon and text customization
- Legend item styling
- Integration with color mappers
Drilldown Navigation
📄 Read: references/drilldown.md
- Implementing drilldown behavior
- Using
onTapcallback - Navigating hierarchical data
- Managing drilldown state
- Building breadcrumb navigation
- Back/up navigation
- Preserving user context
Advanced Features
📄 Read: references/advanced-features.md
- Custom tile widgets with
itemBuilder - Right-to-left (RTL) support
- Accessibility features
- Keyboard navigation
- Performance optimization techniques
- Responsive design patterns
- Integration with state management
Quick Start Example
Here's a minimal example to get you started:
import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_treemap/treemap.dart';
class BasicTreemapExample extends StatefulWidget {
@override
_BasicTreemapExampleState createState() => _BasicTreemapExampleState();
}
class _BasicTreemapExampleState extends State<BasicTreemapExample> {
late List<SalesData> _salesData;
@override
void initState() {
_salesData = [
SalesData(region: 'North America', sales: 8500),
SalesData(region: 'Europe', sales: 6200),
SalesData(region: 'Asia', sales: 9800),
SalesData(region: 'South America', sales: 3400),
SalesData(region: 'Africa', sales: 2100),
];
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Sales by Region')),
body: Center(
child: Container(
height: 400,
width: 400,
padding: EdgeInsets.all(16),
child: SfTreemap(
dataCount: _salesData.length,
weightValueMapper: (int index) {
return _salesData[index].sales;
},
levels: [
TreemapLevel(
groupMapper: (int index) {
return _salesData[index].region;
},
labelBuilder: (BuildContext context, TreemapTile tile) {
return Padding(
padding: EdgeInsets.all(4),
child: Text(
tile.group,
style: TextStyle(color: Colors.black),
),
);
},
),
],
),
),
),
);
}
}
class SalesData {
SalesData({required this.region, required this.sales});
final String region;
final double sales;
}
Common Patterns
Pattern 1: Hierarchical Data with Drilldown
// Multi-level data structure
class SalesData {
SalesData({
required this.region,
required this.country,
required this.sales,
});
final String region;
final String country;
final double sales;
}
// TreeMap with two levels
SfTreemap(
dataCount: _salesData.length,
weightValueMapper: (int index) => _salesData[index].sales,
levels: [
TreemapLevel(
groupMapper: (int index) => _salesData[index].region,
),
TreemapLevel(
groupMapper: (int index) => _salesData[index].country,
),
],
)
Pattern 2: Color-Coded by Value
SfTreemap(
dataCount: _data.length,
weightValueMapper: (int index) => _data[index].value,
colorMappers: [
TreemapColorMapper.range(
from: 0,
to: 25,
color: Colors.green,
name: 'Low',
),
TreemapColorMapper.range(
from: 25,
to: 50,
color: Colors.yellow,
name: 'Medium',
),
TreemapColorMapper.range(
from: 50,
to: 100,
color: Colors.red,
name: 'High',
),
],
legend: TreemapLegend.bar(),
levels: [
TreemapLevel(
groupMapper: (int index) => _data[index].category,
),
],
)
Pattern 3: Interactive with Selection
SfTreemap(
dataCount: _data.length,
weightValueMapper: (int index) => _data[index].value,
onSelectionChanged: (TreemapTile tile) {
setState(() {
// Add selection changed functionalities here
});
},
levels: [
TreemapLevel(
groupMapper: (int index) => _data[index].category,
color: Colors.blue[200],
tooltipBuilder: (BuildContext context, TreemapTile tile) {
return Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Colors.black87,
borderRadius: BorderRadius.circular(4),
),
child: Text(
'${tile.group}: ${tile.weight}',
style: TextStyle(color: Colors.white),
),
);
},
),
],
)
Key Properties Reference
Essential Properties
| Property | Type | Description |
|---|---|---|
dataCount | int | Number of data points in the source |
weightValueMapper | IndexedDoubleValueMapper | Callback returning numeric value for tile size |
levels | List<TreemapLevel> | Hierarchy levels configuration |
TreemapLevel Properties
| Property | Type | Description |
|---|---|---|
groupMapper | IndexedStringValueMapper | Groups data for this level |
labelBuilder | TreemapLabelBuilder? | Custom label widget builder |
tooltipBuilder | TreemapTooltipBuilder? | Custom tooltip widget builder |
color | Color? | Default tile color for this level |
border | RoundedRectangleBorder? | Tile border styling |
padding | EdgeInsetsGeometry? | Padding around tiles |
Optional Configuration
Note: The layout algorithm is determined by the constructor used, not by a property. Use
SfTreemap()for squarified (default),SfTreemap.slice()for slice, orSfTreemap.dice()for dice.
| Property | Type | Description |
|---|---|---|
colorMappers | List<TreemapColorMapper>? | Value/range-based coloring |
legend | TreemapLegend? | Legend widget configuration |
onSelectionChanged | ValueChanged<TreemapTile>? | Selection event handler |
layoutDirection | TreemapLayoutDirection | Layouts the tiles in top-left, top-right, bottom-left and bottom-right directions; default topLeft |
sortAscending | bool | Sort tiles by weight (slice/dice only) |
Common Use Cases
Use Case 1: Budget Dashboard
Display organizational budget breakdown by department and sub-categories with color coding for spending levels.
When to use: Multi-level budget tracking, resource allocation
Use Case 2: Sales Analysis
Visualize sales data across regions, countries, and products with interactive drilldown.
When to use: Regional sales comparison, market analysis, performance dashboards
Use Case 3: File System Visualization
Show disk space usage by folders and files with proportional sizing.
When to use: Storage analysis, file management tools, disk cleanup utilities
Use Case 4: Market Share Analysis
Display market share data for different companies, products, or categories.
When to use: Competitive analysis, portfolio composition, market research
Use Case 5: Organization Hierarchy
Show organizational structure with metrics like headcount or budget per team.
When to use: HR dashboards, resource planning, org chart visualizations
Troubleshooting Quick Reference
No tiles visible?
- Check that
dataCountmatches your data length - Verify
weightValueMapperreturns positive numbers - Ensure
groupMapperreturns non-null strings
Labels not showing?
- Add
labelBuilderto TreemapLevel - Check label widget size fits within tile
- Verify text color contrasts with tile background
Colors not applying?
- Ensure
colorMappersvalues match your data range - Check that color mapper has the correct type (value vs range)
- Verify legend is configured if using color mappers
Selection not working?
- Add
onSelectionChangedcallback - Ensure you're calling
setStateto rebuild - Check that tiles are large enough to tap
For detailed troubleshooting and solutions, refer to the specific reference documentation.
FAQ
What does the syncfusion-flutter-treemap skill do?
Implements Syncfusion Flutter TreeMap (SfTreemap) for visualizing hierarchical and proportional data in Flutter apps. Use when working with treemap layouts, nested rectangles, drill-down navigation, or hierarchical data visualization. This skill covers layouts, labels, tooltips, legends, selection, color mapping, and drilldown navigation.
How do I install syncfusion-flutter-treemap?
Run npx skills add https://github.com/syncfusion/flutter-ui-components-skills --skill syncfusion-flutter-treemap in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-flutter-treemap/ (personal) or .claude/skills/syncfusion-flutter-treemap/ (project).
Which AI agents can use syncfusion-flutter-treemap?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is syncfusion-flutter-treemap safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains syncfusion-flutter-treemap?
It is published by syncfusion in syncfusion/flutter-ui-components-skills. It has 50 recorded installs.
More from syncfusion/flutter-ui-components-skills
syncfusion-flutter-calendar-datepicker
syncfusion/flutter-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-flutter-cartesian-charts
syncfusion/flutter-ui-components-skills
Implements Syncfusion Flutter Cartesian Charts (SfCartesianChart) for a wide range of 2D chart types in Flutter apps. Use when working with line, column, bar, area, spline, scatter, bubble, financial, stacked, or histogram charts. This skill covers axis types (NumericAxis, CategoryAxis, DateTimeAxis), zoom and pan, tooltip, trackball, legend, annotations, technical indicators, trendlines, and chart export.
syncfusion-flutter-chat
syncfusion/flutter-ui-components-skills
Implements Syncfusion Flutter Chat (SfChat) and AI AssistView (SfAIAssistView) widgets for conversational interfaces in Flutter apps. Use when building chat UIs, AI chatbot interfaces, or messaging screens with support for message bubbles, composers, and action buttons. This skill covers conversation area customization, placeholder screens, theming, RTL support, and AI assistant integration.
syncfusion-flutter-datagrid
syncfusion/flutter-ui-components-skills
Implements Syncfusion Flutter DataGrid (SfDataGrid) for displaying and manipulating tabular data in Flutter applications. Use when working with data grids, data tables, or column-based data presentation using the syncfusionflutterdatagrid package. This skill covers DataGridSource, GridColumn configuration, sorting, filtering, paging, editing, and selection.
syncfusion-flutter-circular-charts
syncfusion/flutter-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-flutter-sliders
syncfusion/flutter-ui-components-skills
Implements Syncfusion Flutter Slider controls (SfSlider, SfRangeSlider, SfRangeSelector) for numeric value selection and range inputs. Use when working with single-value sliders, range selection, or chart-range controllers in Flutter apps. This skill covers thumb and tooltip customization, ticks, dividers, RTL support, drag modes, and chart integrations.
Popular mobile skills
design-mobile-apps
designed-by-ai/skills
Design mobile app screens with Sleek, edit Sleek projects, and implement their designs in React Native or HTML.
ios-design
uizze.sh
Design and review iOS UI/UX for iPhone apps in SwiftUI, UIKit, or React Native. Use for mobile app design, screen redesigns, navigation flows, typography, forms, keyboard and safe-area layout, and accessibility checks. Apply Apple Human Interface Guidelines and consult real product references through the optional Uizze connection.
vercel-react-native-skills
vercel-labs/agent-skills
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
animate-expo
emilkowalski/skills
Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use animate.
xcode-project-setup
firebase/agent-skills
Safely modifies Xcode projects (.pbxproj) to add Swift Packages and link files. Use this skill whenever an iOS project needs dependencies installed (e.g. Firebase, Alamofire).
firebase-remote-config-basics
firebase/agent-skills
Manages Firebase Remote Config templates, feature flags, loading strategies, and SDKs (Android, iOS). Use when downloading/deploying remoteconfig JSON templates, managing version history/feature flags, setting in-app defaults, fetchAndActivate(), real-time listeners, or SDK setup. Don't use for Firebase Hosting, Auth, Firestore, Data Connect, Crashlytics, or App Hosting.