diff --git a/src/packages/configprovider/types.ts b/src/packages/configprovider/types.ts index a24463de94..cb8829f00f 100644 --- a/src/packages/configprovider/types.ts +++ b/src/packages/configprovider/types.ts @@ -56,6 +56,7 @@ export type NutCSSVariables = | 'nutuiColorTextDisabled' | 'nutuiColorTextDark' | 'nutuiColorTextLink' + | 'nutuiColorPrimaryText' | 'nutuiFontSizeXxxs' | 'nutuiFontSizeXxs' | 'nutuiFontSizeXs' @@ -360,7 +361,8 @@ export type NutCSSVariables = | 'nutuiSwitchInactiveLineBackgroundColor' | 'nutuiSwitchWidth' | 'nutuiSwitchHeight' - | 'nutuiSwitchLineHeight' + | 'nutuiSwitchInsideWidth' + | 'nutuiSwitchInsideHeight' | 'nutuiSwitchBorderRadius' | 'nutuiSwitchBorderWidth' | 'nutuiSwitchInsideBorderRadius' diff --git a/src/packages/switch/doc.en-US.md b/src/packages/switch/doc.en-US.md index 3495efdb10..cb66e27fa0 100644 --- a/src/packages/switch/doc.en-US.md +++ b/src/packages/switch/doc.en-US.md @@ -101,17 +101,18 @@ The component provides the following CSS variables, which can be used to customi | \--nutui-switch-active-background-color | Switch on status background color | `$color-primary` | | \--nutui-switch-inactive-background-color | Switch off status background color | `$color-text-disabled` | | \--nutui-switch-active-disabled-background-color | Switch toggle on the background color disabled | `$color-primary-disabled-special` | -| \--nutui-switch-inactive-disabled-background-color | Turn off the background color disabled | `$color-background` | -| \--nutui-switch-inactive-line-bg-color | Switch Off Internal Button Line Color | `#ffffff` | -| \--nutui-switch-width | Switch Width | `46px` | -| \--nutui-switch-height | Switch height | `28px` | -| \--nutui-switch-line-height | Switch line height | `28px` | +| \--nutui-switch-inactive-disabled-background-color | Turn off the background color disabled | `var(--nutui-color-background-component)` | +| \--nutui-switch-inactive-line-background-color | Switch Off Internal Button Line Color | `$color-primary-text` | +| \--nutui-switch-width | Switch Width | `56px` | +| \--nutui-switch-height | Switch height | `24px` | +| \--nutui-switch-inside-width | Switch internal button width | `32px` | +| \--nutui-switch-inside-height | Switch internal button height | `20px` | | \--nutui-switch-border-radius | Switch rounded corner size | `$radius-circle` | | \--nutui-switch-border-width | Switch border width | `2px` | -| \--nutui-switch-inside-border-radius | Switch internal button rounded corner size | `$radius-full` | -| \--nutui-switch-inside-box-shadow | Switch Internal Button Shadow | `0px 2px 6px 0px rgba(0, 0, 0, 0.4)` | +| \--nutui-switch-inside-border-radius | Switch internal button rounded corner size | `$radius-circle` | +| \--nutui-switch-inside-box-shadow | Switch Internal Button Shadow | `0px 4px 8px 0px rgba(0, 0, 0, 0.12)` | | \--nutui-switch-label-text-color | Switch internal text color | `$color-primary-text` | -| \--nutui-switch-label-font-size | Switch internal text size | `$font-size-s` | +| \--nutui-switch-label-font-size | Switch internal text size | `$font-size-xs` | | \--nutui-switch-inactive-disabled-label-text-color | Turn off and disable internal text color | `$color-text-disabled` | diff --git a/src/packages/switch/doc.md b/src/packages/switch/doc.md index 3a9e7b2afc..5bb44a9b91 100644 --- a/src/packages/switch/doc.md +++ b/src/packages/switch/doc.md @@ -101,17 +101,18 @@ import { Switch } from '@nutui/nutui-react' | \--nutui-switch-active-background-color | 开关打开状态背景颜色 | `$color-primary` | | \--nutui-switch-inactive-background-color | 开关关闭状态背景颜色 | `$color-text-disabled` | | \--nutui-switch-active-disabled-background-color | 开关打开状态禁用的背景颜色 | `$color-primary-disabled-special` | -| \--nutui-switch-inactive-disabled-background-color | 开关关闭状态禁用的背景颜色 | `$color-background` | -| \--nutui-switch-inactive-line-bg-color | 开关关闭状态内部按钮线条颜色 | `#ffffff` | -| \--nutui-switch-width | 开关宽度 | `46px` | -| \--nutui-switch-height | 开关高度 | `28px` | -| \--nutui-switch-line-height | 开关行高 | `28px` | +| \--nutui-switch-inactive-disabled-background-color | 开关关闭状态禁用的背景颜色 | `var(--nutui-color-background-component)` | +| \--nutui-switch-inactive-line-background-color | 开关关闭状态内部按钮线条颜色 | `$color-primary-text` | +| \--nutui-switch-width | 开关宽度 | `56px` | +| \--nutui-switch-height | 开关高度 | `24px` | +| \--nutui-switch-inside-width | 开关内部按钮宽度 | `32px` | +| \--nutui-switch-inside-height | 开关内部按钮高度 | `20px` | | \--nutui-switch-border-radius | 开关圆角大小 | `$radius-circle` | | \--nutui-switch-border-width | 开关边框宽度 | `2px` | -| \--nutui-switch-inside-border-radius | 开关内部按钮圆角大小 | `$radius-full` | -| \--nutui-switch-inside-box-shadow | 开关内部按钮阴影 | `0px 2px 6px 0px rgba(0, 0, 0, 0.4)` | +| \--nutui-switch-inside-border-radius | 开关内部按钮圆角大小 | `$radius-circle` | +| \--nutui-switch-inside-box-shadow | 开关内部按钮阴影 | `0px 4px 8px 0px rgba(0, 0, 0, 0.12)` | | \--nutui-switch-label-text-color | 开关内部文字颜色 | `$color-primary-text` | -| \--nutui-switch-label-font-size | 开关内部文字大小 | `$font-size-s` | +| \--nutui-switch-label-font-size | 开关内部文字大小 | `$font-size-xs` | | \--nutui-switch-inactive-disabled-label-text-color | 开关关闭禁用内部文字颜色 | `$color-text-disabled` | diff --git a/src/packages/switch/doc.taro.md b/src/packages/switch/doc.taro.md index c11f5a5581..2a701b6bc9 100644 --- a/src/packages/switch/doc.taro.md +++ b/src/packages/switch/doc.taro.md @@ -101,17 +101,18 @@ import { Switch } from '@nutui/nutui-react-taro' | \--nutui-switch-active-background-color | 开关打开状态背景颜色 | `$color-primary` | | \--nutui-switch-inactive-background-color | 开关关闭状态背景颜色 | `$color-text-disabled` | | \--nutui-switch-active-disabled-background-color | 开关打开状态禁用的背景颜色 | `$color-primary-disabled-special` | -| \--nutui-switch-inactive-disabled-background-color | 开关关闭状态禁用的背景颜色 | `$color-background` | -| \--nutui-switch-inactive-line-bg-color | 开关关闭状态内部按钮线条颜色 | `#ffffff` | -| \--nutui-switch-width | 开关宽度 | `46px` | -| \--nutui-switch-height | 开关高度 | `28px` | -| \--nutui-switch-line-height | 开关行高 | `28px` | +| \--nutui-switch-inactive-disabled-background-color | 开关关闭状态禁用的背景颜色 | `var(--nutui-color-background-component)` | +| \--nutui-switch-inactive-line-background-color | 开关关闭状态内部按钮线条颜色 | `$color-primary-text` | +| \--nutui-switch-width | 开关宽度 | `56px` | +| \--nutui-switch-height | 开关高度 | `24px` | +| \--nutui-switch-inside-width | 开关内部按钮宽度 | `32px` | +| \--nutui-switch-inside-height | 开关内部按钮高度 | `20px` | | \--nutui-switch-border-radius | 开关圆角大小 | `$radius-circle` | | \--nutui-switch-border-width | 开关边框宽度 | `2px` | -| \--nutui-switch-inside-border-radius | 开关内部按钮圆角大小 | `$radius-full` | -| \--nutui-switch-inside-box-shadow | 开关内部按钮阴影 | `0px 2px 6px 0px rgba(0, 0, 0, 0.4)` | +| \--nutui-switch-inside-border-radius | 开关内部按钮圆角大小 | `$radius-circle` | +| \--nutui-switch-inside-box-shadow | 开关内部按钮阴影 | `0px 4px 8px 0px rgba(0, 0, 0, 0.12)` | | \--nutui-switch-label-text-color | 开关内部文字颜色 | `$color-primary-text` | -| \--nutui-switch-label-font-size | 开关内部文字大小 | `$font-size-s` | +| \--nutui-switch-label-font-size | 开关内部文字大小 | `$font-size-xs` | | \--nutui-switch-inactive-disabled-label-text-color | 开关关闭禁用内部文字颜色 | `$color-text-disabled` | diff --git a/src/packages/switch/doc.zh-TW.md b/src/packages/switch/doc.zh-TW.md index e392e58924..0ef7446960 100644 --- a/src/packages/switch/doc.zh-TW.md +++ b/src/packages/switch/doc.zh-TW.md @@ -101,17 +101,18 @@ import { Switch } from '@nutui/nutui-react' | \--nutui-switch-active-background-color | 開關打開狀態背景顏色 | `$color-primary` | | \--nutui-switch-inactive-background-color | 開關關閉狀態背景顏色 | `$color-text-disabled` | | \--nutui-switch-active-disabled-background-color | 開關打開狀態禁用的背景顏色 | `$color-primary-disabled-special` | -| \--nutui-switch-inactive-disabled-background-color | 開關關閉狀態禁用的背景顏色 | `$color-background` | -| \--nutui-switch-inactive-line-bg-color | 開關關閉狀態內部按鈕線條顏色 | `#ffffff` | -| \--nutui-switch-width | 開關寬度 | `46px` | -| \--nutui-switch-height | 開關高度 | `28px` | -| \--nutui-switch-line-height | 開關行高 | `28px` | +| \--nutui-switch-inactive-disabled-background-color | 開關關閉狀態禁用的背景顏色 | `var(--nutui-color-background-component)` | +| \--nutui-switch-inactive-line-background-color | 開關關閉狀態內部按鈕線條顏色 | `$color-primary-text` | +| \--nutui-switch-width | 開關寬度 | `56px` | +| \--nutui-switch-height | 開關高度 | `24px` | +| \--nutui-switch-inside-width | 開關內部按鈕寬度 | `32px` | +| \--nutui-switch-inside-height | 開關內部按鈕高度 | `20px` | | \--nutui-switch-border-radius | 開關圓角大小 | `$radius-circle` | | \--nutui-switch-border-width | 開關邊框寬度 | `2px` | -| \--nutui-switch-inside-border-radius | 開關內部按鈕圓角大小 | `$radius-full` | -| \--nutui-switch-inside-box-shadow | 開關內部按鈕陰影 | `0px 2px 6px 0px rgba(0, 0, 0, 0.4)` | +| \--nutui-switch-inside-border-radius | 開關內部按鈕圓角大小 | `$radius-circle` | +| \--nutui-switch-inside-box-shadow | 開關內部按鈕陰影 | `0px 4px 8px 0px rgba(0, 0, 0, 0.12)` | | \--nutui-switch-label-text-color | 開關內部文字顏色 | `$color-primary-text` | -| \--nutui-switch-label-font-size | 開關內部文字大小 | `$font-size-s` | +| \--nutui-switch-label-font-size | 開關內部文字大小 | `$font-size-xs` | | \--nutui-switch-inactive-disabled-label-text-color | 開關關閉禁用內部文字顏色 | `$color-text-disabled` | diff --git a/src/packages/switch/switch.scss b/src/packages/switch/switch.scss index 089f6688ca..5ebd9e6b1d 100644 --- a/src/packages/switch/switch.scss +++ b/src/packages/switch/switch.scss @@ -1,4 +1,11 @@ .nut-switch { + --nut-switch-height: #{$switch-height}; + --nut-switch-inside-width: #{$switch-inside-width}; + --nut-switch-border-width: #{$switch-border-width}; + --nut-switch-label-margin-offset: calc( + var(--nut-switch-inside-width) + var(--nut-switch-border-width) + 3px + ); + cursor: pointer; position: relative; /* #ifdef dynamic*/ @@ -11,13 +18,12 @@ align-items: center; min-width: $switch-width; height: $switch-height; - line-height: $switch-line-height; background-color: $switch-active-background-color; border-radius: $switch-border-radius; background-size: 100% 100%; background-repeat: no-repeat; background-position: center center; - flex: 0 0 auto; // 防止被压缩 + flex: 0 0 auto; &-button { position: absolute; @@ -27,41 +33,48 @@ flex-direction: row; align-items: center; justify-content: center; - height: calc($switch-height - $switch-border-width * 2); - width: calc($switch-height - $switch-border-width * 2); + height: $switch-inside-height; + width: $switch-inside-width; border-radius: $switch-inside-border-radius; background: $color-primary-text; transition: left 0.3s linear; box-shadow: $switch-inside-box-shadow; &-open { - left: calc(100% - $switch-height + $switch-border-width); + left: calc( + 100% - var(--nut-switch-inside-width) - var(--nut-switch-border-width) + ); &-rtl { - left: $switch-border-width; + left: var(--nut-switch-border-width); } } &-close { - left: $switch-border-width; + left: var(--nut-switch-border-width); &-rtl { - left: calc(100% - $switch-height + $switch-border-width); + left: calc( + 100% - var(--nut-switch-inside-width) - var(--nut-switch-border-width) + ); } } - .nut-icon { - width: calc(($switch-height - $switch-border-width * 2) / 2); - height: calc(($switch-height - $switch-border-width * 2) / 2); - color: $switch-active-disabled-background-color; - } } &-close { background-color: $switch-inactive-background-color; &-line { - width: calc(($switch-height - $switch-border-width * 2) / 2); + width: calc( + (var(--nut-switch-height) - var(--nut-switch-border-width) * 2) * 0.5 + ); height: 2px; background: $switch-inactive-line-background-color; border-radius: 2px; } } + .nut-icon { + width: calc(var(--nut-switch-height) * 0.5); + height: calc(var(--nut-switch-height) * 0.5); + color: $switch-active-disabled-background-color; + } + &-label { /* #ifdef dynamic*/ display: flex; @@ -78,16 +91,16 @@ color: $switch-label-text-color; } &-open { - margin: 0 calc($switch-height - $switch-border-width + 3px) 0 7px; + margin: 0 var(--nut-switch-label-margin-offset) 0 7px; &-rtl { - margin: 0 7px 0 calc($switch-height - $switch-border-width + 3px); + margin: 0 7px 0 var(--nut-switch-label-margin-offset); } } &-close { - margin: 0 7px 0 calc($switch-height - $switch-border-width + 3px); + margin: 0 7px 0 var(--nut-switch-label-margin-offset); &-rtl { - margin: 0 calc($switch-height - $switch-border-width + 3px) 0 7px; + margin: 0 var(--nut-switch-label-margin-offset) 0 7px; } } diff --git a/src/styles/theme-dark.scss b/src/styles/theme-dark.scss index 1a6ae5cdf2..df66b6eb15 100644 --- a/src/styles/theme-dark.scss +++ b/src/styles/theme-dark.scss @@ -123,7 +123,7 @@ page, // --nutui-white-10: rgba(255, 255, 255, 0.7); // --nutui-white-11: rgba(255, 255, 255, 0.8); --nutui-white-12: rgba(31, 31, 31, 0.9); - // --nutui-white-13: rgba(255, 255, 255, 1); + --nutui-white-13: rgba(255, 255, 255, 1); // 品牌颜色语义化 // 品牌主色调默认态,主要功能控件的背景、边框、镂空状态下的文字等 @@ -133,7 +133,7 @@ page, // 品牌渐变色右端 --nutui-color-primary-stop-2: var(--nutui-brand-stop-2); // 品牌主色调或其他深色背景下的文字 - --nutui-color-primary-text: var(--nutui-gray-1); + --nutui-color-primary-text: var(--nutui-white-13); // 品牌主色调点击态,背景、边框、镂空状态下的文字 --nutui-color-primary-pressed: var(--nutui-red-7); // 品牌主色调禁用态,背景、边框、镂空状态下的文字 diff --git a/src/styles/theme-default.scss b/src/styles/theme-default.scss index 24aef40b07..c0cc2dde20 100644 --- a/src/styles/theme-default.scss +++ b/src/styles/theme-default.scss @@ -132,7 +132,7 @@ page { // 品牌渐变色右端 --nutui-color-primary-stop-2: var(--nutui-brand-stop-2); // TODO 删掉 // 品牌主色调或其他深色背景下的文字 - --nutui-color-primary-text: var(--nutui-gray-1);// TODO white + --nutui-color-primary-text: var(--nutui-white-13); // 品牌主色调点击态,背景、边框、镂空状态下的文字 --nutui-color-primary-pressed: var(--nutui-red-7); // 品牌主色调禁用态,背景、边框、镂空状态下的文字 diff --git a/src/styles/variables.scss b/src/styles/variables.scss index 81322d1ac3..84851b9e7e 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -151,7 +151,7 @@ $color-border-disabled: var(--nutui-color-border-disabled, #c2c4cc) !default; $color-title: var(--nutui-color-title, #1a1a1a) !default; $color-text: var(--nutui-color-text, #505259) !default; $color-text-help: var(--nutui-color-text-help, #888b94) !default; -$color-text-disabled: var(--nutui-color-text-disabled, #c2c4cc) !default; +$color-text-disabled: var(--nutui-color-text-disabled, #b4b8bf) !default; $color-text-dark: var( --nutui-color-text-dark, rgba(255, 255, 255, 0.9) @@ -159,7 +159,7 @@ $color-text-dark: var( $color-text-link: var(--nutui-color-text-link, #0c82f7) !default; // 与品牌色一起使用,默认为白色,不区分暗黑与明亮模式。 -$color-primary-text: #ffffff !default; +$color-primary-text: var(--nutui-color-primary-text, #ffffff) !default; $white: #ffffff !default; $black: #000000 !default; @@ -1040,15 +1040,16 @@ $switch-active-disabled-background-color: var( ) !default; $switch-inactive-disabled-background-color: var( --nutui-switch-inactive-disabled-background-color, - $color-background + var(--nutui-color-background-component) ) !default; $switch-inactive-line-background-color: var( --nutui-switch-inactive-line-background-color, - #ffffff + $color-primary-text ) !default; -$switch-width: var(--nutui-switch-width, scale-px(46px)) !default; -$switch-height: var(--nutui-switch-height, scale-px(28px)) !default; -$switch-line-height: var(--nutui-switch-line-height, scale-px(28px)) !default; +$switch-width: var(--nutui-switch-width, scale-px(56px)) !default; +$switch-height: var(--nutui-switch-height, scale-px(24px)) !default; +$switch-inside-width: var(--nutui-switch-inside-width, scale-px(32px)) !default; +$switch-inside-height: var(--nutui-switch-inside-height, scale-px(20px)) !default; $switch-border-radius: var( --nutui-switch-border-radius, $radius-circle @@ -1056,29 +1057,19 @@ $switch-border-radius: var( $switch-border-width: var(--nutui-switch-border-width, scale-px(2px)) !default; $switch-inside-border-radius: var( --nutui-switch-inside-border-radius, - $radius-full -) !default; -/* #ifdef harmony */ -$switch-inside-box-shadow: var( - --nutui-switch-inside-box-shadow, - 0px scale-px(2px) scale-px(6px) 0px rgba(0, 0, 0, 0.1) + $radius-circle ) !default; -/* #endif */ -/* #ifndef harmony */ $switch-inside-box-shadow: var( --nutui-switch-inside-box-shadow, - 0px scale-px(2px) scale-px(1px) 0px rgba(0, 0, 0, 0.06), - 0px scale-px(2px) scale-px(6px) 0px rgba(0, 0, 0, 0.1), - 0px 0px 0px scale-px(1px) rgba(0, 0, 0, 0.02) + 0px scale-px(4px) scale-px(8px) 0px rgba(0, 0, 0, 0.12) ) !default; -/* #endif */ $switch-label-text-color: var( --nutui-switch-label-text-color, $color-primary-text ) !default; $switch-label-font-size: var( --nutui-switch-label-font-size, - $font-size-s + $font-size-xs ) !default; $switch-inactive-disabled-label-text-color: var( --nutui-switch-inactive-disabled-label-text-color,