Tracker: Widgets
Open
@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 withgetTooltip()
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
-
ZoomWidget -
FullScreenWidget -
ScreenshotWidgethttps://github.com/visgl/deck.gl/pull/9454 -
CompassWidget(geospatial) -
ResetViewWidget(infovis: plotly style reset view ) https://github.com/visgl/deck.gl/pull/9478 -
ThemeWidgethttps://github.com/visgl/deck.gl/pull/9471 - experimental version landed -
LoadingWidgethttps://github.com/visgl/deck.gl/pull/9485 - experimental version landed -
ScaleWidget(geospatial) https://github.com/visgl/deck.gl/pull/9491 - experimental_ScaleWidgetlanded -
GeocoderWidget(geospatial) https://github.com/visgl/deck.gl/pull/9488 - experimentalGeolocateWidgetlanded -
GimbalWidget
"Advanced" Widgets Wish List
- "SplitterWidget" - Landed but address issues in https://github.com/visgl/deck.gl/pull/9565
-
PopupWidgethttps://github.com/visgl/deck.gl/pull/8958 - experimental_InfoWidgetlanded @felixpalmer -
TooltipWidget- (exists internally, expose?, deduplicate?) -
TimelineWidget**- even the most simple playback would be very valuable @chrisgervang - "SelectRectToZoomWidget" (infovis: Rectangular selection to zoom - plotly style zoom )
- "SelectRectToSelectRowsWidget" - (infovis: Rectangular selection, lasso selection - plotly style selection widget)
- AI Assistant Widget https://github.com/visgl/deck.gl/pull/9428
-
EditModeWidgets- editable-layer controls as widgets - Data Widgets (CARTO proposal) https://github.com/visgl/deck.gl/issues/8057
Components Wish List
- IconMenu
- IconToggle
Widget System Features
-
position: 'top-center'| 'bottom-center' | 'center'? (E.g.often a permanent geocoder text field would be placed at top-center of the map.) - Widgets module RFC, core plumbing https://github.com/visgl/deck.gl/issues/7946
- JSON support for widgets https://github.com/visgl/deck.gl/pull/9314
- Pydeck support for widgets https://github.com/visgl/deck.gl/pull/9342
- React wrappers widgets
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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.