2020-08-13 15:18:26 +08:00
< script >
import bus from '../../bus';
import { tintColor } from '../../color.js';
2021-07-15 21:06:30 +08:00
import BorderBox from "../../components/demo/color/border-box.vue"
2021-07-20 22:58:06 +08:00
import ColorBox from "../../components/demo/color/color-box.vue"
2021-07-25 00:01:34 +08:00
import TextBox from "../../components/demo/color/text-box.vue"
2021-07-15 21:06:30 +08:00
const borderColors = [
{
name: 'Borde base',
type: 'base',
},
{
name: 'Borde ligero',
type: 'light',
},
{
name: 'Borde claro',
type: 'lighter',
},
{
name: 'Borde extra claro',
type: 'extra-light',
},
]
2021-07-25 00:01:34 +08:00
const textColors = [
{
name: 'Texto primario',
type: 'primary',
},
{
name: 'Texto regular',
type: 'regular',
},
{
name: 'Texto secundario',
type: 'secondary',
},
{
name: 'Texto de placeholder',
type: 'placeholder',
}
]
2020-08-13 15:18:26 +08:00
const varMap = {
'primary': '$--color-primary',
'success': '$--color-success',
'warning': '$--color-warning',
'danger': '$--color-danger',
'info': '$--color-info',
'white': '$--color-white',
'black': '$--color-black',
};
const original = {
primary: '#409EFF',
success: '#67C23A',
warning: '#E6A23C',
danger: '#F56C6C',
info: '#909399',
white: '#FFFFFF',
black: '#000000',
}
export default {
2021-07-15 21:06:30 +08:00
components: {
2021-07-20 22:58:06 +08:00
BorderBox,
ColorBox,
2021-07-25 00:01:34 +08:00
TextBox,
2021-07-15 21:06:30 +08:00
},
2020-08-13 15:18:26 +08:00
mounted() {
this.setGlobal();
},
methods: {
tintColor(color, tint) {
return tintColor(color, tint);
},
setGlobal() {
if (window.userThemeConfig) {
this.global = window.userThemeConfig.global;
}
}
},
data() {
return {
global: {},
primary: '',
success: '',
warning: '',
danger: '',
info: '',
white: '',
black: '',
2021-07-15 21:06:30 +08:00
borderColors,
2021-07-25 00:01:34 +08:00
textColors,
2020-08-13 15:18:26 +08:00
}
},
watch: {
global: {
immediate: true,
handler(value) {
Object.keys(original).forEach((o) => {
if (value[varMap[o]]) {
this[o] = value[varMap[o]]
} else {
this[o] = original[o]
}
});
}
}
},
}
< / script >
## Color
2021-07-15 21:06:30 +08:00
2020-10-16 11:14:34 +08:00
Element Plus utiliza un conjunto de paletas para especificar colores, y así, proporcionar una apariencia y sensación coherente para los productos que construye.
2020-08-13 15:18:26 +08:00
### Color principal
2020-10-16 11:14:34 +08:00
El color principal de Element Plus es el azul brillante y amigable.
2020-08-13 15:18:26 +08:00
< el-row :gutter = "12" >
< el-col :span = "10" :xs = "{span: 12}" >
< div
class="demo-color-box"
:style="{ background: primary }"
>
Brand Color< div class = "value" > #409EFF< / div >
< div
class="bg-color-sub"
:style="{ background: tintColor(primary, 0.9) }"
>
< div
class="bg-blue-sub-item"
v-for="(item, key) in Array(8)"
:key="key"
:style="{ background: tintColor(primary, (key + 1) / 10) }"
>
< / div >
< / div >
< / div >
< / el-col >
< / el-row >
### Color secundario
Además del color principal, se necesitan utilizar distintos colores para diferentes escenarios (por ejemplo, el color en tono rojo indica una operación peligrosa).
2021-07-20 22:58:06 +08:00
< color-box / >
2020-08-13 15:18:26 +08:00
### Color neutro
Los colores neutrales son para texto, fondos y bordes. Puede usar diferentes colores neutrales para representar una estructura jerárquica.
< el-row :gutter = "12" >
< el-col :span = "6" :xs = "{span: 12}" >
2021-07-25 00:01:34 +08:00
< text-box :text-colors = "textColors" / >
2020-08-13 15:18:26 +08:00
< / el-col >
< el-col :span = "6" :xs = "{span: 12}" >
2021-07-15 21:06:30 +08:00
< border-box :border-colors = "borderColors" / >
2020-08-13 15:18:26 +08:00
< / el-col >
< el-col :span = "6" :xs = "{span: 12}" >
< div class = "demo-color-box-group" >
< div
class="demo-color-box demo-color-box-other"
:style="{ background: black }"
>Basic Black< div class = "value" > {{black}}< / div > < / div >
< div
class="demo-color-box demo-color-box-other"
:style="{ background: white, color: '#303133', border: '1px solid #eee ' }"
>Basic White< div class = "value" > {{white}}< / div > < / div >
< div class = "demo-color-box demo-color-box-other bg-transparent" > Transparent< div class = "value" > Transparent< / div >
< / div >
< / div >
< / el-col >
< / el-row >