n8n/packages/design-system/theme/preview/index.html
Iván Ovejero 7ce5d8fd90
refactor: Upgrade to Prettier 3 (no-changelog) (#6947)
Supersedes https://github.com/n8n-io/n8n/pull/6937

Excluding fixtures and test workflow JSONs to avoid having to update
tests.
2023-08-16 17:13:57 +02:00

1335 lines
40 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Deprecated - Element UI Theme CSS Variable</title>
<!-- import CSS -->
<link rel="stylesheet" href="../dist/index.css" />
<link rel="stylesheet" href="./docs.min.css" />
</head>
<body>
<div id="app">
<el-container>
<el-container>
<el-main>
<div class="component-preview">
<h4>Color</h4>
<div class="color">
<el-row :gutter="12">
<el-col :span="4" v-for="(color, key) in colorLine" :key="key">
<div class="demo-color-box" :style="{ background: dataProxy(color) }">
{{color}}
<div class="value">{{dataProxy(color)}}</div>
<div class="bg-color-sub">
<div
class="bg-success-sub-item"
v-for="(item, key) in Array(2)"
:key="key"
:style="{ background: tintColor(dataProxy(color), (key + 8) / 10) }"
></div>
</div>
</div>
</el-col>
</el-row>
<el-row :gutter="12">
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other"
:style="{ background: color_text_primary }"
>
Primary Text
<div class="value">{{color_text_primary}}</div>
</div>
</el-col>
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other"
:style="{ background: color_text_regular }"
>
Regular Text
<div class="value">{{color_text_regular}}</div>
</div>
</el-col>
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other"
:style="{ background: color_text_secondary }"
>
Secondary Text
<div class="value">{{color_text_secondary}}</div>
</div>
</el-col>
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other"
:style="{ background: color_text_placeholder }"
>
Placeholder
<div class="value">{{color_text_placeholder}}</div>
</div>
</el-col>
</el-row>
<el-row :gutter="12">
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other demo-color-box-lite"
:style="{ background: border_color_base }"
>
Border Base
<div class="value">{{border_color_base}}</div>
</div>
</el-col>
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other demo-color-box-lite"
:style="{ background: border_color_light }"
>
Border Light
<div class="value">{{border_color_light}}</div>
</div>
</el-col>
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other demo-color-box-lite"
:style="{ background: border_color_lighter }"
>
Border Lighter
<div class="value">{{border_color_lighter}}</div>
</div>
</el-col>
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other demo-color-box-lite"
:style="{ background: border_color_extra_light }"
>
Border Extralight
<div class="value">{{border_color_extra_light}}</div>
</div>
</el-col>
</el-row>
<el-row :gutter="12" v-if="false">
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other"
:style="{ background: color_black }"
>
Background B
<div class="value">{{color_black}}</div>
</div>
</el-col>
<el-col :span="4">
<div
class="demo-color-box demo-color-box-other"
:style="{ background: color_white, color: '#303133', border: '1px solid #eee' }"
>
Background W
<div class="value">{{color_white}}</div>
</div>
</el-col>
<el-col :span="4">
<div class="demo-color-box demo-color-box-other bg-transparent">
Background
<div class="value">Transparent</div>
</div>
</el-col>
</el-row>
</div>
<h4>Typography</h4>
<el-row :gutter="12">
<el-col :span="6" class="heading">
<div :style="{ fontSize: font_size_extra_large }">Heading1</div>
<div :style="{ fontSize: font_size_large }">Heading2</div>
<div :style="{ fontSize: font_size_medium }">Heading3</div>
<div :style="{ fontSize: font_size_base }">Heading4</div>
<div :style="{ fontSize: font_size_small }">Heading5</div>
<div :style="{ fontSize: font_size_extra_small }">Heading6</div>
</el-col>
<el-col :span="9">
<div class="title">Example body text</div>
<p
class="paragraph"
:style="{
fontSize: font_size_base,
fontWeight: font_weight_primary,
lineHeight: font_line_height_primary
}"
>
With MySpace becoming more popular every day, there is the constant need to be
different. There are millions of users. If MySpace layouts are chosen well, then
you can enhance your profile a great deal.
</p>
</el-col>
<el-col :span="9">
<div class="title">Example small text</div>
<p
class="paragraph"
:style="{
fontSize: font_size_small,
fontWeight: font_weight_secondary,
lineHeight: font_line_height_secondary
}"
>
Computers have become ubiquitous in almost every facet of our lives. At work,
desk jockeys spend hours in front of their desktops, while delivery people scan
bar codes with handhelds and workers in the field stay in touch with the central
office via their notebooks. Computer hardware weaves itself through the fabric
of our lives.
</p>
</el-col>
</el-row>
<h4>Button</h4>
<el-row class="demo-line">
<el-button>Default</el-button>
<el-button type="primary">Primary</el-button>
<el-button type="success">Success</el-button>
<el-button type="info">Info</el-button>
<el-button type="warning">Warning</el-button>
<el-button type="danger">Danger</el-button>
</el-row>
<el-row class="demo-line">
<el-button disabled>Default</el-button>
<el-button disabled type="primary">Primary</el-button>
<el-button disabled type="success">Success</el-button>
<el-button disabled type="info">Info</el-button>
<el-button disabled type="warning">Warning</el-button>
<el-button disabled type="danger">Danger</el-button>
</el-row>
<el-row class="demo-line">
<el-button plain>Plain</el-button>
<el-button type="primary" plain>Primary</el-button>
<el-button type="success" plain>Success</el-button>
<el-button type="info" plain>Info</el-button>
<el-button type="warning" plain>Warning</el-button>
<el-button type="danger" plain>Danger</el-button>
</el-row>
<el-row class="demo-line">
<el-button disabled plain>Plain</el-button>
<el-button disabled type="primary" plain>Primary</el-button>
<el-button disabled type="success" plain>Success</el-button>
<el-button disabled type="info" plain>Info</el-button>
<el-button disabled type="warning" plain>Warning</el-button>
<el-button disabled type="danger" plain>Danger</el-button>
</el-row>
<el-row class="demo-line">
<el-button round>Round</el-button>
<el-button type="primary" round>Primary</el-button>
<el-button type="success" round>Success</el-button>
<el-button type="info" round>Info</el-button>
<el-button type="warning" round>Warning</el-button>
<el-button type="danger" round>Danger</el-button>
</el-row>
<el-row class="demo-line">
<el-button icon="el-icon-search" circle></el-button>
<el-button type="primary" icon="el-icon-edit" circle></el-button>
<el-button type="success" icon="el-icon-check" circle></el-button>
<el-button type="info" icon="el-icon-message" circle></el-button>
<el-button type="warning" icon="el-icon-star-off" circle></el-button>
<el-button type="danger" icon="el-icon-delete" circle></el-button>
</el-row>
<el-row class="demo-line">
<el-button>Default</el-button>
<el-button size="medium">Medium</el-button>
<el-button size="small">Small</el-button>
<el-button size="mini">Mini</el-button>
</el-row>
<el-row>
<el-button type="text">文字按钮</el-button>
<el-button type="text" disabled>文字按钮</el-button>
</el-row>
<h4>Radio</h4>
<el-row class="demo-line">
<el-radio v-model="radio" label="1">Option A</el-radio>
<el-radio v-model="radio" label="2">Option B</el-radio>
</el-row>
<el-row class="demo-line">
<el-radio-group v-model="radio1">
<el-radio-button label="New York"></el-radio-button>
<el-radio-button label="Washington"></el-radio-button>
<el-radio-button label="Los Angeles"></el-radio-button>
<el-radio-button label="Chicago"></el-radio-button>
</el-radio-group>
</el-row>
<el-row class="demo-line">
<el-radio v-model="radio2" label="1" border>Option A</el-radio>
<el-radio v-model="radio2" label="2" border>Option B</el-radio>
</el-row>
<h4>Checkbox</h4>
<el-row class="demo-line">
<el-checkbox v-model="checked">Option</el-checkbox>
</el-row>
<el-row class="demo-line">
<el-checkbox-group v-model="checked1">
<el-checkbox-button
v-for="city in ['Shanghai', 'Beijing', 'Guangzhou', 'Shenzhen']"
:label="city"
:key="city"
>{{city}}</el-checkbox-button
>
</el-checkbox-group>
</el-row>
<el-row class="demo-line">
<el-checkbox v-model="checked2" label="Option1" border></el-checkbox>
</el-row>
<h4>Input</h4>
<el-row style="width: 180px">
<el-input placeholder="Please input" v-model="input"></el-input>
</el-row>
<h4>InputNumber</h4>
<el-row>
<el-input-number v-model="inputNumber" :min="1" :max="10"></el-input-number>
</el-row>
<h4>Select</h4>
<el-row>
<el-select v-model="selectValue" placeholder="Select">
<el-option
v-for="item in selectOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-row>
<h4>Cascader</h4>
<el-row>
<el-cascader :options="cascadeOptions" v-model="cascaderValue"></el-cascader>
</el-row>
<h4>Switch</h4>
<el-row>
<el-switch v-model="switchValue"></el-switch>
<el-switch
style="margin-left: 40px"
v-model="switchValue"
active-text="Pay by month"
inactive-text="Pay by year"
>
</el-switch>
</el-row>
<h4>Slider</h4>
<el-row style="width: 380px">
<el-slider v-model="slider"></el-slider>
</el-row>
<h4>DatePicker</h4>
<el-row>
<el-date-picker v-model="datePicker" type="date"></el-date-picker>
</el-row>
<h4>Rate</h4>
<el-row>
<el-rate class="demo-line" v-model="rate"></el-rate>
<el-rate
class="demo-line"
v-model="rate"
show-score
text-color="#ff9900"
score-template="{value} points"
>
</el-rate>
</el-row>
<h4>Transfer</h4>
<el-row>
<el-transfer v-model="transfer" filterable :data="transferData">
<el-button class="transfer-footer" slot="left-footer" size="small"
>Operation</el-button
>
<el-button class="transfer-footer" slot="right-footer" size="small"
>Operation</el-button
>
</el-transfer>
</el-row>
<h4>Table</h4>
<el-row>
<el-table :data="tableData" style="width: 70%">
<el-table-column prop="date" label="Date" width="180"></el-table-column>
<el-table-column prop="name" label="Name" width="180"></el-table-column>
<el-table-column prop="address" label="Address"></el-table-column>
</el-table>
</el-row>
<h4>Tag</h4>
<el-row>
<el-tag class="demo-item" closable>Tag One</el-tag>
<el-tag class="demo-item" closable type="success">Tag Two</el-tag>
<el-tag class="demo-item" closable type="info">Tag Three</el-tag>
<el-tag class="demo-item" closable type="warning">Tag Four</el-tag>
<el-tag class="demo-item" closable type="danger">Tag Five</el-tag>
</el-row>
<h4>Progress</h4>
<el-row style="width: 380px">
<el-progress :percentage="20"></el-progress>
<el-progress :percentage="60" status="exception"></el-progress>
<el-progress :percentage="100" status="success"></el-progress>
</el-row>
<h4>Tree</h4>
<el-row style="width: 380px">
<el-tree :data="treeData" :props="defaultTreeProps"></el-tree>
</el-row>
<h4>Pagination</h4>
<el-row>
<el-pagination layout="prev, pager, next" :total="1000"></el-pagination>
</el-row>
<h4>Badge</h4>
<el-row>
<el-badge :value="12" class="demo-item">
<el-button size="small">comments</el-button>
</el-badge>
<el-badge :value="3" class="demo-item">
<el-button size="small">replies</el-button>
</el-badge>
<el-badge :value="1" class="demo-item" type="primary">
<el-button size="small">comments</el-button>
</el-badge>
<el-badge :value="2" class="demo-item" type="warning">
<el-button size="small">replies</el-button>
</el-badge>
</el-row>
<h4>Alert</h4>
<el-row style="width: 380px">
<el-alert
class="demo-item"
title="success alert"
type="success"
show-icon
></el-alert>
<el-alert
class="demo-item"
title="info alert"
type="info"
close-text="Gotcha"
show-icon
></el-alert>
<el-alert
class="demo-item"
title="warning alert"
type="warning"
show-icon
></el-alert>
<el-alert
class="demo-item"
title="error alert"
type="error"
description="more text description"
show-icon
>
</el-alert>
</el-row>
<h4>Loading</h4>
<el-row>
<el-table :data="tableData" style="width: 90%" v-loading="true">
<el-table-column prop="date" label="Date" width="180"></el-table-column>
<el-table-column prop="name" label="Name" width="180"></el-table-column>
<el-table-column prop="address" label="Address"></el-table-column>
</el-table>
</el-row>
<h4>Message</h4>
<el-row>
<div
role="alert"
class="demo-item el-message el-message--success el-message-fade-leave-active el-message-fade-leave-to"
style="
top: 0;
left: 0;
width: 100px;
opacity: 1;
position: relative;
transform: none;
"
>
<i class="el-message__icon el-icon-success"></i>
<p class="el-message__content">Congrats, this is a success message.</p>
<!---->
</div>
<div
role="alert"
class="demo-item el-message el-message--warning el-message-fade-leave-active el-message-fade-leave-to"
style="
top: 0;
left: 0;
width: 100px;
opacity: 1;
position: relative;
transform: none;
"
>
<i class="el-message__icon el-icon-warning"></i>
<p class="el-message__content">Warning, this is a warning message.</p>
<!---->
</div>
<div
role="alert"
class="demo-item el-message el-message--info el-message-fade-leave-active el-message-fade-leave-to"
style="
top: 0;
left: 0;
width: 100px;
opacity: 1;
position: relative;
transform: none;
"
>
<i class="el-message__icon el-icon-info"></i>
<p class="el-message__content">This is a message.</p>
<!---->
</div>
<div
role="alert"
class="demo-item el-message el-message--error is-closable el-message-fade-leave-active el-message-fade-leave-to"
style="
top: 0;
left: 0;
width: 100px;
opacity: 1;
position: relative;
transform: none;
"
>
<i class="el-message__icon el-icon-error"></i>
<p class="el-message__content">Oops, this is a error message.</p>
<i class="el-message__closeBtn el-icon-close"></i>
</div>
</el-row>
<h4>MessageBox</h4>
<el-row>
<div class="el-message-box">
<div class="el-message-box__header">
<div class="el-message-box__title"><!----><span>Warning</span></div>
<button type="button" aria-label="Close" class="el-message-box__headerbtn">
<i class="el-message-box__close el-icon-close"></i>
</button>
</div>
<div class="el-message-box__content">
<div class="el-message-box__status el-icon-warning"></div>
<div class="el-message-box__message">
<p>This will permanently delete the file. Continue?</p>
</div>
<div class="el-message-box__input" style="display: none">
<div class="el-input">
<!----><input
type="text"
autocomplete="off"
placeholder=""
class="el-input__inner"
/>
<!---->
<!---->
<!---->
</div>
<div class="el-message-box__errormsg" style="visibility: hidden"></div>
</div>
</div>
<div class="el-message-box__btns">
<button type="button" class="el-button el-button--default el-button--small">
<!---->
<!----><span> Cancel </span></button
><button
type="button"
class="el-button el-button--default el-button--small el-button--primary"
>
<!---->
<!----><span> OK </span>
</button>
</div>
</div>
</el-row>
<h4>Notification</h4>
<el-row>
<div role="alert" class="el-notification right" style="position: relative; left: 0">
<!---->
<div class="el-notification__group">
<span class="el-notification__title">Notification</span>
<div class="el-notification__content">
<div>This is a message</div>
</div>
<div class="el-notification__closeBtn el-icon-close"></div>
</div>
</div>
</el-row>
<h4>Menu</h4>
<el-row>
<el-menu :default-active="menu" class="el-menu-demo" mode="horizontal">
<el-menu-item index="1">Processing Center</el-menu-item>
<el-submenu index="2">
<template slot="title">Workspace</template>
<el-menu-item index="2-1">item one</el-menu-item>
<el-menu-item index="2-2">item two</el-menu-item>
<el-menu-item index="2-3">item three</el-menu-item>
<el-submenu index="2-4">
<template slot="title">item four</template>
<el-menu-item index="2-4-1">item one</el-menu-item>
<el-menu-item index="2-4-2">item two</el-menu-item>
<el-menu-item index="2-4-3">item three</el-menu-item>
</el-submenu>
</el-submenu>
<el-menu-item index="3" disabled>Info</el-menu-item>
<el-menu-item index="4">
<a href="https://www.ele.me" target="_blank">Orders</a>
</el-menu-item>
</el-menu>
<el-menu default-active="2" class="demo-line">
<el-submenu index="1">
<template slot="title">
<i class="el-icon-location"></i>
<span>Navigator One</span>
</template>
<el-menu-item-group title="Group One">
<el-menu-item index="1-1">item one</el-menu-item>
<el-menu-item index="1-2">item one</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="Group Two">
<el-menu-item index="1-3">item three</el-menu-item>
</el-menu-item-group>
<el-submenu index="1-4">
<template slot="title">item four</template>
<el-menu-item index="1-4-1">item one</el-menu-item>
</el-submenu>
</el-submenu>
<el-menu-item index="2">
<i class="el-icon-menu"></i>
<span>Navigator Two</span>
</el-menu-item>
<el-menu-item index="3" disabled>
<i class="el-icon-document"></i>
<span>Navigator Three</span>
</el-menu-item>
<el-menu-item index="4">
<i class="el-icon-setting"></i>
<span>Navigator Four</span>
</el-menu-item>
</el-menu>
</el-row>
<h4>Tabs</h4>
<el-row>
<el-tabs v-model="tab" class="demo-item">
<el-tab-pane label="User" name="first">User</el-tab-pane>
<el-tab-pane label="Config" name="second">Config</el-tab-pane>
<el-tab-pane label="Role" name="third">Role</el-tab-pane>
<el-tab-pane label="Task" name="fourth">Task</el-tab-pane>
</el-tabs>
<el-tabs type="card" class="demo-item">
<el-tab-pane label="User">User</el-tab-pane>
<el-tab-pane label="Config">Config</el-tab-pane>
<el-tab-pane label="Role">Role</el-tab-pane>
<el-tab-pane label="Task">Task</el-tab-pane>
</el-tabs>
</el-row>
<h4>Dialog</h4>
<el-row>
<div
role="dialog"
aria-modal="true"
aria-label="Tips"
class="el-dialog"
style="margin: 0"
>
<div class="el-dialog__header">
<span class="el-dialog__title">Tips</span
><button type="button" aria-label="Close" class="el-dialog__headerbtn">
<i class="el-dialog__close el-icon el-icon-close"></i>
</button>
</div>
<div class="el-dialog__body">
<span>This is a message</span>
</div>
<div class="el-dialog__footer">
<span class="dialog-footer"
><button type="button" class="el-button el-button--default">
<!---->
<!----><span>Cancel</span>
</button>
<button type="button" class="el-button el-button--primary">
<!---->
<!----><span>Confirm</span>
</button></span
>
</div>
</div>
</el-row>
<h4>Tooltip</h4>
<el-row>
<div
role="tooltip"
x-placement="top"
class="el-tooltip__popper is-dark"
style="position: relative; width: 40px; text-align: center"
>
Dark
<div x-arrow="" class="popper__arrow"></div>
</div>
<div
role="tooltip"
x-placement="top"
class="el-tooltip__popper is-light"
style="margin-top: 10px; position: relative; width: 40px; text-align: center"
>
Light
<div x-arrow="" class="popper__arrow"></div>
</div>
</el-row>
<h4>Popover</h4>
<el-row>
<div
role="tooltip"
x-placement="top"
id="el-popover-2936"
aria-hidden="true"
class="el-popover el-popper el-popover--plain"
tabindex="0"
style="width: 200px; position: relative"
>
<div class="el-popover__title">Title</div>
this is content, this is content, this is content
<div x-arrow="" class="popper__arrow"></div>
</div>
</el-row>
<h4>Card</h4>
<el-row>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Card name</span>
</div>
</el-card>
</el-row>
<h4>Carousel</h4>
<el-row>
<el-carousel height="150px">
<el-carousel-item v-for="item in 4" :key="item">
<h3>{{ item }}</h3>
</el-carousel-item>
</el-carousel>
</el-row>
<h4>Collapse</h4>
<el-row>
<el-collapse v-model="collapse">
<el-collapse-item title="Consistent" name="1">
<div>
Consistent with real life: in line with the process and logic of real life,
and comply with languages and habits that the users are used to;
</div>
</el-collapse-item>
<el-collapse-item title="Feedback" name="2">
<div>
Operation feedback: enable the users to clearly perceive their operations by
style updates and interactive effects;
</div>
</el-collapse-item>
</el-collapse>
</el-row>
<h4>Avatar</h4>
<el-row class="demo-line avatar-demo">
<el-avatar icon="el-icon-user-solid" />
<el-avatar> avatar </el-avatar>
<el-avatar shape="square" fit="contain" :src="avatarData.url"></el-avatar>
<el-avatar size="large"> large </el-avatar>
<el-avatar size="medium"> medium </el-avatar>
<el-avatar size="small"> small </el-avatar>
</el-row>
<h4>Tree</h4>
<el-row class="demo-line">
<el-tree :data="treeData"></el-tree>
</el-row>
</div>
</el-main>
</el-container>
<el-aside width="400px">
<div class="color-wrap">
<el-card class="box-card">
<div slot="header" class="box-card-header">
<span>Color</span>
<el-button size="small" round type="primary" @click.native="copyCssVariables"
>复制变量</el-button
>
</div>
<el-row>
<p>color-primary 主题色</p>
<el-col :span="6">
<el-color-picker v-model="color_primary"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_primary"></el-input>
</el-col>
</el-row>
<el-row>
<p>color-success 成功题色</p>
<el-col :span="6">
<el-color-picker v-model="color_success"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_success"></el-input>
</el-col>
</el-row>
<el-row>
<p>color-warning 警告题色</p>
<el-col :span="6">
<el-color-picker v-model="color_warning"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_warning"></el-input>
</el-col>
</el-row>
<el-row>
<p>color-danger 危险题色</p>
<el-col :span="6">
<el-color-picker v-model="color_danger"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_danger"></el-input>
</el-col>
</el-row>
<el-row>
<p>color-info 信息题色</p>
<el-col :span="6">
<el-color-picker v-model="color_info"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_info"></el-input>
</el-col>
</el-row>
<el-row>
<p>color-text-primary 主要文字颜色</p>
<el-col :span="6">
<el-color-picker v-model="color_text_primary"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_text_primary"></el-input>
</el-col>
</el-row>
<el-row>
<p>color-text-regular 常规文字颜色</p>
<el-col :span="6">
<el-color-picker v-model="color_text_regular"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_text_regular"></el-input>
</el-col>
</el-row>
<el-row>
<p>color-text-secondary 次要文字颜色</p>
<el-col :span="6">
<el-color-picker v-model="color_text_secondary"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_text_secondary"></el-input>
</el-col>
</el-row>
<el-row>
<p>color-text-placeholder 占位文字颜色</p>
<el-col :span="6">
<el-color-picker v-model="color_text_placeholder"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="color_text_placeholder"></el-input>
</el-col>
</el-row>
<el-row>
<p>border-color-base 一级边框颜色</p>
<el-col :span="6">
<el-color-picker v-model="border_color_base"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="border_color_base"></el-input>
</el-col>
</el-row>
<el-row>
<p>border-color-light 二级边框颜色</p>
<el-col :span="6">
<el-color-picker v-model="border_color_light"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="border_color_light"></el-input>
</el-col>
</el-row>
<el-row>
<p>border-color-lighter 三级边框颜色</p>
<el-col :span="6">
<el-color-picker v-model="border_color_lighter"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="border_color_lighter"></el-input>
</el-col>
</el-row>
<el-row>
<p>border-color-xlight 四级边框颜色</p>
<el-col :span="6">
<el-color-picker v-model="border_color_extra_light"></el-color-picker>
</el-col>
<el-col :span="18">
<el-input v-model="border_color_extra_light"></el-input>
</el-col>
</el-row>
</el-card>
</div>
<el-dialog :visible.sync="visible" title="复制CSS变量">
<pre>{{ cssVariables}}</pre>
<small>使用方式将上面的代码通过style属性添加到项目的html标签上</small>
</el-dialog>
</el-aside>
</el-container>
</div>
</body>
<!-- import Vue before Element -->
<!-- <script src="https://unpkg.com/vue/dist/vue.js"></script> -->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/element-plus/lib/index.js"></script>
<script>
const original = {
color_primary: '#409EFF',
color_success: '#67C23A',
color_warning: '#E6A23C',
color_danger: '#F56C6C',
color_info: '#909399',
color_white: '#FFFFFF',
color_black: '#000000',
color_text_primary: '#303133',
color_text_regular: '#606266',
color_text_secondary: '#909399',
color_text_placeholder: '#C0C4CC',
border_color_base: '#DCDFE6',
border_color_light: '#E4E7ED',
border_color_lighter: '#EBEEF5',
border_color_extra_light: '#F2F6FC',
font_size_extra_large: '20px',
font_size_large: '18px',
font_size_medium: '16px',
font_size_base: '14px',
font_size_small: '13px',
font_size_extra_small: '12px',
font_weight_primary: 500,
font_weight_secondary: 100,
font_line_height_primary: '24px',
font_line_height_secondary: '16px',
};
Vue.config.devtools = true;
Vue.createApp({
data() {
return {
global: {},
colorLine: ['Primary', 'Success', 'Warning', 'Danger', 'Info'],
color_primary: '',
color_success: '',
color_warning: '',
color_danger: '',
color_info: '',
color_white: '',
color_black: '',
color_text_primary: '',
color_text_regular: '',
color_text_secondary: '',
color_text_placeholder: '',
border_color_base: '',
border_color_light: '',
border_color_lighter: '',
border_color_extra_light: '',
font_size_extra_large: '',
font_size_large: '',
font_size_medium: '',
font_size_base: '',
font_size_small: '',
font_size_extra_small: '',
font_weight_primary: 0,
font_weight_secondary: 0,
font_line_height_primary: '',
font_line_height_secondary: '',
radio: '1',
radio1: 'Washington',
radio2: '1',
checked: true,
checked1: ['Shanghai'],
checked2: true,
input: 'Element',
inputNumber: 1,
treeData: [
{
label: '一级 1',
children: [
{
label: '二级 1-1',
children: [
{
label: '三级 1-1-1',
},
],
},
],
},
{
label: '一级 2',
children: [
{
label: '二级 2-1',
children: [
{
label: '三级 2-1-1',
},
],
},
{
label: '二级 2-2',
children: [
{
label: '三级 2-2-1',
},
],
},
],
},
{
label: '一级 3',
children: [
{
label: '二级 3-1',
children: [
{
label: '三级 3-1-1',
},
],
},
{
label: '二级 3-2',
children: [
{
label: '三级 3-2-1',
},
],
},
],
},
],
selectOptions: [
{
value: 'Option1',
label: 'Option1',
},
{
value: 'Option2',
label: 'Option2',
},
{
value: 'Option3',
label: 'Option3',
},
{
value: 'Option4',
label: 'Option4',
},
{
value: 'Option5',
label: 'Option5',
},
],
selectValue: '',
cascadeOptions: [
{
value: 'guide',
label: 'Guide',
children: [
{
value: 'disciplines',
label: 'Disciplines',
children: [
{
value: 'consistency',
label: 'Consistency',
},
{
value: 'feedback',
label: 'Feedback',
},
],
},
],
},
{
value: 'resource',
label: 'Resource',
children: [
{
value: 'axure',
label: 'Axure Components',
},
{
value: 'sketch',
label: 'Sketch Templates',
},
{
value: 'docs',
label: 'Design Documentation',
},
],
},
],
cascaderValue: [],
switchValue: true,
slider: 28,
datePicker: '',
rate: null,
transferData: (() => {
const data = [];
for (let i = 1; i <= 15; i++) {
data.push({
key: i,
label: `Option ${i}`,
disabled: i % 4 === 0,
});
}
return data;
})(),
transfer: [1, 4],
tableData: [
{
date: '2016-05-03',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
{
date: '2016-05-02',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
{
date: '2016-05-04',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
{
date: '2016-05-01',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
],
menu: '1',
tab: 'first',
collapse: ['1'],
treeData: [
{
label: 'Level one 1',
children: [
{
label: 'Level two 1-1',
children: [
{
label: 'Level three 1-1-1',
},
],
},
],
},
{
label: 'Level one 2',
children: [
{
label: 'Level two 2-1',
children: [
{
label: 'Level three 2-1-1',
},
],
},
{
label: 'Level two 2-2',
children: [
{
label: 'Level three 2-2-1',
},
],
},
],
},
{
label: 'Level one 3',
children: [
{
label: 'Level two 3-1',
children: [
{
label: 'Level three 3-1-1',
},
],
},
{
label: 'Level two 3-2',
children: [
{
label: 'Level three 3-2-1',
},
],
},
],
},
],
defaultTreeProps: {
children: 'children',
label: 'label',
},
avatarData: {
url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
},
cssVariables: '',
visible: false,
};
},
watch: {
global: {
immediate: true,
handler(value) {
Object.keys(original).forEach((v) => {
const key = `$--${v.replace(/_/g, '-')}`;
if (value[key]) {
this[v] = value[key];
} else {
this[v] = original[v];
}
});
},
},
color_primary(v) {
this.setCssVariable('color-primary-base', v);
},
color_success(v) {
this.setCssVariable('color-success-base', v);
},
color_warning(v) {
this.setCssVariable('color-warning-base', v);
},
color_danger(v) {
this.setCssVariable('color-danger-base', v);
},
color_info(v) {
this.setCssVariable('color-info-base', v);
},
color_text_primary(v) {
this.setCssVariable('color-text-dark', v);
},
color_text_regular(v) {
this.setCssVariable('color-text-base', v);
},
color_text_secondary(v) {
this.setCssVariable('color-text-light', v);
},
color_text_placeholder(v) {
this.setCssVariable('color-text-lighter', v);
},
border_color_base(v) {
this.setCssVariable('border-color-base', v);
},
border_color_light(v) {
this.setCssVariable('border-color-light', v);
},
border_color_lighter(v) {
this.setCssVariable('border-color-lighter', v);
},
border_color_extra_light(v) {
this.setCssVariable('border-color-xlight', v);
},
},
methods: {
tintColor(a, b) {
return tintColor(a, b);
},
dataProxy(value) {
return this[`color_${value.toLowerCase()}`];
},
setGlobal() {
if (window.userThemeConfig) {
this.global = window.userThemeConfig.global;
}
},
tintColor(c, tint) {
const color = c.replace('#', '');
let red = parseInt(color.slice(0, 2), 16);
let green = parseInt(color.slice(2, 4), 16);
let blue = parseInt(color.slice(4, 6), 16);
if (tint === 0) {
// when primary color is in its rgb space
return [red, green, blue].join(',');
} else {
red += Math.round(tint * (255 - red));
green += Math.round(tint * (255 - green));
blue += Math.round(tint * (255 - blue));
red = red.toString(16);
green = green.toString(16);
blue = blue.toString(16);
return `#${red}${green}${blue}`;
}
},
hexToHSL(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
var r = parseInt(result[1], 16);
var g = parseInt(result[2], 16);
var b = parseInt(result[3], 16);
(r /= 255), (g /= 255), (b /= 255);
var max = Math.max(r, g, b),
min = Math.min(r, g, b);
var h,
s,
l = (max + min) / 2;
if (max == min) {
h = s = 0; // achromatic
} else {
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch (max) {
case r:
h = (g - b) / d + (g < b ? 6 : 0);
break;
case g:
h = (b - r) / d + 2;
break;
case b:
h = (r - g) / d + 4;
break;
}
h /= 6;
}
s = s * 100;
s = Math.round(s);
l = l * 100;
l = Math.round(l);
h = Math.round(360 * h);
return {
h: h,
s: s + '%',
l: l + '%',
};
},
setCssVariable(key, color) {
const hslColor = this.hexToHSL(color);
document.documentElement.style.setProperty(`--${key}-h`, hslColor.h);
document.documentElement.style.setProperty(`--${key}-s`, hslColor.s);
document.documentElement.style.setProperty(`--${key}-l`, hslColor.l);
},
copyCssVariables() {
const cssVariables = document.querySelector('html').getAttribute('style');
this.cssVariables = cssVariables ? cssVariables : '没有进行颜色修改,请先修改颜色!';
this.visible = true;
},
},
}).mount('#app');
</script>
</html>