budibase/packages/standard-components/src/CardHorizontal.svelte

108 lines
2.0 KiB
Svelte
Raw Normal View History

2020-08-13 09:58:48 +02:00
<script>
import { getContext } from "svelte"
import { cssVars } from "./helpers"
2020-08-13 09:58:48 +02:00
const { styleable } = getContext("sdk")
const component = getContext("component")
2020-08-13 11:54:43 +02:00
export const className = ""
2020-08-13 09:58:48 +02:00
export let imageUrl = ""
export let heading = ""
export let description = ""
export let subtext = ""
export let linkText = ""
export let linkUrl
export let linkColor
2020-08-13 09:58:48 +02:00
export let linkHoverColor
export let cardWidth
export let imageWidth
export let imageHeight
$: cssVariables = {
imageWidth,
cardWidth,
imageHeight,
}
$: showImage = !!imageUrl
</script>
<div
2020-12-09 15:12:10 +01:00
use:styleable={$component.styles}
use:cssVars={cssVariables}
2020-12-09 15:12:10 +01:00
class="container">
2020-10-14 14:21:43 +02:00
{#if showImage}<img class="image" src={imageUrl} alt="" />{/if}
2020-08-13 09:58:48 +02:00
<div class="content">
<main>
<h2 class="heading">{heading}</h2>
<p class="text">{description}</p>
</main>
2020-12-09 15:12:10 +01:00
<footer >
2020-08-13 09:58:48 +02:00
<p class="subtext">{subtext}</p>
2020-12-09 15:12:10 +01:00
<a style="--linkColor: {linkColor}; --linkHoverColor: {linkHoverColor}" href={linkUrl}>{linkText}</a>
2020-08-13 09:58:48 +02:00
</footer>
</div>
</div>
<style>
.container {
height: 100%;
max-width: var(--cardWidth);
display: flex !important;
text-align: left;
}
.image {
width: var(--imageWidth);
height: var(--imageHeight);
vertical-align: middle;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
width: 100%;
padding: 0.85rem 1.5rem;
}
.heading {
font-size: 1rem;
font-weight: 700;
margin: 0;
}
.text {
font-size: 0.85rem;
margin: 0.5rem 0 0 0;
font-weight: 400;
line-height: 1.25rem;
}
footer {
display: flex;
justify-content: space-between;
align-items: baseline;
}
.subtext {
font-size: 0.85rem;
margin: 0;
font-weight: 400;
2020-08-13 11:45:25 +02:00
color: #757575;
2020-08-13 09:58:48 +02:00
}
a {
margin: 0.5rem 0 0 0;
text-decoration: none;
color: var(--linkColor);
2020-08-13 09:58:48 +02:00
font-weight: 600;
font-size: 0.85rem;
margin: 0;
}
a:hover {
color: var(--linkHoverColor);
}
</style>