diff --git a/docs/.vitepress/vitepress/components/globals/main-color.vue b/docs/.vitepress/vitepress/components/globals/main-color.vue index a267e726a2..93186d9f17 100644 --- a/docs/.vitepress/vitepress/components/globals/main-color.vue +++ b/docs/.vitepress/vitepress/components/globals/main-color.vue @@ -3,16 +3,17 @@
Brand Color -
#409EFF
-
+
{{ primary.toUpperCase() }}
+
@@ -20,34 +21,13 @@ - diff --git a/docs/.vitepress/vitepress/components/globals/secondary-colors.vue b/docs/.vitepress/vitepress/components/globals/secondary-colors.vue index d59cbb2544..3ee2a470e8 100644 --- a/docs/.vitepress/vitepress/components/globals/secondary-colors.vue +++ b/docs/.vitepress/vitepress/components/globals/secondary-colors.vue @@ -1,57 +1,38 @@ + + - - diff --git a/docs/.vitepress/vitepress/styles/code.scss b/docs/.vitepress/vitepress/styles/code.scss index 58ec5ede75..d732103892 100644 --- a/docs/.vitepress/vitepress/styles/code.scss +++ b/docs/.vitepress/vitepress/styles/code.scss @@ -46,7 +46,7 @@ html.dark { --prism-function: #82aaff; --prism-deleted: #bc6066; --prism-class: #54b1bf; - --prism-builtin: var(--el-color-primary-light-2); + --prism-builtin: var(--el-color-primary-light-3); --prism-property: #c792ea; --prism-namespace: #db889a; --prism-punctuation: #89ddff; diff --git a/docs/.vitepress/vitepress/utils/colors.ts b/docs/.vitepress/vitepress/utils/colors.ts new file mode 100644 index 0000000000..bdcf9a84ca --- /dev/null +++ b/docs/.vitepress/vitepress/utils/colors.ts @@ -0,0 +1,36 @@ +import { ref, getCurrentInstance } from 'vue' +import { useClipboard } from '@vueuse/core' + +export const getColorValue = (type: string) => { + const color = getComputedStyle(document.documentElement).getPropertyValue( + `--el-color-${type}` + ) + return color +} + +// copy color + +export const useCopyColor = () => { + const source = ref('') + const { copy, isSupported } = useClipboard({ source }) + + const vm = getCurrentInstance()! + const copyColor = async (colorType: string) => { + const colorValue = getColorValue(colorType) + source.value = colorValue + const { $message } = vm.appContext.config.globalProperties + if (!isSupported) { + $message.error('Copy failed') + } + try { + await copy() + $message.success(`--el-color-${colorType}: ${source.value}`) + } catch (e: any) { + $message.error(e.message) + } + } + + return { + copyColor, + } +} diff --git a/docs/.vitepress/vitepress/utils.ts b/docs/.vitepress/vitepress/utils/index.ts similarity index 99% rename from docs/.vitepress/vitepress/utils.ts rename to docs/.vitepress/vitepress/utils/index.ts index e22f9f0f52..0a27b511b1 100644 --- a/docs/.vitepress/vitepress/utils.ts +++ b/docs/.vitepress/vitepress/utils/index.ts @@ -8,6 +8,8 @@ import { inBrowser } from 'vitepress' import type { Route } from 'vitepress' +export * from './colors' + export { isArray, isNullish, diff --git a/docs/en-US/component/color.md b/docs/en-US/component/color.md index 07cefeba34..4ba81beb8f 100644 --- a/docs/en-US/component/color.md +++ b/docs/en-US/component/color.md @@ -26,7 +26,6 @@ Element Plus uses a specific set of palettes to specify colors to provide a cons position: absolute; .bg-blue-sub-item { - width: 11.1111111%; height: 100%; display: inline-block; @@ -36,7 +35,6 @@ Element Plus uses a specific set of palettes to specify colors to provide a cons } .bg-secondary-sub-item { - width: 50%; height: 100%; display: inline-block; &:first-child { diff --git a/docs/examples/button/basic.vue b/docs/examples/button/basic.vue index 00eab47157..a63c9fa89d 100644 --- a/docs/examples/button/basic.vue +++ b/docs/examples/button/basic.vue @@ -47,14 +47,3 @@ import { Delete, } from '@element-plus/icons-vue' - - diff --git a/docs/examples/button/disabled.vue b/docs/examples/button/disabled.vue index ff64586190..1f249f67b1 100644 --- a/docs/examples/button/disabled.vue +++ b/docs/examples/button/disabled.vue @@ -17,14 +17,3 @@ Danger - - diff --git a/docs/examples/button/group.vue b/docs/examples/button/group.vue index ccbd5e08ab..8533487f8d 100644 --- a/docs/examples/button/group.vue +++ b/docs/examples/button/group.vue @@ -22,14 +22,3 @@ import { ArrowRight, } from '@element-plus/icons-vue' - - diff --git a/docs/examples/button/icon.vue b/docs/examples/button/icon.vue index 2da8f38a29..257eaaaee0 100644 --- a/docs/examples/button/icon.vue +++ b/docs/examples/button/icon.vue @@ -12,9 +12,3 @@ - - diff --git a/docs/examples/button/loading.vue b/docs/examples/button/loading.vue index 3b6b44c564..24ec73e52c 100644 --- a/docs/examples/button/loading.vue +++ b/docs/examples/button/loading.vue @@ -29,9 +29,6 @@ import { Eleme } from '@element-plus/icons-vue' diff --git a/docs/examples/infinite-scroll/disable-loading.vue b/docs/examples/infinite-scroll/disable-loading.vue index 9fce140b82..e078e5c632 100644 --- a/docs/examples/infinite-scroll/disable-loading.vue +++ b/docs/examples/infinite-scroll/disable-loading.vue @@ -43,7 +43,7 @@ const load = () => { align-items: center; justify-content: center; height: 50px; - background: var(--el-color-danger-lighter); + background: var(--el-color-danger-light-9); color: var(--el-color-danger); } .infinite-list-wrapper .list-item + .list-item { diff --git a/docs/examples/scrollbar/horizontal-scroll.vue b/docs/examples/scrollbar/horizontal-scroll.vue index 5cb35fd7b3..05f819c05c 100644 --- a/docs/examples/scrollbar/horizontal-scroll.vue +++ b/docs/examples/scrollbar/horizontal-scroll.vue @@ -22,7 +22,7 @@ margin: 10px; text-align: center; border-radius: 4px; - background: var(--el-color-danger-lighter); + background: var(--el-color-danger-light-9); color: var(--el-color-danger); } diff --git a/docs/examples/table/with-status.vue b/docs/examples/table/with-status.vue index 623d874f84..737349e87b 100644 --- a/docs/examples/table/with-status.vue +++ b/docs/examples/table/with-status.vue @@ -58,9 +58,9 @@ const tableData: User[] = [ diff --git a/packages/theme-chalk/src/button.scss b/packages/theme-chalk/src/button.scss index f2193d3b66..a3bde4786b 100644 --- a/packages/theme-chalk/src/button.scss +++ b/packages/theme-chalk/src/button.scss @@ -230,7 +230,7 @@ $button-icon-span-gap: map.merge( &:hover, &:focus { - color: var(--el-color-primary-light-2); + color: var(--el-color-primary-light-3); border-color: transparent; background-color: transparent; } diff --git a/packages/theme-chalk/src/checkbox-button.scss b/packages/theme-chalk/src/checkbox-button.scss index 8279c9d9bd..1d9ea26cf1 100644 --- a/packages/theme-chalk/src/checkbox-button.scss +++ b/packages/theme-chalk/src/checkbox-button.scss @@ -67,7 +67,7 @@ color: var(--el-checkbox-button-checked-text-color); background-color: var(--el-checkbox-button-checked-bg-color); border-color: var(--el-checkbox-button-checked-border-color); - box-shadow: -1px 0 0 0 var(--el-color-primary-light-4); + box-shadow: -1px 0 0 0 var(--el-color-primary-light-5); } &:first-child .#{$namespace}-checkbox-button__inner { border-left-color: var(--el-checkbox-button-checked-border-color); diff --git a/packages/theme-chalk/src/common/var.scss b/packages/theme-chalk/src/common/var.scss index d48fd81828..71421f0359 100644 --- a/packages/theme-chalk/src/common/var.scss +++ b/packages/theme-chalk/src/common/var.scss @@ -47,6 +47,7 @@ $color-error: map.get($colors, 'error', 'base') !default; $color-info: map.get($colors, 'info', 'base') !default; // https://sass-lang.com/documentation/values/maps#immutability +// mix color with white @mixin set-color-type-light($type, $number) { $colors: map.deep-merge( ( @@ -63,6 +64,23 @@ $color-info: map.get($colors, 'info', 'base') !default; ) !global; } +// mix color with black +@mixin set-color-type-dark($type, $number) { + $colors: map.deep-merge( + ( + $type: ( + 'dark-#{$number}': + mix( + $color-black, + map.get($colors, $type, 'base'), + math.percentage(math.div($number, 10)) + ), + ), + ), + $colors + ) !global; +} + // $colors.primary.light-i // --el-color-primary-light-i // 10% 53a8ff @@ -79,6 +97,10 @@ $color-info: map.get($colors, 'info', 'base') !default; @include set-color-type-light($type, $i); } } +// --el-color-primary-dark-2 +@each $type in $types { + @include set-color-type-dark($type, 2); +} $text-color: () !default; $text-color: map.merge( @@ -833,7 +855,7 @@ $dropdown: map.merge( ( 'menu-box-shadow': var(--el-box-shadow-light), 'menuItem-hover-fill': var(--el-color-primary-light-9), - 'menuItem-hover-color': var(--el-color-primary-light-2), + 'menuItem-hover-color': var(--el-color-primary-light-3), 'menu-index': 10, ), $dropdown diff --git a/packages/theme-chalk/src/mixins/_button.scss b/packages/theme-chalk/src/mixins/_button.scss index a674f6b48c..b5340d102c 100644 --- a/packages/theme-chalk/src/mixins/_button.scss +++ b/packages/theme-chalk/src/mixins/_button.scss @@ -19,7 +19,7 @@ &:hover, &:focus, &:active { - color: map.get($colors, $type, 'light-4'); + color: map.get($colors, $type, 'light-5'); background-color: map.get($colors, $type, 'light-9'); border-color: map.get($colors, $type, 'light-8'); } diff --git a/packages/theme-chalk/src/mixins/_var.scss b/packages/theme-chalk/src/mixins/_var.scss index 9fac44648d..f864333ff5 100644 --- a/packages/theme-chalk/src/mixins/_var.scss +++ b/packages/theme-chalk/src/mixins/_var.scss @@ -8,14 +8,10 @@ @mixin set-css-color-type($type) { --el-color-#{$type}: #{map.get($colors, $type, 'base')}; - --el-color-#{$type}-light: #{map.get($colors, $type, 'light-8')}; - --el-color-#{$type}-lighter: #{map.get($colors, $type, 'light-9')}; - - // need to be considered - // may be we do not need add it to css var - // @each $i in (2, 4, 5, 6, 8, 9) { - // @include set-css-color-type-light($type, $i); - // } + @each $i in (3, 5, 7, 8, 9) { + @include set-css-color-type-light($type, $i); + } + --el-color-#{$type}-dark-2: #{map.get($colors, $type, 'dark-2')}; } @mixin set-css-var-type($name, $type, $variables) { diff --git a/packages/theme-chalk/src/reset.scss b/packages/theme-chalk/src/reset.scss index c9cf0438eb..bcca250e07 100644 --- a/packages/theme-chalk/src/reset.scss +++ b/packages/theme-chalk/src/reset.scss @@ -15,7 +15,7 @@ a { &:hover, &:focus { - color: var(--el-color-primary-light-2); + color: var(--el-color-primary-light-3); } &:active { diff --git a/packages/theme-chalk/src/var.scss b/packages/theme-chalk/src/var.scss index cb27783619..32dbe3f8dc 100644 --- a/packages/theme-chalk/src/var.scss +++ b/packages/theme-chalk/src/var.scss @@ -22,6 +22,7 @@ @for $i from 1 through 9 { @include set-css-color-type-light('primary', $i); } + --el-color-primary-dark-2: #{map.get($colors, 'primary', 'dark-2')}; // --el-color-#{$type} // --el-color-#{$type}-light-{$i}