import React from 'react';
import {
ChakraProvider,
Box,
Button,
Collapse,
Fade,
ScaleFade,
Slide,
SlideFade,
extendTheme,
useDisclosure,
Heading,
} from '@chakra-ui/react';
const theme = extendTheme({
styles: {
global: {
body: {
fontFamily: 'Roboto, sans-serif',
bg: 'gray.100',
},
},
},
});
const geeksData = {
courses: 'Explore our latest courses',
programming: 'Enhance your programming skills',
articles: 'Read insightful articles on various topics',
};
function App() {
const { isOpen: fadeOpen,
onToggle: fadeToggle } = useDisclosure();
const { isOpen: scaleFadeOpen,
onToggle: scaleFadeToggle } = useDisclosure();
const { isOpen: slideOpen,
onToggle: slideToggle } = useDisclosure();
const { isOpen: slideFadeOpen,
onToggle: slideFadeToggle } = useDisclosure();
const { isOpen: collapseOpen,
onToggle: collapseToggle } = useDisclosure();
return (
<ChakraProvider theme={theme}>
<Box maxW="600px" mx="auto"
mt="8" textAlign="center">
<Heading as="h1"
color="green.500" mb="4">
GeeksforGeeks
</Heading>
<Heading as="h3"
fontSize="xl" mb="6">
Chakra UI Other Transitions
</Heading>
<Button onClick={fadeToggle}
colorScheme="teal" mt="4">
Click Me (Fade Transition)
</Button>
<Fade in={fadeOpen}>
<Box p="4" mt="4" bg="teal.500"
rounded="md" shadow="md" color="white">
{geeksData.courses}
</Box>
</Fade>
<Button onClick={scaleFadeToggle}
colorScheme="blue" mt="4">
Click Me (ScaleFade Transition)
</Button>
<ScaleFade initialScale={0.9}
in={scaleFadeOpen}>
<Box p="4" mt="4" bg="blue.500"
rounded="md" shadow="md" color="white">
{geeksData.programming}
</Box>
</ScaleFade>
<Button onClick={slideToggle}
colorScheme="purple" mt="4">
Click Me (Slide Transition)
</Button>
<Slide direction="bottom"
in={slideOpen} style={{ zIndex: 10 }}>
<Box p="4" mt="4" bg="purple.500"
rounded="md" shadow="md" color="white">
{geeksData.articles}
</Box>
</Slide>
<Button onClick={slideFadeToggle}
colorScheme="orange" mt="4">
Click Me (SlideFade Transition)
</Button>
<SlideFade in={slideFadeOpen}
offsetY="20px">
<Box p="4" mt="4" bg="orange.500"
rounded="md" shadow="md" color="white">
{geeksData.courses}
</Box>
</SlideFade>
<Button onClick={collapseToggle}
colorScheme="green" mt="4">
Click Me (Collapse Transition)
</Button>
<Collapse in={collapseOpen}
animateOpacity>
<Box p="4" mt="4" bg="green.500"
rounded="md" shadow="md" color="white">
{geeksData.programming}
</Box>
</Collapse>
</Box>
</ChakraProvider>
);
}
export default App;