@mc-markets/ui 1.0.37 → 1.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +38 -4
- package/dist/ui.css +1 -0
- package/package.json +17 -48
- package/packages/styles/README.md +0 -150
- package/packages/styles/element/form.scss +9 -15
- package/packages/styles/element/popper.scss +6 -0
- package/packages/styles/element/select.scss +35 -0
- package/packages/styles/index.scss +2 -1
- package/packages/styles/{theme-config.ts → theme-config.js} +35 -55
- package/packages/styles/variables.scss +17 -79
- package/dist/components/Alert/Alert.vue.d.ts +0 -18
- package/dist/components/Alert/index.d.ts +0 -3
- package/dist/components/Banner/Banner.vue.d.ts +0 -18
- package/dist/components/Banner/index.d.ts +0 -3
- package/dist/components/DatePicker/DatePicker.vue.d.ts +0 -17
- package/dist/components/DatePicker/index.d.ts +0 -3
- package/dist/components/Dialog/index.vue.d.ts +0 -51
- package/dist/components/Empty/Empty.vue.d.ts +0 -19
- package/dist/components/Empty/index.d.ts +0 -3
- package/dist/components/Icon/index.d.ts +0 -3
- package/dist/components/Icon/types.d.ts +0 -35
- package/dist/components/Notification/Notification.vue.d.ts +0 -18
- package/dist/components/Notification/index.d.ts +0 -3
- package/dist/components/Pagination/Pagination.vue.d.ts +0 -17
- package/dist/components/Pagination/index.d.ts +0 -3
- package/dist/components/Tab/Tab.vue.d.ts +0 -17
- package/dist/components/Tab/TabPane.vue.d.ts +0 -18
- package/dist/components/Tooltips/Tooltips.vue.d.ts +0 -18
- package/dist/components/Tooltips/index.d.ts +0 -3
- package/dist/index.d.ts +0 -24
- package/dist/node_modules/@babel/parser/typings/babel-parser.d.ts +0 -235
- package/dist/node_modules/@babel/types/lib/index.d.ts +0 -3308
- package/dist/node_modules/@ctrl/tinycolor/dist/conversion.d.ts +0 -61
- package/dist/node_modules/@ctrl/tinycolor/dist/css-color-names.d.ts +0 -4
- package/dist/node_modules/@ctrl/tinycolor/dist/format-input.d.ts +0 -37
- package/dist/node_modules/@ctrl/tinycolor/dist/from-ratio.d.ts +0 -14
- package/dist/node_modules/@ctrl/tinycolor/dist/index.d.ts +0 -207
- package/dist/node_modules/@ctrl/tinycolor/dist/interfaces.d.ts +0 -46
- package/dist/node_modules/@ctrl/tinycolor/dist/public_api.d.ts +0 -11
- package/dist/node_modules/@ctrl/tinycolor/dist/random.d.ts +0 -24
- package/dist/node_modules/@ctrl/tinycolor/dist/readability.d.ts +0 -46
- package/dist/node_modules/@ctrl/tinycolor/dist/to-ms-filter.d.ts +0 -5
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +0 -514
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +0 -327
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +0 -103
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +0 -47
- package/dist/node_modules/@types/lodash/common/array.d.ts +0 -2137
- package/dist/node_modules/@types/lodash/common/collection.d.ts +0 -1938
- package/dist/node_modules/@types/lodash/common/common.d.ts +0 -287
- package/dist/node_modules/@types/lodash/common/date.d.ts +0 -23
- package/dist/node_modules/@types/lodash/common/function.d.ts +0 -1455
- package/dist/node_modules/@types/lodash/common/lang.d.ts +0 -1700
- package/dist/node_modules/@types/lodash/common/math.d.ts +0 -405
- package/dist/node_modules/@types/lodash/common/number.d.ts +0 -131
- package/dist/node_modules/@types/lodash/common/object.d.ts +0 -2643
- package/dist/node_modules/@types/lodash/common/seq.d.ts +0 -210
- package/dist/node_modules/@types/lodash/common/string.d.ts +0 -788
- package/dist/node_modules/@types/lodash/common/util.d.ts +0 -1220
- package/dist/node_modules/@types/lodash/index.d.ts +0 -21
- package/dist/node_modules/@vue/compiler-core/dist/compiler-core.d.ts +0 -1093
- package/dist/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts +0 -45
- package/dist/node_modules/@vue/reactivity/dist/reactivity.d.ts +0 -756
- package/dist/node_modules/@vue/runtime-core/dist/runtime-core.d.ts +0 -1839
- package/dist/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts +0 -1397
- package/dist/node_modules/@vue/shared/dist/shared.d.ts +0 -335
- package/dist/node_modules/@vueuse/core/index.d.ts +0 -4536
- package/dist/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.d.ts +0 -22
- package/dist/node_modules/@vueuse/shared/index.d.ts +0 -1072
- package/dist/node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.d.ts +0 -22
- package/dist/node_modules/async-validator/dist-types/index.d.ts +0 -43
- package/dist/node_modules/async-validator/dist-types/interface.d.ts +0 -135
- package/dist/node_modules/csstype/index.d.ts +0 -21297
- package/dist/node_modules/dayjs/index.d.ts +0 -429
- package/dist/node_modules/dayjs/locale/index.d.ts +0 -11
- package/dist/node_modules/dayjs/locale/types.d.ts +0 -33
- package/dist/node_modules/element-plus/es/index.d.ts +0 -26960
- package/dist/node_modules/element-plus/es/utils/vue3.3.polyfill.d.ts +0 -34
- package/dist/node_modules/memoize-one/dist/memoize-one.d.ts +0 -7
- package/dist/node_modules/vue/dist/vue.d.mts +0 -7
- package/dist/style.css +0 -1
- package/dist/styles/theme-config.d.ts +0 -83
- package/dist/types/auto-imports.d.ts +0 -84
- package/dist/types/components.d.ts +0 -55
package/dist/ui.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";:root{--el-color-white: #ffffff;--el-color-black: #000000;--el-color-primary-rgb: 64, 158, 255;--el-color-success-rgb: 103, 194, 58;--el-color-warning-rgb: 230, 162, 60;--el-color-danger-rgb: 245, 108, 108;--el-color-error-rgb: 245, 108, 108;--el-color-info-rgb: 144, 147, 153;--el-font-size-extra-large: 20px;--el-font-size-large: 18px;--el-font-size-medium: 16px;--el-font-size-base: 14px;--el-font-size-small: 13px;--el-font-size-extra-small: 12px;--el-font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary: 500;--el-font-line-height-primary: 24px;--el-index-normal: 1;--el-index-top: 1000;--el-index-popper: 2000;--el-border-radius-base: 4px;--el-border-radius-small: 2px;--el-border-radius-round: 20px;--el-border-radius-circle: 100%;--el-transition-duration: .3s;--el-transition-duration-fast: .2s;--el-transition-function-ease-in-out-bezier: cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier: cubic-bezier(.23, 1, .32, 1);--el-transition-all: all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade: opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade: transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear: opacity var(--el-transition-duration-fast) linear;--el-transition-border: border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow: box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color: color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large: 40px;--el-component-size: 32px;--el-component-size-small: 24px}:root{color-scheme:light;--el-color-primary: #409eff;--el-color-primary-light-3: rgb(121, 187, 255);--el-color-primary-light-5: rgb(160, 207, 255);--el-color-primary-light-7: rgb(198, 226, 255);--el-color-primary-light-8: rgb(217, 236, 255);--el-color-primary-light-9: rgb(236, 245, 255);--el-color-primary-dark-2: rgb(51, 126, 204);--el-color-success: #67c23a;--el-color-success-light-3: rgb(149, 212, 117);--el-color-success-light-5: rgb(179, 225, 157);--el-color-success-light-7: rgb(209, 237, 196);--el-color-success-light-8: rgb(225, 243, 216);--el-color-success-light-9: rgb(240, 249, 235);--el-color-success-dark-2: rgb(82, 155, 46);--el-color-warning: #e6a23c;--el-color-warning-light-3: rgb(238, 190, 119);--el-color-warning-light-5: rgb(243, 209, 158);--el-color-warning-light-7: rgb(248, 227, 197);--el-color-warning-light-8: rgb(250, 236, 216);--el-color-warning-light-9: rgb(253, 246, 236);--el-color-warning-dark-2: rgb(184, 130, 48);--el-color-danger: #f56c6c;--el-color-danger-light-3: rgb(248, 152, 152);--el-color-danger-light-5: rgb(250, 182, 182);--el-color-danger-light-7: rgb(252, 211, 211);--el-color-danger-light-8: rgb(253, 226, 226);--el-color-danger-light-9: rgb(254, 240, 240);--el-color-danger-dark-2: rgb(196, 86, 86);--el-color-error: #f56c6c;--el-color-error-light-3: rgb(248, 152, 152);--el-color-error-light-5: rgb(250, 182, 182);--el-color-error-light-7: rgb(252, 211, 211);--el-color-error-light-8: rgb(253, 226, 226);--el-color-error-light-9: rgb(254, 240, 240);--el-color-error-dark-2: rgb(196, 86, 86);--el-color-info: #909399;--el-color-info-light-3: rgb(177, 179, 184);--el-color-info-light-5: rgb(200, 201, 204);--el-color-info-light-7: rgb(222, 223, 224);--el-color-info-light-8: rgb(233, 233, 235);--el-color-info-light-9: rgb(244, 244, 245);--el-color-info-dark-2: rgb(115, 118, 122);--el-bg-color: #ffffff;--el-bg-color-page: #f2f3f5;--el-bg-color-overlay: #ffffff;--el-text-color-primary: #303133;--el-text-color-regular: #606266;--el-text-color-secondary: #909399;--el-text-color-placeholder: #a8abb2;--el-text-color-disabled: #c0c4cc;--el-border-color: #dcdfe6;--el-border-color-light: #e4e7ed;--el-border-color-lighter: #ebeef5;--el-border-color-extra-light: #f2f6fc;--el-border-color-dark: #d4d7de;--el-border-color-darker: #cdd0d6;--el-fill-color: #f0f2f5;--el-fill-color-light: #f5f7fa;--el-fill-color-lighter: #fafafa;--el-fill-color-extra-light: #fafcff;--el-fill-color-dark: #ebedf0;--el-fill-color-darker: #e6e8eb;--el-fill-color-blank: #ffffff;--el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color: var(--el-fill-color-light);--el-disabled-text-color: var(--el-text-color-placeholder);--el-disabled-border-color: var(--el-border-color-light);--el-overlay-color: rgba(0, 0, 0, .8);--el-overlay-color-light: rgba(0, 0, 0, .7);--el-overlay-color-lighter: rgba(0, 0, 0, .5);--el-mask-color: rgba(255, 255, 255, .9);--el-mask-color-extra-light: rgba(255, 255, 255, .3);--el-border-width: 1px;--el-border-style: solid;--el-border-color-hover: var(--el-text-color-disabled);--el-border: var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey: var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color: inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-button{--el-button-font-weight: var(--el-font-weight-primary);--el-button-border-color: var(--el-border-color);--el-button-bg-color: var(--el-fill-color-blank);--el-button-text-color: var(--el-text-color-regular);--el-button-disabled-text-color: var(--el-disabled-text-color);--el-button-disabled-bg-color: var(--el-fill-color-blank);--el-button-disabled-border-color: var(--el-border-color-light);--el-button-divide-border-color: rgba(255, 255, 255, .5);--el-button-hover-text-color: var(--el-color-primary);--el-button-hover-bg-color: var(--el-color-primary-light-9);--el-button-hover-border-color: var(--el-color-primary-light-7);--el-button-active-text-color: var(--el-button-hover-text-color);--el-button-active-border-color: var(--el-color-primary);--el-button-active-bg-color: var(--el-button-hover-bg-color);--el-button-outline-color: var(--el-color-primary-light-5);--el-button-hover-link-text-color: var(--el-text-color-secondary);--el-button-active-color: var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color)}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:none}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button{padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color: var(--el-color-primary);--el-button-hover-bg-color: var(--el-fill-color-blank);--el-button-hover-border-color: var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;inset:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{width:32px;border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:transparent;padding:2px;height:auto}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-primary);--el-button-border-color: var(--el-color-primary);--el-button-outline-color: var(--el-color-primary-light-5);--el-button-active-color: var(--el-color-primary-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-primary-light-5);--el-button-hover-bg-color: var(--el-color-primary-light-3);--el-button-hover-border-color: var(--el-color-primary-light-3);--el-button-active-bg-color: var(--el-color-primary-dark-2);--el-button-active-border-color: var(--el-color-primary-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-primary-light-5);--el-button-disabled-border-color: var(--el-color-primary-light-5)}.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color: var(--el-color-primary);--el-button-bg-color: var(--el-color-primary-light-9);--el-button-border-color: var(--el-color-primary-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-primary);--el-button-hover-border-color: var(--el-color-primary);--el-button-active-text-color: var(--el-color-white)}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:hover,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-success);--el-button-border-color: var(--el-color-success);--el-button-outline-color: var(--el-color-success-light-5);--el-button-active-color: var(--el-color-success-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-success-light-5);--el-button-hover-bg-color: var(--el-color-success-light-3);--el-button-hover-border-color: var(--el-color-success-light-3);--el-button-active-bg-color: var(--el-color-success-dark-2);--el-button-active-border-color: var(--el-color-success-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-success-light-5);--el-button-disabled-border-color: var(--el-color-success-light-5)}.el-button--success.is-plain,.el-button--success.is-text,.el-button--success.is-link{--el-button-text-color: var(--el-color-success);--el-button-bg-color: var(--el-color-success-light-9);--el-button-border-color: var(--el-color-success-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-success);--el-button-hover-border-color: var(--el-color-success);--el-button-active-text-color: var(--el-color-white)}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:hover,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:active,.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-warning);--el-button-border-color: var(--el-color-warning);--el-button-outline-color: var(--el-color-warning-light-5);--el-button-active-color: var(--el-color-warning-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-warning-light-5);--el-button-hover-bg-color: var(--el-color-warning-light-3);--el-button-hover-border-color: var(--el-color-warning-light-3);--el-button-active-bg-color: var(--el-color-warning-dark-2);--el-button-active-border-color: var(--el-color-warning-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-warning-light-5);--el-button-disabled-border-color: var(--el-color-warning-light-5)}.el-button--warning.is-plain,.el-button--warning.is-text,.el-button--warning.is-link{--el-button-text-color: var(--el-color-warning);--el-button-bg-color: var(--el-color-warning-light-9);--el-button-border-color: var(--el-color-warning-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-warning);--el-button-hover-border-color: var(--el-color-warning);--el-button-active-text-color: var(--el-color-white)}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:hover,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-danger);--el-button-border-color: var(--el-color-danger);--el-button-outline-color: var(--el-color-danger-light-5);--el-button-active-color: var(--el-color-danger-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-danger-light-5);--el-button-hover-bg-color: var(--el-color-danger-light-3);--el-button-hover-border-color: var(--el-color-danger-light-3);--el-button-active-bg-color: var(--el-color-danger-dark-2);--el-button-active-border-color: var(--el-color-danger-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-danger-light-5);--el-button-disabled-border-color: var(--el-color-danger-light-5)}.el-button--danger.is-plain,.el-button--danger.is-text,.el-button--danger.is-link{--el-button-text-color: var(--el-color-danger);--el-button-bg-color: var(--el-color-danger-light-9);--el-button-border-color: var(--el-color-danger-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-danger);--el-button-hover-border-color: var(--el-color-danger);--el-button-active-text-color: var(--el-color-white)}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:hover,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-info);--el-button-border-color: var(--el-color-info);--el-button-outline-color: var(--el-color-info-light-5);--el-button-active-color: var(--el-color-info-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-info-light-5);--el-button-hover-bg-color: var(--el-color-info-light-3);--el-button-hover-border-color: var(--el-color-info-light-3);--el-button-active-bg-color: var(--el-color-info-dark-2);--el-button-active-border-color: var(--el-color-info-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-info-light-5);--el-button-disabled-border-color: var(--el-color-info-light-5)}.el-button--info.is-plain,.el-button--info.is-text,.el-button--info.is-link{--el-button-text-color: var(--el-color-info);--el-button-bg-color: var(--el-color-info-light-9);--el-button-border-color: var(--el-color-info-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-info);--el-button-hover-border-color: var(--el-color-info);--el-button-active-text-color: var(--el-color-white)}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:hover,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:active,.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size: 40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size: 24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-card{--el-card-border-color: var(--el-border-color-light);--el-card-border-radius: 4px;--el-card-padding: 20px;--el-card-bg-color: var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:hover,.el-card.is-hover-shadow:focus{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-card__footer{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-top:1px solid var(--el-card-border-color);box-sizing:border-box}.iconfont[data-v-357c32d8]{display:inline-block;font-style:normal;vertical-align:baseline;text-align:center;text-transform:none;line-height:1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-spin[data-v-357c32d8]{animation:icon-spin-357c32d8 1s linear infinite}@keyframes icon-spin-357c32d8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.icon-pulse[data-v-357c32d8]{animation:icon-pulse-357c32d8 1s ease-in-out infinite}@keyframes icon-pulse-357c32d8{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.icon-flip-horizontal[data-v-357c32d8]{transform:scaleX(-1)}.icon-flip-vertical[data-v-357c32d8]{transform:scaleY(-1)}.icon-flip-both[data-v-357c32d8]{transform:scale(-1)}.icon-spin.icon-flip-horizontal[data-v-357c32d8]{animation:icon-spin-flip-horizontal-357c32d8 1s linear infinite}.icon-spin.icon-flip-vertical[data-v-357c32d8]{animation:icon-spin-flip-vertical-357c32d8 1s linear infinite}.icon-spin.icon-flip-both[data-v-357c32d8]{animation:icon-spin-flip-both-357c32d8 1s linear infinite}@keyframes icon-spin-flip-horizontal-357c32d8{0%{transform:rotate(0) scaleX(-1)}to{transform:rotate(360deg) scaleX(-1)}}@keyframes icon-spin-flip-vertical-357c32d8{0%{transform:rotate(0) scaleY(-1)}to{transform:rotate(360deg) scaleY(-1)}}@keyframes icon-spin-flip-both-357c32d8{0%{transform:rotate(0) scale(-1)}to{transform:rotate(360deg) scale(-1)}}
|
package/package.json
CHANGED
|
@@ -1,61 +1,52 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mc-markets/ui",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.38",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "chenyu",
|
|
7
|
-
"description": "Element Plus
|
|
7
|
+
"description": "Vue 3 组件库,基于 Element Plus 的自定义组件",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"module": "dist/index.js",
|
|
10
|
-
"types": "dist/index.d.ts",
|
|
11
10
|
"exports": {
|
|
12
11
|
".": {
|
|
13
12
|
"import": "./dist/index.js",
|
|
14
|
-
"require": "./dist/index.js"
|
|
15
|
-
"types": "./dist/index.d.ts"
|
|
13
|
+
"require": "./dist/index.js"
|
|
16
14
|
},
|
|
17
15
|
"./style": "./dist/style.css",
|
|
18
16
|
"./styles": "./dist/style.css",
|
|
19
17
|
"./dist/style.css": "./dist/style.css",
|
|
20
18
|
"./scss-variables": "./packages/styles/variables.scss",
|
|
21
19
|
"./styles/index": "./packages/styles/index.scss",
|
|
22
|
-
"./theme-config": "./packages/styles/theme-config.
|
|
20
|
+
"./theme-config": "./packages/styles/theme-config.js",
|
|
23
21
|
"./element-plus": {
|
|
24
22
|
"import": "./node_modules/element-plus/dist/index.full.mjs",
|
|
25
|
-
"require": "./node_modules/element-plus/dist/index.full.js"
|
|
26
|
-
"types": "./node_modules/element-plus/dist/index.d.ts"
|
|
23
|
+
"require": "./node_modules/element-plus/dist/index.full.js"
|
|
27
24
|
},
|
|
28
25
|
"./element-plus/style": "./node_modules/element-plus/dist/index.css",
|
|
29
|
-
"./element-plus/styles": "./node_modules/element-plus/dist/index.css"
|
|
30
|
-
"./locales": "./dist/locales/index.js",
|
|
31
|
-
"./themes": "./dist/themes/index.js"
|
|
26
|
+
"./element-plus/styles": "./node_modules/element-plus/dist/index.css"
|
|
32
27
|
},
|
|
33
28
|
"files": [
|
|
34
29
|
"dist",
|
|
35
30
|
"packages/styles",
|
|
36
31
|
"README.md",
|
|
37
|
-
"USAGE.md",
|
|
38
32
|
"node_modules/element-plus/dist"
|
|
39
33
|
],
|
|
40
34
|
"keywords": [
|
|
41
35
|
"vue3",
|
|
42
|
-
"
|
|
36
|
+
"javascript",
|
|
43
37
|
"ui",
|
|
44
38
|
"component",
|
|
45
39
|
"element-plus",
|
|
46
|
-
"element-ui",
|
|
47
40
|
"ui-library",
|
|
48
41
|
"components"
|
|
49
42
|
],
|
|
50
43
|
"license": "MIT",
|
|
51
44
|
"scripts": {
|
|
52
45
|
"dev": "vite",
|
|
53
|
-
"dev:fast": "cross-env NODE_ENV=development vite --force",
|
|
54
46
|
"dev:inspector": "cross-env VUE_INSPECTOR=true vite",
|
|
55
|
-
"build": "
|
|
47
|
+
"build": "vite build",
|
|
56
48
|
"preview": "vite preview",
|
|
57
|
-
"
|
|
58
|
-
"lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --fix",
|
|
49
|
+
"lint": "eslint . --ext .vue,.js,.jsx --fix",
|
|
59
50
|
"format": "prettier --write .",
|
|
60
51
|
"test": "vitest",
|
|
61
52
|
"test:coverage": "vitest --coverage",
|
|
@@ -64,11 +55,13 @@
|
|
|
64
55
|
},
|
|
65
56
|
"dependencies": {
|
|
66
57
|
"@vueuse/core": "^10.5.0",
|
|
67
|
-
"element-plus": "^2.
|
|
68
|
-
"
|
|
58
|
+
"element-plus": "^2.11.2",
|
|
59
|
+
"highlight.js": "^11.11.1",
|
|
60
|
+
"vue": "^3.3.0",
|
|
61
|
+
"vue-router": "^4.5.1"
|
|
69
62
|
},
|
|
70
63
|
"peerDependencies": {
|
|
71
|
-
"element-plus": "^2.
|
|
64
|
+
"element-plus": "^2.11.2",
|
|
72
65
|
"vue": "^3.3.0"
|
|
73
66
|
},
|
|
74
67
|
"peerDependenciesMeta": {
|
|
@@ -95,29 +88,16 @@
|
|
|
95
88
|
"@antfu/eslint-config": "^0.38.4",
|
|
96
89
|
"@iconify-json/ep": "^1.1.10",
|
|
97
90
|
"@iconify/vue": "^4.1.1",
|
|
98
|
-
"@types/nprogress": "^0.2.0",
|
|
99
|
-
"@types/path-browserify": "^1.0.0",
|
|
100
|
-
"@types/qs": "^6.9.7",
|
|
101
91
|
"@vitejs/plugin-vue": "^4.1.0",
|
|
102
92
|
"@vitejs/plugin-vue-jsx": "^3.0.1",
|
|
103
93
|
"autoprefixer": "^10.4.14",
|
|
104
|
-
"bumpp": "^9.1.0",
|
|
105
94
|
"cross-env": "^7.0.3",
|
|
106
|
-
"cz-conventional-changelog": "^3.3.0",
|
|
107
|
-
"cz-git": "^1.6.1",
|
|
108
95
|
"eslint": "^8.38.0",
|
|
109
96
|
"eslint-plugin-prettier": "^4.2.1",
|
|
110
|
-
"esno": "^0.16.3",
|
|
111
97
|
"fs-extra": "^11.1.1",
|
|
112
|
-
"http-server": "^14.1.1",
|
|
113
|
-
"lint-staged": "^13.2.1",
|
|
114
|
-
"npm-run-all": "^4.1.5",
|
|
115
|
-
"plop": "^3.1.2",
|
|
116
98
|
"postcss-html": "^1.5.0",
|
|
117
99
|
"prettier": "^2.8.8",
|
|
118
|
-
"sass": "^1.
|
|
119
|
-
"simple-git-hooks": "^2.8.1",
|
|
120
|
-
"sortablejs": "^1.15.0",
|
|
100
|
+
"sass": "^1.92.1",
|
|
121
101
|
"stylelint": "^15.4.0",
|
|
122
102
|
"stylelint-config-standard": "^32.0.0",
|
|
123
103
|
"stylelint-config-standard-scss": "^8.0.0",
|
|
@@ -126,20 +106,9 @@
|
|
|
126
106
|
"stylelint-stylistic": "^0.4.0",
|
|
127
107
|
"svgo": "^3.0.2",
|
|
128
108
|
"terser": "^5.16.9",
|
|
129
|
-
"typescript": "^5.0.4",
|
|
130
109
|
"unplugin-auto-import": "^0.15.3",
|
|
131
110
|
"unplugin-vue-components": "^0.24.1",
|
|
132
|
-
"vite": "^
|
|
133
|
-
"vite-plugin-
|
|
134
|
-
"vite-plugin-compression": "^0.5.1",
|
|
135
|
-
"vite-plugin-dts": "^4.2.1",
|
|
136
|
-
"vite-plugin-mock": "^2.9.6",
|
|
137
|
-
"vite-plugin-pages": "^0.29.0",
|
|
138
|
-
"vite-plugin-spritesmith": "^0.1.1",
|
|
139
|
-
"vite-plugin-svg-icons": "^2.0.1",
|
|
140
|
-
"vite-plugin-vue-inspector": "^3.4.0",
|
|
141
|
-
"vite-plugin-vue-meta-layouts": "^0.2.2",
|
|
142
|
-
"vite-plugin-vue-setup-extend": "^0.4.0",
|
|
143
|
-
"vue-tsc": "^1.2.0"
|
|
111
|
+
"vite": "^7.1.5",
|
|
112
|
+
"vite-plugin-vue-inspector": "^3.4.0"
|
|
144
113
|
}
|
|
145
114
|
}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
# @mc-markets/ui 样式系统
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
本项目提供了完整的 Element Plus 主题定制解决方案,包括 SCSS 变量覆盖、CSS 变量配置和主题管理工具。
|
|
6
|
-
|
|
7
|
-
## 文件结构
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
packages/styles/
|
|
11
|
-
├── index.scss # 样式入口文件
|
|
12
|
-
├── variables.scss # Element Plus 主题变量覆盖
|
|
13
|
-
├── variables.scss # SCSS 变量和 CSS 变量定义
|
|
14
|
-
├── theme-config.ts # 主题管理工具
|
|
15
|
-
└── variables/ # 详细样式变量
|
|
16
|
-
├── index.scss
|
|
17
|
-
├── border-mode.css
|
|
18
|
-
├── color-modes-dark.css
|
|
19
|
-
├── primitives-style.css
|
|
20
|
-
├── radius-mode.css
|
|
21
|
-
├── spacing-mode.css
|
|
22
|
-
├── typography-desktop.css
|
|
23
|
-
└── typography-mobile.css
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## 使用方法
|
|
27
|
-
|
|
28
|
-
### 1. 导入完整样式
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
// 导入所有样式(推荐)
|
|
32
|
-
import '@mc-markets/ui/styles/index'
|
|
33
|
-
|
|
34
|
-
// 或者分别导入
|
|
35
|
-
import '@mc-markets/ui/scss-variables'
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### 2. 使用主题管理工具
|
|
39
|
-
|
|
40
|
-
```typescript
|
|
41
|
-
import {
|
|
42
|
-
setTheme,
|
|
43
|
-
setPrimaryColor,
|
|
44
|
-
toggleDark,
|
|
45
|
-
themeConfigManager
|
|
46
|
-
} from '@mc-markets/ui'
|
|
47
|
-
|
|
48
|
-
// 设置主题
|
|
49
|
-
setTheme({
|
|
50
|
-
name: 'custom',
|
|
51
|
-
primaryColor: '#1890ff',
|
|
52
|
-
dark: false
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
// 动态修改主色调
|
|
56
|
-
setPrimaryColor('#52c41a')
|
|
57
|
-
|
|
58
|
-
// 切换暗色主题
|
|
59
|
-
toggleDark()
|
|
60
|
-
|
|
61
|
-
// 使用主题管理器
|
|
62
|
-
const manager = themeConfigManager.getInstance()
|
|
63
|
-
manager.setSuccessColor('#67c23a')
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### 3. 在 Vue 组件中使用
|
|
67
|
-
|
|
68
|
-
```vue
|
|
69
|
-
<template>
|
|
70
|
-
<div class="custom-theme">
|
|
71
|
-
<el-button type="primary">主要按钮</el-button>
|
|
72
|
-
<el-button type="success">成功按钮</el-button>
|
|
73
|
-
<el-button type="warning">警告按钮</el-button>
|
|
74
|
-
</div>
|
|
75
|
-
</template>
|
|
76
|
-
|
|
77
|
-
<script setup>
|
|
78
|
-
import { setPrimaryColor } from '@mc-markets/ui'
|
|
79
|
-
|
|
80
|
-
// 动态设置主题色
|
|
81
|
-
setPrimaryColor('#722ed1')
|
|
82
|
-
</script>
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### 4. 自定义 CSS 变量
|
|
86
|
-
|
|
87
|
-
```css
|
|
88
|
-
/* 在你的样式文件中覆盖 CSS 变量 */
|
|
89
|
-
:root {
|
|
90
|
-
--el-color-primary: #1890ff;
|
|
91
|
-
--el-color-success: #52c41a;
|
|
92
|
-
--el-border-radius-base: 8px;
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## 样式覆盖原理
|
|
97
|
-
|
|
98
|
-
### SCSS 变量覆盖
|
|
99
|
-
|
|
100
|
-
`variables.scss` 文件使用 Element Plus 的 `@use` 语法来覆盖默认变量:
|
|
101
|
-
|
|
102
|
-
```scss
|
|
103
|
-
@use 'element-plus/theme-chalk/src/common/var.scss' with (
|
|
104
|
-
$colors: (
|
|
105
|
-
'primary': (
|
|
106
|
-
'base': #000, // 覆盖主色调
|
|
107
|
-
),
|
|
108
|
-
),
|
|
109
|
-
$font-size: (
|
|
110
|
-
'base': 14px, // 覆盖基础字体大小
|
|
111
|
-
),
|
|
112
|
-
);
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### CSS 变量覆盖
|
|
116
|
-
|
|
117
|
-
`variables.scss` 文件定义了完整的 SCSS 变量和 CSS 变量系统,支持:
|
|
118
|
-
|
|
119
|
-
- 亮色/暗色主题切换
|
|
120
|
-
- 动态颜色调整
|
|
121
|
-
- 自定义主题类
|
|
122
|
-
|
|
123
|
-
## 主题配置选项
|
|
124
|
-
|
|
125
|
-
### ThemeConfig 接口
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
interface ThemeConfig {
|
|
129
|
-
name?: string // 主题名称
|
|
130
|
-
dark?: boolean // 是否暗色主题
|
|
131
|
-
cssVars?: Record<string, string> // 自定义CSS变量
|
|
132
|
-
customClass?: string // 自定义类名
|
|
133
|
-
primaryColor?: string // 主色调
|
|
134
|
-
successColor?: string // 成功色
|
|
135
|
-
warningColor?: string // 警告色
|
|
136
|
-
dangerColor?: string // 危险色
|
|
137
|
-
infoColor?: string // 信息色
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## 注意事项
|
|
142
|
-
|
|
143
|
-
1. **导入顺序**:确保在导入 Element Plus 样式之前导入自定义样式
|
|
144
|
-
2. **构建工具**:需要支持 SCSS 的构建工具(如 Vite、Webpack)
|
|
145
|
-
3. **浏览器兼容性**:CSS 变量需要现代浏览器支持
|
|
146
|
-
4. **性能考虑**:建议在生产环境中使用构建后的 CSS 文件
|
|
147
|
-
|
|
148
|
-
## 示例项目
|
|
149
|
-
|
|
150
|
-
查看 `src/components/ThemeDemo.vue` 文件了解完整的使用示例。
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
.el-input {
|
|
2
|
-
--el-input-text-color: var(--text-white);
|
|
3
|
-
--el-input-border: var(--el-border);
|
|
4
|
-
--el-input-hover-border: var(--el-border-color-hover);
|
|
5
|
-
--el-input-focus-border: var(--el-color-primary);
|
|
6
|
-
--el-input-transparent-border: 0 0 0 1px transparent inset;
|
|
7
|
-
--el-input-border-color: var(--el-border-color);
|
|
8
|
-
--el-input-border-radius: var(--el-border-radius-base);
|
|
9
|
-
--el-input-bg-color: var(--el-fill-color-blank);
|
|
10
|
-
--el-input-icon-color: var(--el-text-color-placeholder);
|
|
11
|
-
--el-input-placeholder-color: var(--el-text-color-placeholder);
|
|
12
|
-
--el-input-hover-border-color: var(--el-border-color-hover);
|
|
13
|
-
--el-input-clear-hover-color: var(--el-text-color-secondary);
|
|
14
|
-
--el-input-focus-border-color: var(--el-color-primary);
|
|
15
|
-
}
|
|
16
1
|
|
|
17
2
|
.el-form-item__label {
|
|
18
3
|
height: var(--el-component-size);
|
|
@@ -25,3 +10,12 @@
|
|
|
25
10
|
line-height: 20px;
|
|
26
11
|
}
|
|
27
12
|
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
.el-input__wrapper{
|
|
16
|
+
padding: 1px 16px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.el-form-item{
|
|
20
|
+
margin-bottom: 20px;
|
|
21
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
.el-select__wrapper{
|
|
2
|
+
padding: 4px 16px;
|
|
3
|
+
}
|
|
4
|
+
.el-select-dropdown{
|
|
5
|
+
padding: 12px;
|
|
6
|
+
}
|
|
7
|
+
.el-select-dropdown__list{
|
|
8
|
+
padding:0;
|
|
9
|
+
}
|
|
10
|
+
.el-select-dropdown__item{
|
|
11
|
+
padding:0px 12px;
|
|
12
|
+
height: 40px;
|
|
13
|
+
line-height: 40px;
|
|
14
|
+
border-radius: 6px;
|
|
15
|
+
font-size: var(--font-size-text-sm);
|
|
16
|
+
color: var(--text-primary);
|
|
17
|
+
&:hover,&.is-hovering{
|
|
18
|
+
background: var(--all-alphe-white-6, #FFFFFF0F);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.el-select-dropdown__header{
|
|
23
|
+
border: none;
|
|
24
|
+
padding: 0;
|
|
25
|
+
padding-bottom: 4px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
.el-select--small{
|
|
31
|
+
.el-select__wrapper{
|
|
32
|
+
padding: 4px 16px;
|
|
33
|
+
font-size: var(--font-size-text-sm);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -5,32 +5,12 @@
|
|
|
5
5
|
* @see https://element-plus.org/zh-CN/guide/theming.html
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
export interface ThemeConfig {
|
|
9
|
-
/** 主题名称 */
|
|
10
|
-
name?: string
|
|
11
|
-
/** 是否暗色主题 */
|
|
12
|
-
dark?: boolean
|
|
13
|
-
/** 自定义CSS变量 */
|
|
14
|
-
cssVars?: Record<string, string>
|
|
15
|
-
/** 自定义类名 */
|
|
16
|
-
customClass?: string
|
|
17
|
-
/** 主色调 */
|
|
18
|
-
primaryColor?: string
|
|
19
|
-
/** 成功色 */
|
|
20
|
-
successColor?: string
|
|
21
|
-
/** 警告色 */
|
|
22
|
-
warningColor?: string
|
|
23
|
-
/** 危险色 */
|
|
24
|
-
dangerColor?: string
|
|
25
|
-
/** 信息色 */
|
|
26
|
-
infoColor?: string
|
|
27
|
-
}
|
|
28
|
-
|
|
29
8
|
export class ThemeConfigManager {
|
|
30
|
-
|
|
31
|
-
|
|
9
|
+
constructor() {
|
|
10
|
+
this.currentTheme = { name: 'default', dark: false }
|
|
11
|
+
}
|
|
32
12
|
|
|
33
|
-
static getInstance()
|
|
13
|
+
static getInstance() {
|
|
34
14
|
if (!ThemeConfigManager.instance) {
|
|
35
15
|
ThemeConfigManager.instance = new ThemeConfigManager()
|
|
36
16
|
}
|
|
@@ -38,66 +18,66 @@ export class ThemeConfigManager {
|
|
|
38
18
|
}
|
|
39
19
|
|
|
40
20
|
/** 设置主题 */
|
|
41
|
-
setTheme(theme
|
|
21
|
+
setTheme(theme) {
|
|
42
22
|
this.currentTheme = { ...this.currentTheme, ...theme }
|
|
43
23
|
this.applyTheme()
|
|
44
24
|
}
|
|
45
25
|
|
|
46
26
|
/** 获取当前主题 */
|
|
47
|
-
getTheme()
|
|
27
|
+
getTheme() {
|
|
48
28
|
return { ...this.currentTheme }
|
|
49
29
|
}
|
|
50
30
|
|
|
51
31
|
/** 切换暗色主题 */
|
|
52
|
-
toggleDark()
|
|
32
|
+
toggleDark() {
|
|
53
33
|
this.currentTheme.dark = !this.currentTheme.dark
|
|
54
34
|
this.applyTheme()
|
|
55
35
|
}
|
|
56
36
|
|
|
57
37
|
/** 设置主色调 */
|
|
58
|
-
setPrimaryColor(color
|
|
38
|
+
setPrimaryColor(color) {
|
|
59
39
|
this.setCssVar('--el-color-primary', color)
|
|
60
40
|
this.generateColorPalette(color, 'primary')
|
|
61
41
|
}
|
|
62
42
|
|
|
63
43
|
/** 设置成功色 */
|
|
64
|
-
setSuccessColor(color
|
|
44
|
+
setSuccessColor(color) {
|
|
65
45
|
this.setCssVar('--el-color-success', color)
|
|
66
46
|
this.generateColorPalette(color, 'success')
|
|
67
47
|
}
|
|
68
48
|
|
|
69
49
|
/** 设置警告色 */
|
|
70
|
-
setWarningColor(color
|
|
50
|
+
setWarningColor(color) {
|
|
71
51
|
this.setCssVar('--el-color-warning', color)
|
|
72
52
|
this.generateColorPalette(color, 'warning')
|
|
73
53
|
}
|
|
74
54
|
|
|
75
55
|
/** 设置危险色 */
|
|
76
|
-
setDangerColor(color
|
|
56
|
+
setDangerColor(color) {
|
|
77
57
|
this.setCssVar('--el-color-danger', color)
|
|
78
58
|
this.generateColorPalette(color, 'danger')
|
|
79
59
|
}
|
|
80
60
|
|
|
81
61
|
/** 设置信息色 */
|
|
82
|
-
setInfoColor(color
|
|
62
|
+
setInfoColor(color) {
|
|
83
63
|
this.setCssVar('--el-color-info', color)
|
|
84
64
|
this.generateColorPalette(color, 'info')
|
|
85
65
|
}
|
|
86
66
|
|
|
87
67
|
/** 设置CSS变量 */
|
|
88
|
-
setCssVar(name
|
|
68
|
+
setCssVar(name, value) {
|
|
89
69
|
const root = document.documentElement
|
|
90
70
|
root.style.setProperty(name, value)
|
|
91
71
|
}
|
|
92
72
|
|
|
93
73
|
/** 获取CSS变量 */
|
|
94
|
-
getCssVar(name
|
|
74
|
+
getCssVar(name) {
|
|
95
75
|
const root = document.documentElement
|
|
96
76
|
return getComputedStyle(root).getPropertyValue(name).trim()
|
|
97
77
|
}
|
|
98
78
|
|
|
99
79
|
/** 生成颜色调色板 */
|
|
100
|
-
|
|
80
|
+
generateColorPalette(color, type) {
|
|
101
81
|
const root = document.documentElement
|
|
102
82
|
const baseColor = this.hexToRgb(color)
|
|
103
83
|
|
|
@@ -118,7 +98,7 @@ export class ThemeConfigManager {
|
|
|
118
98
|
}
|
|
119
99
|
|
|
120
100
|
/** 应用主题 */
|
|
121
|
-
|
|
101
|
+
applyTheme() {
|
|
122
102
|
const root = document.documentElement
|
|
123
103
|
|
|
124
104
|
// 应用暗色主题
|
|
@@ -159,7 +139,7 @@ export class ThemeConfigManager {
|
|
|
159
139
|
}
|
|
160
140
|
|
|
161
141
|
/** 十六进制颜色转RGB */
|
|
162
|
-
|
|
142
|
+
hexToRgb(hex) {
|
|
163
143
|
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
164
144
|
return result ? {
|
|
165
145
|
r: parseInt(result[1], 16),
|
|
@@ -169,13 +149,13 @@ export class ThemeConfigManager {
|
|
|
169
149
|
}
|
|
170
150
|
|
|
171
151
|
/** RGB转十六进制 */
|
|
172
|
-
|
|
152
|
+
rgbToHex(r, g, b) {
|
|
173
153
|
return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`
|
|
174
154
|
}
|
|
175
155
|
|
|
176
156
|
/** 生成浅色变体 */
|
|
177
|
-
|
|
178
|
-
const colors
|
|
157
|
+
generateLightColors(rgb) {
|
|
158
|
+
const colors = {}
|
|
179
159
|
|
|
180
160
|
for (let i = 1; i <= 9; i++) {
|
|
181
161
|
const factor = (10 - i) / 10
|
|
@@ -189,8 +169,8 @@ export class ThemeConfigManager {
|
|
|
189
169
|
}
|
|
190
170
|
|
|
191
171
|
/** 生成深色变体 */
|
|
192
|
-
|
|
193
|
-
const colors
|
|
172
|
+
generateDarkColors(rgb) {
|
|
173
|
+
const colors = {}
|
|
194
174
|
|
|
195
175
|
for (let i = 1; i <= 2; i++) {
|
|
196
176
|
const factor = i / 10
|
|
@@ -204,7 +184,7 @@ export class ThemeConfigManager {
|
|
|
204
184
|
}
|
|
205
185
|
|
|
206
186
|
/** 重置主题 */
|
|
207
|
-
resetTheme()
|
|
187
|
+
resetTheme() {
|
|
208
188
|
const root = document.documentElement
|
|
209
189
|
root.className = ''
|
|
210
190
|
root.style.cssText = ''
|
|
@@ -212,10 +192,10 @@ export class ThemeConfigManager {
|
|
|
212
192
|
}
|
|
213
193
|
|
|
214
194
|
/** 导出主题配置 */
|
|
215
|
-
exportTheme()
|
|
195
|
+
exportTheme() {
|
|
216
196
|
const root = document.documentElement
|
|
217
197
|
const computedStyle = getComputedStyle(root)
|
|
218
|
-
const cssVars
|
|
198
|
+
const cssVars = {}
|
|
219
199
|
|
|
220
200
|
// 获取所有CSS变量
|
|
221
201
|
for (let i = 0; i < computedStyle.length; i++) {
|
|
@@ -232,7 +212,7 @@ export class ThemeConfigManager {
|
|
|
232
212
|
}
|
|
233
213
|
|
|
234
214
|
/** 导入主题配置 */
|
|
235
|
-
importTheme(config
|
|
215
|
+
importTheme(config) {
|
|
236
216
|
try {
|
|
237
217
|
const themeConfig = JSON.parse(config)
|
|
238
218
|
this.setTheme(themeConfig)
|
|
@@ -246,16 +226,16 @@ export class ThemeConfigManager {
|
|
|
246
226
|
export const themeConfigManager = ThemeConfigManager.getInstance()
|
|
247
227
|
|
|
248
228
|
// 导出便捷方法
|
|
249
|
-
export const setTheme = (theme
|
|
229
|
+
export const setTheme = (theme) => themeConfigManager.setTheme(theme)
|
|
250
230
|
export const getTheme = () => themeConfigManager.getTheme()
|
|
251
231
|
export const toggleDark = () => themeConfigManager.toggleDark()
|
|
252
|
-
export const setPrimaryColor = (color
|
|
253
|
-
export const setSuccessColor = (color
|
|
254
|
-
export const setWarningColor = (color
|
|
255
|
-
export const setDangerColor = (color
|
|
256
|
-
export const setInfoColor = (color
|
|
257
|
-
export const setCssVar = (name
|
|
258
|
-
export const getCssVar = (name
|
|
232
|
+
export const setPrimaryColor = (color) => themeConfigManager.setPrimaryColor(color)
|
|
233
|
+
export const setSuccessColor = (color) => themeConfigManager.setSuccessColor(color)
|
|
234
|
+
export const setWarningColor = (color) => themeConfigManager.setWarningColor(color)
|
|
235
|
+
export const setDangerColor = (color) => themeConfigManager.setDangerColor(color)
|
|
236
|
+
export const setInfoColor = (color) => themeConfigManager.setInfoColor(color)
|
|
237
|
+
export const setCssVar = (name, value) => themeConfigManager.setCssVar(name, value)
|
|
238
|
+
export const getCssVar = (name) => themeConfigManager.getCssVar(name)
|
|
259
239
|
export const resetTheme = () => themeConfigManager.resetTheme()
|
|
260
240
|
export const exportTheme = () => themeConfigManager.exportTheme()
|
|
261
|
-
export const importTheme = (config
|
|
241
|
+
export const importTheme = (config) => themeConfigManager.importTheme(config)
|