Skip to content
Back to skills

Core Components Data Actions

ASecurity

"Compose Vizro pages with components, data, filters, selectors,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
documentationtypescriptpythonbashexpress

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill core-components-data-actions --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Core Components Data Actions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-core-components-data-actions/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-core-components-data-actions)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.