使用组件

上次更新日期: 2023年2月2日

了解如何在 Adobe XD 中跨设计系统使用组件。

组件是具有无与伦比的灵活性的设计元素,可帮助您创建和维护重复元素,同时针对不同的上下文和布局更改实例,例如,在不同的上下文中使用按钮。

继续阅读,了解如何使用组件轻松维护同一基础元素的多个版本!

组件

在继续使用 XD 之前,请先熟悉这些概念:

创建组件

要创建组件,请选择“对象”>“制作组件”。 您还可以选择一个对象或对象组,并使用以下任意选项:

属性检查器
从“属性检查器”中

单击属性检查器组件部分中的 + 图标。

“资源”面板
从“资源”面板中

“资源”面板的“组件”部分中单击 + 按钮。

上下文菜单
从上下文菜单中

右键单击一个对象并选择“制作组件” (Ctrl/Cmd+K)。

第一次在 XD 中创建组件时,此组件将成为主组件,主组件用左上角的绿色实心菱形表示。 您可以像编辑任何其他元素一样编辑组件。 

创建组件

您可以在“属性检查器”中查看所选组件的名称。 若要重命名组件,在“属性检查器”中双击其名称。

注意事项

  • XD 没有用于编辑主组件的专用视图。 编辑主组件时,可在画布上编辑。
  • 如果在画布上删除主组件,您仍可以选择一个实例并访问上下文菜单中的“编辑主组件”选项。 XD 将在画布上生成主组件。
  • 如果要取消链接单个组件实例,请使用上下文菜单中的“取消组合组件”选项。 但是,如果要取消链接画布上的所有实例,请使用“资源”面板中的删除选项。
  • 为确保编辑的是主组件,请注意定界框左上角是否有绿色实心菱形。

最佳实践

以下是使用组件时的一些最佳实践:

  • 是否创建大型组件设计系统? 确保在单独的画板上整理相关的主组件。 例如,一个画板上的按钮和另一个画板上的导航栏。
  • 构建设计系统时,请确保在最小的原子级别构建组件,以获得最大的灵活性和可重用性。 例如,在创建对话框组件时,确保对话框的按钮是嵌套在该对话框组件中的实例

使用组件实例

主组件的每个副本都称为实例。 组件实例用左上角的绿色空心菱形表示。 对主组件进行更改时,系统会对所有实例应用相同的更改。

实例覆盖
实例覆盖

覆盖是仅适用于该实例,而非主组件的独特更改。 如果您更改实例中的属性,XD 会将该属性标记为“覆盖”。 您可以在不断开与其主组件连接的情况下,覆盖实例属性。 

主组件
主组件

实例
实例

具有覆盖的实例
具有覆盖的实例

最佳实践

以下是使用组件实例时的一些最佳实践:

  • 是否要试用组件变体? 从上下文菜单中选择“取消组合组件”,以从主组件中分离实例。
  • 是否要尝试查找:
    • 画布上某个组件的所有实例? 在“资源”面板中右键单击组件,然后选择“在画布上突出显示”
    • 使用实例时的主组件? 右键单击实例,然后选择“编辑主组件”
    • 编辑主组件后的上一个组件实例? 右键单击组件,并选择“返回上一个实例”。 

编辑主组件

编辑主组件时,所有实例都会更新,除非所有实例都包含该特定属性的覆盖。 

要编辑主组件,请在画布上选择一个实例或组件,然后使用以下任意选项:

上下文菜单
从画布上的上下文菜单中

右键单击画布上的实例,然后选择编辑主组件 (Shift + Ctrl/Cmd + K)。

“资源”面板
从“资源”面板中

“资源”面板中右键单击组件,然后选择“编辑主组件”

属性检查器
从“属性检查器”中

组件部分中,选择默认状态旁边的编辑铅笔图标

完成主要组件的编辑后,如果想返回到上一个实例,右键单击该组件并选择“返回上一个实例”

注意事项

  • 旋转和不透明度属性不会从主组件传播到实例。
  • 为确保编辑的是主组件,请注意定界框左上角是否有绿色实心菱形标记。

最佳实践

以下是编辑主组件时的最佳实践:

  • 如果从画布中删除主组件,请右键单击实例,然后选择“编辑主组件”。 XD 将在画布上生成主组件。

覆盖组件实例

主组件提供维护设计系统所需的一致性。 对主组件所做的任何更改都会自动传播到其实例。 但是,设计系统只能在所提供的灵活度下使用。 您可以从相同的原始元素开始,但必须根据元素所使用的上下文进行自定义。 这就是实例的来源。

覆盖是仅适用于该实例,而非主组件的独特更改。 如果您更改实例中的属性,XD 会将该属性标记为“覆盖”。 被覆盖的属性始终保持不变,即使从主组件中编辑相同的属性也是如此。 

若要清除覆盖并重置主组件,请右键单击实例,然后选择“重置为主状态”。 

在组件实例中覆盖
在组件实例中覆盖

覆盖类型

以下是一些覆盖类型及其使用场景:

  • 文本:您可以编辑组件实例中的文本内容,例如,在更改按钮组件的标签时。 
  • 位图:您可以替换组件实例中的位图内容,例如,在替换个人资料照片组件中的图像时。
  • 大小:在应用内边距和响应式调整大小时,可以调整实例的大小,例如,在修改表单中文本字段的大小时。
  • 外观:您可以修改填充颜色、边框和模糊等外观属性,例如,在修改通知的背景颜色时。
  • 布局和结构:您可以在组件实例中添加、删除和移动对象,例如,在修改包含其他菜单条目的下拉菜单时。
结构和布局覆盖
覆盖类型:文本、位图、大小、外观和布局

大小覆盖

组件也可以调整大小,并且天生具备响应式调整大小的强大功能。 如果您调整主组件的大小,则尚未以覆盖形式手动调整大小的实例会自动调整大小。 因此,已经调整大小的实例会保留其调整大小的位置作为覆盖。 

在主组件或其实例中如何调整大小?

  • 您可以独立调整实例的大小,而不会影响主组件。
  • 您可以调整整个组件的大小,还可以更改其中项目的布局。
  • 不论如何调整组件实例的大小,您都可以对组件实例进行更改。

与响应式调整大小一样,XD 会在您调整元素大小时重新创建元素在较大或较小画布上的位置。

“属性检查器”中,可以将“响应式调整大小”“自动”切换为“手动”,这样,就可以编辑约束以进行更多控制。

外观覆盖

外观覆盖
外观覆盖

在创建可重复使用的元素时,根据上下文更改原始元素很重要。 因此,您可以覆盖实例的每个样式和外观属性。 通过覆盖可以执行一系列更改,同时仍保留与主组件的关联。 

布局和结构覆盖

您不仅可以覆盖组件的大小或其中元素的布局,还可以在结构上覆盖组件。 这意味着您可以在主组件及其实例中添加或删减元素。

布局和结构覆盖
布局和结构覆盖

如果将对象添加到主组件,那么对象还会添加到各个实例中。 添加对象时,XD 会应用响应式调整大小算法并自动在对象上放置约束。 这取决于新对象相对于其容器的位置。 从主组件中删除对象时,也会从所有实例中删除该对象。

元素也可以在实例中添加或删除,并在添加对象时自动在对象上放置约束。 删除实例中的元素时,仅删除该实例中的元素。 同一元素在主组件中仍然存在。 

注意事项

  • 您可以将所有覆盖而非单个覆盖重置回主组件。 
  • 如果已在实例上将某个属性标记为覆盖,请选择“重置为主组件状态”以使其重新与主组件同步。 

最佳实践

以下是在组件实例中使用覆盖时的一些最佳实践:

  • 要创建组件的变体以供重用,请在主组件中创建状态,而非创建具有覆盖的实例。
  • 在覆盖实例时,确保所覆盖的属性不需要来自主组件的更新。 例如,在按钮组件中,覆盖文本可确保标签可以不同,但大小和颜色仍与主组件同步。 

向组件添加状态

组件状态允许您保存组件的不同变体,以便每次重复使用。 在主组件上创建覆盖后,您可以根据这些覆盖创建一个状态,以便能够轻松地重复使用该组件。

例如,您可以创建一个具有不同变体的按钮组件,如主组件和次组件。 利用状态,您可以使用主组件上的覆盖创建变体。 

使用状态和组件时,请记住以下几点:

  • 在主组件上创建的状态在该组件的所有实例中都可用。 因此,您可以创建具有多个实例的组件并且可以轻松切换状态。
  • 您可以在“属性检查器”中通过状态切换器重命名和删除状态。
  • 您可以添加一个触发器,其中包含用于切换组件状态的操作。 例如,将鼠标悬停在按钮组件上时,可以从默认状态切换到“悬停”状态。 

添加状态

在创建了组件之后,“属性检查器”会列出具有“默认状态”的组件。 现在,您可以为组件添加以下三种类型的状态:新状态悬停状态切换状态

创建新状态

对于希望显示组件变体(例如组件的禁用或单击版本)的情况,使用“新状态”

新状态
新状态

“设计”模式下,单击“属性检查器”中主组件的“默认状态”旁边的 + 按钮,然后选择“新状态”

默认情况下,新状态没有内置任何交互性。 有关如何将交互连接到组件的更多信息,请参阅将交互性添加到组件

创建悬停状态

如果您希望与原型交互期间将鼠标悬停在组件上时组件发生变化并显示不同状态,请使用“悬停状态”

悬停状态
悬停状态

设计模式下,单击属性检查器中主组件的默认状态旁边的 + 按钮,然后选择悬停状态

默认情况下,悬停状态中内置了交互性。 

创建切换状态

当您要创建具有交互式切换行为的组件(例如切换按钮、单选按钮、复选框等)时,请使用切换状态。 

切换状态
切换状态

设计模式下,单击属性检查器中主组件的默认状态旁边的 + 按钮,然后选择切换状态

创建切换状态后,默认情况下,XD 将在默认状态切换状态之间自动内置两个双向点击交互,以使其具有完全交互性。

查看和管理状态

为组件创建状态之后,可编辑组件的属性并直观地了解与组件交互时怎样显示组件。 以下是一些与状态关联的工作流程:

切换状态

切换状态
切换状态

选择组件并通过“属性检查器”在各种状态之间切换。

重命名状态

重命名状态
重命名状态

“属性检查器”中双击组件状态名称,然后添加新名称。 您只能重命名和删除主组件中的状态。 无法重命名默认状态。

删除状态

删除状态
删除状态

右键单击组件状态并选择“删除”。 从主组件删除组件状态时,具有活动状态的组件实例将切换回默认状态。

状态中的覆盖

您对主组件中的默认状态所做的任何编辑都会传播到所有实例中的默认状态。 同样,对主组件中的特定状态进行编辑会导致所有实例都收到针对该特定状态所做的编辑。 请务必确保编辑的是主组件中的状态,以便在所有实例中更新它。

使用状态,您确实可以覆盖文本、位图、大小、布局和外观等属性。 覆盖实例中的状态属性后,此实例将不再从主组件接收这些属性的更新。

如果您对覆盖的结果不满意,可以通过右键单击实例并选择“重置为主组件状态”,将其重置回原始主组件。 这将清除实例上的所有覆盖并将其重置回主组件。

添加交互性

在“原型”模式下,您可以使用点击悬停按键和游戏手柄以及语音触发器连接组件状态之间的交互。 连接组件状态之间的交互类似于连接画板之间的交互。 主要区别是在连接组件状态之间的交互时,选择状态而非画板作为目标。

创建点击交互
连接组件状态以创建点击交互

切换到原型选项卡。

选择要创建交互的源组件状态。 

单击组件状态上的 > 图标或“属性检查器”的“交互”部分中的 + 以添加交互。

选择点击(用于单击事件)、悬停(用于鼠标悬停操作)、按键和游戏板(导航和可访问性用例)或语音(导航和可访问性用例)作为触发器。

选择操作类型(例如“自动制作动画”或“过渡”)。

选择一个状态作为目标。

切换到“预览”窗口并测试组件的交互性。

您可以为同一个组件状态定义多个交互。 例如,如果有一个切换开关,它同时具有悬停和点击状态,则可通过重复步骤 4-7 两次以定义点击和悬停状态而定义这些交互。 在创建多个交互之后,可看到“交互”部分中显示已定义的这些交互。 请在这些交互之间切换并修改交互属性以适合您的要求。 

如果要创建嵌套的悬停交互,例如飞出菜单或带有多状态按钮的弹出窗口,则还可以嵌套具有悬停状态的组件。

注意事项

  • 双击某个组件时,“属性检查器”中的状态选取器消失。
  • XD 仅支持点击、悬停、按键和游戏手柄以及语音作为状态之间的触发器。
  • XD 不会在实例中将覆盖从一个状态传播到另一个状态。

最佳实践

以下是将状态添加到组件时的一些最佳实践:

  • 务必为组件创建状态以重复使用组件的不同变体。
  • 您可以切换到原型模式并手动编辑不同状态之间的交互。
  • 在添加状态之间的交互性时,如果要更改属性(如颜色),则选择“无过渡”作为操作或“溶解”作为动画。 如果要制作状态之间的位置或大小的动画,请选择“自动制作动画”作为操作。
  • 创建新状态时,可以首先复制默认状态或现有状态。 根据最终目标,您可以选择默认状态,然后单击 + 为新状态复制该默认状态,或选择现有状态,然后单击 + 复制该状态。 从现有状态创建新状态时,新状态也将具有相同的覆盖。 这意味着被覆盖的属性将不会收到来自默认状态的任何更新。 对于大多数用例,我们建议针对默认状态单击 + 来创建新状态。 从默认状态开始,请确保它与主组件同步且不包含任何覆盖。

管理组件

视图 

显示资源中的组件
从“资源”面板显示组件

您可以从资源面板
查看新实例或将其拖拽到画布上。 要定位所有实例,请在资源面板中右键单击组件并选择在画布上高亮显示
要在资源面板中定位组件,请在画布上右键单击组件实例并选择资源面板中显示组件。 

编辑、重命名或删除

“资源”面板中的上下文菜单
“资源”面板中的上下文菜单

“资源”面板中右键单击某个组件,或在画布上选择一个实例,然后使用上下文菜单选项进行编辑或删除。 要重命名组件,请右键单击并选择重命名。 

重置为主组件状态

重置为主组件状态
重置为主组件状态

右键单击实例并选择重置为主状态以清除所有覆盖并将其重新关联到主组件。
要将实例从主组件分离,请右键单击实例并选择取消组件分组
。  

添加交互性到组件

您可以向组件以及在状态之间添加交互性。 在主组件上创建交互时,该组件的所有实例都会收到该交互。 对主组件上的交互所做的任何更改都会自动更新实例上的交互。

您还可以在实例上覆盖交互,此后,实例将不再从主组件接收更新。 就像设计覆盖一样,您可以覆盖组件的交互属性。

注意事项

  • 无法阻止将交互从主组件传播到实例。
  • 无法区分(作为覆盖)添加到实例的交互与实例从主组件继承的交互。
  • 状态支持有限的一组操作和触发器。 

最佳实践

下面是向组件添加交互性时的最佳实践:

  • 当您在文档之间复制粘贴或共享组件时,XD 不会保留组件与画板的交互,因为我们无法保证目标画板始终可用。 但是,XD 会为每个组件保留状态与状态的交互。 这意味着,对于具有悬停状态和画板点击触发器的组件,在将其粘贴到另一个文档中时,XD 会保留悬停状态交互,并丢弃画板点击触发器。 
  • 选择何时向主组件与实例添加交互。
  • 如果所有实例共享同一目标,则连接主组件会更有效,因为主组件会自动传播到所有实例。 例如,转到主屏幕的“主页”按钮。
  • 如果所有或部分实例具有不同的目标,则连接单个实例(而非主组件)更方便。 例如,在目标因使用情况和上下文而异的项目中使用的主按钮。

了解详情

要详细了解如何使用组件,请观看此视频。

观看时长:9 分钟


接下来学什么?

我们已向您介绍了如何在 XD 中使用组件。 可继续学习如何在 XD 中使用嵌套组件

有疑问或想法?

询问社区

有问题要问或要分享想法? 欢迎加入 Adobe XD 社区。 我们很乐意倾听您的心声并欣赏您的创意作品!