diff --git a/src/components/Carousel/DynamicSlides/SplideButtons/index.tsx b/src/components/Carousel/DynamicSlides/SplideButtons/index.tsx new file mode 100644 index 0000000..9686df4 --- /dev/null +++ b/src/components/Carousel/DynamicSlides/SplideButtons/index.tsx @@ -0,0 +1,31 @@ +import IconButton from '@components/Button/IconButton'; +import ArrowMoveIcon from '@icons/utility/ArrowMoveIcon'; +import { alpha, styled } from '@mui/material'; +import React from 'react'; + +const StyledIconButton = styled(IconButton)(({ theme }) => ({ + + [theme.breakpoints.down('md')]: { + display: 'none' + ' !important', + }, +})); + +const StyledMoveIcon = styled(ArrowMoveIcon)(({ theme }) => ({ + height: '1.25rem' + ' !important', + width: '1.25rem' + ' !important', +})); + +const SplideButtons = () => { + return ( +
+ + + + + + +
+ ) +}; + +export default SplideButtons; \ No newline at end of file diff --git a/src/components/Carousel/DynamicSlides/UnitSlide/CarouselDataCard/index.tsx b/src/components/Carousel/DynamicSlides/UnitSlide/CarouselDataCard/index.tsx index 8308c3d..87f1f1e 100644 --- a/src/components/Carousel/DynamicSlides/UnitSlide/CarouselDataCard/index.tsx +++ b/src/components/Carousel/DynamicSlides/UnitSlide/CarouselDataCard/index.tsx @@ -1,5 +1,4 @@ -import { CarouselData } from "@components/Carousel/carouselData"; -import { CarouselCardProps, CarouselDataCardProps } from "@interfaces/CardProps"; +import { CarouselDataCardProps } from "@interfaces/CardProps"; import { Card, Typography, alpha, styled } from "@mui/material"; import { navbar } from "@theme/constants"; import React from "react"; @@ -43,9 +42,9 @@ const CarouselDataCard: React.FC = ({ component={link ? 'a' : 'div'} href={link} > - {tagline} + {tagline} {title} - {description} + {description} ) @@ -59,6 +58,7 @@ export default styled(CarouselDataCard)(({ theme }) => ({ height: 'max-content', width: 'max-content', minWidth: '25rem', + maxWidth: '30rem', padding: theme.Spaces.md, backgroundColor: alpha(theme.palette.background.default, 0.65), backdropFilter: 'blur(0.125rem)', @@ -70,4 +70,9 @@ export default styled(CarouselDataCard)(({ theme }) => ({ duration: 'shortest', }), transform: 'translateY(200%)', + + [theme.breakpoints.down('md')]: { + left: '50%', + transform: 'translate(-50%, 200%)', + }, })); \ No newline at end of file diff --git a/src/components/Carousel/DynamicSlides/UnitSlide/index.tsx b/src/components/Carousel/DynamicSlides/UnitSlide/index.tsx index b0e2d85..b74dde7 100644 --- a/src/components/Carousel/DynamicSlides/UnitSlide/index.tsx +++ b/src/components/Carousel/DynamicSlides/UnitSlide/index.tsx @@ -1,6 +1,5 @@ import React from 'react' import Image from 'next/image'; -import { CarouselData } from '../../carouselData'; import { styled } from '@mui/material'; import { SplideSlide } from '@splidejs/react-splide'; import CarouselDataCard from './CarouselDataCard'; @@ -53,8 +52,12 @@ const UnitSlide: React.FC = ({ ); }; -export default styled(UnitSlide)(() => ({ +export default styled(UnitSlide)(({ theme }) => ({ '&.is-active.is-visible .carousel-data-card': { transform: 'translateY(0%)', + + [theme.breakpoints.down('md')]: { + transform: 'translate(-50%, 0%)', + }, }, })); \ No newline at end of file diff --git a/src/components/Carousel/DynamicSlides/index.tsx b/src/components/Carousel/DynamicSlides/index.tsx index c629f8f..41bf7af 100644 --- a/src/components/Carousel/DynamicSlides/index.tsx +++ b/src/components/Carousel/DynamicSlides/index.tsx @@ -6,6 +6,7 @@ import '@splidejs/splide/dist/css/themes/splide-default.min.css'; import ProgressBarPlaceholder from './ProgressBarPlaceholder'; import theme from '@theme/index'; import { SplideInstance } from '@interfaces/SplideInterface'; +import SplideButtons from './SplideButtons'; const options: SplideProps["options"] = { type: 'loop', @@ -15,11 +16,17 @@ const options: SplideProps["options"] = { drag: 'free', snap: true, pagination: false, - autoplay: true, + autoplay: false, resetProgress: false, pauseOnHover: false, gap: theme.Spaces.md, - padding: '9.5rem', + padding: theme.Spaces.mega, + + breakpoints: { + 1024: { + padding: '0', + }, + }, }; @@ -49,6 +56,7 @@ const DynamicSlides: React.FC = () => { ))} + ); diff --git a/src/components/Carousel/carouselData.ts b/src/components/Carousel/carouselData.ts index b2cef71..ca15b17 100644 --- a/src/components/Carousel/carouselData.ts +++ b/src/components/Carousel/carouselData.ts @@ -13,7 +13,7 @@ const carouselData : CarouselData[] = [ id: 1, tagline: "FOR INDIA", title: "Discover Bharat", - description: "This is the first slide", + description: "This is an Indian family of informational, educational and entertainment-oriented Television, Applications and Websites offering value to how Education is developed and accessed by Global Societies.", image: "/images/home/container-1/slide-1.jpg", pauseTime: 5000, link: "/", @@ -22,7 +22,7 @@ const carouselData : CarouselData[] = [ id: 2, tagline: "FOR INDIA", title: "Discover Bharat", - description: "This is the second slide", + description: "This is an Indian family of informational, educational and entertainment-oriented Television, Applications and Websites offering value to how Education is developed and accessed by Global Societies.", image: "/images/home/container-1/slide-2.jpg", pauseTime: 10000, link: "/", @@ -31,7 +31,7 @@ const carouselData : CarouselData[] = [ id: 3, tagline: "FOR INDIA", title: "Discover Bharat", - description: "This is the third slide", + description: "This is an Indian family of informational, educational and entertainment-oriented Television, Applications and Websites offering value to how Education is developed and accessed by Global Societies.", image: "/images/home/container-1/slide-3.jpg", pauseTime: 5000, link: "/", @@ -40,7 +40,7 @@ const carouselData : CarouselData[] = [ id: 4, tagline: "FOR INDIA", title: "Discover Bharat", - description: "This is the fourth slide", + description: "This is an Indian family of informational, educational and entertainment-oriented Television, Applications and Websites offering value to how Education is developed and accessed by Global Societies.", image: "/images/home/container-1/slide-4.jpg", pauseTime: 8000, link: "/", @@ -49,7 +49,7 @@ const carouselData : CarouselData[] = [ id: 5, tagline: "FOR INDIA", title: "Discover Bharat", - description: "This is the fifth slide", + description: "This is an Indian family of informational, educational and entertainment-oriented Television, Applications and Websites offering value to how Education is developed and accessed by Global Societies.", image: "/images/home/container-1/slide-5.jpg", pauseTime: 4000, link: "/", @@ -58,7 +58,7 @@ const carouselData : CarouselData[] = [ id: 6, tagline: "FOR INDIA", title: "Discover Bharat", - description: "This is the sixth slide", + description: "This is an Indian family of informational, educational and entertainment-oriented Television, Applications and Websites offering value to how Education is developed and accessed by Global Societies.", image: "/images/home/container-1/slide-6.jpg", pauseTime: 7000, link: "/", diff --git a/src/icons/utility/ArrowIcon.tsx b/src/icons/utility/ArrowIcon.tsx index 602beb6..cb7b206 100644 --- a/src/icons/utility/ArrowIcon.tsx +++ b/src/icons/utility/ArrowIcon.tsx @@ -34,4 +34,4 @@ const ArrowIcon = ({ hovered, ...props }: UtilityIconProps) => { ) } -export default ArrowIcon \ No newline at end of file +export default ArrowIcon; \ No newline at end of file diff --git a/src/icons/utility/ArrowMoveIcon.tsx b/src/icons/utility/ArrowMoveIcon.tsx new file mode 100644 index 0000000..50e2903 --- /dev/null +++ b/src/icons/utility/ArrowMoveIcon.tsx @@ -0,0 +1,20 @@ +import { UtilityIconProps } from '@interfaces/SVGProps'; +import svgCommonProps from '@utils/svgCommonProps'; +import React from 'react'; + +const ArrowMoveIcon = ({ hovered, ...props }: UtilityIconProps) => { + return ( + + + + ) +}; + +export default ArrowMoveIcon; \ No newline at end of file diff --git a/src/theme/Breakpoints/index.tsx b/src/theme/Breakpoints/index.tsx index 66411ed..79d288e 100644 --- a/src/theme/Breakpoints/index.tsx +++ b/src/theme/Breakpoints/index.tsx @@ -1,5 +1,3 @@ -import { Breakpoints as MuiBreakpoints } from '@mui/material'; - interface Values { xs: number; sm: number; diff --git a/src/theme/Spaces/index.tsx b/src/theme/Spaces/index.tsx index 749c777..4f68295 100644 --- a/src/theme/Spaces/index.tsx +++ b/src/theme/Spaces/index.tsx @@ -6,6 +6,7 @@ export interface Spaces { lg: string; xl: string; xxl: string; + mega: string; }; export const spaces: Spaces = { @@ -16,4 +17,5 @@ export const spaces: Spaces = { lg: '1.5rem', xl: '2rem', xxl: '2.5rem', + mega: '9.5rem', }; \ No newline at end of file