feat(quote-carousel): add QuoteCarouselBlock component and related types
- Introduced a new QuoteCarouselBlock component for displaying rotating quotes. - Added QuoteCarouselBlockData interface to define the structure of the quote carousel data. - Updated existing components and types to integrate the new quote carousel functionality. - Enhanced blog-utils to support filtering posts by tags more effectively. - Made various UI improvements in the Footer and PostCard components for better user experience.
This commit is contained in:
@@ -14,20 +14,6 @@
|
||||
return tStatic(translations ?? null, key);
|
||||
}
|
||||
|
||||
const justifyClass = $derived(
|
||||
footer?.row1JustifyContent === "end"
|
||||
? "justify-end"
|
||||
: footer?.row1JustifyContent === "between"
|
||||
? "justify-between"
|
||||
: footer?.row1JustifyContent === "around"
|
||||
? "justify-around"
|
||||
: footer?.row1JustifyContent === "evenly"
|
||||
? "justify-evenly"
|
||||
: footer?.row1JustifyContent === "start"
|
||||
? "justify-start"
|
||||
: "justify-center",
|
||||
);
|
||||
|
||||
const hasRowContent = $derived(
|
||||
!!footer &&
|
||||
((footer.row1Content?.length ?? 0) > 0 ||
|
||||
@@ -38,16 +24,16 @@
|
||||
|
||||
{#if footer}
|
||||
<footer
|
||||
class="mt-auto bg-zinc-950 text-white py-6"
|
||||
class="mt-auto bg-zinc-950 text-white py-10"
|
||||
data-footer-id={footer.id}
|
||||
>
|
||||
<div class="container-custom py-6">
|
||||
<div class="container-custom">
|
||||
{#if hasRowContent}
|
||||
<div class="content-footer text-xs">
|
||||
<div class="content-footer text-sm text-zinc-200">
|
||||
<ContentRows layout={footer} translations={translations} />
|
||||
</div>
|
||||
{:else}
|
||||
<p class="text-sm text-white/80 {justifyClass} flex">
|
||||
<p class="text-sm text-white/80 text-center">
|
||||
{t(T.footer_copyright) !== T.footer_copyright
|
||||
? t(T.footer_copyright)
|
||||
: `© ${new Date().getFullYear()} Windwiderstand`}
|
||||
@@ -56,3 +42,38 @@
|
||||
</div>
|
||||
</footer>
|
||||
{/if}
|
||||
|
||||
<style>
|
||||
.content-footer :global(.content) {
|
||||
margin: 0;
|
||||
}
|
||||
.content-footer :global(.content-row) {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 2rem;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.content-footer :global(.content-row > *) {
|
||||
flex: 1 1 200px;
|
||||
grid-column: auto !important;
|
||||
min-width: 0;
|
||||
}
|
||||
.content-footer :global(.content-row + .content-row) {
|
||||
margin-top: 2rem;
|
||||
padding-top: 1.5rem;
|
||||
border-top: 1px solid rgb(63 63 70);
|
||||
}
|
||||
.content-footer :global(a) {
|
||||
color: rgb(228 228 231);
|
||||
}
|
||||
.content-footer :global(a:hover) {
|
||||
color: rgb(255 255 255);
|
||||
}
|
||||
.content-footer :global(h3) {
|
||||
color: rgb(250 250 250);
|
||||
}
|
||||
.content-footer :global(.markdown),
|
||||
.content-footer :global(.prose) {
|
||||
color: rgb(212 212 216);
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user