🌈 An enterprise-class UI components based on Ant Design and Vue. 🐜
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

58 lines
1.3 KiB

<docs>
---
order: 5
version: 3.0
title:
zh-CN: 主题
en-US: Theme
---
## zh-CN
通过 theme 修改主题
## en-US
Modify theme by `theme` prop.
</docs>
<template>
<a-config-provider
:theme="{ token: { colorPrimary: data.colorPrimary, borderRadius: `${data.borderRadius}px` } }"
>
<a-form :model="data" name="theme" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }">
<a-form-item name="colorPrimary" label="Primary Color">
<input
type="color"
:value="data.colorPrimary"
@input="e => (data.colorPrimary = e.target.value)"
/>
</a-form-item>
<a-form-item name="borderRadius" label="Border Radius">
<a-input v-model:value="data.borderRadius" />
</a-form-item>
<a-form-item name="submit" :wrapper-col="{ offset: 4, span: 20 }">
<a-button type="primary">submit</a-button>
</a-form-item>
</a-form>
</a-config-provider>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import { theme } from 'ant-design-vue';
const defaultData = {
borderRadius: 6,
colorPrimary: '#1677ff',
};
const data = ref(defaultData);
const { token } = theme.useToken();
</script>
<style scoped>
input[type='color'] {
border: 1px solid v-bind('token.colorBorder');
background-color: v-bind('token.colorBgBase');
}
</style>