Skip to content

Accordion

Used for showing/hiding content under a header, allowing for optional content to be hidden unless needed.

Anatomy

  1. Title
  2. Label (optional)
  3. Content

Usage Guidelines

Accordions should be used when the information inside is not essential to the page, or if there are many instances of similarly-formatted content.

Card Variant

Usually these accordions are placed in a layout with 4 cards on a single line and no more than 8 cards maximum on two lines when stacked 2x4. In this variant the label will appear below the main title text.

Accessibility

Each accordion in a set should have a matching heading level that's correct in relation to the other heading elements on the page.

WordPress

Specifications

Properties

PropertyTypeDescriptionRequiredDefault
idstring Used by JS to add functionality to the accordion. If no ID is specified, one will be added automatically. No-
titlestring test Yes-
h_levelinteger Makes sure the title is the correct heading level for the page outline. No3
trigger_classstring list of additional classes to apply to trigger element. No-
labelstring Optional secondary text that goes in the header. No-
contentstring Inner HTML content. Yes-
openboolean|integer Specify whether the accordion should be open by default. If an integer is provided it will only open if the viewport is wider than the provided number on load. Does not work for nested accordions.No-
classstring list of additional classes to apply to main element. No-

Styling

Modifiers

NameClassDescription
Card.tux-c-accordion--cardStyles the accordion similar to a card component, while keeping the expand/collapse functionality.
Flat.tux-c-accordion--flatRemoves spacing around content so that it sits flush with trigger.
Filter.tux-c-accordion--filterMore compact version used to group filter controls. Transforms the icon into plus/minus and moves it to the right.

Colors

NameApplicationCustom PropertyRolesDefault OpacityDescription
bg-colorbackground--tux-comp-accordion--bg-coloron-background-applies main background color to trigger
text-colortext--tux-comp-accordion--text-colorbackground--
icon-coloricon--tux-comp-accordion--icon-colorbackground--
label-colortext--tux-comp-accordion--label-colorbackground--
card-bg-colorbackground--tux-comp-accordion--card--bg-colorsurface--
card-text-colorbackground--tux-comp-accordion--card--text-coloron-surface--
card-border-colorborder--tux-comp-accordion--card--border-coloron-background0.2-
card-cue-icon-coloricon--tux-comp-accordion--card--cue-icon-colorprimary--

Custom Properties

NameDefaultResetsDescription
--tux-comp-accordion--card--cue-sizevar(--tux-space--500)No-

Changelog

6.12.1 (2024-06-12)

  • fix: set trigger color of filter variant for color system v2 (ba40050)

6.12.1 (2024-06-12)

  • fix: set trigger color of filter variant for color system v2 (ba40050)

6.10.0 (2024-05-01)

  • fix: adjust spacing to contain button shadows (#583) (ba56a1d)
  • fix: adjust trigger layout for inline elements in card variant (#571) (fe2d16d)

2.3.0 (2022-12-13)

  • feat: support integer in 'open' attribute (9db8726)

1.36.0 (2022-07-21)

  • feat: dynamically adjust heights of accordions to match (#287) (dd892c5)

1.27.2 (2021-12-30)

  • fix: switch block to api version 2 for blockProps hooks (00fd3a4)

1.23.1 (2021-08-20)

  • fix: add custom property for card cue icon color (adb62e6)

1.20.1 (2021-06-02)

  • fix: add resize observer globally for dynamic items (a23b867)
  • fix: remove spacing for filter modifier (6140926)

1.18.1 (2021-04-07)

  • fix: revert default trigger text color (6c0aed7)
  • fix: set up resizeObserver to adjust height correctly (0701ccb)

1.16.4 (2021-03-08)

  • fix: summary inside accordion, kill margin/padding (99e1582)

1.12.0 (2020-10-21)

1.11.0 (2020-10-06)

  • fix: replace eventlisteners with one on document (08fed5d)

1.4.6 (2020-06-16)

1.2.0 (2020-04-17)

1.0.0

  • accordion added

Contains

Other core components embedded within this template.

Contained In

Other components that use this component (not including freeform content slots).

Examples

Default

Inner heading

Nullam id dolor id nibh ultricies vehicula ut id elit.

Inner heading

Nullam id dolor id nibh ultricies vehicula ut id elit.

{{ include( 'components/accordion.twig', {
	title: "Accordion Header"
	content: {...}
} ) }}

Label

Inner heading

Nullam id dolor id nibh ultricies vehicula ut id elit.

{{ include( 'components/accordion.twig', {
	title: "Accordion Header"
	label: "Label"
	content: {...}
} ) }}

Open

Inner heading

Nullam id dolor id nibh ultricies vehicula ut id elit.

{{ include( 'components/accordion.twig', {
	title: "Accordion Header"
	open: true
	content: {...}
} ) }}

Cards

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Etiam porta sem malesuada magna mollis euismod.

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Etiam porta sem malesuada magna mollis euismod.

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Etiam porta sem malesuada magna mollis euismod.

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Etiam porta sem malesuada magna mollis euismod.

<div class="tux-l-row u-mb2">
	{{ include( 'components/accordion.twig', {
		title: fa_icon( 'file', 'tux-c-icon--circle tux-c-accordion__icon') ~ ' Content Card Heading',
		content: "<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Etiam porta sem malesuada magna mollis euismod.</p>",
		h_level: 3,
		class: 'tux-c-accordion--card'
	} ) }}
	{{ include( 'components/accordion.twig', {
		title: fa_icon( 'file-audio', 'tux-c-icon--circle tux-c-accordion__icon') ~ ' Content Card Heading',
		content: "<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Etiam porta sem malesuada magna mollis euismod.</p>",
		h_level: 3,
		class: 'tux-c-accordion--card'
	} ) }}
	{{ include( 'components/accordion.twig', {
		title: fa_icon( 'file-user', 'tux-c-icon--circle tux-c-accordion__icon') ~ ' Content Card Heading',
		content: "<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Etiam porta sem malesuada magna mollis euismod.</p>",
		h_level: 3,
		class: 'tux-c-accordion--card'
	} ) }}
	{{ include( 'components/accordion.twig', {
		title: fa_icon( 'file-code', 'tux-c-icon--circle tux-c-accordion__icon') ~ ' Content Card Heading',
		content: "<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Etiam porta sem malesuada magna mollis euismod.</p>",
		h_level: 3,
		class: 'tux-c-accordion--card'
	} ) }}
</div>