Skip to content

panel-extensions/panel-tiles

Repository files navigation

panel-tiles

CI pypi-version python-version

A draggable, resizable grid layout for Panel applications (Muuri + interact.js).

Dashboard example

Installation

pip install panel-tiles

Quick Start

from panel_tiles import TileGrid

...

grid = TileGrid(
    objects=[
        revenue_ind,
        growth_ind,
        users_ind,
        retention_ind,
        pn.pane.Bokeh(line_fig),
        pn.pane.Bokeh(bar_fig),
        table,
    ],
    layout=[
        {"width": 25, "height": 100, "visible": True},
        {"width": 25, "height": 100, "visible": True},
        {"width": 25, "height": 100, "visible": True},
        {"width": 25, "height": 100, "visible": True},
        {"width": 50, "height": 300, "visible": True},
        {"width": 50, "height": 300, "visible": True},
        {"width": 100, "height": 250, "visible": True},
    ],
    sizing_mode="stretch_width",
    height=750,
)

pmui.Page(main=[grid], title="panel-tiles").servable()

Features

  • Drag-and-drop tile reordering
  • Resize tiles from the corner handle
  • Configurable layout with percentage widths and pixel heights
  • Close buttons with hide or remove behavior
  • Persist user layouts to localStorage
  • Read-only mode for fixed dashboards
  • Dynamic add/remove of tiles at runtime

Development

Managed with pixi.

git clone https://github.com/panel-extensions/panel-tiles.git
cd panel-tiles

pixi run postinstall
pixi run compile
pixi run test

UI tests:

pixi run -e test-ui test-ui

License

See LICENSE.

About

Provides a draggable and resizable grid of tiles for Panel.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors