troylusty.com/src/components/Accordion.astro
2025-01-17 22:09:54 +00:00

38 lines
1,020 B
Text

---
import { Icon } from "astro-icon/components";
type Props = {
institution: String;
qualification: String;
grades: Array<String>;
isOpen?: boolean;
};
const { institution, qualification, grades, isOpen = false } = Astro.props;
---
<div class="grid">
<details open={isOpen === true ? "open" : null} class="group">
<summary
class="flex cursor-pointer items-center justify-between py-3 font-bold"
>
<p class="m-0 text-balance font-semibold text-secondary">
{qualification}
</p>
<span class="transition group-open:rotate-180">
<Icon
name="mdi:chevron-down"
class="h-6 w-auto text-secondary transition-colors group-open:text-tertiary"
/>
</span>
</summary>
<div class="p-4">
<p class="my-0 mb-2 font-semibold text-tertiary">
{institution}
</p>
<ol class="list-inside list-disc">
{grades.map((grade) => <li class="text-tertiary">{grade}</li>)}
</ol>
</div>
</details>
</div>