panel-custom-components

Bridge Python and JavaScript to create reusable Panel components.

34|14|Updated Jul 4, 2025
One-click install
npx skills add https://github.com/MarcSkovMadsen/holoviz-mcp --skill panel-custom-components
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: panel-custom-components
Source: https://github.com/MarcSkovMadsen/holoviz-mcp/tree/main/skills/panel-custom-components
Command: npx skills add https://github.com/MarcSkovMadsen/holoviz-mcp --skill panel-custom-components

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Bridges Python and JavaScript to provide reusable Panel components, enabling developers to combine Python logic with rich JS UIs in a consistent framework.

Core Features & Use Cases

  • Provides patterns for JSComponent, ReactComponent, AnyWidgetComponent, and MaterialUIComponent to cover a wide range of UI integration scenarios.
  • Guides wrapping libraries, building themed components, and testing UI with Playwright across dashboards and data apps.
  • Use case: scaffold a custom panel widget that renders a chart from a JS library while syncing state with Python.

Quick Start

Initialize a new Panel custom component by choosing the type you need and wiring up a minimal _esm component with Python parameters.

Frequently Asked Questions about panel-custom-components

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I bridge Python and JavaScript to create reusable Panel components?

You can bridge Python and JavaScript by using component patterns like JSComponent or ReactComponent that wire ES module imports to Python parameters, ensuring clean state syncing for cross-library UI components in web apps.

Can I use React components with Material-UI in a Panel dashboard?

Yes, you can use React with Material-UI in a Panel dashboard via the MaterialUIComponent pattern, which supports wrapping libraries and building themed components while synchronizing state between Python and JavaScript.

What is the best way to sync state between Python and JavaScript in web apps?

The best way to sync state between Python and JavaScript in web apps is using Panel custom components, which handle ES module imports and lifecycle events to maintain clean, bidirectional state synchronization across dashboard components.

How do I wrap a JavaScript chart library in a Panel widget?

To wrap a JavaScript chart library in a Panel widget, scaffold a custom component using patterns like ReactComponent or AnyWidgetComponent, wiring the JS library rendering to Python parameters to sync state within your data app.

Does Panel support ES module imports for custom UI components?

Yes, Panel supports ES module imports for custom UI components. The framework requires ES module imports and lifecycle handling to ensure proper rendering and clean state syncing between Python logic and JavaScript components.

How do I test Python-JS UI integrations in Panel dashboards?

You test Python-JS UI integrations in Panel dashboards using Playwright, which validates the behavior and state syncing of custom Panel components across various web app scenarios and wrapped UI libraries.