Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions examples/sites/demos/app/link/custom-icon.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
<template>
<div>
<tiny-link>
<template #icon>
<icon-fillet-external-link class="tiny-svg-link"></icon-fillet-external-link>
</template>
链接按钮
</tiny-link>
<tiny-link disabled>
<template #icon>
<icon-fillet-external-link class="tiny-svg-size"></icon-fillet-external-link>
</template>
链接按钮
</tiny-link>
<tiny-link :underline="false" :icon="IconEdit"> 编辑 </tiny-link>
<tiny-link :underline="false" :icon="IconEdit" disabled> 禁用 </tiny-link>
<tiny-link :underline="false"> 查看<icon-view class="tiny-svg-size"></icon-view> </tiny-link>
Expand All @@ -12,15 +24,16 @@
</div>
</template>

<script lang="jsx">
<script>
import { Link } from '@opentiny/vue'
import { IconEdit, IconView, IconDel } from '@opentiny/vue-icon'
import { IconEdit, IconView, IconDel, IconFilletExternalLink } from '@opentiny/vue-icon'

export default {
components: {
TinyLink: Link,
IconView: IconView(),
IconDel: IconDel()
IconDel: IconDel(),
IconFilletExternalLink: IconFilletExternalLink()
},
data() {
return {
Expand All @@ -34,4 +47,8 @@ export default {
.tiny-link {
margin-right: 8px;
}
.tiny-svg-link,
.tiny-svg-link g {
fill: var(--ti-link-default-text-color);
}
</style>
3 changes: 2 additions & 1 deletion packages/theme/src/link/aurora-theme.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export const tinyLinkAuroraTheme = {
'ti-link-default-text-color': '#606266',
'ti-link-default-hover-text-color': '#40a9ff',
'ti-link-has-svg-hover-text-color': '#40a9ff'
'ti-link-has-svg-hover-text-color': '#40a9ff',
'ti-link-primary-disabled-text-color': '#a0cfff'
}
102 changes: 26 additions & 76 deletions packages/theme/src/link/index.less
Original file line number Diff line number Diff line change
Expand Up @@ -52,61 +52,25 @@
}

&&--additional {
&:after {
content: '';
width: var(--ti-link-underline-width);
position: absolute;
left: 0;
right: 0;
height: 0;
bottom: 1px;
display: var(--ti-link-default-border-display);
border-bottom: 1px;
border-bottom-style: solid;
border-bottom-color: var(--ti-link-default-border-color);
}

&:hover {
color: var(--ti-link-default-hover-text-color);
fill: var(--ti-link-default-hover-text-color);

g {
fill: var(--ti-link-default-hover-text-color);
}

&:after {
border-bottom-color: var(--ti-link-default-hover-border-color);
}
}

&.is-disabled {
&:hover {
color: var(--ti-link-default-disabled-text-color);
fill: var(--ti-link-default-disabled-text-color);

g {
fill: var(--ti-link-default-disabled-text-color);
}
}

&:after {
border-bottom-color: var(--ti-link-default-disabled-text-color);
}
}

&:has(.@{svg-cls}):after {
display: none;
}


&:has(.@{svg-cls}):hover {
font-weight: var(--ti-link-icon-hover-text-weight);
color: var(--ti-link-has-svg-hover-text-color);
fill: var(--ti-link-has-svg-hover-text-color);

g {
fill: var(--ti-link-has-svg-hover-text-color);
}

}

&:has(.@{svg-cls}).is-disabled {
Expand All @@ -115,29 +79,29 @@
color: var(--ti-link-default-disabled-text-color);
fill: var(--ti-link-default-disabled-text-color);
}
}

g {
fill: var(--ti-link-default-disabled-text-color);
}
}

&.is-underline:hover {
&:after {
content: '';
width: var(--ti-link-only-text-underline-width);
position: absolute;
left: 0;
height: 0;
bottom: 0;
display: block;
border-bottom: 1px solid var(--ti-link-border-color);
}

&:has(.@{svg-cls}) {
g {
fill: var(--ti-link-default-disabled-text-color);
}
&:has(.@{svg-cls}):after {
width: var(--ti-link-has-icon-underline-width);
}
}

&.is-underline:hover:after {
content: '';
width: var(--ti-link-underline-width);
position: absolute;
left: 0;
right: 0;
height: 0;
bottom: 0;
display: block;
border-bottom: 1px solid var(--ti-link-border-color);
&:has(>:first-child:not(.@{link-prefix-cls}__inner)):after {
left: calc(100% - var(--ti-link-has-icon-underline-width));
}
}

&.is-disabled {
Expand All @@ -150,24 +114,18 @@
var(--ti-link-default-border-color),
var(--ti-link-default-hover-text-color),
var(--ti-link-default-disabled-text-color)
);
)

.@{svg-cls} {
g {
fill: var(--ti-link-default-text-color);
}
}
}


&&--primary {
.link-type(
var(--ti-link-primary-text-color),
var(--ti-link-primary-border-color),
var(--ti-link-primary-hover-text-color),
var(--ti-link-primary-disabled-text-color)
);

display: var(--ti-link-display);
)
}

&&--danger {
Expand All @@ -176,9 +134,7 @@
var(--ti-link-danger-border-color),
var(--ti-link-danger-hover-text-color),
var(--ti-link-danger-disabled-text-color)
);

display: var(--ti-link-display);
)
}

&&--success {
Expand All @@ -187,9 +143,7 @@
var(--ti-link-success-border-color),
var(--ti-link-success-hover-text-color),
var(--ti-link-success-disabled-text-color)
);

display: var(--ti-link-display);
)
}

&&--warning {
Expand All @@ -198,9 +152,7 @@
var(--ti-link-warning-border-color),
var(--ti-link-warning-hover-text-color),
var(--ti-link-warning-disabled-text-color)
);

display: var(--ti-link-display);
)
}

&&--info {
Expand All @@ -209,8 +161,6 @@
var(--ti-link-info-border-color),
var(--ti-link-info-hover-text-color),
var(--ti-link-info-disabled-text-color)
);

display: var(--ti-link-display);
)
}
}
11 changes: 8 additions & 3 deletions packages/theme/src/link/smb-theme.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
export const tinyLinkSmbTheme = {
'ti-link-display': 'none',
'ti-link-svg-width': '16px',
'ti-link-svg-height': '16px',
'ti-link-svg-margin-right': '4px',
'ti-link-font-weight': 'var(--ti-common-font-weight-4)',
'ti-link-default-border-display': 'none',
'ti-link-default-hover-border-color': '#595959',
'ti-link-default-hover-text-color': 'var(--ti-common-color-text-highlight)',
'ti-link-default-text-color': 'var(--ti-common-color-text-highlight)',
'ti-link-default-disabled-text-color': '#C2C2C2',
'ti-link-icon-hover-text-weight': 'var(--ti-common-font-weight-4)',
'ti-link-default-border-color': '#1476FF',
'ti-link-underline-width': 'calc(100% - 20px)'
'ti-link-has-icon-underline-width': 'calc(100% - 20px)',
'ti-link-has-svg-hover-text-color': '#1476FF',
'ti-link-danger-hover-text-color': 'var(--ti-common-color-danger-hover)',
'ti-link-primary-disabled-text-color': 'var(--ti-common-color-primary-disabled-text)',
'ti-link-danger-disabled-text-color': 'var(--ti-common-color-danger-disabled-text)',
'ti-link-success-disabled-text-color': 'var(--ti-common-color-success-disabled-text)',
'ti-link-warning-disabled-text-color': 'var(--ti-common-color-warning-disabled-text)',
'ti-link-info-disabled-text-color': 'var(--ti-common-color-info-disabled-text)'
}
10 changes: 5 additions & 5 deletions packages/theme/src/link/vars.less
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@
--ti-link-font-weight: var(--ti-common-font-weight-5);
// 链接下划线色(hide)
--ti-link-border-color: var(--ti-common-color-line-active);
// 链接下划线宽度(hide)
--ti-link-underline-width: 100%;
// 链接有图标时下划线宽度(hide)
--ti-link-has-icon-underline-width: 100%;
// 链接只有文字时下划线宽度(hide)
--ti-link-only-text-underline-width: 100%;
// 链接是否显示
--ti-link-display: inline;
// 链接图标宽度
Expand All @@ -31,8 +33,6 @@
// 链接图标悬浮字重
--ti-link-icon-hover-text-weight: var(--ti-common-font-weight-5);

// 链接下划线是否显示,默认不显示
--ti-link-default-border-display: none;
// 默认链接文本色
--ti-link-default-text-color: var(--ti-common-color-info-text);
// 默认链接悬浮下划线色
Expand Down Expand Up @@ -91,5 +91,5 @@
--ti-link-info-disabled-text-color: var(--ti-common-color-info-disabled);

// 带有图标的链接悬浮文本色
--ti-link-has-svg-hover-text-color: var(--ti-link-default-text-color);
--ti-link-has-svg-hover-text-color: var(--ti-common-color-text-link);
}
12 changes: 6 additions & 6 deletions packages/theme/src/mixins/link.less
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@
color: @color;
fill: @color;

&.is-underline:hover:after,
&:after {
border-color: @border-color;
&.is-underline:hover {
&:after {
border-color: @border-color;
}
}

&:hover {
color: @hover-color;
fill: @hover-color;
text-decoration: none;
}

&.is-disabled {
&.is-disabled,
&.is-disabled:hover {
color: @disabled-color;
fill: @disabled-color;
}
Expand Down