Explanation#

The explanation section aims to clarify, deepen, and broaden the understanding of Panel with discussions about topics at a high-level or from alternate angles. This may include reasoning about design decisions, historical development, and technical constraints.

Beyond the Getting Started > Core Concepts, which new users must complete before working with Panel, this explanation section is intended to help practitioners form and strengthen a conceptual web that facilitates new and advanced usage directions.

Developing in Panel#

Develop Seamlessly

Learn how we enable you and your team to work seamlessly with Panel across a wide range of development environments

Develop Seamlessly Across Environments

APIs#

In this section we will discuss the principles and design decisions behind Panel’s APIs in order to guide you towards the best approach for structuring your applications. We begin with a set of explanations behind the use of Param in Panel, how it unlocks reactive approaches to write applications and contrast function and class based approaches for writing apps.

Parameters in Panel

Background on the use of Param in Panel.

Param in Panel
Reactivity in Panel

A deep dive into the reactive and callback based APIs in Panel.

Reactivity in Panel
Functions vs Classes

A discussion that contrasts function and class based APIs in Panel.

Functions vs. Classes

Next let us contrast the different APIs offered by Panel by applying them to a particular problem.

1. Reactive API

Linking functions or methods to widgets using pn.bind or the equivalent pn.depends decorator.

Reactive API
2. Declarative API

Declare Parameters and their ranges in Parameterized classes, then get GUIs (and value checking!) for free.

Declarative API
3. Callbacks API

Generate a UI by manually declaring callbacks that update panels or panes.

Callbacks

Finally let’s look at some examples demonstrating how each API can be applied to build the same app:

Stock Explorer - Callback API

Build a stock explorer app using the .param.watch callback API.

Stock Explorer - Callback API
Stock Explorer - Declarative API

Build a stock explorer app using the Param based declarative API.

Stock Explorer - Declarative API
Stock Explorer - Reactive API

Build a stock explorer app using the reactive API.

Stock Explorer - Reactive API
Outlier Explorer - Declarative API

Build a simple outlier explorer app using the declarative API.

Declarative API with Class-Based Approach

Components#

Built in components

Deepen your understanding about Panel’s built in components.

Components Overview
ReactiveHTML components

Deepen your understanding about custom ReactiveHTML components

Building ReactiveHTML Components

Architecture#

Panel Communications

Deepen your understanding about how Panel communicates between Python and Javascript in different contexts.

Communication Channels

Styling#

Designs & Themes

Understand how the Panel Design and Theme components work internally.

Designs and Theming
Templates

Discover Panel templates and how to use them.

Templates Overview

Dependencies#

Panel and Param

Learn about why and how Panel utilizes the Param library.

https://assets.holoviz.org/panel/background/dependencies/param_logo_stacked.png
Panel and Param
Panel and Bokeh

Learn about why and how Panel utilizes the Bokeh library.

https://assets.holoviz.org/panel/background/dependencies/bokeh-icon%405x.png
Panel and Bokeh

Technology comparisons#