diff --git a/.github/workflows/deploy-v3-site.yml b/.github/workflows/deploy-v4-site.yml similarity index 88% rename from .github/workflows/deploy-v3-site.yml rename to .github/workflows/deploy-v4-site.yml index fe74effe8..3cac9c586 100644 --- a/.github/workflows/deploy-v3-site.yml +++ b/.github/workflows/deploy-v4-site.yml @@ -1,8 +1,8 @@ -name: Deploy V3 Site +name: Deploy V4 Site on: push: - branches: [dev] + branches: [next] paths: - 'packages/vant/docs/**' @@ -15,7 +15,7 @@ jobs: - name: Checkout 🛎️ uses: actions/checkout@v2 with: - ref: 'dev' + ref: 'next' - name: Install pnpm run: npm i pnpm@7 -g @@ -36,4 +36,5 @@ jobs: with: branch: gh-pages folder: packages/vant/site-dist + target-folder: v4 clean: false diff --git a/packages/vant-cli/site/common/iframe-router.js b/packages/vant-cli/site/common/iframe-sync.js similarity index 63% rename from packages/vant-cli/site/common/iframe-router.js rename to packages/vant-cli/site/common/iframe-sync.js index 4a798f976..f03dd6dce 100644 --- a/packages/vant-cli/site/common/iframe-router.js +++ b/packages/vant-cli/site/common/iframe-sync.js @@ -1,7 +1,4 @@ -/** - * 同步父窗口和 iframe 的 vue-router 状态 - */ - +import { ref } from 'vue'; import { config } from 'site-desktop-shared'; let queue = []; @@ -62,6 +59,49 @@ export function syncPathToChild() { } } +export function syncThemeToChild(theme) { + const iframe = document.querySelector('iframe'); + if (iframe) { + iframeReady(() => { + iframe.contentWindow.postMessage( + { + type: 'updateTheme', + value: theme, + }, + '*' + ); + }); + } +} + +export function getDefaultTheme() { + const cache = window.localStorage.getItem('vantTheme'); + + if (cache) { + return cache; + } + + const useDark = + window.matchMedia && + window.matchMedia('(prefers-color-scheme: dark)').matches; + return useDark ? 'dark' : 'light'; +} + +export function useCurrentTheme() { + const theme = ref(getDefaultTheme()); + + window.addEventListener('message', (event) => { + if (event.data?.type !== 'updateTheme') { + return; + } + + const newTheme = event.data?.value || ''; + theme.value = newTheme; + }); + + return theme; +} + export function listenToSyncPath(router) { window.addEventListener('message', (event) => { if (event.data?.type !== 'replacePath') { diff --git a/packages/vant-cli/site/common/style/base.less b/packages/vant-cli/site/common/style/base.less index cf0a4b857..57e759d2a 100644 --- a/packages/vant-cli/site/common/style/base.less +++ b/packages/vant-cli/site/common/style/base.less @@ -1,15 +1,15 @@ -@import './var'; +@import './vars.less'; body { min-width: 1100px; margin: 0; overflow-x: auto; - color: @van-doc-black; + color: var(--van-doc-text-color-2); font-size: 16px; font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif; - background-color: @van-doc-background-color; + background-color: var(--van-doc-background); -webkit-font-smoothing: antialiased; } @@ -41,8 +41,8 @@ a { .van-doc-row { width: 100%; - @media (min-width: @van-doc-row-max-width) { - width: @van-doc-row-max-width; + @media (min-width: var(--van-doc-row-max-width)) { + width: var(--van-doc-row-max-width); margin: 0 auto; } } diff --git a/packages/vant-cli/site/common/style/highlight.less b/packages/vant-cli/site/common/style/highlight.less index fd6551029..380e53daf 100644 --- a/packages/vant-cli/site/common/style/highlight.less +++ b/packages/vant-cli/site/common/style/highlight.less @@ -1,20 +1,18 @@ -@import './var'; - code { position: relative; display: block; padding: 16px 20px; overflow-x: auto; - color: @van-doc-code-color; + color: var(--van-doc-code-color); font-weight: 400; font-size: 14px; - font-family: @van-doc-code-font-family; + font-family: 'Source Code Pro', 'Monaco', 'Inconsolata', monospace; line-height: 26px; white-space: pre-wrap; word-wrap: break-word; -webkit-font-smoothing: auto; - background-color: #f8f8f8; - border-radius: @van-doc-border-radius; + background-color: var(--van-doc-code-background); + border-radius: var(--van-doc-border-radius); } pre { @@ -33,7 +31,7 @@ pre { } .hljs-subst { - color: @van-doc-code-color; + color: var(--van-doc-code-color); } .hljs-string, @@ -42,18 +40,18 @@ pre { .hljs-template-tag, .hljs-template-variable, .hljs-addition { - color: @van-doc-green; + color: var(--van-doc-green); } .hljs-comment, .hljs-quote { - color: #999; + color: var(--van-doc-code-comment-color); } .hljs-params, .hljs-keyword, .hljs-attribute { - color: @van-doc-purple; + color: var(--van-doc-purple); } .hljs-deletion, diff --git a/packages/vant-cli/site/common/style/var.less b/packages/vant-cli/site/common/style/var.less deleted file mode 100644 index d80cd6329..000000000 --- a/packages/vant-cli/site/common/style/var.less +++ /dev/null @@ -1,27 +0,0 @@ -@van-doc-black: #323233; -@van-doc-blue: #1989fa; -@van-doc-purple: #8080ff; -@van-doc-fuchsia: #a7419e; -@van-doc-green: #4fc08d; -@van-doc-text-color: #34495e; -@van-doc-text-light-blue: rgba(69, 90, 100, 0.6); -@van-doc-background-color: #f7f8fa; -@van-doc-grey: #999; -@van-doc-dark-grey: #666; -@van-doc-light-grey: #ccc; -@van-doc-border-color: #f1f4f8; -@van-doc-code-color: #58727e; -@van-doc-code-background-color: #f1f4f8; -@van-doc-code-font-family: 'Source Code Pro', 'Monaco', 'Inconsolata', monospace; -@van-doc-padding: 24px; -@van-doc-row-max-width: 1680px; -@van-doc-nav-width: 220px; -@van-doc-border-radius: 20px; - -// header -@van-doc-header-top-height: 64px; -@van-doc-header-bottom-height: 50px; - -// simulator -@van-doc-simulator-width: 360px; -@van-doc-simulator-height: 620px; diff --git a/packages/vant-cli/site/common/style/vars.less b/packages/vant-cli/site/common/style/vars.less new file mode 100644 index 000000000..97b9b4582 --- /dev/null +++ b/packages/vant-cli/site/common/style/vars.less @@ -0,0 +1,74 @@ +body { + // colors + --van-doc-black: #000; + --van-doc-white: #fff; + --van-doc-gray-1: #f7f8fa; + --van-doc-gray-2: #f2f3f5; + --van-doc-gray-3: #ebedf0; + --van-doc-gray-4: #dcdee0; + --van-doc-gray-5: #c8c9cc; + --van-doc-gray-6: #969799; + --van-doc-gray-7: #646566; + --van-doc-gray-8: #323233; + --van-doc-blue: #1989fa; + --van-doc-green: #07c160; + + // sizes + --van-doc-padding: 24px; + --van-doc-row-max-width: 1680px; + --van-doc-nav-width: 220px; + --van-doc-border-radius: 20px; + --van-doc-simulator-width: 360px; + --van-doc-simulator-height: 620px; + --van-doc-header-top-height: 64px; +} + +.van-doc-theme-light { + // text + --van-doc-text-color-1: var(--van-doc-black); + --van-doc-text-color-2: var(--van-doc-gray-8); + --van-doc-text-color-3: #34495e; + --van-doc-text-color-4: var(--van-doc-gray-6); + --van-doc-link-color: var(--van-doc-blue); + + // background + --van-doc-background: #eff2f5; + --van-doc-background-2: var(--van-doc-white); + --van-doc-background-3: var(--van-doc-white); + --van-doc-header-background: #011f3c; + --van-doc-border-color: var(--van-doc-gray-2); + + // code + --van-doc-code-color: #58727e; + --van-doc-code-comment-color: var(--van-doc-gray-6); + --van-doc-code-background: var(--van-doc-gray-1); + + // blockquote + --van-doc-blockquote-color: #4994df; + --van-doc-blockquote-background: #ecf9ff; +} + +.van-doc-theme-dark { + // text + --van-doc-text-color-1: var(--van-doc-white); + --van-doc-text-color-2: rgba(255, 255, 255, 0.9); + --van-doc-text-color-3: rgba(255, 255, 255, 0.75); + --van-doc-text-color-4: rgba(255, 255, 255, 0.6); + --van-doc-link-color: #1bb5fe; + + // background + --van-doc-background: #202124; + --van-doc-background-2: rgba(255, 255, 255, 0.06); + --van-doc-background-3: rgba(255, 255, 255, 0.1); + --van-doc-header-background: rgba(1, 31, 60, 0.3); + --van-doc-border-color: #3a3a3c; + + // code + --van-doc-code-color: rgba(200, 200, 200, 0.85); + --van-doc-code-comment-color: var(--van-doc-gray-7); + --van-doc-code-background: rgba(0, 0, 0, 0.24); + + // blockquote + --van-doc-blockquote-color: #bae6fd; + --van-doc-blockquote-background: rgba(7, 89, 133, 0.25); +} diff --git a/packages/vant-cli/site/desktop/App.vue b/packages/vant-cli/site/desktop/App.vue index 15592bc90..c0b58dfc0 100644 --- a/packages/vant-cli/site/desktop/App.vue +++ b/packages/vant-cli/site/desktop/App.vue @@ -8,6 +8,7 @@ :simulator="simulator" :has-simulator="hasSimulator" :lang-configs="langConfigs" + :dark-mode-class="darkModeClass" > @@ -27,6 +28,7 @@ export default { data() { return { hasSimulator: true, + darkModeClass: config.site.darkModeClass, }; }, @@ -70,18 +72,18 @@ export default { watch: { // eslint-disable-next-line '$route.path'() { - this.setTitleAndToogleSimulator(); + this.setTitleAndToggleSimulator(); }, lang(val) { setLang(val); - this.setTitleAndToogleSimulator(); + this.setTitleAndToggleSimulator(); }, config: { handler(val) { if (val) { - this.setTitleAndToogleSimulator(); + this.setTitleAndToggleSimulator(); } }, immediate: true, @@ -100,7 +102,7 @@ export default { }, methods: { - setTitleAndToogleSimulator() { + setTitleAndToggleSimulator() { let { title } = this.config; const navItems = this.config.nav.reduce( diff --git a/packages/vant-cli/site/desktop/components/Container.vue b/packages/vant-cli/site/desktop/components/Container.vue index bc82f301b..e2aed5b4a 100644 --- a/packages/vant-cli/site/desktop/components/Container.vue +++ b/packages/vant-cli/site/desktop/components/Container.vue @@ -18,18 +18,18 @@ export default { diff --git a/packages/vant-cli/site/desktop/router.js b/packages/vant-cli/site/desktop/router.js index 36da3de23..b932d1e95 100644 --- a/packages/vant-cli/site/desktop/router.js +++ b/packages/vant-cli/site/desktop/router.js @@ -3,7 +3,7 @@ import { createRouter, createWebHashHistory } from 'vue-router'; import { isMobile, decamelize } from '../common'; import { config, documents } from 'site-desktop-shared'; import { getLang, setDefaultLang } from '../common/locales'; -import { listenToSyncPath, syncPathToChild } from '../common/iframe-router'; +import { listenToSyncPath, syncPathToChild } from '../common/iframe-sync'; if (isMobile) { location.replace('mobile.html' + location.hash); diff --git a/packages/vant-cli/site/mobile/App.vue b/packages/vant-cli/site/mobile/App.vue index 4048572dc..84c524680 100644 --- a/packages/vant-cli/site/mobile/App.vue +++ b/packages/vant-cli/site/mobile/App.vue @@ -10,21 +10,49 @@ diff --git a/packages/vant/src/card/index.less b/packages/vant/src/card/index.less index 887d3fade..863edef34 100644 --- a/packages/vant/src/card/index.less +++ b/packages/vant/src/card/index.less @@ -1,22 +1,20 @@ -@import './var.less'; - -:root { - --van-card-padding: @card-padding; - --van-card-font-size: @card-font-size; - --van-card-text-color: @card-text-color; - --van-card-background-color: @card-background-color; - --van-card-thumb-size: @card-thumb-size; - --van-card-thumb-border-radius: @card-thumb-border-radius; - --van-card-title-line-height: @card-title-line-height; - --van-card-desc-color: @card-desc-color; - --van-card-desc-line-height: @card-desc-line-height; - --van-card-price-color: @card-price-color; - --van-card-origin-price-color: @card-origin-price-color; - --van-card-num-color: @card-num-color; - --van-card-origin-price-font-size: @card-origin-price-font-size; - --van-card-price-font-size: @card-price-font-size; - --van-card-price-integer-font-size: @card-price-integer-font-size; - --van-card-price-font-family: @card-price-font-family; +body { + --van-card-padding: var(--van-padding-xs) var(--van-padding-md); + --van-card-font-size: var(--van-font-size-sm); + --van-card-text-color: var(--van-text-color); + --van-card-background: var(--van-background); + --van-card-thumb-size: 88px; + --van-card-thumb-radius: var(--van-radius-lg); + --van-card-title-line-height: 16px; + --van-card-desc-color: var(--van-text-color-2); + --van-card-desc-line-height: var(--van-line-height-md); + --van-card-price-color: var(--van-text-color); + --van-card-origin-price-color: var(--van-text-color-2); + --van-card-num-color: var(--van-text-color-2); + --van-card-origin-price-font-size: var(--van-font-size-xs); + --van-card-price-font-size: var(--van-font-size-sm); + --van-card-price-integer-font-size: var(--van-font-size-lg); + --van-card-price-font: var(--van-price-font); } .van-card { @@ -25,7 +23,7 @@ padding: var(--van-card-padding); color: var(--van-card-text-color); font-size: var(--van-card-font-size); - background: var(--van-card-background-color); + background: var(--van-card-background); &:not(:first-child) { margin-top: var(--van-padding-xs); @@ -43,7 +41,7 @@ margin-right: var(--van-padding-xs); img { - border-radius: var(--van-card-thumb-border-radius); + border-radius: var(--van-card-thumb-radius); } } @@ -68,7 +66,7 @@ &__title { max-height: 32px; - font-weight: var(--van-font-weight-bold); + font-weight: var(--van-font-bold); line-height: var(--van-card-title-line-height); } @@ -85,17 +83,17 @@ &__price { display: inline-block; color: var(--van-card-price-color); - font-weight: var(--van-font-weight-bold); + font-weight: var(--van-font-bold); font-size: var(--van-card-price-font-size); } &__price-integer { font-size: var(--van-card-price-integer-font-size); - font-family: var(--van-card-price-font-family); + font-family: var(--van-card-price-font); } &__price-decimal { - font-family: var(--van-card-price-font-family); + font-family: var(--van-card-price-font); } &__origin-price { diff --git a/packages/vant/src/card/index.ts b/packages/vant/src/card/index.ts index 15f5a3ed7..65019df3b 100644 --- a/packages/vant/src/card/index.ts +++ b/packages/vant/src/card/index.ts @@ -3,6 +3,7 @@ import _Card from './Card'; export const Card = withInstall(_Card); export default Card; +export { cardProps } from './Card'; export type { CardProps } from './Card'; declare module 'vue' { diff --git a/packages/vant/src/card/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/card/test/__snapshots__/demo.spec.ts.snap index 269ef7e7b..430639511 100644 --- a/packages/vant/src/card/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/card/test/__snapshots__/demo.spec.ts.snap @@ -68,7 +68,7 @@ exports[`should render demo and match snapshot 1`] = `
- + Tag @@ -135,12 +135,12 @@ exports[`should render demo and match snapshot 1`] = ` Description
- + Tag - + Tag diff --git a/packages/vant/src/card/test/index.spec.ts b/packages/vant/src/card/test/index.spec.ts index 9a56ff6f3..a2e81e898 100644 --- a/packages/vant/src/card/test/index.spec.ts +++ b/packages/vant/src/card/test/index.spec.ts @@ -12,7 +12,7 @@ test('should emit click event after clicked', () => { expect(onClick).toHaveBeenCalledTimes(1); }); -test('should emit click-thumb event after clicking thumb', () => { +test('should emit clickThumb event after clicking thumb', () => { const wrapper = mount(Card, { props: { thumb: 'xx', @@ -20,7 +20,7 @@ test('should emit click-thumb event after clicking thumb', () => { }); wrapper.find('.van-card__thumb').trigger('click'); - expect(wrapper.emitted('click-thumb')!).toHaveLength(1); + expect(wrapper.emitted('clickThumb')!).toHaveLength(1); }); test('should render price and num slot correctly', () => { diff --git a/packages/vant/src/card/var.less b/packages/vant/src/card/var.less deleted file mode 100644 index e24fda8af..000000000 --- a/packages/vant/src/card/var.less +++ /dev/null @@ -1,18 +0,0 @@ -@import '../style/var.less'; - -@card-padding: var(--van-padding-xs) var(--van-padding-md); -@card-font-size: var(--van-font-size-sm); -@card-text-color: var(--van-text-color); -@card-background-color: var(--van-gray-1); -@card-thumb-size: 88px; -@card-thumb-border-radius: var(--van-border-radius-lg); -@card-title-line-height: 16px; -@card-desc-color: var(--van-gray-7); -@card-desc-line-height: var(--van-line-height-md); -@card-price-color: var(--van-gray-8); -@card-origin-price-color: var(--van-text-color-2); -@card-num-color: var(--van-text-color-2); -@card-origin-price-font-size: var(--van-font-size-xs); -@card-price-font-size: var(--van-font-size-sm); -@card-price-integer-font-size: var(--van-font-size-lg); -@card-price-font-family: var(--van-price-integer-font-family); diff --git a/packages/vant/src/cascader/Cascader.tsx b/packages/vant/src/cascader/Cascader.tsx index 73d4e0bd2..7c1a273ea 100644 --- a/packages/vant/src/cascader/Cascader.tsx +++ b/packages/vant/src/cascader/Cascader.tsx @@ -28,7 +28,7 @@ import type { CascaderTab, CascaderOption, CascaderFieldNames } from './types'; const [name, bem, t] = createNamespace('cascader'); -const cascaderProps = { +export const cascaderProps = { title: String, options: makeArrayProp(), closeable: truthProp, @@ -48,7 +48,7 @@ export default defineComponent({ props: cascaderProps, - emits: ['close', 'change', 'finish', 'click-tab', 'update:modelValue'], + emits: ['close', 'change', 'finish', 'clickTab', 'update:modelValue'], setup(props, { slots, emit }) { const tabs = ref([]); @@ -185,7 +185,7 @@ export default defineComponent({ const onClose = () => emit('close'); const onClickTab = ({ name, title }: TabsClickTabEventParams) => - emit('click-tab', name, title); + emit('clickTab', name, title); const renderHeader = () => props.showHeader ? ( @@ -277,7 +277,7 @@ export default defineComponent({ class={bem('tabs')} color={props.activeColor} swipeable={props.swipeable} - onClick-tab={onClickTab} + onClickTab={onClickTab} > {tabs.value.map(renderTab)} diff --git a/packages/vant/src/cascader/README.md b/packages/vant/src/cascader/README.md index d08548cc3..679de187d 100644 --- a/packages/vant/src/cascader/README.md +++ b/packages/vant/src/cascader/README.md @@ -83,7 +83,7 @@ export default { v-model="cascaderValue" title="Select Area" :options="options" - active-color="#1989fa" + active-color="#ee0a24" @close="show = false" @finish="onFinish" /> @@ -250,7 +250,7 @@ export default { | value | Value of selected option | _string \| number_ | - | | options | Options | _CascaderOption[]_ | `[]` | | placeholder | Placeholder of unselected tab | _string_ | `Select` | -| active-color | Active color | _string_ | `#ee0a24` | +| active-color | Active color | _string_ | `#1989fa` | | swipeable `v3.0.11` | Whether to enable gestures to slide left and right | _boolean_ | `false` | | closeable | Whether to show close icon | _boolean_ | `true` | | show-header `v3.4.2` | Whether to show header | _boolean_ | `true` | diff --git a/packages/vant/src/cascader/README.zh-CN.md b/packages/vant/src/cascader/README.zh-CN.md index 79a5f1c94..5ef4633e0 100644 --- a/packages/vant/src/cascader/README.zh-CN.md +++ b/packages/vant/src/cascader/README.zh-CN.md @@ -89,7 +89,7 @@ export default { v-model="cascaderValue" title="请选择所在地区" :options="options" - active-color="#1989fa" + active-color="#ee0a24" @close="show = false" @finish="onFinish" /> @@ -260,7 +260,7 @@ export default { | value | 选中项的值 | _string \| number_ | - | | options | 可选项数据源 | _CascaderOption[]_ | `[]` | | placeholder | 未选中时的提示文案 | _string_ | `请选择` | -| active-color | 选中状态的高亮颜色 | _string_ | `#ee0a24` | +| active-color | 选中状态的高亮颜色 | _string_ | `#1989fa` | | swipeable `v3.0.11` | 是否开启手势左右滑动切换 | _boolean_ | `false` | | closeable | 是否显示关闭图标 | _boolean_ | `true` | | show-header `v3.4.2` | 是否展示标题栏 | _boolean_ | `true` | diff --git a/packages/vant/src/cascader/demo/index.vue b/packages/vant/src/cascader/demo/index.vue index fcebc132b..ce140661b 100644 --- a/packages/vant/src/cascader/demo/index.vue +++ b/packages/vant/src/cascader/demo/index.vue @@ -187,7 +187,7 @@ const onFinish = ( v-model="customColorState.value" :title="t('selectArea')" :options="t('options')" - active-color="#1989fa" + active-color="#ee0a24" @close="customColorState.show = false" @finish="onFinish(customColorState, $event)" /> diff --git a/packages/vant/src/cascader/index.less b/packages/vant/src/cascader/index.less index 56b4313bf..0ed61a5b7 100644 --- a/packages/vant/src/cascader/index.less +++ b/packages/vant/src/cascader/index.less @@ -1,19 +1,17 @@ -@import './var.less'; - -:root { - --van-cascader-header-height: @cascader-header-height; - --van-cascader-header-padding: @cascader-header-padding; - --van-cascader-title-font-size: @cascader-title-font-size; - --van-cascader-title-line-height: @cascader-title-line-height; - --van-cascader-close-icon-size: @cascader-close-icon-size; - --van-cascader-close-icon-color: @cascader-close-icon-color; - --van-cascader-selected-icon-size: @cascader-selected-icon-size; - --van-cascader-tabs-height: @cascader-tabs-height; - --van-cascader-active-color: @cascader-active-color; - --van-cascader-options-height: @cascader-options-height; - --van-cascader-option-disabled-color: @cascader-option-disabled-color; - --van-cascader-tab-color: @cascader-tab-color; - --van-cascader-unselected-tab-color: @cascader-unselected-tab-color; +body { + --van-cascader-header-height: 48px; + --van-cascader-header-padding: 0 var(--van-padding-md); + --van-cascader-title-font-size: var(--van-font-size-lg); + --van-cascader-title-line-height: 20px; + --van-cascader-close-icon-size: 22px; + --van-cascader-close-icon-color: var(--van-gray-5); + --van-cascader-selected-icon-size: 18px; + --van-cascader-tabs-height: 48px; + --van-cascader-active-color: var(--van-primary-color); + --van-cascader-options-height: 384px; + --van-cascader-option-disabled-color: var(--van-text-color-3); + --van-cascader-tab-color: var(--van-text-color); + --van-cascader-unselected-tab-color: var(--van-text-color-2); } .van-cascader { @@ -26,7 +24,7 @@ } &__title { - font-weight: var(--van-font-weight-bold); + font-weight: var(--van-font-bold); font-size: var(--van-cascader-title-font-size); line-height: var(--van-cascader-title-line-height); } @@ -44,7 +42,7 @@ &__tab { color: var(--van-cascader-tab-color); - font-weight: var(--van-font-weight-bold); + font-weight: var(--van-font-bold); &--unselected { color: var(--van-cascader-unselected-tab-color); @@ -67,7 +65,7 @@ &--selected { color: var(--van-cascader-active-color); - font-weight: var(--van-font-weight-bold); + font-weight: var(--van-font-bold); } &--disabled { diff --git a/packages/vant/src/cascader/index.ts b/packages/vant/src/cascader/index.ts index 7457518b4..02e08f229 100644 --- a/packages/vant/src/cascader/index.ts +++ b/packages/vant/src/cascader/index.ts @@ -3,6 +3,7 @@ import _Cascader from './Cascader'; export const Cascader = withInstall(_Cascader); export default Cascader; +export { cascaderProps } from './Cascader'; export type { CascaderProps } from './Cascader'; export type { CascaderOption, CascaderFieldNames } from './types'; diff --git a/packages/vant/src/cascader/test/index.spec.ts b/packages/vant/src/cascader/test/index.spec.ts index e7723cf14..41089f163 100644 --- a/packages/vant/src/cascader/test/index.spec.ts +++ b/packages/vant/src/cascader/test/index.spec.ts @@ -190,7 +190,7 @@ test('should allow to custom field names', async () => { ]); }); -test('should emit click-tab event when a tab is clicked', async () => { +test('should emit clickTab event when a tab is clicked', async () => { const wrapper = mount(Cascader, { props: { options, @@ -209,10 +209,10 @@ test('should emit click-tab event when a tab is clicked', async () => { const tabs = wrapper.findAll('.van-tab'); tabs[0].trigger('click'); - expect(wrapper.emitted('click-tab')![0]).toEqual([0, options[0].text]); + expect(wrapper.emitted('clickTab')![0]).toEqual([0, options[0].text]); tabs[1].trigger('click'); - expect(wrapper.emitted('click-tab')![1]).toEqual([ + expect(wrapper.emitted('clickTab')![1]).toEqual([ 1, options[0].children[0].text, ]); diff --git a/packages/vant/src/cascader/var.less b/packages/vant/src/cascader/var.less deleted file mode 100644 index e40ed83e6..000000000 --- a/packages/vant/src/cascader/var.less +++ /dev/null @@ -1,15 +0,0 @@ -@import '../style/var.less'; - -@cascader-header-height: 48px; -@cascader-header-padding: 0 var(--van-padding-md); -@cascader-title-font-size: var(--van-font-size-lg); -@cascader-title-line-height: 20px; -@cascader-close-icon-size: 22px; -@cascader-close-icon-color: var(--van-gray-5); -@cascader-selected-icon-size: 18px; -@cascader-tabs-height: 48px; -@cascader-active-color: var(--van-danger-color); -@cascader-options-height: 384px; -@cascader-option-disabled-color: var(--van-text-color-3); -@cascader-tab-color: var(--van-text-color); -@cascader-unselected-tab-color: var(--van-text-color-2); diff --git a/packages/vant/src/cell-group/CellGroup.tsx b/packages/vant/src/cell-group/CellGroup.tsx index a7215540f..22bc1a247 100644 --- a/packages/vant/src/cell-group/CellGroup.tsx +++ b/packages/vant/src/cell-group/CellGroup.tsx @@ -3,7 +3,7 @@ import { truthProp, createNamespace, BORDER_TOP_BOTTOM } from '../utils'; const [name, bem] = createNamespace('cell-group'); -const cellGroupProps = { +export const cellGroupProps = { title: String, inset: Boolean, border: truthProp, diff --git a/packages/vant/src/cell-group/index.less b/packages/vant/src/cell-group/index.less index 26f0289e9..1c9d3ab84 100644 --- a/packages/vant/src/cell-group/index.less +++ b/packages/vant/src/cell-group/index.less @@ -1,22 +1,21 @@ -@import './var.less'; - -:root { - --van-cell-group-background-color: @cell-group-background-color; - --van-cell-group-title-color: @cell-group-title-color; - --van-cell-group-title-padding: @cell-group-title-padding; - --van-cell-group-title-font-size: @cell-group-title-font-size; - --van-cell-group-title-line-height: @cell-group-title-line-height; - --van-cell-group-inset-padding: @cell-group-inset-padding; - --van-cell-group-inset-border-radius: @cell-group-inset-border-radius; - --van-cell-group-inset-title-padding: @cell-group-inset-title-padding; +body { + --van-cell-group-background: var(--van-background-2); + --van-cell-group-title-color: var(--van-text-color-2); + --van-cell-group-title-padding: var(--van-padding-md) var(--van-padding-md); + --van-cell-group-title-font-size: var(--van-font-size-md); + --van-cell-group-title-line-height: 16px; + --van-cell-group-inset-padding: 0 var(--van-padding-md); + --van-cell-group-inset-radius: var(--van-radius-lg); + --van-cell-group-inset-title-padding: var(--van-padding-md) + var(--van-padding-md); } .van-cell-group { - background: var(--van-cell-group-background-color); + background: var(--van-cell-group-background); &--inset { margin: var(--van-cell-group-inset-padding); - border-radius: var(--van-cell-group-inset-border-radius); + border-radius: var(--van-cell-group-inset-radius); overflow: hidden; } diff --git a/packages/vant/src/cell-group/index.ts b/packages/vant/src/cell-group/index.ts index 111f7eccf..8fd6bc2f7 100644 --- a/packages/vant/src/cell-group/index.ts +++ b/packages/vant/src/cell-group/index.ts @@ -3,6 +3,7 @@ import _CellGroup from './CellGroup'; export const CellGroup = withInstall(_CellGroup); export default CellGroup; +export { cellGroupProps } from './CellGroup'; export type { CellGroupProps } from './CellGroup'; declare module 'vue' { diff --git a/packages/vant/src/cell-group/var.less b/packages/vant/src/cell-group/var.less deleted file mode 100644 index e07416e89..000000000 --- a/packages/vant/src/cell-group/var.less +++ /dev/null @@ -1,12 +0,0 @@ -@import '../style/var.less'; - -@cell-group-background-color: var(--van-background-color-light); -@cell-group-title-color: var(--van-text-color-2); -@cell-group-title-padding: var(--van-padding-md) var(--van-padding-md) - var(--van-padding-xs); -@cell-group-title-font-size: var(--van-font-size-md); -@cell-group-title-line-height: 16px; -@cell-group-inset-padding: 0 var(--van-padding-md); -@cell-group-inset-border-radius: var(--van-border-radius-lg); -@cell-group-inset-title-padding: var(--van-padding-md) var(--van-padding-md) - var(--van-padding-xs) var(--van-padding-xl); diff --git a/packages/vant/src/cell/Cell.tsx b/packages/vant/src/cell/Cell.tsx index df06603e3..c93d86bba 100644 --- a/packages/vant/src/cell/Cell.tsx +++ b/packages/vant/src/cell/Cell.tsx @@ -49,7 +49,7 @@ export const cellSharedProps = { }, }; -const cellProps = extend({}, cellSharedProps, routeProps); +export const cellProps = extend({}, cellSharedProps, routeProps); export type CellProps = ExtractPropTypes; @@ -93,9 +93,8 @@ export default defineComponent({ const hasValue = slot || isDef(props.value); if (hasValue) { - const hasTitle = slots.title || isDef(props.title); return ( -
+
{slot ? slot() : {props.value}}
); diff --git a/packages/vant/src/cell/README.md b/packages/vant/src/cell/README.md index ac15517d0..a90f5ff78 100644 --- a/packages/vant/src/cell/README.md +++ b/packages/vant/src/cell/README.md @@ -104,7 +104,7 @@ app.use(CellGroup); @@ -218,7 +218,7 @@ The component provides the following CSS variables, which can be used to customi | --van-cell-vertical-padding | _10px_ | - | | --van-cell-horizontal-padding | _var(--van-padding-md)_ | - | | --van-cell-text-color | _var(--van-text-color)_ | - | -| --van-cell-background-color | _var(--van-background-color-light)_ | - | +| --van-cell-background | _var(--van-background-2)_ | - | | --van-cell-border-color | _var(--van-border-color)_ | - | | --van-cell-active-color | _var(--van-active-color)_ | - | | --van-cell-required-color | _var(--van-danger-color)_ | - | @@ -232,11 +232,11 @@ The component provides the following CSS variables, which can be used to customi | --van-cell-large-vertical-padding | _var(--van-padding-sm)_ | - | | --van-cell-large-title-font-size | _var(--van-font-size-lg)_ | - | | --van-cell-large-label-font-size | _var(--van-font-size-md)_ | - | -| --van-cell-group-background-color | _var(--van-background-color-light)_ | - | +| --van-cell-group-background | _var(--van-background-2)_ | - | | --van-cell-group-title-color | _var(--van-text-color-2)_ | - | | --van-cell-group-title-padding | _var(--van-padding-md) var(--van-padding-md) var(--van-padding-xs)_ | - | | --van-cell-group-title-font-size | _var(--van-font-size-md)_ | - | | --van-cell-group-title-line-height | _16px_ | - | | --van-cell-group-inset-padding | _0 var(--van-padding-md)_ | - | -| --van-cell-group-inset-border-radius | _var(--van-border-radius-lg)_ | - | +| --van-cell-group-inset-radius | _var(--van-radius-lg)_ | - | | --van-cell-group-inset-title-padding | _var(--van-padding-md) var(--van-padding-md) var(--van-padding-xs) var(--van-padding-xl)_ | - | diff --git a/packages/vant/src/cell/README.zh-CN.md b/packages/vant/src/cell/README.zh-CN.md index 98355e78c..58e767d7f 100644 --- a/packages/vant/src/cell/README.zh-CN.md +++ b/packages/vant/src/cell/README.zh-CN.md @@ -107,7 +107,7 @@ app.use(CellGroup); @@ -223,7 +223,7 @@ import type { | --van-cell-vertical-padding | _10px_ | - | | --van-cell-horizontal-padding | _var(--van-padding-md)_ | - | | --van-cell-text-color | _var(--van-text-color)_ | - | -| --van-cell-background-color | _var(--van-background-color-light)_ | - | +| --van-cell-background | _var(--van-background-2)_ | - | | --van-cell-border-color | _var(--van-border-color)_ | - | | --van-cell-active-color | _var(--van-active-color)_ | - | | --van-cell-required-color | _var(--van-danger-color)_ | - | @@ -237,11 +237,11 @@ import type { | --van-cell-large-vertical-padding | _var(--van-padding-sm)_ | - | | --van-cell-large-title-font-size | _var(--van-font-size-lg)_ | - | | --van-cell-large-label-font-size | _var(--van-font-size-md)_ | - | -| --van-cell-group-background-color | _var(--van-background-color-light)_ | - | +| --van-cell-group-background | _var(--van-background-2)_ | - | | --van-cell-group-title-color | _var(--van-text-color-2)_ | - | | --van-cell-group-title-padding | _var(--van-padding-md) var(--van-padding-md) var(--van-padding-xs)_ | - | | --van-cell-group-title-font-size | _var(--van-font-size-md)_ | - | | --van-cell-group-title-line-height | _16px_ | - | | --van-cell-group-inset-padding | _0 var(--van-padding-md)_ | - | -| --van-cell-group-inset-border-radius | _var(--van-border-radius-lg)_ | - | +| --van-cell-group-inset-radius | _var(--van-radius-lg)_ | - | | --van-cell-group-inset-title-padding | _var(--van-padding-md) var(--van-padding-md) var(--van-padding-xs) var(--van-padding-xl)_ | - | diff --git a/packages/vant/src/cell/demo/index.vue b/packages/vant/src/cell/demo/index.vue index 6f9f142eb..cfd02741c 100644 --- a/packages/vant/src/cell/demo/index.vue +++ b/packages/vant/src/cell/demo/index.vue @@ -16,7 +16,6 @@ const t = useTranslate({ showIcon: '展示图标', showArrow: '展示箭头', largeSize: '单元格大小', - valueOnly: '只设置 value', groupTitle: '分组标题', insetGrouped: '卡片风格', verticalCenter: '垂直居中', @@ -31,7 +30,6 @@ const t = useTranslate({ showIcon: 'Left Icon', showArrow: 'Link', largeSize: 'Size', - valueOnly: 'Value only', groupTitle: 'Group Title', insetGrouped: 'Inset Grouped', verticalCenter: 'Vertical center', @@ -68,10 +66,6 @@ const t = useTranslate({ - - - - @@ -105,7 +99,7 @@ const t = useTranslate({ diff --git a/packages/vant/src/cell/index.less b/packages/vant/src/cell/index.less index e5b4aba94..7a2d48c79 100644 --- a/packages/vant/src/cell/index.less +++ b/packages/vant/src/cell/index.less @@ -1,26 +1,25 @@ -@import './var.less'; @import '../style/mixins/hairline'; -:root { - --van-cell-font-size: @cell-font-size; - --van-cell-line-height: @cell-line-height; - --van-cell-vertical-padding: @cell-vertical-padding; - --van-cell-horizontal-padding: @cell-horizontal-padding; - --van-cell-text-color: @cell-text-color; - --van-cell-background-color: @cell-background-color; - --van-cell-border-color: @cell-border-color; - --van-cell-active-color: @cell-active-color; - --van-cell-required-color: @cell-required-color; - --van-cell-label-color: @cell-label-color; - --van-cell-label-font-size: @cell-label-font-size; - --van-cell-label-line-height: @cell-label-line-height; - --van-cell-label-margin-top: @cell-label-margin-top; - --van-cell-value-color: @cell-value-color; - --van-cell-icon-size: @cell-icon-size; - --van-cell-right-icon-color: @cell-right-icon-color; - --van-cell-large-vertical-padding: @cell-large-vertical-padding; - --van-cell-large-title-font-size: @cell-large-title-font-size; - --van-cell-large-label-font-size: @cell-large-label-font-size; +body { + --van-cell-font-size: var(--van-font-size-md); + --van-cell-line-height: 24px; + --van-cell-vertical-padding: 10px; + --van-cell-horizontal-padding: var(--van-padding-md); + --van-cell-text-color: var(--van-text-color); + --van-cell-background: var(--van-background-2); + --van-cell-border-color: var(--van-border-color); + --van-cell-active-color: var(--van-active-color); + --van-cell-required-color: var(--van-danger-color); + --van-cell-label-color: var(--van-text-color-2); + --van-cell-label-font-size: var(--van-font-size-sm); + --van-cell-label-line-height: var(--van-line-height-sm); + --van-cell-label-margin-top: var(--van-padding-base); + --van-cell-value-color: var(--van-text-color-2); + --van-cell-icon-size: 16px; + --van-cell-right-icon-color: var(--van-gray-6); + --van-cell-large-vertical-padding: var(--van-padding-sm); + --van-cell-large-title-font-size: var(--van-font-size-lg); + --van-cell-large-label-font-size: var(--van-font-size-md); } .van-cell { @@ -33,7 +32,7 @@ color: var(--van-cell-text-color); font-size: var(--van-cell-font-size); line-height: var(--van-cell-line-height); - background: var(--van-cell-background-color); + background: var(--van-cell-background); &::after { .hairline-bottom(var(--van-cell-border-color), var(--van-padding-md), var(--van-padding-md)); @@ -63,11 +62,6 @@ text-align: right; vertical-align: middle; word-wrap: break-word; - - &--alone { - color: var(--van-text-color); - text-align: left; - } } &__left-icon, diff --git a/packages/vant/src/cell/index.ts b/packages/vant/src/cell/index.ts index aece575a9..d0e80018b 100644 --- a/packages/vant/src/cell/index.ts +++ b/packages/vant/src/cell/index.ts @@ -3,6 +3,7 @@ import _Cell from './Cell'; export const Cell = withInstall(_Cell); export default Cell; +export { cellProps } from './Cell'; export type { CellSize, CellProps, CellArrowDirection } from './Cell'; declare module 'vue' { diff --git a/packages/vant/src/cell/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/cell/test/__snapshots__/demo.spec.ts.snap index 199b84b74..fb5995d79 100644 --- a/packages/vant/src/cell/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/cell/test/__snapshots__/demo.spec.ts.snap @@ -108,15 +108,6 @@ exports[`should render demo and match snapshot 1`] = `
-
-
-
- - Content - -
-
-
- + Tag diff --git a/packages/vant/src/cell/test/__snapshots__/index.spec.ts.snap b/packages/vant/src/cell/test/__snapshots__/index.spec.ts.snap index 9c5f1ed3a..0e8d8a80a 100644 --- a/packages/vant/src/cell/test/__snapshots__/index.spec.ts.snap +++ b/packages/vant/src/cell/test/__snapshots__/index.spec.ts.snap @@ -47,7 +47,7 @@ exports[`should render title slot correctly 1`] = ` exports[`should render value slot correctly 1`] = `
-
+
Custom Value
diff --git a/packages/vant/src/cell/var.less b/packages/vant/src/cell/var.less deleted file mode 100644 index fd3194bcb..000000000 --- a/packages/vant/src/cell/var.less +++ /dev/null @@ -1,21 +0,0 @@ -@import '../style/var.less'; - -@cell-font-size: var(--van-font-size-md); -@cell-line-height: 24px; -@cell-vertical-padding: 10px; -@cell-horizontal-padding: var(--van-padding-md); -@cell-text-color: var(--van-text-color); -@cell-background-color: var(--van-background-color-light); -@cell-border-color: var(--van-border-color); -@cell-active-color: var(--van-active-color); -@cell-required-color: var(--van-danger-color); -@cell-label-color: var(--van-text-color-2); -@cell-label-font-size: var(--van-font-size-sm); -@cell-label-line-height: var(--van-line-height-sm); -@cell-label-margin-top: var(--van-padding-base); -@cell-value-color: var(--van-text-color-2); -@cell-icon-size: 16px; -@cell-right-icon-color: var(--van-gray-6); -@cell-large-vertical-padding: var(--van-padding-sm); -@cell-large-title-font-size: var(--van-font-size-lg); -@cell-large-label-font-size: var(--van-font-size-md); diff --git a/packages/vant/src/checkbox-group/CheckboxGroup.tsx b/packages/vant/src/checkbox-group/CheckboxGroup.tsx index 422cdc4be..6529e0d19 100644 --- a/packages/vant/src/checkbox-group/CheckboxGroup.tsx +++ b/packages/vant/src/checkbox-group/CheckboxGroup.tsx @@ -23,7 +23,7 @@ import type { const [name, bem] = createNamespace('checkbox-group'); -const checkboxGroupProps = { +export const checkboxGroupProps = { max: numericProp, disabled: Boolean, iconSize: numericProp, diff --git a/packages/vant/src/checkbox-group/index.ts b/packages/vant/src/checkbox-group/index.ts index 1dda6118b..8d7c0b9ce 100644 --- a/packages/vant/src/checkbox-group/index.ts +++ b/packages/vant/src/checkbox-group/index.ts @@ -3,6 +3,7 @@ import _CheckboxGroup from './CheckboxGroup'; export const CheckboxGroup = withInstall(_CheckboxGroup); export default CheckboxGroup; +export { checkboxGroupProps } from './CheckboxGroup'; export type { CheckboxGroupProps } from './CheckboxGroup'; export type { CheckboxGroupInstance, diff --git a/packages/vant/src/checkbox/Checkbox.tsx b/packages/vant/src/checkbox/Checkbox.tsx index 3cb18df22..18a68168c 100644 --- a/packages/vant/src/checkbox/Checkbox.tsx +++ b/packages/vant/src/checkbox/Checkbox.tsx @@ -16,7 +16,7 @@ import type { CheckboxExpose } from './types'; const [name, bem] = createNamespace('checkbox'); -const checkboxProps = extend({}, checkerProps, { +export const checkboxProps = extend({}, checkerProps, { bindGroup: truthProp, }); diff --git a/packages/vant/src/checkbox/README.md b/packages/vant/src/checkbox/README.md index 75ef9561a..46361f904 100644 --- a/packages/vant/src/checkbox/README.md +++ b/packages/vant/src/checkbox/README.md @@ -372,10 +372,10 @@ The component provides the following CSS variables, which can be used to customi | --- | --- | --- | | --van-checkbox-size | _20px_ | - | | --van-checkbox-border-color | _var(--van-gray-5)_ | - | -| --van-checkbox-transition-duration | _var(--van-animation-duration-fast)_ | - | +| --van-checkbox-duration | _var(--van-duration-fast)_ | - | | --van-checkbox-label-margin | _var(--van-padding-xs)_ | - | | --van-checkbox-label-color | _var(--van-text-color)_ | - | | --van-checkbox-checked-icon-color | _var(--van-primary-color)_ | - | | --van-checkbox-disabled-icon-color | _var(--van-gray-5)_ | - | | --van-checkbox-disabled-label-color | _var(--van-text-color-3)_ | - | -| --van-checkbox-disabled-background-color | _var(--van-border-color)_ | - | +| --van-checkbox-disabled-background | _var(--van-border-color)_ | - | diff --git a/packages/vant/src/checkbox/README.zh-CN.md b/packages/vant/src/checkbox/README.zh-CN.md index 49d290bb8..57532f4fd 100644 --- a/packages/vant/src/checkbox/README.zh-CN.md +++ b/packages/vant/src/checkbox/README.zh-CN.md @@ -385,14 +385,14 @@ checkboxGroupRef.value?.toggleAll(); 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](#/zh-CN/config-provider)。 -| 名称 | 默认值 | 描述 | -| --- | --- | --- | -| --van-checkbox-size | _20px_ | - | -| --van-checkbox-border-color | _var(--van-gray-5)_ | - | -| --van-checkbox-transition-duration | _var(--van-animation-duration-fast)_ | - | -| --van-checkbox-label-margin | _var(--van-padding-xs)_ | - | -| --van-checkbox-label-color | _var(--van-text-color)_ | - | -| --van-checkbox-checked-icon-color | _var(--van-primary-color)_ | - | -| --van-checkbox-disabled-icon-color | _var(--van-gray-5)_ | - | -| --van-checkbox-disabled-label-color | _var(--van-text-color-3)_ | - | -| --van-checkbox-disabled-background-color | _var(--van-border-color)_ | - | +| 名称 | 默认值 | 描述 | +| ----------------------------------- | -------------------------- | ---- | +| --van-checkbox-size | _20px_ | - | +| --van-checkbox-border-color | _var(--van-gray-5)_ | - | +| --van-checkbox-duration | _var(--van-duration-fast)_ | - | +| --van-checkbox-label-margin | _var(--van-padding-xs)_ | - | +| --van-checkbox-label-color | _var(--van-text-color)_ | - | +| --van-checkbox-checked-icon-color | _var(--van-primary-color)_ | - | +| --van-checkbox-disabled-icon-color | _var(--van-gray-5)_ | - | +| --van-checkbox-disabled-label-color | _var(--van-text-color-3)_ | - | +| --van-checkbox-disabled-background | _var(--van-border-color)_ | - | diff --git a/packages/vant/src/checkbox/index.less b/packages/vant/src/checkbox/index.less index 912085b66..be80dc6ea 100644 --- a/packages/vant/src/checkbox/index.less +++ b/packages/vant/src/checkbox/index.less @@ -1,15 +1,13 @@ -@import './var.less'; - -:root { - --van-checkbox-size: @checkbox-size; - --van-checkbox-border-color: @checkbox-border-color; - --van-checkbox-transition-duration: @checkbox-transition-duration; - --van-checkbox-label-margin: @checkbox-label-margin; - --van-checkbox-label-color: @checkbox-label-color; - --van-checkbox-checked-icon-color: @checkbox-checked-icon-color; - --van-checkbox-disabled-icon-color: @checkbox-disabled-icon-color; - --van-checkbox-disabled-label-color: @checkbox-disabled-label-color; - --van-checkbox-disabled-background-color: @checkbox-disabled-background-color; +body { + --van-checkbox-size: 20px; + --van-checkbox-border-color: var(--van-gray-5); + --van-checkbox-duration: var(--van-duration-fast); + --van-checkbox-label-margin: var(--van-padding-xs); + --van-checkbox-label-color: var(--van-text-color); + --van-checkbox-checked-icon-color: var(--van-primary-color); + --van-checkbox-disabled-icon-color: var(--van-gray-5); + --van-checkbox-disabled-label-color: var(--van-text-color-3); + --van-checkbox-disabled-background: var(--van-border-color); } .van-checkbox { @@ -48,7 +46,7 @@ line-height: 1.25; text-align: center; border: 1px solid var(--van-checkbox-border-color); - transition-duration: var(--van-checkbox-transition-duration); + transition-duration: var(--van-checkbox-duration); transition-property: color, border-color, background-color; } @@ -70,7 +68,7 @@ cursor: not-allowed; .van-icon { - background-color: var(--van-checkbox-disabled-background-color); + background-color: var(--van-checkbox-disabled-background); border-color: var(--van-checkbox-disabled-icon-color); } } diff --git a/packages/vant/src/checkbox/index.ts b/packages/vant/src/checkbox/index.ts index 18502eb9a..2458a9d61 100644 --- a/packages/vant/src/checkbox/index.ts +++ b/packages/vant/src/checkbox/index.ts @@ -3,6 +3,7 @@ import _Checkbox from './Checkbox'; export const Checkbox = withInstall(_Checkbox); export default Checkbox; +export { checkboxProps } from './Checkbox'; export type { CheckboxProps } from './Checkbox'; export type { CheckboxShape, diff --git a/packages/vant/src/checkbox/var.less b/packages/vant/src/checkbox/var.less deleted file mode 100644 index 146aa3ac8..000000000 --- a/packages/vant/src/checkbox/var.less +++ /dev/null @@ -1,11 +0,0 @@ -@import '../style/var.less'; - -@checkbox-size: 20px; -@checkbox-border-color: var(--van-gray-5); -@checkbox-transition-duration: var(--van-animation-duration-fast); -@checkbox-label-margin: var(--van-padding-xs); -@checkbox-label-color: var(--van-text-color); -@checkbox-checked-icon-color: var(--van-primary-color); -@checkbox-disabled-icon-color: var(--van-gray-5); -@checkbox-disabled-label-color: var(--van-text-color-3); -@checkbox-disabled-background-color: var(--van-border-color); diff --git a/packages/vant/src/circle/Circle.tsx b/packages/vant/src/circle/Circle.tsx index 85a037720..ead0602b3 100644 --- a/packages/vant/src/circle/Circle.tsx +++ b/packages/vant/src/circle/Circle.tsx @@ -34,7 +34,7 @@ function getPath(clockwise: boolean, viewBoxSize: number) { export type CircleStartPosition = 'top' | 'right' | 'bottom' | 'left'; -const circleProps = { +export const circleProps = { text: String, size: numericProp, fill: makeStringProp('none'), diff --git a/packages/vant/src/circle/README.md b/packages/vant/src/circle/README.md index eeeea7ce2..6def8f799 100644 --- a/packages/vant/src/circle/README.md +++ b/packages/vant/src/circle/README.md @@ -181,12 +181,12 @@ import type { CircleProps, CircleStartPosition } from 'vant'; The component provides the following CSS variables, which can be used to customize styles. Please refer to [ConfigProvider component](#/en-US/config-provider). -| Name | Default Value | Description | -| ----------------------------- | ----------------------------- | ----------- | -| --van-circle-size | _100px_ | - | -| --van-circle-color | _var(--van-primary-color)_ | - | -| --van-circle-layer-color | _var(--van-white)_ | - | -| --van-circle-text-color | _var(--van-text-color)_ | - | -| --van-circle-text-font-weight | _var(--van-font-weight-bold)_ | - | -| --van-circle-text-font-size | _var(--van-font-size-md)_ | - | -| --van-circle-text-line-height | _var(--van-line-height-md)_ | - | +| Name | Default Value | Description | +| ----------------------------- | --------------------------- | ----------- | +| --van-circle-size | _100px_ | - | +| --van-circle-color | _var(--van-primary-color)_ | - | +| --van-circle-layer-color | _var(--van-white)_ | - | +| --van-circle-text-color | _var(--van-text-color)_ | - | +| --van-circle-text-font-weight | _var(--van-font-bold)_ | - | +| --van-circle-text-font-size | _var(--van-font-size-md)_ | - | +| --van-circle-text-line-height | _var(--van-line-height-md)_ | - | diff --git a/packages/vant/src/circle/README.zh-CN.md b/packages/vant/src/circle/README.zh-CN.md index a47a344a2..ab955a55c 100644 --- a/packages/vant/src/circle/README.zh-CN.md +++ b/packages/vant/src/circle/README.zh-CN.md @@ -195,12 +195,12 @@ import type { CircleProps, CircleStartPosition } from 'vant'; 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](#/zh-CN/config-provider)。 -| 名称 | 默认值 | 描述 | -| ----------------------------- | ----------------------------- | ---- | -| --van-circle-size | _100px_ | - | -| --van-circle-color | _var(--van-primary-color)_ | - | -| --van-circle-layer-color | _var(--van-white)_ | - | -| --van-circle-text-color | _var(--van-text-color)_ | - | -| --van-circle-text-font-weight | _var(--van-font-weight-bold)_ | - | -| --van-circle-text-font-size | _var(--van-font-size-md)_ | - | -| --van-circle-text-line-height | _var(--van-line-height-md)_ | - | +| 名称 | 默认值 | 描述 | +| ----------------------------- | --------------------------- | ---- | +| --van-circle-size | _100px_ | - | +| --van-circle-color | _var(--van-primary-color)_ | - | +| --van-circle-layer-color | _var(--van-white)_ | - | +| --van-circle-text-color | _var(--van-text-color)_ | - | +| --van-circle-text-font-weight | _var(--van-font-bold)_ | - | +| --van-circle-text-font-size | _var(--van-font-size-md)_ | - | +| --van-circle-text-line-height | _var(--van-line-height-md)_ | - | diff --git a/packages/vant/src/circle/index.less b/packages/vant/src/circle/index.less index 4d9ee3640..356c32939 100644 --- a/packages/vant/src/circle/index.less +++ b/packages/vant/src/circle/index.less @@ -1,13 +1,11 @@ -@import './var.less'; - -:root { - --van-circle-size: @circle-size; - --van-circle-color: @circle-color; - --van-circle-layer-color: @circle-layer-color; - --van-circle-text-color: @circle-text-color; - --van-circle-text-font-weight: @circle-text-font-weight; - --van-circle-text-font-size: @circle-text-font-size; - --van-circle-text-line-height: @circle-text-line-height; +body { + --van-circle-size: 100px; + --van-circle-color: var(--van-primary-color); + --van-circle-layer-color: var(--van-white); + --van-circle-text-color: var(--van-text-color); + --van-circle-text-font-weight: var(--van-font-bold); + --van-circle-text-font-size: var(--van-font-size-md); + --van-circle-text-line-height: var(--van-line-height-md); } .van-circle { diff --git a/packages/vant/src/circle/index.ts b/packages/vant/src/circle/index.ts index b755f7a1d..d41972dc9 100644 --- a/packages/vant/src/circle/index.ts +++ b/packages/vant/src/circle/index.ts @@ -3,6 +3,7 @@ import _Circle from './Circle'; export const Circle = withInstall(_Circle); export default Circle; +export { circleProps } from './Circle'; export type { CircleProps, CircleStartPosition } from './Circle'; declare module 'vue' { diff --git a/packages/vant/src/circle/var.less b/packages/vant/src/circle/var.less deleted file mode 100644 index ab0a9b42b..000000000 --- a/packages/vant/src/circle/var.less +++ /dev/null @@ -1,9 +0,0 @@ -@import '../style/var.less'; - -@circle-size: 100px; -@circle-color: var(--van-primary-color); -@circle-layer-color: var(--van-white); -@circle-text-color: var(--van-text-color); -@circle-text-font-weight: var(--van-font-weight-bold); -@circle-text-font-size: var(--van-font-size-md); -@circle-text-line-height: var(--van-line-height-md); diff --git a/packages/vant/src/col/Col.tsx b/packages/vant/src/col/Col.tsx index 3a53342c2..25b03cd34 100644 --- a/packages/vant/src/col/Col.tsx +++ b/packages/vant/src/col/Col.tsx @@ -10,7 +10,7 @@ import { ROW_KEY } from '../row/Row'; const [name, bem] = createNamespace('col'); -const colProps = { +export const colProps = { tag: makeStringProp('div'), span: makeNumericProp(0), offset: numericProp, diff --git a/packages/vant/src/col/demo/index.vue b/packages/vant/src/col/demo/index.vue index 807993607..2641a9219 100644 --- a/packages/vant/src/col/demo/index.vue +++ b/packages/vant/src/col/demo/index.vue @@ -70,8 +70,6 @@ const t = useTranslate({ diff --git a/packages/vant/src/contact-list/index.less b/packages/vant/src/contact-list/index.less index 95d2af60b..f231a853b 100644 --- a/packages/vant/src/contact-list/index.less +++ b/packages/vant/src/contact-list/index.less @@ -1,10 +1,8 @@ -@import './var.less'; - -:root { - --van-contact-list-edit-icon-size: @contact-list-edit-icon-size; - --van-contact-list-add-button-z-index: @contact-list-add-button-z-index; - --van-contact-list-item-padding: @contact-list-item-padding; - --van-contact-list-item-radio-icon-color: @contact-list-item-radio-icon-color; +body { + --van-contact-list-edit-icon-size: 16px; + --van-contact-list-add-button-z-index: 999; + --van-contact-list-radio-color: var(--van-primary-color); + --van-contact-list-item-padding: var(--van-padding-md); } .van-contact-list { @@ -16,7 +14,7 @@ padding: var(--van-contact-list-item-padding); } - &__item-value { + &__item-title { display: flex; align-items: center; padding-right: var(--van-padding-xl); @@ -44,8 +42,8 @@ &__radio { .van-radio__icon--checked .van-icon { - background-color: var(--van-contact-list-item-radio-icon-color); - border-color: var(--van-contact-list-item-radio-icon-color); + background-color: var(--van-contact-list-radio-color); + border-color: var(--van-contact-list-radio-color); } } @@ -57,7 +55,7 @@ z-index: var(--van-contact-list-add-button-z-index); padding-left: var(--van-padding-md); padding-right: var(--van-padding-md); - background-color: var(--van-background-color-light); + background-color: var(--van-background-2); } &__add { diff --git a/packages/vant/src/contact-list/index.ts b/packages/vant/src/contact-list/index.ts index 8cb0d492a..d06bb87c9 100644 --- a/packages/vant/src/contact-list/index.ts +++ b/packages/vant/src/contact-list/index.ts @@ -3,6 +3,7 @@ import _ContactList from './ContactList'; export const ContactList = withInstall(_ContactList); export default ContactList; +export { contactListProps } from './ContactList'; export type { ContactListItem, ContactListProps } from './ContactList'; declare module 'vue' { diff --git a/packages/vant/src/contact-list/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/contact-list/test/__snapshots__/demo.spec.ts.snap index 2695dfe09..9babf2386 100644 --- a/packages/vant/src/contact-list/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/contact-list/test/__snapshots__/demo.spec.ts.snap @@ -12,10 +12,10 @@ exports[`should render demo and match snapshot 1`] = ` > -
+
John Snow,13000000000 - + default @@ -39,7 +39,7 @@ exports[`should render demo and match snapshot 1`] = ` > -
+
Ned Stark,1310000000