gsxui

Accordion

Basic

Is it accessible?
Yes, it follows the WAI-ARIA design pattern.
Is it styled?
Yes, it comes with default styles.
Is it animated?
Yes, height is animated by default.
// Package accordion holds the site's example gsx components for
// ui/accordion.
package accordion

import "github.com/gsxhq/gsxui/ui"

// Basic renders three items sharing name="faq" โ€” native <details name>
// gives the group exclusive-open behavior, no JS. The first item opens.
component Basic() {
	<ui.Accordion name="faq">
		<ui.AccordionItem name="faq" open>
			<ui.AccordionTrigger>Is it accessible?</ui.AccordionTrigger>
			<ui.AccordionContent>Yes, it follows the WAI-ARIA design pattern.</ui.AccordionContent>
		</ui.AccordionItem>
		<ui.AccordionItem name="faq">
			<ui.AccordionTrigger>Is it styled?</ui.AccordionTrigger>
			<ui.AccordionContent>Yes, it comes with default styles.</ui.AccordionContent>
		</ui.AccordionItem>
		<ui.AccordionItem name="faq">
			<ui.AccordionTrigger>Is it animated?</ui.AccordionTrigger>
			<ui.AccordionContent>Yes, height is animated by default.</ui.AccordionContent>
		</ui.AccordionItem>
	</ui.Accordion>
}

Compact

Shipping
Ships within 2 business days.
Returns
30-day return window.
package accordion

import "github.com/gsxhq/gsxui/ui"

// Compact overrides AccordionContent's default pb-4 with a caller pb-2 โ€”
// tailwind-merge drops the base utility, same class-merge story as every
// other component.
component Compact() {
	<ui.Accordion name="compact">
		<ui.AccordionItem name="compact" open>
			<ui.AccordionTrigger>Shipping</ui.AccordionTrigger>
			<ui.AccordionContent class="pb-2">Ships within 2 business days.</ui.AccordionContent>
		</ui.AccordionItem>
		<ui.AccordionItem name="compact">
			<ui.AccordionTrigger>Returns</ui.AccordionTrigger>
			<ui.AccordionContent class="pb-2">30-day return window.</ui.AccordionContent>
		</ui.AccordionItem>
	</ui.Accordion>
}