List card

여러 콘텐츠를 목록 형태로 보여줄 때 사용하는 요소입니다. 이미지, 텍스트, 뱃지 등 다양한 요소를 조합하여 각 항목의 정보를 시각적으로 일관성 있게 전달합니다.

Basic list card

표시할 양이 많은 정보를 묶어 표시할 때 사용합니다.

Heading

Caption

Extra caption

import { ListCard, ListCardThumbnail, ListCardTitle, ListCardCaption, ListCardBody } from '@montage-ui/core';

const Demo = () => {
  return (
    <ListCard
      width="45%"
      sx={{ margin: 'auto' }}
    >
      <ListCardThumbnail
        src="https://static.wanted.co.kr/images/company/79/elpzxpmgh94xesrf__1080_790.png"
        alt="Wanted Company Image"
      />
      <ListCardBody>
        <ListCardTitle>Heading</ListCardTitle>
        <ListCardCaption>Caption</ListCardCaption>
        <ListCardCaption>Extra caption</ListCardCaption>
      </ListCardBody>
    </ListCard>
  );
}

export default Demo;

Anatomy

아래와 같은 구조로 조합하여 사용합니다.

<ListCard>
  <ListCardThumbnail />
  <ListCardBody>
    <ListCardRow position="top" />
    <ListCardTitle />
    <ListCardCaption />
    <ListCardCaption />
    <ListCardRow position="bottom" />
  </ListCardBody>
</ListCard>

With contents

leadingContent, trailingContent로 좌우측 끝에 콘텐츠를 추가할 수 있습니다.

ListCardContent로 요소를 감싸서 사용합니다.

Heading

Caption

import { ToggleIcon, FlexBox, Checkbox, ListCard, ListCardTitle, ListCardBody, ListCardCaption, ListCardThumbnail, ListCardContent } from '@montage-ui/core';
import { IconBookmark, IconBookmarkFill } from '@montage-ui/icon';
import { useState } from 'react';

const Demo = () => {
  const [checked, setChecked] = useState(false);
  const [isBookmarked, setIsBookmarked] = useState(false);

  return (
    <ListCard
      sx={{ margin: 'auto' }}
      width="45%"
      leadingContent={(
        <ListCardContent variant="checkbox">
          <Checkbox
            checked={checked}
            onCheckedChange={setChecked}
          />
        </ListCardContent>
      )}
      trailingContent={(
        <ListCardContent variant="toggle-icon">
          <ToggleIcon
            activeColor="semantic.foreground.brand.primary"
            active={isBookmarked}
            onActiveChange={setIsBookmarked}
          >
            {isBookmarked ? <IconBookmarkFill /> : <IconBookmark />}
          </ToggleIcon>
        </ListCardContent>
      )}
    >
      <ListCardThumbnail
        src="https://static.wanted.co.kr/images/company/79/elpzxpmgh94xesrf__1080_790.png"
        alt="Wanted Company Image"
        width="240px"
      />
      <ListCardBody>
        <ListCardTitle>Heading</ListCardTitle>
        <ListCardCaption>Caption</ListCardCaption>
      </ListCardBody>
    </ListCard>
  );
}

export default Demo;

Top/Bottom content

ListCardRow의 position을 조정하여 상단, 하단에 콘텐츠를 추가할 수 있습니다.

뱃지나 부가적인 내용을 추가할 때 사용합니다.

Badge

Heading

Caption

Heading

Caption

Badge
import { FlexBox, ListCard, ListCardTitle, ListCardCaption, ListCardBody, ListCardRow, ContentBadge, ListCardThumbnailSkeleton } from '@montage-ui/core';

const Demo = () => {
  return (
    <FlexBox gap="24px" flexDirection="column" alignItems="center" sx={{ width: '100%' }}>
      <ListCard width="45%">
        <ListCardThumbnailSkeleton animation={false} />
        <ListCardBody>
          <ListCardRow position="top" variant="badge">
            <ContentBadge color="neutral">Badge</ContentBadge>
          </ListCardRow>
          <ListCardTitle>Heading</ListCardTitle>
          <ListCardCaption>Caption</ListCardCaption>
        </ListCardBody>
      </ListCard>
      <ListCard width="45%">
        <ListCardThumbnailSkeleton animation={false} />
        <ListCardBody>
          <ListCardTitle>Heading</ListCardTitle>
          <ListCardCaption>Caption</ListCardCaption>
          <ListCardRow position="bottom" variant="badge">
            <ContentBadge color="neutral">Badge</ContentBadge>
          </ListCardRow>
        </ListCardBody>
      </ListCard>
    </FlexBox>
  );
}

export default Demo;

Platform

platform 옵션을 통해 내부 콘텐츠의 간격 및 크기를 조정할 수 있습니다.

  • desktop (default)
  • mobile

Heading

platform: desktop

Extra caption

Heading

platform: mobile

Extra caption

import { FlexBox, ListCard, ListCardThumbnail, ListCardTitle, ListCardCaption, ListCardBody } from '@montage-ui/core';

const Demo = () => {
  return (
    <FlexBox gap="24px" flexDirection="column" alignItems="center" sx={{ width: '100%' }}>
      <ListCard width="45%" platform="desktop">
        <ListCardThumbnail
          src="https://static.wanted.co.kr/images/company/79/elpzxpmgh94xesrf__1080_790.png"
          alt="Wanted Company Image"
        />
        <ListCardBody>
          <ListCardTitle>Heading</ListCardTitle>
          <ListCardCaption>platform: desktop</ListCardCaption>
          <ListCardCaption>Extra caption</ListCardCaption>
        </ListCardBody>
      </ListCard>

      <ListCard width="45%" platform="mobile">
        <ListCardThumbnail
          src="https://static.wanted.co.kr/images/company/79/elpzxpmgh94xesrf__1080_790.png"
          alt="Wanted Company Image"
        />
        <ListCardBody>
          <ListCardTitle>Heading</ListCardTitle>
          <ListCardCaption>platform: mobile</ListCardCaption>
          <ListCardCaption>Extra caption</ListCardCaption>
        </ListCardBody>
      </ListCard>
    </FlexBox>
  );
}

export default Demo;

Skeleton

Card의 로딩 상태를 표현할 때 Skeleton 컴포넌트들을 조합해서 사용합니다.

  • ListCardSkeleton
  • ListCardThumbnailSkeleton
  • ListCardBody
  • ListCardRowSkeleton
  • ListCardTitleSkeleton
  • ListCardCaptionSkeleton
import { ListCardSkeleton, ListCardThumbnailSkeleton, ListCardRowSkeleton, ListCardTitleSkeleton, ListCardCaptionSkeleton, ListCardBody } from '@montage-ui/core';

const Demo = () => {
  return (
    <ListCardSkeleton width="45%" sx={{ marginInline: 'auto' }}>
      <ListCardThumbnailSkeleton />
      <ListCardBody>
        <ListCardRowSkeleton />
        <ListCardTitleSkeleton />
        <ListCardCaptionSkeleton type="normal" />
        <ListCardCaptionSkeleton type="extra" />
        <ListCardRowSkeleton />
      </ListCardBody>
    </ListCardSkeleton>
  );
}

export default Demo;

API

ListCard

정해진 breakpoint에 따라 아래 옵션을 override 할 수 있습니다.

  • platform
  • width
NameTypesdefaultValue
as
ElementType
-
platform
"desktop" | "mobile"
"desktop"
width
Property.Width<string | number> | undefined
-
children
ReactNode
-
sx
SxProp
-
xl
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
flexDirection
Property.FlexDirection | undefined
-
flexWrap
Property.FlexWrap | undefined
-
justifyContent
Property.JustifyContent | undefined
-
alignItems
Property.AlignItems | undefined
-
alignContent
Property.AlignContent | undefined
-
order
Property.Order | undefined
-
flex
Property.Flex<string | number> | undefined
-
flexGrow
Property.FlexGrow | undefined
-
flexShrink
Property.FlexShrink | undefined
-
flexBasis
Property.FlexBasis<string | number> | undefined
-
alignSelf
Property.AlignSelf | undefined
-
gap
Property.Gap<string | number> | undefined
-
rowGap
Property.RowGap<string | number> | undefined
-
columnGap
Property.ColumnGap<string | number> | undefined
-
leadingContent
ReactNode
-
trailingContent
ReactNode
-

ListCardContent

NameTypesdefaultValue
variant
"icon" | "checkbox" | "toggle-icon" | "custom"
"custom"
children
ReactNode
-
sx
SxProp
-
xl
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
flexDirection
Property.FlexDirection | undefined
-
flexWrap
Property.FlexWrap | undefined
-
justifyContent
Property.JustifyContent | undefined
-
alignItems
Property.AlignItems | undefined
-
alignContent
Property.AlignContent | undefined
-
order
Property.Order | undefined
-
flex
Property.Flex<string | number> | undefined
-
flexGrow
Property.FlexGrow | undefined
-
flexShrink
Property.FlexShrink | undefined
-
flexBasis
Property.FlexBasis<string | number> | undefined
-
alignSelf
Property.AlignSelf | undefined
-
gap
Property.Gap<string | number> | undefined
-
rowGap
Property.RowGap<string | number> | undefined
-
columnGap
Property.ColumnGap<string | number> | undefined
-

ListCardThumbnail

NameTypesdefaultValue
xl
Merge<Pick<CardThumbnailDefaultProps, "ratio">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Pick<CardThumbnailDefaultProps, "ratio">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Pick<CardThumbnailDefaultProps, "ratio">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Pick<CardThumbnailDefaultProps, "ratio">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Pick<CardThumbnailDefaultProps, "ratio">, { sx?: CSSInterpolation; }> | undefined
-
children
ReactNode
-
onLoad
() => void
-
onError
() => void
-
onAbort
() => void
-
sx
SxProp
-
leadingContent
ReactNode
-
trailingContent
ReactNode
-
src
string
-
srcSet
string
-
alt
string
-
referrerPolicy
"" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url"
-
crossOrigin
"" | "anonymous" | "use-credentials"
-
width
Property.Width<string | number> | undefined
-
ratio
"1:1" | "5:4" | "4:3" | "3:2" | "16:10" | "1.618:1" | "16:9" | "2:1" | "21:9"
-
portrait
boolean
-
overlay
ReactNode
-

ListCardThumbnailContent

NameTypesdefaultValue
variant
"text" | "toggle-icon" | "custom"
-
children
ReactNode
-
sx
SxProp
-
xl
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
flexDirection
Property.FlexDirection | undefined
-
flexWrap
Property.FlexWrap | undefined
-
justifyContent
Property.JustifyContent | undefined
-
alignItems
Property.AlignItems | undefined
-
alignContent
Property.AlignContent | undefined
-
order
Property.Order | undefined
-
flex
Property.Flex<string | number> | undefined
-
flexGrow
Property.FlexGrow | undefined
-
flexShrink
Property.FlexShrink | undefined
-
flexBasis
Property.FlexBasis<string | number> | undefined
-
alignSelf
Property.AlignSelf | undefined
-
gap
Property.Gap<string | number> | undefined
-
rowGap
Property.RowGap<string | number> | undefined
-
columnGap
Property.ColumnGap<string | number> | undefined
-

ListCardBody

NameTypesdefaultValue
flexDirection
Property.FlexDirection | undefined
-
flexWrap
Property.FlexWrap | undefined
-
justifyContent
Property.JustifyContent | undefined
-
alignItems
Property.AlignItems | undefined
-
alignContent
Property.AlignContent | undefined
-
order
Property.Order | undefined
-
flex
Property.Flex<string | number> | undefined
-
flexGrow
Property.FlexGrow | undefined
-
flexShrink
Property.FlexShrink | undefined
-
flexBasis
Property.FlexBasis<string | number> | undefined
-
alignSelf
Property.AlignSelf | undefined
-
gap
Property.Gap<string | number> | undefined
-
rowGap
Property.RowGap<string | number> | undefined
-
columnGap
Property.ColumnGap<string | number> | undefined
-
children
ReactNode
-
sx
SxProp
-
xl
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-

ListCardTitle

NameTypesdefaultValue
as
"p"
-
xl
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
color
ThemeColorsToken
-
children
ReactNode
-
sx
SxProp
-
variant
"display1" | "display2" | "display3" | "title1" | "title2" | "title3" | "heading1" | "heading2" | "headline1" | "headline2" | "body1" | "body2" | "label1" | "label2" | "caption1" | "caption2" | "body1-reading" | "body2-reading" | "label1-reading"
-
weight
"medium" | "regular" | "bold"
-
align
Property.TextAlign | undefined
-
noWrap
boolean
-
display
Property.Display | undefined
-

ListCardCaption

NameTypesdefaultValue
as
"p"
-
xl
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Pick<TypographyDefaultProps, "variant" | "weight" | "align">, { sx?: CSSInterpolation; }> | undefined
-
color
ThemeColorsToken
-
children
ReactNode
-
sx
SxProp
-
variant
"display1" | "display2" | "display3" | "title1" | "title2" | "title3" | "heading1" | "heading2" | "headline1" | "headline2" | "body1" | "body2" | "label1" | "label2" | "caption1" | "caption2" | "body1-reading" | "body2-reading" | "label1-reading"
-
weight
"medium" | "regular" | "bold"
-
align
Property.TextAlign | undefined
-
noWrap
boolean
-
display
Property.Display | undefined
-

ListCardRow

NameTypesdefaultValue
variant
"custom" | "badge"
-
position
"top" | "bottom"
-
children
ReactNode
-
sx
SxProp
-
xl
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Omit<FlexBoxDefaultProps, "children" | "sx">, { sx?: CSSInterpolation; }> | undefined
-
flexDirection
Property.FlexDirection | undefined
-
flexWrap
Property.FlexWrap | undefined
-
justifyContent
Property.JustifyContent | undefined
-
alignItems
Property.AlignItems | undefined
-
alignContent
Property.AlignContent | undefined
-
order
Property.Order | undefined
-
flex
Property.Flex<string | number> | undefined
-
flexGrow
Property.FlexGrow | undefined
-
flexShrink
Property.FlexShrink | undefined
-
flexBasis
Property.FlexBasis<string | number> | undefined
-
alignSelf
Property.AlignSelf | undefined
-
gap
Property.Gap<string | number> | undefined
-
rowGap
Property.RowGap<string | number> | undefined
-
columnGap
Property.ColumnGap<string | number> | undefined
-

ListCardSkeleton

NameTypesdefaultValue
as
ElementType
-
hasLeadingContent
boolean
-
hasTrailingContent
boolean
-
children
ReactNode
-
sx
SxProp
-
xl
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Omit<CardDefaultProps, "sx">, { sx?: CSSInterpolation; }> | undefined
-
flexDirection
Property.FlexDirection | undefined
-
flexWrap
Property.FlexWrap | undefined
-
justifyContent
Property.JustifyContent | undefined
-
alignItems
Property.AlignItems | undefined
-
alignContent
Property.AlignContent | undefined
-
order
Property.Order | undefined
-
flex
Property.Flex<string | number> | undefined
-
flexGrow
Property.FlexGrow | undefined
-
flexShrink
Property.FlexShrink | undefined
-
flexBasis
Property.FlexBasis<string | number> | undefined
-
alignSelf
Property.AlignSelf | undefined
-
gap
Property.Gap<string | number> | undefined
-
rowGap
Property.RowGap<string | number> | undefined
-
columnGap
Property.ColumnGap<string | number> | undefined
-
platform
"desktop" | "mobile"
"desktop"
width
Property.Width<string | number> | undefined
-

ListCardThumbnailSkeleton

NameTypesdefaultValue
ratio
"1:1" | "5:4" | "4:3" | "3:2" | "16:10" | "1.618:1" | "16:9" | "2:1" | "21:9"
-
portrait
boolean
-
border
boolean
-
radius
boolean
-
children
ReactNode
-
overlay
ReactNode
-
width
Property.Width<string | number> | undefined
-
sx
SxProp
-
xl
Merge<Pick<ThumbnailDefaultProps, "width" | "ratio" | "portrait" | "radius" | "border">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Pick<ThumbnailDefaultProps, "width" | "ratio" | "portrait" | "radius" | "border">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Pick<ThumbnailDefaultProps, "width" | "ratio" | "portrait" | "radius" | "border">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Pick<ThumbnailDefaultProps, "width" | "ratio" | "portrait" | "radius" | "border">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Pick<ThumbnailDefaultProps, "width" | "ratio" | "portrait" | "radius" | "border">, { sx?: CSSInterpolation; }> | undefined
-
color
ThemeColorsToken
-
variant
"circle" | "text" | "rectangle"
-
align
"center" | "left" | "right"
-
height
Property.Height<string | number> | undefined
-
opacity
"opacity.0" | "opacity.100" | "opacity.5" | "opacity.22" | "opacity.97" | "opacity.8" | "opacity.12" | "opacity.16" | "opacity.28" | "opacity.35" | "opacity.43" | "opacity.52" | "opacity.61" | "opacity.74" | "opacity.88"
-
animation
boolean
-

ListCardRowSkeleton

NameTypesdefaultValue
variant
"circle" | "text" | "rectangle"
-
width
Property.Width<string | number> | undefined
-
height
Property.Height<string | number> | undefined
-
radius
Property.BorderRadius<string | number> | undefined
-
color
ThemeColorsToken
-
opacity
"opacity.0" | "opacity.100" | "opacity.5" | "opacity.22" | "opacity.97" | "opacity.8" | "opacity.12" | "opacity.16" | "opacity.28" | "opacity.35" | "opacity.43" | "opacity.52" | "opacity.61" | "opacity.74" | "opacity.88"
-
align
"center" | "left" | "right"
-
animation
boolean
-
sx
SxProp
-
xl
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-

ListCardTitleSkeleton

NameTypesdefaultValue
variant
"circle" | "text" | "rectangle"
-
width
Property.Width<string | number> | undefined
-
height
Property.Height<string | number> | undefined
-
radius
Property.BorderRadius<string | number> | undefined
-
color
ThemeColorsToken
-
opacity
"opacity.0" | "opacity.100" | "opacity.5" | "opacity.22" | "opacity.97" | "opacity.8" | "opacity.12" | "opacity.16" | "opacity.28" | "opacity.35" | "opacity.43" | "opacity.52" | "opacity.61" | "opacity.74" | "opacity.88"
-
align
"center" | "left" | "right"
-
animation
boolean
-
sx
SxProp
-
xl
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-

ListCardCaptionSkeleton

NameTypesdefaultValue
type
"sub" | "normal" | "extra"
-
children
ReactNode
-
color
ThemeColorsToken
-
sx
SxProp
-
xl
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
lg
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
md
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
sm
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
xs
Merge<Pick<SkeletonDefaultProps, "height" | "width">, { sx?: CSSInterpolation; }> | undefined
-
variant
"circle" | "text" | "rectangle"
-
align
"center" | "left" | "right"
-
height
Property.Height<string | number> | undefined
-
width
Property.Width<string | number> | undefined
-
radius
Property.BorderRadius<string | number> | undefined
-
opacity
"opacity.0" | "opacity.100" | "opacity.5" | "opacity.22" | "opacity.97" | "opacity.8" | "opacity.12" | "opacity.16" | "opacity.28" | "opacity.35" | "opacity.43" | "opacity.52" | "opacity.61" | "opacity.74" | "opacity.88"
-
animation
boolean
-

© 2026 Wanted Lab, Inc.