57 lines
1 KiB
Text
57 lines
1 KiB
Text
---
|
|
export interface Props {
|
|
title?: string;
|
|
className?: string;
|
|
}
|
|
|
|
const { className } = Astro.props;
|
|
---
|
|
|
|
<div class:list={['card', 'vstack', className]}>
|
|
<div class="img-header">
|
|
<slot name="img-header" />
|
|
</div>
|
|
<div class="title">
|
|
<slot name="title" />
|
|
</div>
|
|
|
|
<div class="content flex-grow">
|
|
<slot />
|
|
</div>
|
|
|
|
<div class="footer">
|
|
<slot name="footer" />
|
|
</div>
|
|
</div>
|
|
|
|
<style lang="scss">
|
|
.card {
|
|
background-color: var(--prj-surface-2);
|
|
color: var(--prj-surface-text);
|
|
border: 1px solid var(--prj-surface-2);
|
|
border-radius: var(--prj-border-radius);
|
|
box-shadow: 5px 5px 5px 5px var(--prj-shadow);
|
|
|
|
padding: var(--prj-spacing-2) var(--prj-spacing-3);
|
|
|
|
:global(a) {
|
|
text-decoration-line: none;
|
|
}
|
|
|
|
:global(a):hover {
|
|
text-decoration-line: underline;
|
|
}
|
|
}
|
|
|
|
.img-header {
|
|
:global(img) {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
}
|
|
|
|
.title > :global(:last-child) {
|
|
margin-bottom: var(--prj-spacing-2);
|
|
}
|
|
</style>
|