Skip to content

Accordion

Body text lorem ipsum dolor sit amet Body text lorem ipsum dolor sit amet

Accordions are interactive lists of headings that reveal additional content through progressive disclosure. They allow to organize larger amounts of information in an effective way, by removing excessive scrolling for users scanning content. However, no vital information should be buried within a collapsed section. This makes the high-level labeling of each item imperative to the component's success in allowing users to browse and discover meaningful information.

UX/UI Guidelines

Check the design documentation of the component in ZeroHeight.

Implementations

The component Accordion is available in the following technologies:

CSS Components
cssreactvue
Web Components
webreactvueangular

Parameters

Parameters

Parameters are the attributes that can be used to customize the component when using it in a project. They apply to the WebComponents implementation and wrappers and to the Vue and React CSS implementations. Some parameters names change between the implementations, in order to follow the conventions of each technology and framework.

For example, the param model is named ngModel in Angular, modelValue in Vue, but stays as model in React.

By default, all the parameters are optional or can be set in different, except for the ones marked as required

The parametrization of the component can be done with the following custom params or properties:

NameTypeSlottableDescription
configstring

Sets the size of the accordion item. Default is m. You can also set it as l.

summarystringThe title of the accordion item
openbooleanIf the accordion item is open or closed
borderlessbooleanRender the accordion component without separation border.
contentstringThe content of the accordion item
customobject

A record of key-value pairs to set the CSS custom tokens. It's a complex attribute set as an JS object in stringified JSON format.

Example:

html
<z-accordion custom='{"fill":"#06e7a3"}' />
custom-strstring

The stringified version of the custom property. It follows the pattern key:value;key:value;, with the possibility of setting multiple values and spaces between the punctuation characters.

Example:

html
<z-accordion custom-str="fill:#06e7a3" />
z-themestring

Sets the theme of the component. The possible values are light and dark.

html
<z-accordion z-theme="dark" />

From Figma to code

You can check the Figma implementation here. The available properties are:

  • Type (select)
  • Behavior (select)
  • State (select)
  • Title (text)

With the nested instances:

  • Content

Customization

INFO

Check everything about the customization mechanics in the "How it works" documentation.

CSS VariableTypeDescription
--z-accordion--border-colorcolorColor of the border
--z-accordion--colorcolorColor of the main description text
--z-accordion--radiusdistanceBorder radius of the accordion item
--z-accordion--summary-colorcolorColor of the summary text
--z-accordion--summary-paddingdistancePadding of the summary text
--z-accordion--summary-margindistanceMargin of the summary text
--z-accordion--summary-fontfontFont of the summary text
--z-accordion--widthdistanceWidth of the accordion item
--z-accordion--outlinedistanceOutline of the accordion item

The z-accordion component is highly customizable.

You can change the border color & radius using the --z-accordion-border-color and --z-accordion-border-radius custom properties.

Also, the summary color, padding, margin and font can be customized using the --z-accordion-summary-color, --z-accordion-summary-padding, --z-accordion-summary-margin and --z-accordion-summary-font custom properties.

Body text lorem ipsum dolor sit amet

Finally, the color of the body, width and outline can be customized using the --z-accordion--color, --z-accordion--width and --z-accordion--outline custom properties.

Body text lorem ipsum dolor sit amet

Accessibility

...