Collapse

A panel that opens and closes from its header.

Installation

Import the class, and @use the entry point in your global styles: without it the component renders unstyled.

import { Component } from '@angular/core';
import { WrAccordion, WrCollapse, WrCollapseGroup } from 'ngwr/collapse';

@Component({ imports: [WrAccordion, WrCollapse, WrCollapseGroup] })
export class MyComponent {}

Basic usage

Set title; bind [(open)] to control it.

pnpm add ngwr @angular/cdk — then import the styles and the components you use.
<wr-collapse title="Section title">
  Section body…
</wr-collapse>

Accordion

One panel open at a time. <wr-accordion> is short for <wr-collapse-group accordion>; import the one you use.

<wr-accordion>
  <wr-collapse title="A">…</wr-collapse>
  <wr-collapse title="B">…</wr-collapse>
  <wr-collapse title="C">…</wr-collapse>
</wr-accordion>

<!-- Same as -->
<wr-collapse-group accordion>
  <wr-collapse title="A">…</wr-collapse>
  <wr-collapse title="B">…</wr-collapse>
</wr-collapse-group>

Collapse API

NameDescriptionTypeDefault
titlerequiredHeader text.string—
openTwo-way bindable open/closed state.booleanfalse
disabledDisable interaction.booleanfalse

Collapse Group API

NameDescriptionTypeDefault
accordionWhen true, opening one child closes the others.booleanfalse

CSS variables

Set these on the component's selector or a wrapper, not on :root: the defaults are declared on ngwr/collapse's own element.

VariableDefaultDeclared on
--wr-collapse-bgvar(--wr-color-surface).wr-collapse
--wr-collapse-bordervar(--wr-border-base).wr-collapse
--wr-collapse-colorvar(--wr-color-on-surface).wr-collapse +1 variant override
--wr-collapse-font-familyvar(--wr-font-family-base).wr-collapse
--wr-collapse-header-font-sizevar(--wr-text-base).wr-collapse
--wr-collapse-header-font-weightvar(--wr-font-weight-medium).wr-collapse
--wr-collapse-header-padding-xvar(--wr-space-lg).wr-collapse
--wr-collapse-header-padding-yvar(--wr-space-md).wr-collapse
--wr-collapse-inner-paddingvar(--wr-space-lg).wr-collapse
--wr-collapse-margin-topvar(--wr-space-sm).wr-collapse
--wr-collapse-radiusvar(--wr-border-radius-base).wr-collapse

See also