191 lines
6.6 KiB
Vue
191 lines
6.6 KiB
Vue
<template>
|
|
<CRow>
|
|
<CCol :xs="12">
|
|
<DocsCallout name="Placeholder" href="components/placeholder" />
|
|
</CCol>
|
|
<CCol :xs="12">
|
|
<CCard class="mb-4">
|
|
<CCardHeader>
|
|
<strong>Vue Placeholder</strong>
|
|
</CCardHeader>
|
|
<CCardBody>
|
|
<p class="text-medium-emphasis small">
|
|
In the example below, we take a typical card component and recreate
|
|
it with placeholders applied to create a "loading card". Size and
|
|
proportions are the same between the two.
|
|
</p>
|
|
<DocsExample href="components/placeholder">
|
|
<div class="d-flex justify-content-around">
|
|
<CCard style="width: 18rem">
|
|
<CCardImage orientation="top" :src="VueImg" />
|
|
<CCardBody>
|
|
<CCardTitle>Card title</CCardTitle>
|
|
<CCardText>
|
|
Some quick example text to build on the card title and make
|
|
up the bulk of the card's content.
|
|
</CCardText>
|
|
<CButton color="primary" href="#">Go somewhere</CButton>
|
|
</CCardBody>
|
|
</CCard>
|
|
<CCard style="width: 18rem">
|
|
<CCardImage
|
|
component="svg"
|
|
orientation="top"
|
|
width="100%"
|
|
height="162"
|
|
role="img"
|
|
aria-label="Placeholder"
|
|
preserveAspectRatio="xMidYMid slice"
|
|
focusable="false"
|
|
>
|
|
<title>Placeholder</title
|
|
><rect width="100%" height="100%" fill="#868e96"></rect>
|
|
</CCardImage>
|
|
<CCardBody>
|
|
<CCardTitle v-c-placeholder="{ animation: 'glow', xs: 7 }">
|
|
<CPlaceholder :xs="6" />
|
|
</CCardTitle>
|
|
<CCardText v-c-placeholder="{ animation: 'glow' }">
|
|
<CPlaceholder :xs="7" />
|
|
<CPlaceholder :xs="4" />
|
|
<CPlaceholder :xs="4" />
|
|
<CPlaceholder :xs="6" />
|
|
<CPlaceholder :xs="8" />
|
|
</CCardText>
|
|
<CButton
|
|
v-c-placeholder="{ xs: 6 }"
|
|
color="primary"
|
|
aria-hidden="true"
|
|
disabled
|
|
href="#"
|
|
tabindex="-1"
|
|
></CButton>
|
|
</CCardBody>
|
|
</CCard>
|
|
</div>
|
|
</DocsExample>
|
|
</CCardBody>
|
|
</CCard>
|
|
<CCard class="mb-4">
|
|
<CCardHeader>
|
|
<strong>Vue Placeholder</strong>
|
|
</CCardHeader>
|
|
<CCardBody>
|
|
<p>
|
|
Create placeholders with the
|
|
<code><CPlaceholder></code> component and a grid column propx
|
|
(e.g., <code>:xs="6"</code>) to set the <code>width</code>. They can
|
|
replace the text inside an element or be added as a modifier class
|
|
to an existing component.
|
|
</p>
|
|
<DocsExample href="components/placeholder">
|
|
<p aria-hidden="true">
|
|
<CPlaceholder :xs="6" />
|
|
</p>
|
|
<CButton
|
|
v-c-placeholder="{ xs: 4 }"
|
|
color="primary"
|
|
aria-hidden="true"
|
|
disabled
|
|
href="#"
|
|
tabindex="-1"
|
|
></CButton>
|
|
</DocsExample>
|
|
</CCardBody>
|
|
</CCard>
|
|
<CCard class="mb-4">
|
|
<CCardHeader>
|
|
<strong>Vue Placeholder</strong> <small> Width</small>
|
|
</CCardHeader>
|
|
<CCardBody>
|
|
<p>
|
|
You can change the <code>width</code> through grid column classes,
|
|
width utilities, or inline styles.
|
|
</p>
|
|
<DocsExample href="components/placeholder#width">
|
|
<CPlaceholder :xs="6" />
|
|
<CPlaceholder class="w-75" />
|
|
<CPlaceholder style="width: 30%" />
|
|
</DocsExample>
|
|
</CCardBody>
|
|
</CCard>
|
|
<CCard class="mb-4">
|
|
<CCardHeader>
|
|
<strong>Vue Placeholder</strong> <small> Color</small>
|
|
</CCardHeader>
|
|
<CCardBody>
|
|
<p>
|
|
By default, the <code><CPlaceholder></code> uses
|
|
<code>currentColor</code>. This can be overridden with a custom
|
|
color or utility class.
|
|
</p>
|
|
<DocsExample href="components/placeholder#color">
|
|
<CPlaceholder :xs="12" />
|
|
|
|
<CPlaceholder color="primary" :xs="12" />
|
|
<CPlaceholder color="secondary" :xs="12" />
|
|
<CPlaceholder color="success" :xs="12" />
|
|
<CPlaceholder color="danger" :xs="12" />
|
|
<CPlaceholder color="warning" :xs="12" />
|
|
<CPlaceholder color="info" :xs="12" />
|
|
<CPlaceholder color="light" :xs="12" />
|
|
<CPlaceholder color="dark" :xs="12" />
|
|
</DocsExample>
|
|
</CCardBody>
|
|
</CCard>
|
|
<CCard class="mb-4">
|
|
<CCardHeader>
|
|
<strong>Vue Placeholder</strong> <small> Sizing</small>
|
|
</CCardHeader>
|
|
<CCardBody>
|
|
<p>
|
|
The size of <code><CPlaceholder></code>s are based on the
|
|
typographic style of the parent element. Customize them with
|
|
<code>size</code> prop: <code>lg</code>, <code>sm</code>, or
|
|
<code>xs</code>.
|
|
</p>
|
|
<DocsExample href="components/placeholder#color">
|
|
<CPlaceholder :xs="12" size="lg" />
|
|
<CPlaceholder :xs="12" />
|
|
<CPlaceholder :xs="12" size="sm" />
|
|
<CPlaceholder :xs="12" size="xs" />
|
|
</DocsExample>
|
|
</CCardBody>
|
|
</CCard>
|
|
<CCard class="mb-4">
|
|
<CCardHeader>
|
|
<strong>Vue Placeholder</strong> <small> Animation</small>
|
|
</CCardHeader>
|
|
<CCardBody>
|
|
<p>
|
|
Animate placeholders with <code>animation="glow"</code> or
|
|
<code>animation="wave"</code> to better convey the perception of
|
|
something being <em>actively</em> loaded.
|
|
</p>
|
|
<DocsExample href="components/placeholder#animation">
|
|
<CPlaceholder component="p" animation="glow">
|
|
<CPlaceholder :xs="12" />
|
|
</CPlaceholder>
|
|
|
|
<CPlaceholder component="p" animation="wave">
|
|
<CPlaceholder :xs="12" />
|
|
</CPlaceholder>
|
|
</DocsExample>
|
|
</CCardBody>
|
|
</CCard>
|
|
</CCol>
|
|
</CRow>
|
|
</template>
|
|
|
|
<script>
|
|
import VueImg from '@/assets/images/vue.jpg'
|
|
export default {
|
|
name: 'Placeholders',
|
|
setup() {
|
|
return {
|
|
VueImg,
|
|
}
|
|
},
|
|
}
|
|
</script>
|