Base UI (Angular) accordion is a stacked set of headers that show or hide a body. Copy accordion in, set multi if several panels may be open, and bind isOpen when you need controlled items. It is for in-page disclosure, not top-level app navigation.
Install with npx base-ui-cli add accordion.
Default Accordion examples below.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Suspendisse potenti nullam ac tortor vitae purus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Suspendisse potenti nullam ac tortor vitae purus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Suspendisse potenti nullam ac tortor vitae purus.
To make a section disabled need to add to the <base-accordion-item-body> tag a property [disabled]="true"
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Suspendisse potenti nullam ac tortor vitae purus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Suspendisse potenti nullam ac tortor vitae purus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Suspendisse potenti nullam ac tortor vitae purus.
Run the following command to add this component to your project:
npx base-ui-cli add accordion
For AI agents
Copy a prompt with the registry name, CLI install, and import — or add the Base UI MCP server.
npx -y base-ui-mcp
Base UI provides standalone components. Import the exact elements you want to use into your component.
// Install: npx base-ui-cli add accordion
// Paths are relative to aliases.components (default: src/app/components)
import { AccordionItemBodyComponent } from './accordion/accordion-item/accordion-item-body/accordion-item-body.component';
import { AccordionItemHeaderComponent } from './accordion/accordion-item/accordion-item-header/accordion-item-header.component';
import { AccordionItemComponent } from './accordion/accordion-item/accordion-item.component';
import { AccordionComponent } from './accordion/accordion.component';
@Component({
selector: 'app-your-component',
imports: [
AccordionComponent,
AccordionItemBodyComponent,
AccordionItemComponent,
AccordionItemHeaderComponent
],
template: `...`
})
export class YourComponent {} API for accordion — generated from JSDoc in the library source.
| API | Member | Type | Default | Description |
|---|---|---|---|---|
base-accordion | class | string | '' | Additional host CSS classes (merged via cn()). |
base-accordion | multi | boolean | false | — |
base-accordion-item | class | string | '' | Additional host CSS classes (merged via cn()). |
base-accordion-item | isOpen | boolean | false | Two-way bindable open state — parent accordion can close it via item.isOpen.set(false). |
base-accordion-item | disabled | boolean | false | — |
base-accordion-item | (toggled) | boolean | — | Emitted when the item is toggled. Carries the new open state. |
base-accordion-item-body | — | — | — | The body content of an accordion item. |
base-accordion-item-body | class | string | '' | Additional host CSS classes (merged via cn()). |
base-accordion-item-header | — | — | — | The clickable header of an accordion item that toggles the body visibility. |
Page Content