Kosorikōsori alpha

Collapsible

An interactive component which expands/collapses a panel.

@peduarte starred 3 repositories

@radix-ui/primitives

Installation

Install the primitive

Install the @radix-ui/react-collapsible package.

npm install @radix-ui/react-collapsible

Copy-paste the component

Copy and paste the component code in a .tsx file.

import { Content, Root, Trigger } from '@radix-ui/react-collapsible';
 
/**
 * Collapsible component that allows content to be expanded or collapsed.
 *
 * @param {React.ComponentPropsWithoutRef<typeof Root>} props - The props for the Collapsible component.
 *
 * @example
 * <Collapsible>
 *   <CollapsibleTrigger>Can I use this in my project?</CollapsibleTrigger>
 *   <CollapsibleContent>
 *     Yes. Free to use for personal and commercial projects. No attribution required.
 *   </CollapsibleContent>
 * </Collapsible>
 *
 * @see {@link https://dub.sh/ui-collapsible Collapsible Docs} for further information.
 */
export const Collapsible = Root;
 
/**
 * CollapsibleContent component that holds the content to be shown or hidden.
 *
 * @param {React.ComponentPropsWithoutRef<typeof Content>} props - The props for the CollapsibleContent component.
 *
 * @example
 * <CollapsibleContent>
 *   Your content goes here.
 * </CollapsibleContent>
 */
export const CollapsibleContent = Content;
 
/**
 * CollapsibleTrigger component that serves as the button to toggle the Collapsible.
 *
 * @param {React.ComponentPropsWithoutRef<typeof Trigger>} props - The props for the CollapsibleTrigger component.
 *
 * @example
 * <CollapsibleTrigger>Toggle Content</CollapsibleTrigger>
 */
export const CollapsibleTrigger = Trigger;

Update import paths

Update the @kosori/ui import paths to fit your project structure, for example, using ~/components/ui.

Usage

import {
  Collapsible,
  CollapsibleContent,
  CollapsibleTrigger,
} from '~/components/ui/collapsible';
<Collapsible>
  <CollapsibleTrigger>Can I use this in my project?</CollapsibleTrigger>
  <CollapsibleContent>
    Yes. Free to use for personal and commercial projects. No attribution
    required.
  </CollapsibleContent>
</Collapsible>

On this page