"Compose Vizro pages with components, data, filters, selectors,
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill core-components-data-actions --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Core Components Data Actions?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-core-components-data-actions)More formats (shields.io, HTML) on the badges page.
---
name: core-components-data-actions
description: "Compose Vizro pages with components, data, filters, selectors,
tables, custom components, and action callbacks."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# Core Components, Data, and Actions
Use this sub-skill when a task asks for Vizro model composition below the dashboard/page level: cards, graphs, tables, filters, selectors, parameters, buttons, actions, data registration, custom Dash components, or graph/table interactions.
Route elsewhere when the task is mainly about:
- Dashboard skeleton, YAML loading, or app run/deploy: `../core-dashboard-build/SKILL.md`.
- Chart/figure implementation details: `../charts-and-figures/SKILL.md`.
- `vizro-dash-components` TypeScript/generated wrappers: `../dash-components-build/SKILL.md`.
## Component authoring pattern
Typical page composition uses `vizro.models` aliases:
```python
import vizro.models as vm
import vizro.plotly.express as px
page = vm.Page(
title="Sales",
components=[
vm.Card(text="Summary"),
vm.Graph(figure=px.scatter(px.data.iris(), x="sepal_width", y="sepal_length", color="species")),
vm.Table(figure=px.data.tips().head(20)),
],
controls=[
vm.Filter(column="species"),
],
)
```
Always check the live field list when uncertain:
```bash
python scripts/inspect_vizro_schema.py --models Card Graph Table AgGrid Filter Parameter Button Slider Checklist Dropdown
```
## Data patterns
- For small examples and chart code, pass DataFrames directly into `vizro.plotly.express` functions.
- For reusable dashboard datasets, use `vizro.managers.data_manager` with stable string keys, as shown in the YAML example.
- Register data before model build if a YAML dashboard references data by key.
- Avoid hidden global state in tests: reset/rebuild data-manager state or use isolated small fixtures when possible.
Example registration:
```python
from vizro.managers import data_manager
import vizro.plotly.express as px
data_manager["iris"] = px.data.iris()
```
## Controls and selectors
- Use Vizro `Filter`/selector models instead of manual Dash callbacks for normal dashboard filtering.
- Match filter columns to DataFrame column names used in associated figures/tables.
- For model errors, check whether the control belongs in `controls`, whether a target component is expected, and whether the column name exists.
## Actions and callbacks
- Built-in actions live under `vizro.actions`; custom actions are documented in the custom-actions tutorial.
- Wire graph/table actions through Vizro's action model patterns before dropping down to raw Dash callbacks.
- For graph/table interactions, inspect `graph-table-actions.md` and the e2e-flow `wiring-vizro-actions` reference.
- Keep action inputs/outputs stable and named; most action bugs are mismatched component ids, wrong event property, or returning a value with the wrong shape.
## Custom components
- Prefer Vizro model components. Use raw Dash or custom components only when a component cannot be represented by an existing model.
- For `vizro-dash-components` (`Cascader`, `Markdown`), route to `../dash-components-build/SKILL.md` for props and generation.
- If adding a new custom model/component to `vizro-core`, update docs/examples and focused model tests.
## Debug checklist
1. Can a minimal `Dashboard` with one `Page` and one `Card` build?
2. Does each component instantiate independently?
3. Do data keys/columns exist before build?
4. Are filters/selectors attached at the page/control level expected by current schemas?
5. Does an action fail during Pydantic validation, during Dash callback registration, or during browser interaction?
6. If browser-only behavior is involved, confirm Chrome/Chromium availability before treating e2e failures as app regressions.
## Evidence anchors
- `vizro-core/src/vizro/models/__init__.py`: exported component/control/action model classes.
- `vizro-core/src/vizro/actions/__init__.py`: built-in action surface.
- `vizro-core/src/vizro/managers/_data_manager.py`: data registration and lookup behavior.
- Docs: `data.md`, `actions.md`, `filters.md`, `selectors.md`, `table.md`, `graph-table-actions.md`, `custom-components.md`.
- Examples: `vizro-core/examples/tutorial-custom-actions/app.py`, YAML data registration example.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!