diff --git a/examples/sites/demos/pc/app/button/ghost.spec.ts b/examples/sites/demos/pc/app/button/ghost.spec.ts
index 72a850d756..b337116abc 100644
--- a/examples/sites/demos/pc/app/button/ghost.spec.ts
+++ b/examples/sites/demos/pc/app/button/ghost.spec.ts
@@ -16,61 +16,61 @@ test('幽灵按钮', async ({ page }) => {
await page.waitForTimeout(100)
await expect(getGhostBtn(0)).toHaveCSS('color', 'rgb(25, 25, 25)')
await expect(getGhostBtn(0)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(0)).toHaveCSS('border-bottom-color', 'rgb(194, 194, 194)')
+ await expect(getGhostBtn(0)).toHaveCSS('border-bottom-color', 'rgb(25, 25, 25)')
// 次要幽灵按钮
await page.waitForTimeout(1000)
- await expect(getGhostBtn(1)).toHaveCSS('color', 'rgb(89, 89, 89)')
+ await expect(getGhostBtn(1)).toHaveCSS('color', 'rgb(25, 25, 25)')
await expect(getGhostBtn(1)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(1)).toHaveCSS('border-bottom-color', 'rgb(89, 89, 89)')
+ await expect(getGhostBtn(1)).toHaveCSS('border-bottom-color', 'rgb(194, 194, 194)')
await page.waitForTimeout(100)
await getGhostBtn(1).click()
await page.waitForTimeout(100)
- await expect(getGhostBtn(1)).toHaveCSS('color', 'rgb(89, 89, 89)')
+ await expect(getGhostBtn(1)).toHaveCSS('color', 'rgb(25, 25, 25)')
await expect(getGhostBtn(1)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(1)).toHaveCSS('border-bottom-color', 'rgb(219, 219, 219)')
+ await expect(getGhostBtn(1)).toHaveCSS('border-bottom-color', 'rgb(25, 25, 25)')
// 成功幽灵按钮
await expect(getGhostBtn(2)).toHaveCSS('color', 'rgb(92, 179, 0)')
await expect(getGhostBtn(2)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(2)).toHaveCSS('border-bottom-color', 'rgb(92, 179, 0)')
+ await expect(getGhostBtn(2)).toHaveCSS('border-bottom-color', 'rgb(218, 242, 187)')
await page.waitForTimeout(100)
await getGhostBtn(2).click()
await page.waitForTimeout(100)
await expect(getGhostBtn(2)).toHaveCSS('color', 'rgb(92, 179, 0)')
await expect(getGhostBtn(2)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(2)).toHaveCSS('border-bottom-color', 'rgb(218, 242, 187)')
+ await expect(getGhostBtn(2)).toHaveCSS('border-bottom-color', 'rgb(92, 179, 0)')
// 信息幽灵按钮
await expect(getGhostBtn(3)).toHaveCSS('color', 'rgb(20, 118, 255)')
await expect(getGhostBtn(3)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(3)).toHaveCSS('border-bottom-color', 'rgb(20, 118, 255)')
+ await expect(getGhostBtn(3)).toHaveCSS('border-bottom-color', 'rgb(222, 236, 255)')
await page.waitForTimeout(100)
await getGhostBtn(3).click()
await page.waitForTimeout(100)
await expect(getGhostBtn(3)).toHaveCSS('color', 'rgb(20, 118, 255)')
await expect(getGhostBtn(3)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(3)).toHaveCSS('border-bottom-color', 'rgb(222, 236, 255)')
+ await expect(getGhostBtn(3)).toHaveCSS('border-bottom-color', 'rgb(20, 118, 255)')
// 告警幽灵按钮
await expect(getGhostBtn(4)).toHaveCSS('color', 'rgb(255, 136, 0)')
await expect(getGhostBtn(4)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(4)).toHaveCSS('border-bottom-color', 'rgb(255, 136, 0)')
+ await expect(getGhostBtn(4)).toHaveCSS('border-bottom-color', 'rgb(255, 235, 209)')
await page.waitForTimeout(100)
await getGhostBtn(4).click()
await page.waitForTimeout(100)
await expect(getGhostBtn(4)).toHaveCSS('color', 'rgb(255, 136, 0)')
await expect(getGhostBtn(4)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(4)).toHaveCSS('border-bottom-color', 'rgb(255, 235, 209)')
+ await expect(getGhostBtn(4)).toHaveCSS('border-bottom-color', 'rgb(255, 136, 0)')
// 危险幽灵按钮
await expect(getGhostBtn(5)).toHaveCSS('color', 'rgb(242, 48, 48)')
await expect(getGhostBtn(5)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(5)).toHaveCSS('border-bottom-color', 'rgb(242, 48, 48)')
+ await expect(getGhostBtn(5)).toHaveCSS('border-bottom-color', 'rgb(252, 226, 224)')
await page.waitForTimeout(100)
await getGhostBtn(5).click()
await page.waitForTimeout(100)
await expect(getGhostBtn(5)).toHaveCSS('color', 'rgb(242, 48, 48)')
await expect(getGhostBtn(5)).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)')
- await expect(getGhostBtn(5)).toHaveCSS('border-bottom-color', 'rgb(252, 226, 224)')
+ await expect(getGhostBtn(5)).toHaveCSS('border-bottom-color', 'rgb(242, 48, 48)')
})
diff --git a/examples/sites/demos/pc/app/button/size-composition-api.vue b/examples/sites/demos/pc/app/button/size-composition-api.vue
index b471f816e3..7c81d6c88c 100644
--- a/examples/sites/demos/pc/app/button/size-composition-api.vue
+++ b/examples/sites/demos/pc/app/button/size-composition-api.vue
@@ -4,8 +4,8 @@
常规按钮尺寸:
超大按钮
中等按钮
- 小型按钮
默认按钮
+ 小型按钮
超小按钮
@@ -13,8 +13,8 @@
朴素按钮尺寸:
超大按钮
中等按钮
- 小型按钮
默认按钮
+ 小型按钮
超小按钮
@@ -22,8 +22,8 @@
圆角按钮尺寸:
超大按钮
中等按钮
- 小型按钮
默认按钮
+ 小型按钮
超小按钮
@@ -31,8 +31,8 @@
圆形按钮尺寸:
-
+
@@ -40,8 +40,8 @@
纯图标按钮尺寸:
-
+
diff --git a/examples/sites/demos/pc/app/button/size.vue b/examples/sites/demos/pc/app/button/size.vue
index 84479dad4b..37cb1ae673 100644
--- a/examples/sites/demos/pc/app/button/size.vue
+++ b/examples/sites/demos/pc/app/button/size.vue
@@ -4,8 +4,8 @@
常规按钮尺寸:
超大按钮
中等按钮
- 小型按钮
默认按钮
+ 小型按钮
超小按钮
@@ -13,8 +13,8 @@
朴素按钮尺寸:
超大按钮
中等按钮
- 小型按钮
默认按钮
+ 小型按钮
超小按钮
@@ -22,8 +22,8 @@
圆角按钮尺寸:
超大按钮
中等按钮
- 小型按钮
默认按钮
+ 小型按钮
超小按钮
@@ -31,8 +31,8 @@
圆形按钮尺寸:
-
+
@@ -40,8 +40,8 @@
纯图标按钮尺寸:
-
+
diff --git a/packages/theme/src/button/index.less b/packages/theme/src/button/index.less
index d58ae3f515..e6f74c0ca9 100644
--- a/packages/theme/src/button/index.less
+++ b/packages/theme/src/button/index.less
@@ -1,16 +1,4 @@
-/**
-* Copyright (c) 2022 - present TinyVue Authors.
-* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
-*
-* Use of this source code is governed by an MIT-style license.
-*
-* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
-* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
-* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
-*
-*/
-
-@import '../mixins/button.less';
+/* stylelint-disable function-no-unknown */
@import '../custom.less';
@import './vars.less';
@@ -18,557 +6,348 @@
@svg-prefix-cls: ~'@{css-prefix}svg';
.@{button-prefix-cls} {
- .component-css-vars-button();
+ .inject-Button-vars();
display: inline-block;
appearance: none;
text-align: center;
- box-sizing: border-box;
- height: var(--ti-button-size-normal-height);
- line-height: calc(var(--ti-button-size-normal-height) - 2px);
- color: var(--ti-button-normal-text-color);
- fill: var(--ti-button-normal-text-color);
- font-size: var(--ti-button-font-size);
white-space: nowrap;
text-overflow: ellipsis;
cursor: pointer;
user-select: none;
- border-width: var(--ti-button-border-width);
- border-style: var(--ti-button-border-style);
- border-color: var(--ti-button-normal-border-color);
border-image: initial;
- border-radius: var(--ti-button-border-radius);
- background: var(--ti-button-normal-background-color);
- padding: var(--ti-button-padding-vertical) var(--ti-button-size-normal-padding-horizontal);
overflow: hidden;
- transition:
- border 0.3s ease 0s,
- color 0.3s ease 0s,
- background 0.3s ease 0s;
+ transition: all 0.3s;
outline: 0;
vertical-align: middle;
+ font-weight: var(--tv-Button-font-weight);
+ border: var(--tv-Button-border-width) solid;
- .@{svg-prefix-cls} {
- vertical-align: text-top;
- font-size: var(--ti-button-icon-font-size);
- }
+ /** 1、 圆角场景 */
+ border-radius: var(--tv-Button-border-radius);
- & > img {
- margin-right: 4px;
- vertical-align: middle;
+ &.is-round {
+ border-radius: var(--tv-Button-border-radius-round);
}
- &.is-only-icon {
- width: var(--ti-button-only-icon-width);
- padding: 0;
- border-radius: var(--ti-button-only-icon-border-radius);
-
- &:hover {
- border-color: var(--ti-button-only-icon-hover-border-color);
- }
+ &.is-circle {
+ border-radius: var(--tv-Button-border-radius-circle);
+ }
- &.is-disabled {
- border-color: var(--ti-button-only-icon-disabled-border-color);
+ /** 2、尺寸场景 */
+ .size-mixin(@size) {
+ @fs: %('var(--tv-Button-font-size%a)', @size);
+ @h: %('var(--tv-Button-height%a)', @size);
+ @p: %('var(--tv-Button-padding-x%a)', @size);
+ @mw: %('var(--tv-Button-min-width%a)', @size);
- &:hover {
- border-color: var(--ti-button-only-icon-disabled-border-color);
- }
- }
- }
- &.is-only-icon.is-circle {
- width: unset;
+ font-size: e(@fs);
+ height: e(@h);
+ padding: 0 e(@p);
+ min-width: e(@mw);
}
- &::-moz-focus-inner {
- border: 0;
- }
+ .size-mixin(e('')); // 默认尺寸 3
- &:focus,
- &:hover {
- .button-color(
- var(--ti-button-normal-hover-text-color),
- var(--ti-button-normal-hover-border-color),
- var(--ti-button-normal-hover-bg-color)
- );
+ &.@{button-prefix-cls}--large {
+ .size-mixin(-large);
}
-
- &:active,
- &.is-active,
- &.is-plain:active {
- .button-color(
- var(--ti-button-normal-active-text-color),
- var(--ti-button-normal-active-border-color),
- var(--ti-button-normal-active-bg-color)
- );
+ &.@{button-prefix-cls}--medium {
+ .size-mixin(-medium);
}
-
- &.is-ghost {
- background-color: transparent;
- color: var(--ti-button-ghost-text-color);
-
- &:active,
- &:focus,
- &:hover {
- .button-color(
- var(--ti-button-ghost-hover-text-color),
- var(--ti-button-ghost-hover-border-color),
- transparent
- );
- }
-
- &.is-disabled,
- &.is-disabled:focus,
- &.is-disabled:hover {
- .button-color(
- var(--ti-button-ghost-disabled-text-color),
- var(--ti-button-ghost-disabled-border-color),
- transparent
- );
- }
+ &.@{button-prefix-cls}--small {
+ .size-mixin(-small);
}
-
- &.is-disabled,
- &.is-disabled:focus,
- &.is-disabled:hover {
- cursor: not-allowed;
- .button-color(
- var(--ti-button-normal-disabled-text-color),
- var(--ti-button-normal-disabled-border-color),
- var(--ti-button-normal-disabled-bg-color)
- );
+ &.@{button-prefix-cls}--mini {
+ .size-mixin(-mini);
}
- &.is-plain:focus,
- &.is-plain:hover {
- .button-color(
- var(--ti-button-normal-hover-text-color),
- var(--ti-button-normal-hover-border-color),
- var(--ti-button-normal-hover-bg-color)
- );
- }
+ /** 3、颜色场景 */
+ // 混入基本主题色: text-color bg-color border-color icon-color
+ .color-theme-mixin(@theme) {
+ @c: %('var(--tv-Button-text-color-%a)', @theme);
+ @bg: %('var(--tv-Button-bg-color-%a)', @theme);
+ @border: %('var(--tv-Button-border-color-%a)', @theme);
+ @icon: %('var(--tv-Button-icon-color-%a)', @theme);
- &.is-disabled.is-plain,
- &.is-disabled.is-plain:focus,
- &.is-disabled.is-plain:hover {
- .button-color(
- var(--ti-button-normal-disabled-text-color),
- var(--ti-button-normal-disabled-border-color),
- var(--ti-button-normal-disabled-bg-color)
- );
+ color: e(@c);
+ background-color: e(@bg);
+ border-color: e(@border);
+ fill: e(@icon);
}
+ // plain 按钮 优先级为:两级类名
+ .color-plain-mixin(@theme) {
+ @c: %('var(--tv-Button-text-color-plain-%a)', @theme);
+ @bg: %('var(--tv-Button-bg-color-plain-%a)', @theme);
+ @border: %('var(--tv-Button-border-color-plain-%a)', @theme);
- & + & {
- margin-left: 8px;
+ color: e(@c);
+ background-color: e(@bg);
+ border-color: e(@border);
}
+ // 激活态: 叠加到主题和plain 状态上。
+ .color-active-mixin(@theme, @plain) {
+ @bg: %('var(--tv-Button-bg-color%a-active-%a)', @plain, @theme);
+ @border: %('var(--tv-Button-border%a-color-active-%a)', @plain, @theme);
- &.is-loading {
- position: relative;
- pointer-events: none;
- overflow: initial;
-
- &:before {
- pointer-events: none;
- content: '';
- position: absolute;
- left: -1px;
- top: -1px;
- right: -1px;
- bottom: -1px;
- border-radius: inherit;
- background-color: var(--ti-button-loading-bg-color);
+ &:active,
+ &:focus,
+ &:hover,
+ &.is-active {
+ background-color: e(@bg);
+ border-color: e(@border);
}
+ }
- .@{svg-prefix-cls} {
- fill: var(--ti-button-info-text-color);
- }
+ &.@{button-prefix-cls}--default {
+ .color-theme-mixin(default);
+ .color-active-mixin(default, e(''));
- &.@{button-prefix-cls}--default {
- .@{svg-prefix-cls} {
- fill: var(--ti-button-normal-text-color);
- }
+ &.is-plain,
+ &.is-ghost {
+ .color-plain-mixin(default);
+ .color-active-mixin(default, -plain);
}
}
+ &.@{button-prefix-cls}--primary {
+ .color-theme-mixin(primary);
+ .color-active-mixin(primary, e(''));
- &.is-round {
- border-radius: calc(var(--ti-button-size-normal-height, 30px) / 2);
+ &.is-plain,
+ &.is-ghost {
+ .color-plain-mixin(primary);
+ .color-active-mixin(primary, -plain);
+ }
}
+ &.@{button-prefix-cls}--success {
+ .color-theme-mixin(success);
+ .color-active-mixin(success, e(''));
- &.is-icon {
- display: inline-flex;
- justify-content: center;
- align-items: center;
+ &.is-plain,
+ &.is-ghost {
+ .color-plain-mixin(success);
+ .color-active-mixin(success, -plain);
+ }
}
+ &.@{button-prefix-cls}--warning {
+ .color-theme-mixin(warning);
+ .color-active-mixin(warning, e(''));
- &:not(.is-circle) {
- .@{svg-prefix-cls}.is-text {
- margin-right: var(--ti-button-text-has-svg-icon-margin-right);
+ &.is-plain,
+ &.is-ghost {
+ .color-plain-mixin(warning);
+ .color-active-mixin(warning, -plain);
}
+ }
+ &.@{button-prefix-cls}--danger {
+ .color-theme-mixin(danger);
+ .color-active-mixin(danger, e(''));
- &.is-loading {
- .@{svg-prefix-cls} {
- margin-right: 4px;
- }
+ &.is-plain,
+ &.is-ghost {
+ .color-plain-mixin(danger);
+ .color-active-mixin(danger, -plain);
}
}
+ &.@{button-prefix-cls}--info {
+ .color-theme-mixin(info);
+ .color-active-mixin(info, e(''));
- &.is-circle {
- border-radius: 50%;
- min-width: var(--ti-button-size-normal-height);
- min-height: var(--ti-button-size-normal-height);
- line-height: 1;
- padding: var(--ti-button-size-normal-padding);
-
- &.is-hide-boder {
- border: none;
+ &.is-plain,
+ &.is-ghost {
+ .color-plain-mixin(info);
+ .color-active-mixin(info, -plain);
}
}
- &.is-circle&--large {
- .button-circle-size(
- var(--ti-button-size-large-height),
- var(--ti-button-size-large-padding)
- );
+ // ghost: 默认继承plain的状态, 但是bg 强制为透明,比禁用还高 优先级为:六级类名
+ &.is-ghost.is-ghost.is-ghost.is-ghost.is-ghost.is-ghost {
+ background-color: var(--tv-Button-bg-color-ghost);
}
- &.is-circle&--medium {
- .button-circle-size(
- var(--ti-button-size-medium-height),
- var(--ti-button-size-medium-padding)
- );
- }
+ // 禁用态+loading 优先级最高, 五优先级
+ &.is-disabled.is-disabled.is-disabled.is-disabled.is-disabled,
+ &.is-loading.is-loading.is-loading.is-loading.is-loading,
+ &[disabled][disabled][disabled][disabled][disabled] {
+ color: var(--tv-Button-text-color-disabled);
+ background-color: var(--tv-Button-bg-color-disabled);
+ border-color: var(--tv-Button-border-color-disabled);
+ fill: var(--tv-Button-icon-color-disabled);
+ cursor: not-allowed;
- &.is-circle&--small {
- .button-circle-size(
- var(--ti-button-size-small-height),
- var(--ti-button-size-small-padding)
- );
+ &.is-ghost {
+ border-color: var(--tv-Button-border-color-ghost-disabled);
+ }
}
- &.is-circle&--mini {
- .button-circle-size(
- var(--ti-button-size-mini-height),
- var(--ti-button-size-mini-padding)
- );
- }
- &&--default.is-plain {
- border-color: var(--ti-button-plain-border-color);
- }
- &&--default.is-disabled.is-plain {
- border-color: var(--ti-button-plain-disabled-border-color);
- }
- &&--default.is-plain:hover {
- border-color: var(--ti-button-plain-hover-border-color);
- }
+ /** 4、图标 + 文字场景 */
- &&--primary {
- .button-type(
- var(--ti-button-primary-text-color),
- var(--ti-button-primary-normal-bg-color),
- var(--ti-button-primary-normal-border-color),
- var(--ti-button-primary-hover-bg-color),
- var(--ti-button-primary-hover-border-color),
- var(--ti-button-primary-active-bg-color),
- var(--ti-button-primary-disabled-text-color),
- var(--ti-button-primary-disabled-bg-color),
- var(--ti-button-primary-plain-text-color),
- var(--ti-button-primary-plain-hover-text-color),
- var(--ti-button-primary-plain-bg-color),
- var(--ti-button-primary-plain-hover-bg-color),
- var(--ti-button-primary-plain-border-color),
- var(--ti-button-primary-plain-hover-border-color),
- var(--ti-button-primary-plain-disabled-bg-color),
- var(--ti-button-primary-disabled-border-color),
- var(--ti-button-primary-ghost-text-color),
- var(--ti-button-primary-ghost-hover-text-color),
- var(--ti-button-primary-ghost-disabled-text-color),
- var(--ti-button-primary-ghost-border-color),
- var(--ti-button-primary-ghost-hover-border-color),
- var(--ti-button-primary-ghost-disabled-border-color),
- );
- }
+ // 仅图标有边框时,高宽都按尺寸的高度
+ .size-only-icon-mixin(@size) {
+ @wh: %('var(--tv-Button-height%a)', @size);
- &&--success {
- .button-type(
- var(--ti-button-success-text-color),
- var(--ti-button-success-normal-bg-color),
- var(--ti-button-success-normal-border-color),
- var(--ti-button-success-hover-bg-color),
- var(--ti-button-success-hover-border-color),
- var(--ti-button-success-active-bg-color),
- var(--ti-button-success-disabled-text-color),
- var(--ti-button-success-disabled-bg-color),
- var(--ti-button-success-plain-text-color),
- var(--ti-button-success-plain-hover-text-color),
- var(--ti-button-success-plain-bg-color),
- var(--ti-button-success-plain-hover-bg-color),
- var(--ti-button-success-plain-border-color),
- var(--ti-button-success-plain-hover-border-color),
- var(--ti-button-success-plain-disabled-bg-color),
- var(--ti-button-success-disabled-border-color),
- var(--ti-button-success-ghost-text-color),
- var(--ti-button-success-ghost-hover-text-color),
- var(--ti-button-success-ghost-disabled-text-color),
- var(--ti-button-success-ghost-border-color),
- var(--ti-button-success-ghost-hover-border-color),
- var(--ti-button-success-ghost-disabled-border-color),
- );
+ width: e(@wh);
+ height: e(@wh);
+ min-width: e(@wh);
+ min-height: e(@wh);
}
- &&--warning {
- .button-type(
- var(--ti-button-warning-text-color),
- var(--ti-button-warning-normal-bg-color),
- var(--ti-button-warning-normal-border-color),
- var(--ti-button-warning-hover-bg-color),
- var(--ti-button-warning-hover-border-color),
- var(--ti-button-warning-active-bg-color),
- var(--ti-button-warning-disabled-text-color),
- var(--ti-button-warning-disabled-bg-color),
- var(--ti-button-warning-plain-text-color),
- var(--ti-button-warning-plain-hover-text-color),
- var(--ti-button-warning-plain-bg-color),
- var(--ti-button-warning-plain-hover-bg-color),
- var(--ti-button-warning-plain-border-color),
- var(--ti-button-warning-plain-hover-border-color),
- var(--ti-button-warning-plain-disabled-bg-color),
- var(--ti-button-warning-disabled-border-color),
- var(--ti-button-warning-ghost-text-color),
- var(--ti-button-warning-ghost-hover-text-color),
- var(--ti-button-warning-ghost-disabled-text-color),
- var(--ti-button-warning-ghost-border-color),
- var(--ti-button-warning-ghost-hover-border-color),
- var(--ti-button-warning-ghost-disabled-border-color),
- );
- }
+ // 仅图标无边框时,icon的高宽都按尺寸的高度。 根据设计稿,这里有4像素的padding
+ .size-only-icon-ontext-iconsize-mixin(@size) {
+ @wh: %('calc( var(--tv-Button-height%a) - 8px)', @size);
- &&--danger {
- .button-type(
- var(--ti-button-danger-text-color),
- var(--ti-button-danger-normal-bg-color),
- var(--ti-button-danger-normal-border-color),
- var(--ti-button-danger-hover-bg-color),
- var(--ti-button-danger-hover-border-color),
- var(--ti-button-danger-active-bg-color),
- var(--ti-button-danger-disabled-text-color),
- var(--ti-button-danger-disabled-bg-color),
- var(--ti-button-danger-plain-text-color),
- var(--ti-button-danger-plain-hover-text-color),
- var(--ti-button-danger-plain-bg-color),
- var(--ti-button-danger-plain-hover-bg-color),
- var(--ti-button-danger-plain-border-color),
- var(--ti-button-danger-plain-hover-border-color),
- var(--ti-button-danger-plain-disabled-bg-color),
- var(--ti-button-danger-disabled-border-color),
- var(--ti-button-danger-ghost-text-color),
- var(--ti-button-danger-ghost-hover-text-color),
- var(--ti-button-danger-ghost-disabled-text-color),
- var(--ti-button-danger-ghost-border-color),
- var(--ti-button-danger-ghost-hover-border-color),
- var(--ti-button-danger-ghost-disabled-border-color),
- );
+ font-size: e(@wh);
}
- &&--info {
- .button-type(
- var(--ti-button-info-text-color),
- var(--ti-button-info-normal-bg-color),
- var(--ti-button-info-normal-border-color),
- var(--ti-button-info-hover-bg-color),
- var(--ti-button-info-hover-border-color),
- var(--ti-button-info-active-bg-color),
- var(--ti-button-info-disabled-text-color),
- var(--ti-button-info-disabled-bg-color),
- var(--ti-button-info-plain-text-color),
- var(--ti-button-info-plain-hover-text-color),
- var(--ti-button-info-plain-bg-color),
- var(--ti-button-info-plain-hover-bg-color),
- var(--ti-button-info-plain-border-color),
- var(--ti-button-info-plain-hover-border-color),
- var(--ti-button-info-plain-disabled-bg-color),
- var(--ti-button-info-disabled-border-color),
- var(--ti-button-info-ghost-text-color),
- var(--ti-button-info-ghost-hover-text-color),
- var(--ti-button-info-ghost-disabled-text-color),
- var(--ti-button-info-ghost-border-color),
- var(--ti-button-info-ghost-hover-border-color),
- var(--ti-button-info-ghost-disabled-border-color),
- );
+ // 默认图标场景: icon-size 随着尺寸的font-size而变化。
+ .tiny-svg {
+ vertical-align: text-top; //居中
}
- &&--text {
- .button-text(
- var(--ti-button-text-color),
- var(--ti-button-text-color-hover),
- var(--ti-button-text-color-active),
- var(--ti-button-text-color-disabled),
- var(--ti-button-text-hover-weight),
- );
-
- &:hover {
- text-decoration: var(--ti-button-text-hover-text-decoration);
- }
+ // 仅图标场景
+ &.is-only-icon.is-only-icon {
+ // 只有default主题的边框色和 hover 边框色 是和主题色相反的。其它都随主题的色。
+ // 仅图标的plain场景,无对应示例,不处理。
+ &.@{button-prefix-cls}--default {
+ border-color: var(--tv-Button-border-color-only-icon-default);
- &.is-disabled:hover {
- text-decoration: none;
+ &:active,
+ &:focus,
+ &:hover,
+ &.is-active {
+ border-color: var(--tv-Button-border-color-only-icon-default-hover);
+ }
}
- border-radius: var(--ti-button-text-hover-border-radius);
+ padding: 0; //不需要padding
- padding: 0 var(--ti-button-text-padding-horizontal);
+ .size-only-icon-mixin(e('')); // 不同尺寸时,大小不同
- &:has(.@{svg-prefix-cls}) {
- padding: 0 var(--ti-button-text-svg-padding-horizontal);
- color: var(--ti-button-text-has-svg-text-color);
+ &.@{button-prefix-cls}--large {
+ .size-only-icon-mixin(-large);
+ }
+ &.@{button-prefix-cls}--medium {
+ .size-only-icon-mixin(-medium);
+ }
+ &.@{button-prefix-cls}--small {
+ .size-only-icon-mixin(-small);
+ }
+ &.@{button-prefix-cls}--mini {
+ .size-only-icon-mixin(-mini);
}
- &:has(.@{svg-prefix-cls}):hover {
- background: var(--ti-button-text-hover-bg-color);
- border-radius: var(--ti-button-text-hover-border-radius);
- color: var(--ti-button-text-has-svg-hover-text-color);
- & .@{svg-prefix-cls} {
- fill: var(--ti-button-text-svg-hover-fill-color);
- }
+ &:not(.is-circle) {
+ border-radius: var(--tv-Button-border-radius-only-icon);
}
- &:has(.@{svg-prefix-cls}).is-disabled {
- background: transparent;
- fill: var(--ti-button-text-svg-disabled-fill-color);
- color: var(--ti-button-text-color-disabled);
+ // 无边框时: 图标大小为button的大小的高度
+ &.@{button-prefix-cls}--text {
+ border: none;
+ border-radius: var(--tv-Button-border-radius-only-icon-ontext); // 影响hover时的阴影
- & .@{svg-prefix-cls} {
- fill: var(--ti-button-text-svg-disabled-fill-color);
- }
+ background-color: var(--tv-Button-bg-color-only-icon-ontext);
- &:hover {
- fill: var(--ti-button-text-svg-disabled-fill-color);
- background: transparent;
+ &:active,
+ &:focus,
+ &:hover,
+ &.is-active {
+ background-color: var(--tv-Button-bg-color-only-icon-ontext-hover);
}
- }
+ // 不同的尺寸,icon大小 为高度。 原型稿不包含
+ .size-only-icon-ontext-iconsize-mixin(e(''));
- &.is-only-icon {
- width: var(--ti-button-only-icon-text-width);
- &:hover {
- background: var(--ti-button-text-only-icon-hover-bg-color);
+ &.@{button-prefix-cls}--large {
+ .size-only-icon-ontext-iconsize-mixin(-large);
+ }
+ &.@{button-prefix-cls}--medium {
+ .size-only-icon-ontext-iconsize-mixin(-medium);
+ }
+ &.@{button-prefix-cls}--small {
+ .size-only-icon-ontext-iconsize-mixin(-small);
+ }
+ &.@{button-prefix-cls}--mini {
+ .size-only-icon-ontext-iconsize-mixin(-mini);
}
}
+ }
- & .@{svg-prefix-cls} {
- vertical-align: middle;
- fill: var(--ti-button-text-svg-fill-color);
- }
-
- &.@{button-prefix-cls}.@{button-prefix-cls}--large {
- .button-text-size(
- var(--ti-button-text-size-large-min-width),
- var(--ti-button-text-size-large-height),
- var(--ti-button-text-size-large-svg-width),
- var(--ti-button-text-size-large-svg-height)
- );
- }
-
- &.@{button-prefix-cls}.@{button-prefix-cls}--medium {
- .button-text-size(
- var(--ti-button-text-size-medium-min-width),
- var(--ti-button-text-size-medium-height),
- var(--ti-button-text-size-medium-svg-width),
- var(--ti-button-text-size-medium-svg-height)
- );
- }
+ // 纯文字: 没有主题色,只有文本蓝色和禁用2种情况。
+ &.@{button-prefix-cls}--text:not(.is-only-icon):not(.is-icon) {
+ border: none;
+ border-radius: 0;
- &.@{button-prefix-cls} {
- .button-text-size(
- var(--ti-button-text-size-default-min-width),
- var(--ti-button-text-size-default-height),
- var(--ti-button-text-size-default-svg-width),
- var(--ti-button-text-size-default-svg-height)
- );
- }
+ // 没有尺寸,没有padding
+ padding: 0;
+ min-width: unset;
+ height: auto;
+ font-size: var(--tv-Button-font-size-ontext);
+ color: var(--tv-Button-text-color-ontext);
+ background-color: transparent;
- &.@{button-prefix-cls}.@{button-prefix-cls}--small {
- .button-text-size(
- var(--ti-button-text-size-small-min-width),
- var(--ti-button-text-size-small-height),
- var(--ti-button-text-size-small-svg-width),
- var(--ti-button-text-size-small-svg-height)
- );
+ &:hover {
+ text-decoration: underline;
}
- &.@{button-prefix-cls}.@{button-prefix-cls}--mini {
- .button-text-size(
- var(--ti-button-text-size-mini-min-width),
- var(--ti-button-text-size-mini-height),
- var(--ti-button-text-size-mini-svg-width),
- var(--ti-button-text-size-mini-svg-height)
- );
+ &.is-disabled.is-disabled.is-disabled.is-disabled,
+ &.is-loading.is-loading.is-loading.is-loading,
+ &[disabled][disabled][disabled][disabled][disabled][disabled] {
+ color: var(--tv-Button-text-color-ontext-disabled);
+ background-color: transparent;
+ text-decoration: none;
}
}
- &&--large {
- .button-size(
- var(--ti-button-size-large-font-size),
- var(--ti-button-size-large-height),
- var(--ti-button-size-large-padding-horizontal),
- var(--ti-button-size-large-min-width),
- );
-
- & + & {
- margin-left: var(--ti-button-size-large-margin-left);
+ // 混排有边框: 图标大小随文字即可,只添加中间的margin
+ &.is-icon {
+ .tiny-svg {
+ margin-right: var(--tv-Button-margin-right-isicon-svg);
}
}
- &&--medium {
- .button-size(
- var(--ti-button-size-medium-font-size),
- var(--ti-button-size-medium-height),
- var(--ti-button-size-medium-padding-horizontal),
- var(--ti-button-size-medium-min-width),
- );
+ // 混排无边框: 设计稿的margin2.5不合适, 统一4px吧。
+ &.@{button-prefix-cls}--text.is-icon {
+ border: none;
+ border-radius: 0;
+ padding: 0;
+ min-width: unset;
+ height: auto;
+ font-size: var(--tv-Button-font-size-isicon-ontext);
+ color: var(--tv-Button-text-color-isicon-ontext);
+ background-color: transparent;
- & + & {
- margin-left: var(--ti-button-size-medium-margin-left);
+ &:hover {
+ text-decoration: underline;
}
- }
- &&--small {
- .button-size(
- var(--ti-button-size-small-font-size),
- var(--ti-button-size-small-height),
- var(--ti-button-size-small-padding-horizontal),
- var(--ti-button-size-small-min-width),
- );
+ .tiny-svg {
+ margin-right: var(--tv-Button-margin-right-isicon-svg);
+ }
- & + & {
- margin-left: var(--ti-button-size-small-margin-left);
+ &.is-disabled.is-disabled.is-disabled.is-disabled,
+ &.is-loading.is-loading.is-loading.is-loading,
+ &[disabled][disabled][disabled][disabled][disabled][disabled] {
+ color: var(--tv-Button-text-color-ontext-disabled);
+ background-color: transparent;
+ text-decoration: none;
}
}
- &&--mini {
- .button-size(
- var(--ti-button-size-mini-font-size),
- var(--ti-button-size-mini-height),
- var(--ti-button-size-mini-padding-horizontal),
- var(--ti-button-size-mini-min-width),
- );
- }
- .@{css-prefix-iconfont}-loading {
- font-size: var(--ti-button-loading-font-size);
- line-height: 1;
- animation: rotating 2s linear infinite;
+ // + 文字
+ & > img {
+ margin-right: 4px;
+ vertical-align: middle;
}
-}
-
-.@{css-prefix-iconfont}-loading {
- font-size: var(--ti-common-font-size-1);
- line-height: 1;
- animation: rotating 2s linear infinite;
-}
-@keyframes rotating {
- 0% {
- transform: rotateZ(0deg);
+ /** 5、其他场景 */
+ & + & {
+ margin-left: var(--tv-Button-margin-left-btn-to-btn-md);
+ }
+ &.@{button-prefix-cls}--large + &.@{button-prefix-cls}--large,
+ &.@{button-prefix-cls}--medium + &.@{button-prefix-cls}--medium {
+ margin-left: var(--tv-Button-margin-left-btn-to-btn-lg);
}
- 100% {
- transform: rotateZ(360deg);
+ &.is-loading > svg {
+ margin-right: var(--tv-Button-margin-right-isloading-svg);
}
}
diff --git a/packages/theme/src/button/snippet.js b/packages/theme/src/button/snippet.js
new file mode 100644
index 0000000000..6179a7555d
--- /dev/null
+++ b/packages/theme/src/button/snippet.js
@@ -0,0 +1,63 @@
+const prefix = ['--tv-Button-', '按钮']
+const props = [
+ 'text-color|文本色'
+ // 'bg-color|背景色',
+ // 'border-color|边框色',
+ // 'icon-color|图标色',
+
+ // 'text-color-active|激活的文本色',
+ // 'bg-color-active|激活的背景色',
+ // 'border-color-active|激活的边框色',
+ // 'icon-color-active|激活的图标色',
+
+ // 'text-color-plain-active|激活的朴素文本色',
+ // 'bg-colo-plain-activer|激活的朴素背景色',
+ // 'border-color-plain-active|激活的朴素边框色',
+
+ // 'height|高度',
+ // 'padding|内边距',
+ // 'margin|外边距',
+ // 'font-size|字号',
+ // 'font-weight|字重',
+ // 'box-shadow|阴影',
+ // 'border-radius|圆角',
+
+ // 'font-size|字号',
+ // 'height|高度',
+ // 'padding-x|水平间距',
+ // 'min-width|最小宽度',
+]
+
+const suffix = [
+ // '-default|默认时',
+
+ // '-primary|primary 主题时',
+ // '-success|success 主题时',
+ // '-info|info 主题时',
+ // '-warning|warning 主题时',
+ // '-danger|danger 主题时',
+
+ // '-disabled|禁用时',
+ '-ghost|幽灵时'
+ // '-plain|朴素时',
+ // '-active|激活时',
+ // '-large|超大',
+ // '-medium|中等',
+ // '-small|小型',
+ // '-mini|超小',
+]
+
+const res = suffix
+ .map((suf) => {
+ const sufx = suf.split('|')
+
+ return props.map((prop) => {
+ const names = prop.split('|')
+ return '// ' + sufx[1] + prefix[1] + names[1] + '\n' + prefix[0] + names[0] + sufx[0] + ': var(--xxxxx);\n'
+ })
+ })
+ .flat()
+ .join('')
+
+/* eslint-disable no-console */
+console.log(res)
diff --git a/packages/theme/src/button/vars.less b/packages/theme/src/button/vars.less
index 5e51e2b935..3a9394c617 100644
--- a/packages/theme/src/button/vars.less
+++ b/packages/theme/src/button/vars.less
@@ -9,438 +9,284 @@
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
+.inject-Button-vars() {
+ //-------------------------------------------------------全局场景:------------------------------------------
-.component-css-vars-button() {
- // 按钮圆角
- --ti-button-border-radius: 25px;
- // 按钮字号
- --ti-button-font-size: var(--ti-common-font-size-base, 12px);
- // 朴素类按钮禁用文本色(非默认)
- --ti-button-plain-disabled-text-color: var(--ti-common-color-text-disabled, #adb0b8);
- // 按钮边框尺寸
- --ti-button-border-width: var(--ti-common-border-weight-normal, 1px);
- // 按钮边框样式
- --ti-button-border-style: var(--ti-common-border-style-solid, solid);
- // 按钮加载时背景色
- --ti-button-loading-bg-color: rgba(255, 255, 255, 0.5);
- --ti-button-loading-font-size: var(--ti-common-font-size-1);
-
- // 默认按钮最大宽度
- --ti-button-size-normal-max-width: var(--ti-common-size-width-medium, 120px);
- // 默认按钮的高度
- --ti-button-size-normal-height: var(--ti-common-size-height-normal, 28px);
- // 默认按钮水平内边距
- --ti-button-size-normal-padding-horizontal: var(--ti-common-size-6x);
+ // 默认时按钮字重
+ --tv-Button-font-weight: var(--tv-font-weight-regular);
+ // 默认时按钮边框宽度
+ --tv-Button-border-width: var(--tv-border-width);
- // 超大按钮高度
- --ti-button-size-large-height: var(--ti-common-size-height-large, 48px);
+ // --------------------------------------------------- 场景1、圆角--------------------------------------------
+ // 默认时按钮圆角
+ --tv-Button-border-radius: var(--tv-border-radius-round); // 默认规范不需要 6px的圆角的效果,默认就是半圆
+ // 大圆角时按钮圆角
+ --tv-Button-border-radius-round: var(--tv-border-radius-round);
+ // 圆形时按钮圆角
+ --tv-Button-border-radius-circle: var(--tv-border-radius-round); // 50% 会造成椭圆,此次common变量用 999px代替
+
+ //------------------------------------------------------ 场景2、尺寸 height, font-size,padding-x,min-width----
+ // 默认时按钮字号
+ --tv-Button-font-size: var(--tv-font-size-md);
+ // 默认时按钮高度
+ --tv-Button-height: var(--tv-size-height-md);
+ // 默认时按钮水平间距
+ --tv-Button-padding-x: 24px; // space变量不存在,是否替换成 space-base * 6 这种?
+ // 默认时按钮最小宽度
+ --tv-Button-min-width: 96px; // 是否替换成 size-base * 24 这种?
// 超大按钮字号
- --ti-button-size-large-font-size: var(--ti-common-font-size-base);
- // 超大按钮水平内边距
- --ti-button-size-large-padding-horizontal: var(--ti-common-size-12x);
+ --tv-Button-font-size-large: var(--tv-font-size-md);
+ // 超大按钮高度
+ --tv-Button-height-large: var(--tv-size-height-xl);
+ // 超大按钮水平间距
+ --tv-Button-padding-x-large: 48px;
// 超大按钮最小宽度
- --ti-button-size-large-min-width: var(--ti-common-size-31x);
- // 超大按钮左侧外边距
- --ti-button-size-large-margin-left: 16px;
-
- // 中等按钮高度
- --ti-button-size-medium-height: var(--ti-common-size-height-medium, 40px);
+ --tv-Button-min-width-large: 124px;
// 中等按钮字号
- --ti-button-size-medium-font-size: var(--ti-common-font-size-1, 14px);
- // 中等按钮水平内边距
- --ti-button-size-medium-padding-horizontal: var(--ti-common-size-8x);
+ --tv-Button-font-size-medium: var(--tv-font-size-md);
+ // 中等按钮高度
+ --tv-Button-height-medium: var(--tv-size-height-lg);
+ // 中等按钮水平间距
+ --tv-Button-padding-x-medium: 32px;
// 中等按钮最小宽度
- --ti-button-size-medium-min-width: var(--ti-common-size-28x);
- // 中等按钮左侧外边距
- --ti-button-size-medium-margin-left: 16px;
-
- // 小型按钮高度
- --ti-button-size-small-height: 28px;
+ --tv-Button-min-width-medium: 112px;
// 小型按钮字号
- --ti-button-size-small-font-size: 12px;
- // 小尺寸按钮水平内边距
- --ti-button-size-small-padding-horizontal: var(--ti-common-size-4x);
- // 小尺寸按钮最小宽度
- --ti-button-size-small-min-width: var(--ti-common-size-18x);
- // 小尺寸按钮左侧外边距
- --ti-button-size-small-margin-left: 8px;
-
- // 迷你尺寸按钮高度
- --ti-button-size-mini-height: var(--ti-common-size-height-mini, 24px);
- // 迷你尺寸按钮字号
- --ti-button-size-mini-font-size: 12px;
- // 迷你尺寸按钮水平内边距
- --ti-button-size-mini-padding-horizontal: var(--ti-common-size-2x, 8px);
- // 迷你尺寸按钮最小宽度
- --ti-button-size-mini-min-width: 24px;
-
- // 默认按钮文本色
- --ti-button-normal-text-color: #191919;
- // 默认按钮边框色
- --ti-button-normal-border-color: #595959;
- // 默认按钮背景色
- --ti-button-normal-background-color: var(--ti-common-color-light, #fff);
- // 默认按钮悬浮文本色
- --ti-button-normal-hover-text-color: var(--ti-common-color-primary-normal, #5e7ce0);
- // 默认按钮悬浮边框色
- --ti-button-normal-hover-border-color: #C2C2C2;
- // 默认按钮悬浮背景色
- --ti-button-normal-hover-bg-color: var(--ti-common-color-light, #fff);
- // 默认按钮点击瞬间文本色
- --ti-button-normal-active-text-color: var(--ti-common-color-primary-normal, #5e7ce0);
- // 默认按钮点击瞬间边框色
- --ti-button-normal-active-border-color: var(--ti-common-color-primary-normal, #5e7ce0);
- // 默认按钮点击瞬间背景色
- --ti-button-normal-active-bg-color: var(--ti-common-color-hover-background, #f2f5fc);
- // 默认按钮禁用文本色
- --ti-button-normal-disabled-text-color: var(--ti-common-color-text-disabled, #adb0b8);
- // 默认按钮禁用边框色
- --ti-button-normal-disabled-border-color: transparent;
- // 禁用类默认按钮背景色
- --ti-button-normal-disabled-bg-color: var(--ti-common-color-bg-disabled, #f5f5f6);
- // 默认 朴素 边框色
- --ti-button-plain-border-color: #C2C2C2;
- // 默认 朴素 禁用边框色
- --ti-button-plain-disabled-border-color: #F0F0F0;
- // 默认 朴素 悬浮边框色
- --ti-button-plain-hover-border-color: #F5F5F5;
-
- // 文字按钮文本色
- --ti-button-text-color: var(--ti-common-color-text-highlight);
- // 文字按钮悬浮文本修饰(hide)
- --ti-button-text-hover-text-decoration: underline;
- // 文字按钮悬浮文本色
- --ti-button-text-color-hover: var(--ti-common-color-text-highlight);
- // 文字按钮悬浮文本字重
- --ti-button-text-hover-weight: var(--ti-common-font-weight-4);
- // 文字按钮点击瞬间文本色
- --ti-button-text-color-active: var(--ti-common-color-primary-active, #7693f5);
- // 文字按钮禁用文本色
- --ti-button-text-color-disabled: var(--ti-common-color-text-disabled, #adb0b8);
- // 文字按钮图标宽度
- --ti-button-text-svg-width: 16px;
- // 文字按钮图标高度
- --ti-button-text-svg-height: 16px;
- // 文字按钮悬浮背景色
- --ti-button-text-hover-bg-color: transparent;
- // 文字按钮只有图标悬浮背景色
- --ti-button-text-only-icon-hover-bg-color: #0000000D;
- // 文字按钮悬浮圆角
- --ti-button-text-hover-border-radius: 4px;
- // 文字按钮图标填充色
- --ti-button-text-svg-fill-color: #191919;
- // 文字按钮图标悬浮填充色
- --ti-button-text-svg-hover-fill-color: #191919;
- // 文字按钮禁用时图标填充色
- --ti-button-text-svg-disabled-fill-color: #C2C2C2;
- // 图标加文字按钮图标右侧外边距
- --ti-button-text-has-svg-icon-margin-right: 4px;
- // 图标加文字按钮字体颜色
- --ti-button-text-has-svg-text-color: #191919;
- // 图标加文字按钮悬浮时字体颜色
- --ti-button-text-has-svg-hover-text-color: #191919;
- // 文字按钮只有svg时水平内边距
- --ti-button-text-svg-padding-horizontal: 0px;
-
- // 主要按钮的主题类背景色+朴素类文本边框色
- --ti-button-primary-normal-bg-color: #191919;
- // 主要按钮的主题类边框色
- --ti-button-primary-normal-border-color: #191919;
- // 主题类主要按钮悬浮背景色
- --ti-button-primary-hover-bg-color: #595959;
- // 主题类主要按钮悬浮边框色
- --ti-button-primary-hover-border-color: #595959;
- // 主要按钮点击瞬间背景色
- --ti-button-primary-active-bg-color: #191919;
- // 主要按钮的禁用主题类背景色+禁用朴素类边框色
- --ti-button-primary-disabled-bg-color: var(--ti-common-color-primary-disabled-bgcolor, #f5f5f6);
- // 主题类主要按钮文本色
- --ti-button-primary-text-color: var(--ti-common-color-text-white);
- // 禁用主题类主要按钮文本色
- --ti-button-primary-disabled-text-color: #C2C2C2;
- // 禁用主题类主要按钮边框色
- --ti-button-primary-disabled-border-color: #F0F0F0;
- // 朴素类主要按钮文本色
- --ti-button-primary-plain-text-color: #191919;
- // 朴素类主要按钮悬浮文本色
- --ti-button-primary-plain-hover-text-color: #191919;
- // 朴素类主要按钮背景色
- --ti-button-primary-plain-bg-color: var(--ti-common-color-bg-minor);
- // 朴素类主要按钮悬浮背景色
- --ti-button-primary-plain-hover-bg-color: var(--ti-common-color-bg-minor);
- // 朴素类主要按钮边框色
- --ti-button-primary-plain-border-color: #595959;
- // 朴素类主要按钮悬浮边框色
- --ti-button-primary-plain-hover-border-color: #FFFFFF;
- // 禁用朴素类主要按钮背景色
- --ti-button-primary-plain-disabled-bg-color: #F0F0F0;
-
- // 成功按钮的主题类背景色+朴素类文本边框色
- --ti-button-success-normal-bg-color: #5CB300;
- // 成功按钮的主题类边框色
- --ti-button-success-normal-border-color: #5CB300;
- // 成功按钮悬浮背景色
- --ti-button-success-hover-bg-color: #7DCC29;
- // 成功按钮悬浮边框色
- --ti-button-success-hover-border-color: #7DCC29;
- // 成功按钮点击瞬间背景色
- --ti-button-success-active-bg-color: #5CB300;
- // 成功按钮的禁用主题类背景色+禁用朴素类边框色
- --ti-button-success-disabled-bg-color: #F0F0F0;
- // 成功按钮文本色
- --ti-button-success-text-color: var(--ti-common-color-text-white);
- // 禁用主题类成功按钮文本色
- --ti-button-success-disabled-text-color: #C2C2C2;
- // 禁用主题类成功按钮边框色
- --ti-button-success-disabled-border-color: #F0F0F0;
- // 朴素类成功按钮文本色
- --ti-button-success-plain-text-color: #5CB300;
- // 朴素类成功按钮悬浮文本色
- --ti-button-success-plain-hover-text-color: #5CB300;
- // 朴素类成功按钮背景色
- --ti-button-success-plain-bg-color: #EDF7DF;
- // 朴素类成功按钮悬浮背景色
- --ti-button-success-plain-hover-bg-color: #EDF7DF;
- // 朴素类成功按钮边框色
- --ti-button-success-plain-border-color: #DAF2BB;
- // 朴素类成功按钮悬浮边框色
- --ti-button-success-plain-hover-border-color: #EDF7DF;
- // 禁用朴素类成功按钮背景色
- --ti-button-success-plain-disabled-bg-color: #F0F0F0;
-
- // 警告按钮背景色|朴素类警告按钮悬浮背景色
- --ti-button-warning-normal-bg-color: #FF8800;
- // 警告按钮的主题类边框色
- --ti-button-warning-normal-border-color: #FF8800;
- // 警告按钮悬浮背景色
- --ti-button-warning-hover-bg-color: #FF9A2E;
- // 警告按钮点击瞬间背景色
- --ti-button-warning-active-bg-color: #FF8800;
- // 警告按钮的禁用主题类背景色+禁用朴素类边框色
- --ti-button-warning-disabled-bg-color: #F0F0F0;
- // 警告按钮文本色
- --ti-button-warning-text-color: var(--ti-common-color-text-white);
- // 禁用警告按钮文本色
- --ti-button-warning-disabled-text-color: #C2C2C2;
- // 禁用主题类警告按钮边框色
- --ti-button-warning-disabled-border-color: #F0F0F0;
- // 朴素类主要按钮文本色
- --ti-button-warning-plain-text-color: #FF8800;
- // 朴素类主要按钮悬浮文本色
- --ti-button-warning-plain-hover-text-color: #FF8800;
- // 朴素类警告按钮背景色
- --ti-button-warning-plain-bg-color: #FFF4E8;
- // 朴素类警告按钮悬浮背景色
- --ti-button-warning-plain-hover-bg-color: #FFF4E8;
- // 朴素类警告按钮边框色
- --ti-button-warning-plain-border-color: #FFEBD1;
- // 朴素类警告按钮悬浮边框色
- --ti-button-warning-plain-hover-border-color: #FFF4E8;
- // 禁用朴素类警告按钮背景色
- --ti-button-warning-plain-disabled-bg-color: #F0F0F0;
-
- // 危险按钮默认背景色|朴素类危险按钮边框色
- --ti-button-danger-normal-bg-color: #F23030;
- // 危险按钮的主题类边框色
- --ti-button-danger-normal-border-color: #F23030;
- // 危险按钮悬浮背景色
- --ti-button-danger-hover-bg-color: #F76360;
- // 危险按钮悬浮边框色
- --ti-button-danger-hover-border-color: #F76360;
- // 危险按钮点击瞬间背景色
- --ti-button-danger-active-bg-color: #F23030;
- // 危险按钮的禁用主题类背景色+禁用朴素类边框色
- --ti-button-danger-disabled-bg-color: #F0F0F0;
- // 危险按钮文本色
- --ti-button-danger-text-color: var(--ti-common-color-text-white);
- // 禁用主题类危险按钮文本色
- --ti-button-danger-disabled-text-color: #C2C2C2;
- // 禁用主题类危险按钮边框色
- --ti-button-danger-disabled-border-color: #F0F0F0;
- // 朴素类危险按钮文本色
- --ti-button-danger-plain-text-color: #F23030;
- // 朴素类危险按钮悬浮文本色
- --ti-button-danger-plain-hover-text-color: #F23030;
- // 朴素类危险按钮背景色
- --ti-button-danger-plain-bg-color: transparent;
- // 朴素类危险按钮悬浮背景色
- --ti-button-danger-plain-hover-bg-color: #FFF1F0;
- // 朴素类危险按钮边框色
- --ti-button-danger-plain-border-color: #FCE2E0;
- // 朴素类危险按钮悬浮边框色
- --ti-button-danger-plain-hover-border-color: #FFF1F0;
- // 禁用朴素类危险按钮背景色
- --ti-button-danger-plain-disabled-bg-color: #F0F0F0;
- // 禁用朴素类危险按钮边框色
- --ti-button-danger-plain-disabled-border-color: transparent;
-
- // 信息按钮背景色|朴素类信息按钮边框色
- --ti-button-info-normal-bg-color: #1476FF;
- // 信息按钮的主题类边框色
- --ti-button-info-normal-border-color: #1476FF;
- // 信息按钮悬浮背景色
- --ti-button-info-hover-bg-color: #4191FA;
- // 信息按钮悬浮边框色
- --ti-button-info-hover-border-color: #4191FA;
- // 信息按钮点击瞬间背景色
- --ti-button-info-active-bg-color: #1476FF;
- // 信息按钮的禁用主题类背景色+禁用朴素类边框色
- --ti-button-info-disabled-bg-color: #F0F0F0;
- // 信息按钮文本色
- --ti-button-info-text-color: var(--ti-common-color-text-white);
- // 禁用信息按钮文本色
- --ti-button-info-disabled-text-color: #C2C2C2;
- // 禁用信息按钮边框色
- --ti-button-info-disabled-border-color: #F0F0F0;
- // 朴素类信息按钮文本色
- --ti-button-info-plain-text-color: #1476FF;
- // 朴素类信息按钮悬浮文本色
- --ti-button-info-plain-hover-text-color: #1476FF;
- // 朴素类信息按钮背景色
- --ti-button-info-plain-bg-color: #F0F7FF;
- // 朴素类信息按钮悬浮背景色
- --ti-button-info-plain-hover-bg-color: #F0F7FF;
- // 朴素类信息按钮边框色
- --ti-button-info-plain-border-color: #DEECFF;
- // 朴素类信息按钮悬浮边框色
- --ti-button-info-plain-hover-border-color: #F0F7FF;
- // 禁用朴素类信息按钮背景色
- --ti-button-info-plain-disabled-bg-color: #F0F0F0;
-
- // 默认类型幽灵按钮文本色
- --ti-button-ghost-text-color: #595959;
- // 默认类型幽灵按钮边框色
- --ti-button-ghost-border-color: var(--ti-common-color-border, #adb0b8);
- // 默认类型幽灵按钮悬浮文本色
- --ti-button-ghost-hover-text-color: #595959;
- // 默认类型幽灵按钮悬浮边框色
- --ti-button-ghost-hover-border-color: #DBDBDB;
- // 默认类型幽灵按钮禁用文本色
- --ti-button-ghost-disabled-text-color: #c2c2c2;
- // 默认类型幽灵按钮禁用边框色
- --ti-button-ghost-disabled-border-color: #DBDBDB;
- // 主要类型幽灵按钮文本色
- --ti-button-primary-ghost-text-color: #191919;
- // 主要类型幽灵按钮边框色
- --ti-button-primary-ghost-border-color: #595959;
- // 主要类型幽灵按钮悬浮文本色
- --ti-button-primary-ghost-hover-text-color: #191919;
- // 主要类型幽灵按钮悬浮边框色
- --ti-button-primary-ghost-hover-border-color: #C2C2C2;
- // 主要类型幽灵按钮禁用文本色
- --ti-button-primary-ghost-disabled-text-color: #C2C2C2;
- // 主要类型幽灵按钮禁用边框色
- --ti-button-primary-ghost-disabled-border-color: #F0F0F0;
- // 成功类型幽灵按钮文本色
- --ti-button-success-ghost-text-color: #5CB300;
- // 成功类型幽灵按钮边框色
- --ti-button-success-ghost-border-color: #5CB300;
- // 成功类型幽灵按钮悬浮文本色
- --ti-button-success-ghost-hover-text-color: #5CB300;
- // 成功类型幽灵按钮悬浮边框色
- --ti-button-success-ghost-hover-border-color: #DAF2BB;
- // 成功类型幽灵按钮禁用文本色
- --ti-button-success-ghost-disabled-text-color: #C2C2C2;
- // 成功类型幽灵按钮禁用边框色
- --ti-button-success-ghost-disabled-border-color: #F0F0F0;
- // 信息类型幽灵按钮文本色
- --ti-button-info-ghost-text-color: #1476FF;
- // 信息类型幽灵按钮边框色
- --ti-button-info-ghost-border-color: #1476FF;
- // 信息类型幽灵按钮悬浮文本色
- --ti-button-info-ghost-hover-text-color: #1476FF;
- // 信息类型幽灵按钮悬浮边框色
- --ti-button-info-ghost-hover-border-color: #DEECFF;
- // 信息类型幽灵按钮禁用文本色
- --ti-button-info-ghost-disabled-text-color: #C2C2C2;
- // 信息类型幽灵按钮禁用边框色
- --ti-button-info-ghost-disabled-border-color: #F0F0F0;
- // 告警类型幽灵按钮文本色
- --ti-button-warning-ghost-text-color: #FF8800;
- // 告警类型幽灵按钮边框色
- --ti-button-warning-ghost-border-color: #FF8800;
- // 告警类型幽灵按钮悬浮文本色
- --ti-button-warning-ghost-hover-text-color: #FF8800;
- // 告警类型幽灵按钮悬浮边框色
- --ti-button-warning-ghost-hover-border-color: #FFEBD1;
- // 告警类型幽灵按钮禁用文本色
- --ti-button-warning-ghost-disabled-text-color: #C2C2C2;
- // 告警类型幽灵按钮禁用边框色
- --ti-button-warning-ghost-disabled-border-color: #F0F0F0;
- // 危险类型幽灵按钮文本色
- --ti-button-danger-ghost-text-color: #F23030;
- // 危险类型幽灵按钮边框色
- --ti-button-danger-ghost-border-color: #F23030;
- // 危险类型幽灵按钮悬浮文本色
- --ti-button-danger-ghost-hover-text-color: #F23030;
- // 危险类型幽灵按钮悬浮边框色
- --ti-button-danger-ghost-hover-border-color: #FCE2E0;
- // 危险类型幽灵按钮禁用文本色
- --ti-button-danger-ghost-disabled-text-color: #C2C2C2;
- // 危险类型幽灵按钮禁用边框色
- --ti-button-danger-ghost-disabled-border-color: #F0F0F0;
-
- // 按钮垂直内边距
- --ti-button-padding-vertical: var(--ti-common-space-0, 0px);
- // 默认圆形按钮内边距
- --ti-button-size-normal-padding: var(--ti-common-space-6);
-
- // 纯文本按钮超大尺寸最小宽度
- --ti-button-text-size-large-min-width: 56px;
- // 纯文本按钮超大尺寸高度
- --ti-button-text-size-large-height: 56px;
- // 纯文本按钮超大尺寸图标宽度
- --ti-button-text-size-large-svg-width: 48px;
- // 纯文本按钮超大尺寸图标高度
- --ti-button-text-size-large-svg-height: 48px;
- // 纯文本按钮水平内边距
- --ti-button-text-padding-horizontal: var(--ti-common-space-0, 0px);
- // 纯文本按钮中等尺寸最小宽度
- --ti-button-text-size-medium-min-width: 40px;
- // 纯文本按钮中等尺寸高度
- --ti-button-text-size-medium-height: 40px;
- // 纯文本按钮中等尺寸图标宽度
- --ti-button-text-size-medium-svg-width: 32px;
- // 纯文本按钮中等尺寸图标高度
- --ti-button-text-size-medium-svg-height: 32px;
-
- // 纯文本按钮默认尺寸最小宽度
- --ti-button-text-size-default-min-width: 24px;
- // 纯文本按钮默认尺寸高度
- --ti-button-text-size-default-height: 24px;
- // 纯文本按钮默认尺寸图标宽度
- --ti-button-text-size-default-svg-width: 16px;
- // 纯文本按钮默认尺寸图标高度
- --ti-button-text-size-default-svg-height: 16px;
-
- // 纯文本按钮小尺寸最小宽度
- --ti-button-text-size-small-min-width: 24px;
- // 纯文本按钮小尺寸高度
- --ti-button-text-size-small-height: 24px;
- // 纯文本按钮小尺寸图标宽度
- --ti-button-text-size-small-svg-width: 16px;
- // 纯文本按钮小尺寸图标高度
- --ti-button-text-size-small-svg-height: 16px;
-
- // 纯文本按钮迷你尺寸最小宽度
- --ti-button-text-size-mini-min-width: 24px;
- // 纯文本按钮迷你尺寸高度
- --ti-button-text-size-mini-height: 24px;
- // 纯文本按钮迷你尺寸图标宽度
- --ti-button-text-size-mini-svg-width: 16px;
- // 纯文本按钮迷你尺寸图标高度
- --ti-button-text-size-mini-svg-height: 16px;
-
- // 纯图标按钮最小宽度
- --ti-button-icon-font-size: var(--ti-common-font-size-2);
- // 纯图标/文字按钮宽度
- --ti-button-only-icon-width: 32px;
- --ti-button-only-icon-text-width: var(--ti-common-size-6x);
-
- // 纯图标按钮边框圆角
- --ti-button-only-icon-border-radius: var(--ti-common-border-radius-3);
- // 纯图标按钮悬浮时边框颜色
- --ti-button-only-icon-hover-border-color: #191919;
- // 纯图标按钮禁用时边框颜色
- --ti-button-only-icon-disabled-border-color: #dbdbdb;
+ --tv-Button-font-size-small: var(--tv-font-size-sm);
+ // 小型按钮高度
+ --tv-Button-height-small: var(--tv-size-height-sm);
+ // 小型按钮水平间距
+ --tv-Button-padding-x-small: 16px;
+ // 小型按钮最小宽度
+ --tv-Button-min-width-small: 72px;
+ // 超小按钮字号
+ --tv-Button-font-size-mini: var(--tv-font-size-sm);
+ // 超小按钮高度
+ --tv-Button-height-mini: var(--tv-size-height-xs);
+ // 超小按钮水平间距
+ --tv-Button-padding-x-mini: 16px;
+ // 超小按钮最小宽度
+ --tv-Button-min-width-mini: 60px;
+
+ //------------------------------------------------------ 场景3、颜色 text-color bg-color border-color icon-color----
+ //------ 状态: 默认+primary+4主题 ghost plain (hover active) disabled
+ // 1、ghost中只影响 bg 2、active 只影响(主题+plain) 3、 disabled 优先级高过 (主题+plain+激活)
+
+ // 默认时按钮文本色
+ --tv-Button-text-color-default: var(--tv-color-text);
+ // 默认时按钮背景色
+ --tv-Button-bg-color-default: var(--tv-color-bg-secondary);
+ // 默认时按钮边框色
+ --tv-Button-border-color-default: var(--tv-color-border-secondary);
+ // 默认时按钮图标色
+ --tv-Button-icon-color-default: var(--tv-color-icon-stable);
+
+ // primary 主题时按钮文本色
+ --tv-Button-text-color-primary: var(--tv-color-act-primary-text-white);
+ // primary 主题时按钮背景色
+ --tv-Button-bg-color-primary: var(--tv-color-act-primary-bg);
+ // primary 主题时按钮边框色
+ --tv-Button-border-color-primary: var(--tv-color-act-primary-border);
+ // primary 主题时按钮图标色
+ --tv-Button-icon-color-primary: var(--tv-color-icon-white);
+
+ // success 主题时按钮文本色
+ --tv-Button-text-color-success: var(--tv-color-act-success-text-white);
+ // success 主题时按钮背景色
+ --tv-Button-bg-color-success: var(--tv-color-act-success-bg);
+ // success 主题时按钮边框色
+ --tv-Button-border-color-success: var(--tv-color-act-success-border);
+ // success 主题时按钮图标色
+ --tv-Button-icon-color-success: var(--tv-color-icon-white);
+
+ // warning 主题时按钮文本色
+ --tv-Button-text-color-warning: var(--tv-color-act-warning-text-white);
+ // warning 主题时按钮背景色
+ --tv-Button-bg-color-warning: var(--tv-color-act-warning-bg);
+ // warning 主题时按钮边框色
+ --tv-Button-border-color-warning: var(--tv-color-act-warning-border);
+ // warning 主题时按钮图标色
+ --tv-Button-icon-color-warning: var(--tv-color-icon-white);
+
+ // danger 主题时按钮文本色
+ --tv-Button-text-color-danger: var(--tv-color-act-danger-text-white);
+ // danger 主题时按钮背景色
+ --tv-Button-bg-color-danger: var(--tv-color-act-danger-bg);
+ // danger 主题时按钮边框色
+ --tv-Button-border-color-danger: var(--tv-color-act-danger-border);
+ // danger 主题时按钮图标色
+ --tv-Button-icon-color-danger: var(--tv-color-icon-white);
+
+ // info 主题时按钮文本色
+ --tv-Button-text-color-info: var(--tv-color-act-info-text-white);
+ // info 主题时按钮背景色
+ --tv-Button-bg-color-info: var(--tv-color-act-info-bg);
+ // info 主题时按钮边框色
+ --tv-Button-border-color-info: var(--tv-color-act-info-border);
+ // info 主题时按钮图标色
+ --tv-Button-icon-color-info: var(--tv-color-icon-white);
+
+ // ------------------------------------------------------------- level 1结束 -----------------------------------
+
+ // 默认时按钮朴素文本色
+ --tv-Button-text-color-plain-default: var(--tv-color-text);
+ // 默认时按钮朴素背景色
+ --tv-Button-bg-color-plain-default: var(--tv-color-bg);
+ // 默认时按钮朴素边框色
+ --tv-Button-border-color-plain-default: var(--tv-color-border);
+
+ // primary 主题时按钮朴素文本色
+ --tv-Button-text-color-plain-primary: var(--tv-color-act-primary-text);
+ // primary 主题时按钮朴素背景色
+ --tv-Button-bg-color-plain-primary: var(--tv-color-act-primary-bg-white);
+ // primary 主题时按钮朴素边框色
+ --tv-Button-border-color-plain-primary: var(--tv-color-act-primary-border-active);
+
+ // success 主题时按钮朴素文本色
+ --tv-Button-text-color-plain-success: var(--tv-color-act-success-text);
+ // success 主题时按钮朴素背景色
+ --tv-Button-bg-color-plain-success: var(--tv-color-act-success-bg-light);
+ // success 主题时按钮朴素边框色
+ --tv-Button-border-color-plain-success: var(--tv-color-act-success-border-active-1);
+
+ // warning 主题时按钮朴素文本色
+ --tv-Button-text-color-plain-warning: var(--tv-color-act-warning-text);
+ // warning 主题时按钮朴素背景色
+ --tv-Button-bg-color-plain-warning: var(--tv-color-act-warning-bg-light);
+ // warning 主题时按钮朴素边框色
+ --tv-Button-border-color-plain-warning: var(--tv-color-act-warning-border-active-1);
+
+ // danger 主题时按钮朴素文本色
+ --tv-Button-text-color-plain-danger: var(--tv-color-act-danger-text);
+ // danger 主题时按钮朴素背景色
+ --tv-Button-bg-color-plain-danger: var(--tv-color-act-danger-bg-light);
+ // danger 主题时按钮朴素边框色
+ --tv-Button-border-color-plain-danger: var(--tv-color-act-danger-border-active-1);
+
+ // info 主题时按钮朴素文本色
+ --tv-Button-text-color-plain-info: var(--tv-color-act-info-text);
+ // info 主题时按钮朴素背景色
+ --tv-Button-bg-color-plain-info: var(--tv-color-act-info-bg-light);
+ // info 主题时按钮朴素边框色
+ --tv-Button-border-color-plain-info: var(--tv-color-act-info-border-active-1);
+
+ // 幽灵时按钮背景色
+ --tv-Button-bg-color-ghost: transparent; // 只影响 bg 和 text-color, 且bg全部为透明.
+
+ //------------------------------------------------------------------------------ // level 2结束 ----------------
+
+ // 默认时按钮激活的背景色
+ --tv-Button-bg-color-active-default: var(--tv-color-bg-hover-secondary); // 现规范,激活态时,只影响边框和背景
+ // 默认时按钮激活的边框色
+ --tv-Button-border-color-active-default: var(--tv-color-border);
+ // 默认时按钮激活的朴素背景色
+ --tv-Button-bg-color-plain-active-default: var(--tv-color-bg);
+ // 默认时按钮激活的朴素边框色
+ --tv-Button-border-color-plain-active-default: var(--tv-color-bg); // 朴素激活都无边框
+
+ // primary 主题时按钮激活的背景色
+ --tv-Button-bg-color-active-primary: var(--tv-color-act-primary-bg-active);
+ // primary 主题时按钮激活的边框色
+ --tv-Button-border-color-active-primary: var(--tv-color-act-primary-border-active);
+ // primary 主题时按钮激活的朴素背景色
+ --tv-Button-bg-color-plain-active-primary: var(--tv-color-act-primary-bg-white-active);
+ // primary 主题时按钮激活的朴素边框色
+ --tv-Button-border-color-plain-active-primary: var(--tv-color-act-primary-bg-white-active); // 无边框
+
+ // success 主题时按钮激活的背景色
+ --tv-Button-bg-color-active-success: var(--tv-color-act-success-bg-active);
+ // success 主题时按钮激活的边框色
+ --tv-Button-border-color-active-success: var(--tv-color-act-success-border-active);
+ // success 主题时按钮激活的朴素背景色
+ --tv-Button-bg-color-plain-active-success: var(--tv-color-act-success-bg-light-active);
+ // success 主题时按钮激活的朴素边框色
+ --tv-Button-border-color-plain-active-success: var(--tv-color-act-success-bg-light-active); // 无边框
+
+ // warning 主题时按钮激活的背景色
+ --tv-Button-bg-color-active-warning: var(--tv-color-act-warning-bg-active);
+ // warning 主题时按钮激活的边框色
+ --tv-Button-border-color-active-warning: var(--tv-color-act-warning-border-active);
+ // warning 主题时按钮激活的朴素背景色
+ --tv-Button-bg-color-plain-active-warning: var(--tv-color-act-warning-bg-light-active);
+ // warning 主题时按钮激活的朴素边框色
+ --tv-Button-border-color-plain-active-warning: var(--tv-color-act-warning-bg-light-active); // 无边框
+
+ // danger 主题时按钮激活的背景色
+ --tv-Button-bg-color-active-danger: var(--tv-color-act-danger-bg-active);
+ // danger 主题时按钮激活的边框色
+ --tv-Button-border-color-active-danger: var(--tv-color-act-danger-border-active);
+ // danger 主题时按钮激活的朴素背景色
+ --tv-Button-bg-color-plain-active-danger: var(--tv-color-act-danger-bg-light-active);
+ // danger 主题时按钮激活的朴素边框色
+ --tv-Button-border-color-plain-active-danger: var(--tv-color-act-danger-bg-light-active);
+
+ // info 主题时按钮激活的背景色
+ --tv-Button-bg-color-active-info: var(--tv-color-act-info-bg-active);
+ // info 主题时按钮激活的边框色
+ --tv-Button-border-color-active-info: var(--tv-color-act-info-border-active);
+ // info 主题时按钮激活的朴素背景色
+ --tv-Button-bg-color-plain-active-info: var(--tv-color-act-info-bg-light-active);
+ // info 主题时按钮激活的朴素边框色
+ --tv-Button-border-color-plain-active-info: var(--tv-color-act-info-bg-light-active); // level3 结束------
+
+ // 禁用时按钮文本色
+ --tv-Button-text-color-disabled: var(--tv-color-text-disabled); // 目前主题, disabled优先级高,所以变量少
+ // 禁用时按钮背景色
+ --tv-Button-bg-color-disabled: var(--tv-color-bg-disabled);
+ // 禁用时按钮边框色
+ --tv-Button-border-color-disabled: var(--tv-color-bg-disabled); // 设计边框是f0f0f0,没这个值,用背景色代替。
+ // 禁用时, 幽灵按钮的边框色
+ --tv-Button-border-color-ghost-disabled: var(--tv-color-border-disabled);
+ // 禁用时按钮图标色
+ --tv-Button-icon-color-disabled: var(--tv-color-icon-disabled); // level4 结束---------------------------
+
+ //------------------------------------------------------ 场景4、图标 + text----------------------------------------------
+ // 仅图标:
+ // 有边框 方:[is-only-icon]
+ // 有边框 圆:[is-only-icon is-circle]
+ // 无边框: [is-only-icon && --text]
+ // 纯文字: [--text]
+ // 混排:
+ // 有边框混排:[is-icon]
+ // 无边框混排:[is-icon && --text]
+ // + 文字
+
+ // 仅图标且default主题时, 外边框的颜色
+ --tv-Button-border-color-only-icon-default: var(--tv-color-border);
+ // 仅图标且default主题时, 外边框的悬浮色
+ --tv-Button-border-color-only-icon-default-hover: var(--tv-color-border-secondary);
+ // 仅图标且有边框时,边框的圆角大
+ --tv-Button-border-radius-only-icon: var(--tv-border-radius-md);
+
+ // 仅图标且无边框时,背景阴影的圆角
+ --tv-Button-border-radius-only-icon-ontext: var(--tv-border-radius-sm);
+ // 仅图标-无边框的背景色
+ --tv-Button-bg-color-only-icon-ontext: transparent;
+ // 仅图标-无边框的悬浮时的背景色
+ --tv-Button-bg-color-only-icon-ontext-hover: var(--tv-color-bg);
+
+ // 纯文字时,文字颜色
+ --tv-Button-text-color-ontext: var(--tv-color-text-link); // 蓝色文字
+ // 纯文字时,文字的禁用色
+ --tv-Button-text-color-ontext-disabled: var(--tv-color-text-disabled);
+ // 纯文字时,字体大小
+ --tv-Button-font-size-ontext: var(--tv-font-size-md);
+
+ // 混排有边框和无边框时,图标右边距
+ --tv-Button-margin-right-isicon-svg: var(--tv-space-sm);
+
+ // 混排无边框时,文字的颜色
+ --tv-Button-text-color-isicon-ontext: var(--tv-color-text); // 黑色文字
+ // 混排无边框时,文字的禁用色
+ --tv-Button-text-color-isicon-ontext-disabled: var(--tv-color-text-disabled);
+ //混排无边框时,字体大小
+ --tv-Button-font-size-isicon-ontext: var(--tv-font-size-md);
+
+ //------------------------------------------------------ 场景5、 其它场景-----------------------------------------
+ // 相邻按钮的默认的左外边距
+ --tv-Button-margin-left-btn-to-btn-md: var(--tv-space-md);
+ // 相邻大按钮的默认的左外边距
+ --tv-Button-margin-left-btn-to-btn-lg: var(--tv-space-xl);
+
+ // loading时,svg的右外边距
+ --tv-Button-margin-right-isloading-svg: var(--tv-space-sm); // loading时,svg的右外边距
}