@@ -19,29 +32,23 @@ import { ref } from 'vue'
const shadowGroup = ref([
{
name: 'Basic Shadow',
- type: 'base',
+ type: '',
},
{
name: 'Light Shadow',
type: 'light',
},
+ {
+ name: 'Lighter Shadow',
+ type: 'lighter',
+ },
+ {
+ name: 'Dark Shadow',
+ type: 'dark',
+ },
])
-const getValue = (type: string) => {
- const getCssVarValue = (prefix, type) =>
- getComputedStyle(document.documentElement).getPropertyValue(
- `--el-${prefix}-${type}`
- )
- return getCssVarValue('box-shadow', type)
+
+const getCssVarName = (type: string) => {
+ return `--el-box-shadow${type ? '-' : ''}${type}`
}
-
diff --git a/packages/components/backtop/src/backtop.vue b/packages/components/backtop/src/backtop.vue
index b3bed68db3..0c5eae106b 100644
--- a/packages/components/backtop/src/backtop.vue
+++ b/packages/components/backtop/src/backtop.vue
@@ -2,10 +2,7 @@
@@ -39,8 +36,11 @@ const ns = useNamespace('backtop')
const el = shallowRef()
const container = shallowRef()
const visible = ref(false)
-const styleBottom = computed(() => `${props.bottom}px`)
-const styleRight = computed(() => `${props.right}px`)
+
+const backTopStyle = computed(() => ({
+ right: `${props.right}px`,
+ bottom: `${props.bottom}px`,
+}))
const scrollToTop = () => {
if (!el.value) return
@@ -69,6 +69,9 @@ const handleClick = (event: MouseEvent) => {
const handleScrollThrottled = useThrottleFn(handleScroll, 300)
onMounted(() => {
+ container.value = document
+ el.value = document.documentElement
+
if (props.target) {
el.value = document.querySelector(props.target) ?? undefined
if (!el.value) {
diff --git a/packages/theme-chalk/src/backtop.scss b/packages/theme-chalk/src/backtop.scss
index d157a9043d..135fc73d0e 100644
--- a/packages/theme-chalk/src/backtop.scss
+++ b/packages/theme-chalk/src/backtop.scss
@@ -6,21 +6,21 @@
@include set-component-css-var('backtop', $backtop);
position: fixed;
- background-color: var(--el-backtop-bg-color);
+ background-color: getCssVar('backtop', 'bg-color');
width: 40px;
height: 40px;
border-radius: 50%;
- color: var(--el-backtop-text-color);
+ color: getCssVar('backtop', 'text-color');
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
- box-shadow: 0 0 6px rgba(0, 0, 0, 0.12);
+ box-shadow: getCssVar('box-shadow', 'lighter');
cursor: pointer;
z-index: 5;
&:hover {
- background-color: var(--el-backtop-hover-bg-color);
+ background-color: getCssVar('backtop', 'hover-bg-color');
}
@include e(icon) {
diff --git a/packages/theme-chalk/src/button.scss b/packages/theme-chalk/src/button.scss
index 680ad1b012..da7750a4fb 100644
--- a/packages/theme-chalk/src/button.scss
+++ b/packages/theme-chalk/src/button.scss
@@ -134,7 +134,7 @@ $button-icon-span-gap: map.merge(
right: -1px;
bottom: -1px;
border-radius: inherit;
- background-color: rgba(255, 255, 255, 0.35);
+ background-color: getCssVar('mask-color', 'extra-light');
}
}
@include when(round) {
diff --git a/packages/theme-chalk/src/common/var.scss b/packages/theme-chalk/src/common/var.scss
index 4f2aa077b4..3aa225f629 100644
--- a/packages/theme-chalk/src/common/var.scss
+++ b/packages/theme-chalk/src/common/var.scss
@@ -174,11 +174,21 @@ $border-radius: map.merge(
$box-shadow: () !default;
$box-shadow: map.merge(
(
- 'base': (
- 0 2px 4px rgba(0, 0, 0, 0.12),
- 0 0 6px rgba(0, 0, 0, 0.04),
+ '': (
+ 0px 12px 32px 4px rgba(0, 0, 0, 0.04),
+ 0px 8px 20px rgba(0, 0, 0, 0.08),
+ ),
+ 'light': (
+ 0px 0px 12px rgba(0, 0, 0, 0.12),
+ ),
+ 'lighter': (
+ 0px 0px 6px rgba(0, 0, 0, 0.12),
+ ),
+ 'dark': (
+ 0px 16px 48px 16px rgba(0, 0, 0, 0.08),
+ 0px 12px 32px rgba(0, 0, 0, 0.12),
+ 0px 8px 16px -8px rgba(0, 0, 0, 0.16),
),
- 'light': 0 2px 12px 0 rgba(0, 0, 0, 0.1),
),
$box-shadow
);
@@ -239,6 +249,27 @@ $common-component-size: map.merge(
$common-component-size
);
+// overlay
+$overlay-color: () !default;
+$overlay-color: map.merge(
+ (
+ '': rgba(0, 0, 0, 0.8),
+ 'light': rgba(0, 0, 0, 0.7),
+ 'lighter': rgba(0, 0, 0, 0.5),
+ ),
+ $overlay-color
+);
+
+// mask
+$mask-color: () !default;
+$mask-color: map.merge(
+ (
+ '': rgba(255, 255, 255, 0.9),
+ 'extra-light': rgba(255, 255, 255, 0.3),
+ ),
+ $mask-color
+);
+
// Components
// ---
// Checkbox
@@ -716,7 +747,7 @@ $dialog: map.merge(
'width': 50%,
'margin-top': 15vh,
'bg-color': getCssVar('color-white'),
- 'box-shadow': 0 1px 3px rgba(0, 0, 0, 0.3),
+ 'box-shadow': getCssVar('box-shadow'),
'title-font-size': getCssVar('font-size-large'),
'content-font-size': 14px,
'font-line-height': getCssVar('font-line-height-primary'),
@@ -738,7 +769,7 @@ $table: map.merge(
'row-hover-bg-color': getCssVar('fill-color', 'light'),
'current-row-bg-color': getCssVar('color-primary-light-9'),
'header-bg-color': getCssVar('fill-color', 'blank'),
- 'fixed-box-shadow': 0 0 10px rgba(0, 0, 0, 0.12),
+ 'fixed-box-shadow': getCssVar('box-shadow', 'light'),
'bg-color': getCssVar('fill-color', 'blank'),
'tr-bg-color': getCssVar('fill-color', 'blank'),
'expanded-cell-bg-color': getCssVar('fill-color', 'blank'),
diff --git a/packages/theme-chalk/src/drawer.scss b/packages/theme-chalk/src/drawer.scss
index f545a3debc..b95a93a938 100644
--- a/packages/theme-chalk/src/drawer.scss
+++ b/packages/theme-chalk/src/drawer.scss
@@ -14,8 +14,7 @@ $directions: rtl, ltr, ttb, btt;
background-color: var(--el-drawer-bg-color);
display: flex;
flex-direction: column;
- box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2),
- 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12);
+ box-shadow: getCssVar('box-shadow', 'dark');
overflow: hidden;
transition: all var(--el-transition-duration);
diff --git a/packages/theme-chalk/src/dropdown.scss b/packages/theme-chalk/src/dropdown.scss
index e1debd6135..266a54160f 100644
--- a/packages/theme-chalk/src/dropdown.scss
+++ b/packages/theme-chalk/src/dropdown.scss
@@ -108,7 +108,7 @@ $dropdown-divider-width: 1px !default;
top: $gap;
bottom: $gap;
left: 0;
- background: rgba(0, 0, 0, 0.5);
+ background: getCssVar('overlay-color', 'lighter');
}
&.#{$namespace}-button::before {
diff --git a/packages/theme-chalk/src/loading.scss b/packages/theme-chalk/src/loading.scss
index 47bab6c3d9..de565cacc0 100644
--- a/packages/theme-chalk/src/loading.scss
+++ b/packages/theme-chalk/src/loading.scss
@@ -21,7 +21,7 @@
@include b(loading-mask) {
position: absolute;
z-index: 2000;
- background-color: rgba(255, 255, 255, 0.9);
+ background-color: getCssVar('mask-color');
margin: 0;
top: 0;
right: 0;
diff --git a/packages/theme-chalk/src/overlay.scss b/packages/theme-chalk/src/overlay.scss
index 1b2ed29d84..89dbaf7b2a 100644
--- a/packages/theme-chalk/src/overlay.scss
+++ b/packages/theme-chalk/src/overlay.scss
@@ -12,6 +12,6 @@
left: 0;
z-index: 2000;
height: 100%;
- background-color: rgba(0, 0, 0, 0.5);
+ background-color: getCssVar('overlay-color', 'lighter');
overflow: auto;
}
diff --git a/packages/theme-chalk/src/tabs.scss b/packages/theme-chalk/src/tabs.scss
index 9d65845d93..6c7a3712d7 100644
--- a/packages/theme-chalk/src/tabs.scss
+++ b/packages/theme-chalk/src/tabs.scss
@@ -225,7 +225,6 @@
@include m(border-card) {
background: $color-white;
border: 1px solid getCssVar('border-color');
- box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
> .#{$namespace}-tabs__content {
padding: 15px;
diff --git a/packages/theme-chalk/src/upload.scss b/packages/theme-chalk/src/upload.scss
index 5d34ad0f7f..9e8771bf69 100644
--- a/packages/theme-chalk/src/upload.scss
+++ b/packages/theme-chalk/src/upload.scss
@@ -372,7 +372,7 @@
color: #fff;
opacity: 0;
font-size: 20px;
- background-color: rgba(0, 0, 0, 0.5);
+ background-color: getCssVar('overlay-color', 'lighter');
transition: opacity var(--el-transition-duration);
span {
@@ -518,7 +518,6 @@
background: var(--el-color-success);
text-align: center;
transform: rotate(45deg);
- box-shadow: 0 0 16px 1px rgba(0, 0, 0, 0.2);
i {
font-size: 12px;
@@ -553,7 +552,7 @@
left: 0;
width: 100%;
height: 100%;
- background-color: rgba(#000, 0.72);
+ background-color: getCssVar('overlay-color', 'light');
text-align: center;
.btn {
diff --git a/packages/theme-chalk/src/var.scss b/packages/theme-chalk/src/var.scss
index 45d0d9235c..d06ab04a78 100644
--- a/packages/theme-chalk/src/var.scss
+++ b/packages/theme-chalk/src/var.scss
@@ -56,6 +56,9 @@
@include set-component-css-var('disabled', $disabled);
// z-index --el-index-#{$type}
@include set-component-css-var('index', $z-index);
+ // overlay & mask
+ @include set-component-css-var('overlay-color', $overlay-color);
+ @include set-component-css-var('mask-color', $mask-color);
// Border
@include set-css-var-value('border-width', $border-width);