/*! For license information please see 478.aa622b06.js.LICENSE.txt */ (self.webpackChunk=self.webpackChunk||[]).push([["478"],{87528:function(t,n,s){"use strict";s.r(n);var a=s("80681");let e=["innerHTML"];n.default={setup:()=>({html:""}),render:()=>((0,a.wg)(),(0,a.iD)("div",{class:"van-doc-markdown-body",innerHTML:'

Skeleton

\n

Intro

\n

Used to display a set of placeholder graphics during the content loading process.

\n

Install

\n

Register component globally via app.use, refer to Component Registration for more registration ways.

\n
import { createApp } from 'vue';\nimport {\n  Skeleton,\n  SkeletonTitle,\n  SkeletonImage,\n  SkeletonAvatar,\n  SkeletonParagraph,\n} from 'vant';\n\nconst app = createApp();\napp.use(Skeleton);\napp.use(SkeletonTitle);\napp.use(SkeletonImage);\napp.use(SkeletonAvatar);\napp.use(SkeletonParagraph);\n
\n

Usage

\n

Basic Usage

\n
<van-skeleton title :row="3" />\n
\n

Show Avatar

\n
<van-skeleton title avatar :row="3" />\n
\n

Show Children

\n
<van-skeleton title avatar :row="3" :loading="loading">\n  <div>Content</div>\n</van-skeleton>\n
\n
import { ref, onMounted } from 'vue';\n\nexport default {\n  setup() {\n    const loading = ref(true);\n\n    onMounted(() => {\n      loading.value = false;\n    });\n\n    return {\n      loading,\n    };\n  },\n};\n
\n

Custom Content

\n

Using template slots to custom skeleton content.

\n
<van-skeleton>\n  <template #template>\n    <div :style="{ display: 'flex', width: '100%' }">\n      <van-skeleton-image />\n      <div :style="{ flex: 1, marginLeft: '16px' }">\n        <van-skeleton-paragraph row-width="60%" />\n        <van-skeleton-paragraph />\n        <van-skeleton-paragraph />\n        <van-skeleton-paragraph />\n      </div>\n    </div>\n  </template>\n</van-skeleton>\n
\n

API

\n

Skeleton Props

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
AttributeDescriptionTypeDefault
rowRow countnumber | string0
row-widthRow width, can be arraynumber | string |
(number | string)[]
100%
titleWhether to show title placeholderbooleanfalse
avatarWhether to show avatar placeholderbooleanfalse
loadingWhether to show skeleton, pass false to show child componentbooleantrue
animateWhether to enable animationbooleantrue
roundWhether to show round title and paragraphbooleanfalse
title-widthTitle widthnumber | string40%
avatar-sizeSize of avatar placeholdernumber | string32px
avatar-shapeShape of avatar placeholder, can be set to squarestringround
\n

SkeletonParagraph Props

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
AttributeDescriptionTypeDefault
roundWhether to show round paragraphbooleanfalse
row-widthParagraph widthstring100%
\n

SkeletonTitle Props

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
AttributeDescriptionTypeDefault
roundWhether to show round titlebooleanfalse
title-widthTitle widthnumber | string40%
\n

SkeletonAvatar Props

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
AttributeDescriptionTypeDefault
avatar-sizeSize of avatar placeholdernumber | string32px
avatar-shapeShape of avatar placeholder, can be set to squarestringround
\n

SkeletonImage Props

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
AttributeDescriptionTypeDefault
image-sizeSize of image placeholdernumber | string32px
image-shapeShape of image placeholder, can be set to squarestringround
\n

Skeleton Slots

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameDescription
defaultDefault slot
templateCustom content
\n

Types

\n

The component exports the following type definitions:

\n
import type {\n  SkeletonProps,\n  SkeletonImageProps,\n  SkeletonTitleProps,\n  SkeletonAvatarShape,\n  SkeletonImageShape,\n  SkeletonParagraphProps,\n} from 'vant';\n
\n

Theming

\n

CSS Variables

\n

The component provides the following CSS variables, which can be used to customize styles. Please refer to ConfigProvider component.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameDefault ValueDescription
--van-skeleton-row-height16px-
--van-skeleton-row-backgroundvar(--van-active-color)-
--van-skeleton-row-margin-topvar(--van-padding-sm)-
--van-skeleton-title-width40%-
--van-skeleton-avatar-size32px-
--van-skeleton-avatar-backgroundvar(--van-active-color)-
--van-skeleton-duration1.2s-
--van-skeleton-image-size96px
--van-skeleton-image-radius24px-
\n
'},null,8,e))}}}]);