visgl / visgl/deck.gl

Tracker: Widgets

Open
#9,490 0 comments 0 reactions 2 assignees View on GitHub

@ibgreen is already working on this.

Since Mar 4, 2025.

tracker
Dominant language
TypeScript
Stars
14.6k
Forks
2.3k
Avg merge
2d 9h
Merged PRs (30d)
42

Description

Goal: Leverage the new widget support in deck.gl. Increase the catalog of pre-built widgets, improve the usability of the widget system. Support both the geospatial and info vis domains

v9.3+
  • #9962 - widgets with viewId: 'mapbox' render in Mapbox control container
  • #9964
    • #9973
  • GimbalWidget - handle more viewport types
  • CompassWidget - handle more viewport types
  • TimelineWidget - more features, better styling
  • InfoWidget - Decide on if and how to align with getTooltip()
v9.2 Punch List
  • Graduate _ResetViewWidget -
  • Graduate _ScreenshotWidget -
  • Graduate _ThemeWidget -
  • Graduate _ScaleWidget -
  • Graduate _TimelineWidget - Address feedback in https://github.com/visgl/deck.gl/pull/9587
  • Graduate _SplitterWidget - Address issues in https://github.com/visgl/deck.gl/pull/9565
  • Graduate _GeolocateWidget
    • Add option where the geocoder is just a small button and clicking on it opens the text field. Right now it permanently occupies a lot of space, not really fitting in to a column of widgets on the side.
  • Graduate _InfoWidget -
    • support onHover
    • Define semantics of popups when using multiple viewports. @chrisgervang
  • Custom widget developers guide @chrisgervang #9304
  • use CSS variables and add theming for these. --popup-background and --popup-padding @chrisgervang
  • Add React Wrappers + Doc updates for new widgets https://github.com/visgl/deck.gl/pull/9589
  • Add new widgets to the python sub-module
  • Interactive examples or at least screenshots on each widget page
  • Add InfoWidget @felixpalmer
  • Modify widget example to include InfoWidget @felixpalmer
  • Auto reposition the popup so it is not covered when at the edges of the canvas @ibgreen
  • Add minOffset prop to keep the popup from "touching" the edge. @ibgreen
  • Add a small "arrow" / "tip" extrusion to point to the selected point @ibgreen
  • Ensure the improved positioning is recalculated when panning the view @ibgreen
Simple Widget Library Wish List
"Advanced" Widgets Wish List
Components Wish List
  • IconMenu
  • IconToggle
Widget System Features
Widget System Docs
General deck improvements that would benefit Widgets

The following improvements to deck.gl could benefit the widget system or enable useful widgets

  • Add a declarative template system for creating tooltip / popup HTML. RFC in #9551
  • Allow views to set background color - Without it, ScreenshotWidget images are not as expected.
  • Selection extension module? - Needed for "plotly style" selection widget?

PopupWidget tracker

A PoC was landed as _InfoWidget as a placeholder until we have a better solution, it attracted a lot of feedback: Given the amount of feedback, we may want to align on requirements / assumptions:

  • Click?
  • Hover?
  • Programmatic creations (multiple popups?)?
Misc Feedback

@Pessimistress A "real" popup does the following

  • control placement relative to the anchor, or automatically positioned to fit in the map container; @ibgreen
  • have a tip that points to the anchor, like that from Google Maps or Maplibre; @ibgreen
  • have a close button and/or
  • closes when clicked outside; @felixpalmer
  • can render multiple instances on map with the correct z order;

Tooltip tip/arrow

image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.