blog post default thumbnail

This commit is contained in:
Michal Vanko 2024-09-13 13:10:33 +02:00
parent 380b7c1b2f
commit e2e0464c78
5 changed files with 118 additions and 5 deletions

View File

@ -705,6 +705,14 @@ video {
height: 1.75rem; height: 1.75rem;
} }
.h-\[220px\] {
height: 220px;
}
.h-\[240px\] {
height: 240px;
}
.min-h-full { .min-h-full {
min-height: 100%; min-height: 100%;
} }
@ -725,6 +733,10 @@ video {
width: 100%; width: 100%;
} }
.w-\[180px\] {
width: 180px;
}
.max-w-maxindex { .max-w-maxindex {
max-width: 100rem; max-width: 100rem;
} }
@ -737,6 +749,16 @@ video {
flex-grow: 1; flex-grow: 1;
} }
.-translate-y-1 {
--tw-translate-y: -0.25rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\.5 {
--tw-translate-y: -0.375rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.grid-flow-col { .grid-flow-col {
grid-auto-flow: column; grid-auto-flow: column;
} }
@ -761,6 +783,10 @@ video {
place-content: center; place-content: center;
} }
.content-center {
align-content: center;
}
.content-end { .content-end {
align-content: flex-end; align-content: flex-end;
} }
@ -789,10 +815,20 @@ video {
gap: 1rem; gap: 1rem;
} }
.self-center {
align-self: center;
}
.overflow-hidden { .overflow-hidden {
overflow: hidden; overflow: hidden;
} }
.truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.rounded { .rounded {
border-radius: 0.25rem; border-radius: 0.25rem;
} }
@ -805,6 +841,18 @@ video {
border-radius: 0.375rem; border-radius: 0.375rem;
} }
.rounded-lg {
border-radius: 0.5rem;
}
.rounded-3xl {
border-radius: 1.5rem;
}
.rounded-2xl {
border-radius: 1rem;
}
.border { .border {
border-width: 1px; border-width: 1px;
} }
@ -813,6 +861,10 @@ video {
border-width: 2px; border-width: 2px;
} }
.border-4 {
border-width: 4px;
}
.border-blue-200 { .border-blue-200 {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgb(191 219 254 / var(--tw-border-opacity)); border-color: rgb(191 219 254 / var(--tw-border-opacity));
@ -848,6 +900,11 @@ video {
background-color: rgb(255 255 255 / var(--tw-bg-opacity)); background-color: rgb(255 255 255 / var(--tw-bg-opacity));
} }
.bg-blue-100 {
--tw-bg-opacity: 1;
background-color: rgb(219 234 254 / var(--tw-bg-opacity));
}
.fill-blue-950 { .fill-blue-950 {
fill: #172554; fill: #172554;
} }
@ -939,6 +996,16 @@ video {
line-height: 1.75rem; line-height: 1.75rem;
} }
.text-6xl {
font-size: 3.75rem;
line-height: 1;
}
.text-8xl {
font-size: 6rem;
line-height: 1;
}
.font-bold { .font-bold {
font-weight: 700; font-weight: 700;
} }
@ -1007,6 +1074,11 @@ video {
color: rgb(30 41 59 / var(--tw-text-opacity)); color: rgb(30 41 59 / var(--tw-text-opacity));
} }
.text-blue-500 {
--tw-text-opacity: 1;
color: rgb(59 130 246 / var(--tw-text-opacity));
}
.no-underline { .no-underline {
text-decoration-line: none; text-decoration-line: none;
} }
@ -1502,6 +1574,10 @@ a {
grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-columns: repeat(2, minmax(0, 1fr));
} }
.md\:grid-rows-\[masonry\] {
grid-template-rows: masonry;
}
.md\:items-stretch { .md\:items-stretch {
align-items: stretch; align-items: stretch;
} }

View File

@ -0,0 +1,3 @@
<div class="rounded-2xl w-[180px] h-[240px] bg-blue-100 border-4 border-blue-500 flex justify-center items-center">
<span class="text-blue-500 text-8xl -translate-y-1.5">{{post.metadata.title|fmt("{:.1}")|lower}}</span>
</div>

View File

@ -1,15 +1,17 @@
<article class="grid grid-cols-[max-content_1fr] grid-rows-[max-content_1fr_max-content] grid-flow-col gap-4 md:gap-x-8"> <article class="grid grid-cols-[max-content_1fr] grid-rows-[max-content_1fr_max-content] grid-flow-col gap-4 md:gap-x-8">
<aside class="row-span-3"> <aside class="row-span-3 self-center">
{% match post.metadata.thumbnail %} {% match post.metadata.thumbnail %}
{% when Some with (orig_path) %} {% when Some with (orig_path) %}
{{ crate::picture_generator::picture_markup_generator::generate_picture_markup(orig_path, 180, 240, "Article thumbnail", true).unwrap_or("".to_string())|safe }} {{ crate::picture_generator::picture_markup_generator::generate_picture_markup(orig_path, 180, 240, "Article thumbnail", true).unwrap_or("thumbnail not found".to_string())|safe }}
{% when None %} {% when None %}
<div> TODO default obrazok </div> <div>
{% include "components/blog_post_default_thumbnail.html" %}
</div>
{% endmatch %} {% endmatch %}
</aside> </aside>
<header> <header>
<h3 class="text-lg font-bold mb-1 md:text-3xl"> <h3 class="text-lg font-bold mb-1 md:text-3xl">
<a rel="prefetch" href="/blog/{{post.slug}}">{{post.metadata.title}}</a> <a rel="prefetch" href="/blog/{{post.slug}}" class="text-blue-950 no-underline">{{post.metadata.title}}</a>
</h3> </h3>
</header> </header>
<section class="text-base leading-5 text-gray-800 md:text-xl text-justify">{{post.body|description_filter|safe}}</section> <section class="text-base leading-5 text-gray-800 md:text-xl text-justify">{{post.body|description_filter|safe}}</section>

View File

@ -0,0 +1,32 @@
<svg
width="200"
height="150"
viewBox="0 0 200 150"
xmlns="http://www.w3.org/2000/svg"
fill="none"
stroke="none"
stroke-width="0"
>
<!-- Background of the terminal window -->
<rect x="10" y="10" width="180" height="130" rx="8" ry="8" fill="#F5F5F5" />
<!-- Close, Minimize, Maximize buttons (moved to the right side) -->
<circle cx="155" cy="25" r="5" fill="#FF5F56" />
<circle cx="175" cy="25" r="5" fill="#FFBD2E" />
<circle cx="195" cy="25" r="5" fill="#27C93F" />
<!-- Terminal Text (Example commands, updated to dark color for light theme) -->
<text x="20" y="55" font-family="monospace" font-size="12" fill="#333333">
$ ls -l
</text>
<text x="20" y="75" font-family="monospace" font-size="12" fill="#333333">
Desktop Documents Downloads
</text>
<text x="20" y="95" font-family="monospace" font-size="12" fill="#333333">
Music Pictures Videos
</text>
<text x="20" y="115" font-family="monospace" font-size="12" fill="#333333">
$
</text>
</svg>

After

Width:  |  Height:  |  Size: 1012 B

View File

@ -1,6 +1,6 @@
<h2 class="text-blue-950 font-semibold text-2xl m-5 md:text-4xl">Showcase</h2> <h2 class="text-blue-950 font-semibold text-2xl m-5 md:text-4xl">Showcase</h2>
<ul class="mx-5 md:grid md:grid-cols-2 md:justify-stretch md:items-stretch xl:grid-cols-3"> <ul class="mx-5 md:grid md:grid-cols-2 md:grid-rows-[masonry] md:justify-stretch md:items-stretch xl:grid-cols-3">
{% for project in featured_projects %} {% for project in featured_projects %}
<li class="my-2"> <li class="my-2">
{% include "components/project_preview_card.html" %} {% include "components/project_preview_card.html" %}