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 接口

受控抽屉

你还可以使用 openonClose 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

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

全高度

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

For use on smaller screens

配置详解:
  • variant: ‘compact’ — 必需;紧凑型专为较小屏幕而构建。
  • theme.containerdisplay: '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’。