Skip to main content

模式

模式让你能够为用户呈现不同的工作流。
在 Widget Playground 中尝试不同的模式——在侧边栏中打开 Mode。

默认模式

default 模式在统一视图中提供标准的桥接和交换功能。

分屏模式

split 模式分离了心智模型,通过主页面上的标签为桥接和交换体验提供不同的视图。

分屏模式选项

对于 mode: 'split',modeOptions 配置控制是显示 “Swap” 和 “Bridge” 两个标签,还是显示单一界面:
  • 默认(无选项):显示 “Bridge” 和 “Swap” 两个标签
  • split: 'bridge':仅显示桥接界面(无标签)
  • split: 'swap':仅显示交换界面(无标签)
  • split: { defaultTab: 'bridge' } 或 split: { defaultTab: 'swap' }:显示两个标签,并选中指定的默认标签
split-subvariant

Split mode (Default)

swap-subvariant

Split mode (Swap option)

自定义模式

custom 模式提供了不同的外观,允许你展示自定义组件并构建包括 NFT Checkout 和 Deposit 在内的全新流程。

Checkout 流程

用于 NFT 或产品的结账流程:

Deposit 流程

用于协议的存款流程:
请参阅完整的 Deposit 流程示例。

Refuel 模式

refuel 模式针对 gas 加油操作进行了优化,帮助用户在目标链上获取原生代币。

ModeOptions 接口


变体

变体提供了一种方式,可根据你应用中可用的空间来优化 Widget 的呈现样式。
在 Widget Playground 中尝试不同的变体——在侧边栏中打开 Variant。

紧凑型变体

当你在页面上空间有限或处理较小屏幕尺寸时,紧凑型变体是一个很好的选择。它在紧凑视图中拥有桥接和交换所需的一切,并允许你将 widget 集成到 Web 应用页面中的任意位置。
Compact variant

宽屏型变体

宽屏型变体让你能够充分利用更大的页面和屏幕尺寸,在那里你可能拥有更多可用的屏幕空间。它以带有流畅动画的侧边栏形式,提供了对可用路由更全面的概览。
Wide variant

链侧边栏

wide 变体默认显示一个链侧边栏。要隐藏它,请在 hiddenUI 中将 chainSidebar 设为 true:

抽屉型变体

抽屉型变体允许你根据用户交互来显示或隐藏 Widget。它可以很好地放置在页面的一侧,并具有与紧凑型变体相同的布局。
Drawer variant

控制抽屉

抽屉没有用于打开和关闭它的预构建按钮。要控制抽屉,请创建一个 ref 并将其分配给 widget:

WidgetDrawer 接口

受控抽屉

你还可以使用 open 和 onClose props 从外部控制抽屉状态:

高度

以下是配置 widget 高度的几种推荐方式:默认、限制最大高度、限制高度和全高度。
在 Widget Playground 中尝试不同的高度配置——在侧边栏中打开 Height。
对于紧凑型和宽屏型变体,我们推荐使用默认、限制最大高度或限制高度。全高度仅推荐用于紧凑型。抽屉型变体使用完整的容器/视口高度。

默认

默认情况下,widget 在较小的页面上适应其内容,并在具有长列表的页面上以 686 像素(maxHeight)为上限。这无需更改配置。

限制最大高度

widget 会扩展和收缩以适应内容,但不会超过所声明的最大高度。溢出的页面会变为可滚动。 在 theme.container 上将 maxHeight 设为一个数字(像素)。需要设置高于 686(默认值)的值。

Page height can change across pages

限制高度

所有页面都占据指定的确切高度——widget 保持一致的大小。溢出的页面会变为可滚动。 在 theme.container 上将 height 设为一个数字(像素)。需要设置高于 686(默认值)的值。

Page height stays consistent across pages

不要同时使用 height 和 maxHeight——它们代表 widget 中不同的布局方式。

全高度

推荐用于移动端和屏幕空间有限、且 widget 是主要内容的场景。widget 会填满其容器 HTML 元素的完整高度,并将滚动委托给页面。

For use on smaller screens

配置详解:
  • variant: ‘compact’ — 必需;紧凑型专为较小屏幕而构建。
  • theme.container — display: 'flex' 和 height: '100%' 使 widget 填满其容器。
  • theme.header(可选)— 设置 position: 'fixed' 和一个 top 值以使页头固定。调整 top 以考虑 widget 上方的元素(例如,一个 60px 的导航栏 → top: 60)。若不设置,页头会随页面内容滚动。
全高度将尺寸委托给父容器,因此你页面的 HTML 和 CSS 必须正确处理这一点。
  • 可能需要更新视口 meta,以使页面正确呈现
    • 例如 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  • Widget Playground 使用 min-height: 100dvh——高于视口的页面保持可滚动,而较矮的页面则使用 flex 填满屏幕。
  • 在页面的根/body 上添加 overscroll-behavior: none;,以防止不期望的滚动行为。
考虑相对于你站点的导航、页头和页脚进行放置。在 Widget Playground 中预览页头和/或页脚的放置——在侧边栏中打开 Developer Controls 并切换 ‘Show mock header’ 和/或 ‘Show mock footer’。