@deck.gl-community/widgets

中文文档
9.4.10发布于 2026/11/02MITTypeScriptESM + CJS构建来源已验证近 30 天下载 3064

UI widgets for deck.gl

原始使用文档

Overview

:::caution The deck.gl-community repository is semi-maintained. One of its goals is to collect and preserve valuable deck.gl ecosystem related code that does not have a dedicated home. Some modules may no longer have dedicated maintainers. This means that there is sometimes no one who can respond quickly to issues. :::

NPM Version NPM Downloads deck.gl v9 WebGPU supported

This module packages UI widgets that integrate with deck.gl view state management. It includes classic navigation widgets such as PanWidget and ZoomRangeWidget, HTML overlays, and PanelWidget, the deck adapter for panel-owned UI components.

For renderer lifecycle management, the package also exports DeviceManager and DeviceTabsWidget. Together they let applications choose WebGPU or WebGL, reuse one cached luma device per backend, and reparent the managed canvas between host elements.

ColorLegendWidget renders caller-supplied JSON-safe categorical, continuous, and palette color keys while keeping large categorical lists bounded.

Panel definitions, panel containers, specialized toolbar/toast components, and standalone mounting live in @deck.gl-community/panels. Import components from panels, then pass them through PanelWidget or one of the thin named adapters in this package.

Installation

npm install @deck.gl-community/widgets

Usage

import DeckGL from '@deck.gl/react';
import {OrthographicView} from '@deck.gl/core';
import {PanWidget, ZoomRangeWidget} from '@deck.gl-community/widgets';

const widgets = [
  new PanWidget({placement: 'top-left', style: {margin: '16px'}}),
  new ZoomRangeWidget({placement: 'top-left', style: {margin: '96px 0 0 16px'}})
];

function App() {
  return (
    <DeckGL
      views={new OrthographicView({id: 'ortho'})}
      initialViewState={{target: [0, 0], zoom: 0}}
      controller={true}
      widgets={widgets}
      layers={[/* ... */]}
    />
  );
}

See the Pan and Zoom widgets example for a non-geospatial walkthrough.

See the Standalone Widgets example for deck-independent usage through @deck.gl-community/panels.

For the deck-facing panel widget APIs, see the Widget Panels example, which combines:

  • SidebarPanelWidget for persistent controls
  • ModalPanelWidget for tabbed secondary panels
  • BoxPanelWidget for static summary cards
  • reusable panel definitions imported from @deck.gl-community/panels

Use DeviceManager directly when your application wants custom backend-selection UI or needs to move the managed canvas between containers. Use DeviceTabsWidget when you want a ready-made widget for switching between webgpu and webgl2.

Use ColorLegendWidget when a view needs a serializable color key that can be prepared independently from its deck.gl rendering lifecycle.

Standalone UI such as ToolbarComponent, ToastComponent, and toastManager is exported from @deck.gl-community/panels. The widgets package exports ToolbarWidget and ToastWidget only as deck adapters for those components.

版本与发布记录

@deck.gl-community/widgets 共发布 29 个版本,首次发布于 2025/11/21;过去 12 个月发布了 29 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
9.4.10latest2026/11/029 天前
9.4.92026/10/3111 天前
9.4.9-beta.2beta2026/10/2517 天前
9.4.82026/10/2419 天前
9.4.72026/10/2320 天前
9.4.52026/10/2221 天前

关于 @deck.gl-community/widgets 的常见问题

@deck.gl-community/widgets 是什么?

UI widgets for deck.gl

如何安装 @deck.gl-community/widgets?

在项目目录运行 npm install @deck.gl-community/widgets,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deck.gl/core(~9.4.1)、@luma.gl/core(~9.4.2)、@luma.gl/webgl(~9.4.2)、@luma.gl/webgpu(~9.4.2)、@deck.gl-community/panels(~9.4.0-alpha.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@deck.gl-community/widgets 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@deck.gl-community/widgets 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@deck.gl-community/widgets 可以商用吗?

@deck.gl-community/widgets 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@deck.gl-community/widgets 的下载量有多少?

根据 npm 官方下载统计,@deck.gl-community/widgets 在 2026/10/12 – 2026/11/10 这 30 天内被下载 3,064 次,日均约 102 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@deck.gl-community/widgets 还在维护吗?

最新版本 9.4.10 发布于 2026/11/02(9 天前);至今共发布 29 个版本,其中过去 12 个月发布了 29 个;首次发布于 2025/11/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。