Skip to content

Commit 6e489f2

Browse files
committed
Add meta info pills to case studies
1 parent ad2319a commit 6e489f2

3 files changed

Lines changed: 369 additions & 792 deletions

File tree

‎src/content.config.ts‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,11 @@ const contactDataCollection = defineCollection({
257257
})
258258

259259
const resumeDataCollection = defineCollection({
260-
loader: file('./src/content/resume.json'),
260+
loader: file('./src/content/resume.json', {
261+
parser: text => ({
262+
resume: JSON.parse(text),
263+
}),
264+
}),
261265
schema: z.object({
262266
education: z.object({
263267
school: z.string(),

‎src/pages/case-studies/[slug].astro‎

Lines changed: 56 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -57,43 +57,62 @@ const section = 'Case Studies'
5757
</div>
5858
)
5959
}
60-
61-
<div class="space-y-4 max-w-2xl mx-auto mb-8">
62-
<dl class="grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm">
63-
{
64-
clientEntry?.data.businessType && (
65-
<div class="bg-page-offset p-4 rounded-xl flex flex-wrap items-baseline gap-x-2">
66-
<dt class="font-semibold">Client:</dt>
67-
<dd class="text-content-active">{clientEntry.data.businessType}</dd>
68-
</div>
69-
)
70-
}
71-
{
72-
clientEntry?.data.industry && (
73-
<div class="bg-page-offset p-4 rounded-xl flex flex-wrap items-baseline gap-x-2">
74-
<dt class="font-semibold">Industry:</dt>
75-
<dd class="text-content-active">{clientEntry.data.industry}</dd>
76-
</div>
77-
)
78-
}
79-
{
80-
caseStudy.data.projectType && (
81-
<div class="bg-page-offset p-4 rounded-xl flex flex-wrap items-baseline gap-x-2">
82-
<dt class="font-semibold">Project Type:</dt>
83-
<dd class="text-content-active">{caseStudy.data.projectType}</dd>
84-
</div>
85-
)
86-
}
87-
{
88-
caseStudy.data.duration && (
89-
<div class="bg-page-offset p-4 rounded-xl flex flex-wrap items-baseline gap-x-2">
90-
<dt class="font-semibold">Duration:</dt>
91-
<dd class="text-content-active">{caseStudy.data.duration}</dd>
92-
</div>
93-
)
94-
}
95-
</dl>
96-
</div>
60+
{/** Case Study Details */}
61+
{
62+
(
63+
clientEntry?.data.businessType ||
64+
clientEntry?.data.industry ||
65+
caseStudy.data.projectType ||
66+
caseStudy.data.duration
67+
) && (
68+
<div class="space-y-4 mx-auto">
69+
<dl class="grid grid-cols-2 sm:grid-cols-4 gap-4 text-base">
70+
{
71+
clientEntry?.data.businessType && (
72+
<div class="bg-page-offset p-4 rounded-lg flex flex-col items-start border border-trim shadow-sm">
73+
<dt class="text-xs font-semibold uppercase tracking-wider opacity-60 mb-2">Client</dt>
74+
<dd class="font-bold text-page-inverse leading-tight">
75+
{clientEntry.data.businessType}
76+
</dd>
77+
</div>
78+
)
79+
}
80+
{
81+
clientEntry?.data.industry && (
82+
<div class="bg-page-offset p-4 rounded-lg flex flex-col items-start border border-trim shadow-sm">
83+
<dt class="text-xs font-semibold uppercase tracking-wider opacity-60 mb-2">Industry</dt>
84+
<dd class="font-bold text-page-inverse leading-tight">
85+
{clientEntry.data.industry}
86+
</dd>
87+
</div>
88+
)
89+
}
90+
{
91+
caseStudy.data.projectType && (
92+
<div class="bg-page-offset p-4 rounded-lg flex flex-col items-start border border-trim shadow-sm">
93+
<dt class="text-xs font-semibold uppercase tracking-wider opacity-60 mb-2">
94+
Project Type
95+
</dt>
96+
<dd class="font-bold text-page-inverse leading-tight">
97+
{caseStudy.data.projectType}
98+
</dd>
99+
</div>
100+
)
101+
}
102+
{
103+
caseStudy.data.duration && (
104+
<div class="bg-page-offset p-4 rounded-lg flex flex-col items-start border border-trim shadow-sm">
105+
<dt class="text-xs font-semibold uppercase tracking-wider opacity-60 mb-2">Duration</dt>
106+
<dd class="font-bold text-page-inverse leading-tight">
107+
{caseStudy.data.duration}
108+
</dd>
109+
</div>
110+
)
111+
}
112+
</dl>
113+
</div>
114+
)
115+
}
97116

98117
{/** SLOT: after-content */}
99118
<div slot="after-content">

0 commit comments

Comments
 (0)