import { createGlobalStyle, css } from "styled-components";
import type { AppProps } from "next/app";
import Provider from "@/context/context";
import 'aos/dist/aos.css';
import "swiper/css/bundle";
import "animate.css/animate.min.css";
import { AnimatePresence } from "framer-motion";
import { Montserrat } from 'next/font/google'
const ResetStyles = createGlobalStyle`
${() => css`
html, main, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
font-family: ${montserrat.style.fontFamily};
vertical-align: baseline;
scroll-behavior: smooth;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
body::-webkit-scrollbar {
width: 10px;
}
body::-webkit-scrollbar-track {
background: var(--tertiary-color);
}
body::-webkit-scrollbar-thumb {
background-color: var(--primary-color);
border-radius: 20px;
border: 3px solid var(--primary-color);
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
`}
`;
const GlobalStyles = createGlobalStyle`
${() => css`
:root {
--primary-color: #FF1A56;
--secondary-color: #D80B4B;
--tertiary-color: #a1103e;
--quartenary-color: #F988A7;
--gradient-color: linear-gradient(90deg, #FF1A56 0%, #D80B4B 100%);
--gradient-color-1: linear-gradient(90deg, #D80B4B 0%, #1A1313 100%);
--gradient-color-2: linear-gradient(90deg, #FF1A56 0%, #af1747 100%);
--gradient-color-3: linear-gradient(130deg, #FF1A56 40%, #D80B4B 100%);
--gradient-color-4: linear-gradient(130deg, #FF1A56 0%, #342118 100%);
--gradient-color-animation: linear-gradient(45deg, #FF1A56, #ff2c6f, #ff4375, #FF1A56, #ff2c6f, #ff4375);
--grey-0: #28292A;
--grey-1: #3D3E3F;
--grey-2: #B7B8B8;
--grey-3: #29292A;
--grey-4: #404141;
--grey-5: #101112;
--grey-6: #2F2A2C;
--white: #FFFFFF;
--black: #000000;
--transparent: transparent;
}
html, body, #root {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background-color: var(--grey-5);
}
*::selection {
background-color: var(--primary-color);
color: var(--white);
text-shadow: none;
}
a {
cursor: pointer;
}
* {
box-sizing: border-box;
}
`}
`;
const montserrat = Montserrat({
weight: ['500', '600', '700', '800', '900'],
style: ['normal'],
subsets: ['latin'],
display: 'swap',
})
const MyApp = ({ Component, pageProps }: AppProps) => {
return (
<AnimatePresence>
<Provider>
<Component {...pageProps} />
<GlobalStyles />
<ResetStyles />
</Provider>
</AnimatePresence>
);
};
export default MyApp;
|