8.1 KiB
import Card from "~/components/ui/Card.vue"
Card
Funkwhale cards are used to contain textual information, links, and interactive buttons. You can use these to create visually pleasing links to content or to present information.
::: details Props
{
title: string
category?: true | "h1" | "h2" | "h3" | "h4" | "h5"
tags?: string[]
image?: string | { src: string, style?: "withPadding" }
icon?: string
} & Partial<RouterLinkProps>
& (PastelProps | ColorProps | DefaultProps)
& RaisedProps
& VariantProps
& WidthProps
:::
<Card large
title="For music lovers"
>
Access your personal music
collection from anywhere.
Funkwhale gives you access to
publication and sharing tools
you can use to promote that
your content across the web.
</Card>
Card as a Link
Add a :to
prop, either containing an external link ("https://..."
) or a Vue Router destination:
<Card min-content title="Link"
:to="{name: 'library.albums.detail', params: {id: album.id}}"
/>
<Card min-content title="Link" :to="{name: 'library.albums.detail', params: {id: 1}}" />
Card as a Category header
Category cards are basic cards that contain only a title. To create a category card, pass a category
prop.
<Card category min-content
title="Good Translations"
/>
<Card category
title="Bad Translations"
/>
Add an Image
Pass an image source to the image
prop or set both image.src
and image.style
by passing an object.
<Card
title=" smallFor music lovers"
image="https://images.unsplash.com/photo-1524650359799-842906ca1c06?ixlib=rb-1.2.1&dl=te-nguyen-Wt7XT1R6sjU-unsplash.jpg&w=640&q=80&fm=jpg&crop=entropy&cs=tinysrgb">
/>
<Card small
title="For music lovers"
:image="{ src:'https://images.unsplash.com/photo-1524650359799-842906ca1c06?ixlib=rb-1.2.1&dl=te-nguyen-Wt7XT1R6sjU-unsplash.jpg&w=640&q=80&fm=jpg&crop=entropy&cs=tinysrgb',
style:'withPadding' }"
/>
<Card small title="For music lovers" :image="{ src:'https://images.unsplash.com/photo-1524650359799-842906ca1c06?ixlib=rb-1.2.1&dl=te-nguyen-Wt7XT1R6sjU-unsplash.jpg&w=640&q=80&fm=jpg&crop=entropy&cs=tinysrgb', style:'withPadding' }" />
Add an Icon
<Card
title="Uploading..."
image="https://images.unsplash.com/photo-1524650359799-842906ca1c06?ixlib=rb-1.2.1&dl=te-nguyen-Wt7XT1R6sjU-unsplash.jpg&w=640&q=80&fm=jpg&crop=entropy&cs=tinysrgb"
icon="bi-cloud-arrow-up-fill"
/>
<Card
to="./"
title="Find out more"
icon="bi-box-arrow-up-right"
>
Visit the Docs and learn more about developing Funkwhale
</Card>
<Card title="Uploading..." image="https://images.unsplash.com/photo-1524650359799-842906ca1c06?ixlib=rb-1.2.1&dl=te-nguyen-Wt7XT1R6sjU-unsplash.jpg&w=640&q=80&fm=jpg&crop=entropy&cs=tinysrgb" icon="bi-cloud-arrow-up-fill" />
Visit the Docs and learn more about developing Funkwhale
You can combine this prop with any other prop configuration. If you combine it with an image, keep an eye on the contrast ratio between the icon color and the image.
Add an Alert
<Card title="Your Collection">
<template #alert>
Please annotate all items with the required metadata.
</template>
</Card>
Add a topright action
<Card title="Topright action">
<template #topright>
<OptionsButton square-small />
</template>
</Card>
Add a Footer
Items in this region are secondary and will be displayed smaller than the main content.
<Card large title="My items">
<template #alert> There are no items in this list </template>
<template #footer>
<Button outline icon="bi-upload" @click="alert('Uploaded. Press OK!')">
Upload
</Button>
<Spacer style="flex-grow: 1" />
<OptionsButton />
</template>
</Card>
<template #alert>There are no items in this list
<template #footer> <Button outline icon="bi-upload" @click="alert('Uploaded. Press OK!')">Upload
Add an Action
Large Buttons or links at the bottom edge of the card serve as Call-to-Actions (CTA).
<Card large
title="Join an existing pod"
>
The easiest way to get started with Funkwhale is to register an account on a public pod.
<template #action>
<Button secondary full @click="alert('Open the pod picker')">Action!
</Button>
</template>
</Card>
If there are multiple actions, they will be presented in a row:
<Card title="Creating a new playlist...">
All items have been assimilated. Ready to go!
<template #action>
<Button secondary ghost style="justify-content: flex-start;" icon="bi-chevron-left">
Back
</Button>
<Button style="flex-grow:0;" primary @click="alert('Yay')">
Create
</Button>
</template>
</Card>
Add Tags
You can include tags on a card by adding a list of tags
. These are rendered as pills.
<Card
title="For music lovers"
:tags="['rock', 'folk', 'punk']"
>
Access your personal music collection from anywhere. Funkwhale gives you access to publication and sharing tools that you can use to promote your content across the web.
</Card>
Sizes
large
(304px), medium
(208px), auto
, small