Skip to content

Commit 2d3f40a

Browse files
authored
feat: skeleton css-var (#8326)
Co-authored-by: undefined <undefined>
1 parent e1cfc82 commit 2d3f40a

File tree

6 files changed

+161
-109
lines changed

6 files changed

+161
-109
lines changed

components/skeleton/Avatar.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import initDefaultProps from '../_util/props-util/initDefaultProps';
55
import useConfigInject from '../config-provider/hooks/useConfigInject';
66
import Element, { skeletonElementProps } from './Element';
77
import useStyle from './style';
8+
import useCSSVarCls from '../config-provider/hooks/useCssVarCls';
89

910
export const avatarProps = () => {
1011
return {
@@ -24,14 +25,17 @@ const SkeletonAvatar = defineComponent({
2425
}),
2526
setup(props) {
2627
const { prefixCls } = useConfigInject('skeleton', props);
27-
const [wrapSSR, hashId] = useStyle(prefixCls);
28+
const rootCls = useCSSVarCls(prefixCls);
29+
const [wrapSSR, hashId, cssVarCls] = useStyle(prefixCls, rootCls);
2830
const cls = computed(() =>
2931
classNames(
3032
prefixCls.value,
3133
`${prefixCls.value}-element`,
3234
{
3335
[`${prefixCls.value}-active`]: props.active,
3436
},
37+
rootCls.value,
38+
cssVarCls.value,
3539
hashId.value,
3640
),
3741
);

components/skeleton/Button.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import useConfigInject from '../config-provider/hooks/useConfigInject';
55
import { initDefaultProps } from '../_util/props-util';
66
import Element, { skeletonElementProps } from './Element';
77
import useStyle from './style';
8+
import useCSSVarCls from '../config-provider/hooks/useCssVarCls';
89

910
export const skeletonButtonProps = () => {
1011
return {
@@ -24,7 +25,8 @@ const SkeletonButton = defineComponent({
2425
}),
2526
setup(props) {
2627
const { prefixCls } = useConfigInject('skeleton', props);
27-
const [wrapSSR, hashId] = useStyle(prefixCls);
28+
const rootCls = useCSSVarCls(prefixCls);
29+
const [wrapSSR, hashId, cssVarCls] = useStyle(prefixCls, rootCls);
2830
const cls = computed(() =>
2931
classNames(
3032
prefixCls.value,
@@ -33,6 +35,8 @@ const SkeletonButton = defineComponent({
3335
[`${prefixCls.value}-active`]: props.active,
3436
[`${prefixCls.value}-block`]: props.block,
3537
},
38+
rootCls.value,
39+
cssVarCls.value,
3640
hashId.value,
3741
),
3842
);

components/skeleton/Image.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import omit from '../_util/omit';
55
import type { SkeletonElementProps } from './Element';
66
import { skeletonElementProps } from './Element';
77
import useStyle from './style';
8+
import useCSSVarCls from '../config-provider/hooks/useCssVarCls';
89

910
export type SkeletonImageProps = Omit<SkeletonElementProps, 'size' | 'shape' | 'active'>;
1011

@@ -17,9 +18,16 @@ const SkeletonImage = defineComponent({
1718
props: omit(skeletonElementProps(), ['size', 'shape', 'active']),
1819
setup(props) {
1920
const { prefixCls } = useConfigInject('skeleton', props);
20-
const [wrapSSR, hashId] = useStyle(prefixCls);
21+
const rootCls = useCSSVarCls(prefixCls);
22+
const [wrapSSR, hashId, cssVarCls] = useStyle(prefixCls, rootCls);
2123
const cls = computed(() =>
22-
classNames(prefixCls.value, `${prefixCls.value}-element`, hashId.value),
24+
classNames(
25+
prefixCls.value,
26+
`${prefixCls.value}-element`,
27+
rootCls.value,
28+
hashId.value,
29+
cssVarCls.value,
30+
),
2331
);
2432
return () => {
2533
return wrapSSR(

components/skeleton/Input.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import type { SkeletonElementProps } from './Element';
66
import Element, { skeletonElementProps } from './Element';
77
import omit from '../_util/omit';
88
import useStyle from './style';
9+
import useCSSVarCls from '../config-provider/hooks/useCssVarCls';
910

1011
export interface SkeletonInputProps extends Omit<SkeletonElementProps, 'size' | 'shape'> {
1112
size?: 'large' | 'small' | 'default';
@@ -22,7 +23,8 @@ const SkeletonInput = defineComponent({
2223
},
2324
setup(props) {
2425
const { prefixCls } = useConfigInject('skeleton', props);
25-
const [wrapSSR, hashId] = useStyle(prefixCls);
26+
const rootCls = useCSSVarCls(prefixCls);
27+
const [wrapSSR, hashId, cssVarCls] = useStyle(prefixCls, rootCls);
2628
const cls = computed(() =>
2729
classNames(
2830
prefixCls.value,
@@ -31,7 +33,9 @@ const SkeletonInput = defineComponent({
3133
[`${prefixCls.value}-active`]: props.active,
3234
[`${prefixCls.value}-block`]: props.block,
3335
},
36+
rootCls.value,
3437
hashId.value,
38+
cssVarCls.value,
3539
),
3640
);
3741
return () => {

components/skeleton/Skeleton.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Paragraph from './Paragraph';
1010
import useConfigInject from '../config-provider/hooks/useConfigInject';
1111
import Element from './Element';
1212
import useStyle from './style';
13+
import useCSSVarCls from '../config-provider/hooks/useCssVarCls';
1314

1415
/* This only for skeleton internal. */
1516
type SkeletonAvatarProps = Omit<AvatarProps, 'active'>;
@@ -90,7 +91,8 @@ const Skeleton = defineComponent({
9091
}),
9192
setup(props, { slots }) {
9293
const { prefixCls, direction } = useConfigInject('skeleton', props);
93-
const [wrapSSR, hashId] = useStyle(prefixCls);
94+
const rootCls = useCSSVarCls(prefixCls);
95+
const [wrapSSR, hashId, cssVarCls] = useStyle(prefixCls, rootCls);
9496

9597
return () => {
9698
const { loading, avatar, title, paragraph, active, round } = props;
@@ -155,7 +157,9 @@ const Skeleton = defineComponent({
155157
[`${pre}-active`]: active,
156158
[`${pre}-rtl`]: direction.value === 'rtl',
157159
[`${pre}-round`]: round,
160+
[rootCls.value]: true,
158161
[hashId.value]: true,
162+
[cssVarCls.value]: true,
159163
});
160164

161165
return wrapSSR(

0 commit comments

Comments
 (0)