Skip to Content

Collapse

Animate presence with slide down/up transition.

Import

import { Collapse } from '@tidbcloud/uikit'

Usage

import { useDisclosure } from '@mantine/hooks' import { Button, Collapse, Text, Box } from '@tidbcloud/uikit' function Demo() { const [opened, { toggle }] = useDisclosure(false) return ( <Box maw={400} mx="auto"> <Button onClick={toggle}>Toggle content</Button> <Collapse in={opened}> <Text mt="md"> From Bulbapedia: Pikachu is a short, chubby rodent Pokémon. It is covered in yellow fur with two horizontal brown stripes on its back. It has a small mouth, long, pointed ears with black tips, and brown eyes. Each cheek is a red circle that contains a pouch for electricity storage. </Text> </Collapse> </Box> ) }

Animation duration

Set transitionDuration and transitionTimingFunction props to control transition:

import { useDisclosure } from '@mantine/hooks' import { Collapse, Button } from '@tidbcloud/uikit' function Demo() { const [opened, { toggle }] = useDisclosure(false) return ( <> <Button onClick={toggle}>Toggle with custom duration</Button> <Collapse in={opened} transitionDuration={1000} transitionTimingFunction="linear"> <div>Content</div> </Collapse> </> ) }

With nested Collapse

import { useDisclosure } from '@mantine/hooks' import { Collapse, Button, Stack } from '@tidbcloud/uikit' function Demo() { const [outerOpened, outerHandlers] = useDisclosure(false) const [innerOpened, innerHandlers] = useDisclosure(false) return ( <Stack> <Button onClick={outerHandlers.toggle}>Toggle outer</Button> <Collapse in={outerOpened}> <Button onClick={innerHandlers.toggle}>Toggle inner</Button> <Collapse in={innerOpened}> <div>Inner content</div> </Collapse> </Collapse> </Stack> ) }

Props

PropTypeDefaultDescription
animateOpacitybooleantrueShould opacity be animated
childrenReact.ReactNoderequiredContent that will be animated
inbooleanrequiredControl open/close state
onTransitionEnd() => void-Called when transition ends
transitionDurationnumber200Transition duration in ms
transitionTimingFunctionstring'ease'CSS timing function
Last updated on