diff --git a/docs/examples/link/with-icon.vue b/docs/examples/link/with-icon.vue
index 8a61f58974..f1a4db49c9 100644
--- a/docs/examples/link/with-icon.vue
+++ b/docs/examples/link/with-icon.vue
@@ -6,14 +6,13 @@
+
+
diff --git a/packages/components/link/src/link.vue b/packages/components/link/src/link.vue
index a151cbdeab..7e13490256 100644
--- a/packages/components/link/src/link.vue
+++ b/packages/components/link/src/link.vue
@@ -10,7 +10,7 @@
@click="handleClick"
>
-
+
diff --git a/packages/theme-chalk/src/common/var.scss b/packages/theme-chalk/src/common/var.scss
index de615f8b4a..a6c51518d0 100644
--- a/packages/theme-chalk/src/common/var.scss
+++ b/packages/theme-chalk/src/common/var.scss
@@ -1100,8 +1100,8 @@ $link: map.merge(
(
'font-size': var(--el-font-size-base),
'font-weight': var(--el-font-weight-primary),
- 'default-text-color': var(--el-text-color-regular),
- 'default-active-color': var(--el-color-primary),
+ 'text-color': var(--el-text-color-regular),
+ 'hover-text-color': var(--el-color-primary),
'disabled-text-color': var(--el-text-color-placeholder),
),
$link
diff --git a/packages/theme-chalk/src/link.scss b/packages/theme-chalk/src/link.scss
index c3b7cafd7c..778f0de9a1 100644
--- a/packages/theme-chalk/src/link.scss
+++ b/packages/theme-chalk/src/link.scss
@@ -2,6 +2,7 @@
@use 'mixins/mixins' as *;
@use 'mixins/var' as *;
+@use 'mixins/utils' as *;
@use 'common/var' as *;
@include b(link) {
@@ -19,8 +20,14 @@
outline: none;
cursor: pointer;
padding: 0;
- font-size: var(--el-link-font-size);
- font-weight: var(--el-link-font-weight);
+ font-size: getCssVar('link', 'font-size');
+ font-weight: getCssVar('link', 'font-weight');
+
+ color: getCssVar('link', 'text-color');
+
+ &:hover {
+ color: getCssVar('link', 'hover-text-color');
+ }
@include when(underline) {
&:hover:after {
@@ -30,11 +37,12 @@
right: 0;
height: 0;
bottom: 0;
- border-bottom: 1px solid var(--el-link-default-active-color);
+ border-bottom: 1px solid getCssVar('link', 'hover-text-color');
}
}
@include when(disabled) {
+ color: getCssVar('link', 'disabled-text-color');
cursor: not-allowed;
}
@@ -45,40 +53,36 @@
}
&.#{$namespace}-link--default {
- color: var(--el-link-default-text-color);
-
- &:hover {
- color: var(--el-link-default-active-color);
- }
-
&:after {
- border-color: var(--el-link-default-active-color);
+ border-color: getCssVar('link', 'hover-text-color');
}
+ }
- @include when(disabled) {
- color: var(--el-link-disabled-text-color);
- }
+ @include e(inner) {
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
}
@each $type in $types {
&.#{$namespace}-link--#{$type} {
- --el-link-text-color: var(--el-color-#{$type});
- color: var(--el-link-text-color);
-
- &:hover {
- color: mix(map.get($link-text-color, $type), $color-white, 80%);
- }
+ @include css-var-from-global(('link', 'text-color'), ('color', $type));
+ @include css-var-from-global(
+ ('link', 'hover-text-color'),
+ ('color', $type, 'light-3')
+ );
+ @include css-var-from-global(
+ ('link', 'disabled-text-color'),
+ ('color', $type, 'light-5')
+ );
&:after {
- border-color: var(--el-link-text-color);
+ border-color: getCssVar('link', 'text-color');
}
- @include when(disabled) {
- color: mix(map.get($link-text-color, $type), $color-white, 50%);
- }
@include when(underline) {
&:hover:after {
- border-color: var(--el-link-text-color);
+ border-color: getCssVar('link', 'text-color');
}
}
}