VEUI

VEUI on GitHub
Play!EnglishEN

预设样式

VEUI 组件通过 ui 属性为组件提供预设样式。不同主题包可以为每个组件提供不同的 ui 值进行扩展,用户也可以自定义 ui 值及其样式来给 VEUI 组件扩展预设样式。

ui 属性

ui 属性是一个空格分隔的字符串,类似 HTML 原生的 class 属性。其中每一项都代表组件的一种预设样式,像下面的例子中,primarylarge 都定义了 <veui-button> 组件的某个预设样式:

<veui-button ui="primary large">OK</veui-button>

使用 DLS 主题

使用 veui-loader 的相应配置,即可在 VEUI 中加载 veui-theme-dls 主题包。主题包为很多组件提供了不同维度的可选预设样式,可以参考每个组件对 ui 属性的说明来查阅组件支持的预设样式。

内置子主题

veui-theme-dls 主题包内置了一些子主题,可以通过 theme 属性来切换。比如:

<veui-search-box theme="d22"/>
在 GitHub 上编辑此示例编辑
<template>
<article>
  <veui-stack
    direction="column"
    gap="xs"
  >
    <veui-search-box
      placeholder="theme=&quot;d20&quot;"
      ui="strong"
      theme="d20"
    />
    <veui-search-box
      placeholder="theme=&quot;d22&quot;"
      ui="strong"
      theme="d22"
    />
    <veui-search-box
      placeholder="theme=&quot;ai&quot;"
      ui="strong"
      theme="ai"
    />
  </veui-stack>
</article>
</template>

<script>
import { Stack, SearchBox } from 'veui'

export default {
  components: {
    'veui-stack': Stack,
    'veui-search-box': SearchBox
  }
}
</script>
可用的子主题
名称描述
d20D20 主题,为默认主题。
d22D22 主题,与 D20 共享样式 token,但输入类的组件采用了无边框设计。
ai

AI 主题,在 D22 的基础上升级了样式 token,当需要与 D22 共存时,需要同时载入两套样式。配置方式见 起步 › Vue CLI 配置

自定预设样式

新增自定义的 ui 项无需通过组件接口进行注册,只需要在样式文件中针对 [ui~="..."] 选择器添加相应样式即可。

比如:要为 Button 组件新增一个 secondary 的样式,只需为 .veui-button[ui~="secondary"] 编写样式就可以实现。

在 GitHub 上编辑此示例编辑
<template>
<article>
  <veui-button
    class="button"
    ui="primary"
  >
    Primary
  </veui-button>
  <veui-button
    class="button"
    ui="secondary"
  >
    Custom
  </veui-button>
</article>
</template>

<script>
import { Button } from 'veui'

export default {
  components: {
    'veui-button': Button
  }
}
</script>

<style lang="less" scoped>
.button {
  width: 120px;
  margin-right: 1em;
}

.button[ui~="secondary"] {
  background-color: #e5e5ff;

  &:hover {
    background-color: #ddf;
  }

  &:active {
    background-color: #ccf;
  }
}
</style>

自定义主题包

关于自定义主题包的开发,可以参考高级 › 主题来了解更多 VEUI 对主题包的约定接口以及更多自定义 ui 属性的高级方法。

在 GitHub 上编辑此页面编辑
© Baidu, Inc. 2024