diff --git a/src/components/PreLoader/PreLoader.jsx b/src/components/PreLoader/PreLoader.jsx new file mode 100644 index 0000000..5ee6e98 --- /dev/null +++ b/src/components/PreLoader/PreLoader.jsx @@ -0,0 +1,36 @@ +import Image from 'next/image' + +import styles from './PreLoader.module.css' +import Logo from 'public/images/logo.svg' + +export function PreLoader() { + return ( +
+
+
+ +
+
+
+
+
+
+ +
+
+ + {/* JORDI LOGO */} +
+ JORDI +
+ +

+ Jornadas de Direito Informático +

+
+ ) +} diff --git a/src/components/PreLoader/PreLoader.module.css b/src/components/PreLoader/PreLoader.module.css new file mode 100644 index 0000000..9710a93 --- /dev/null +++ b/src/components/PreLoader/PreLoader.module.css @@ -0,0 +1,114 @@ +.container { + display: flex; + align-items: center; + + justify-content: center; + background-color: white; + background-image: url('../../../public/images/background.jpg'); + + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 9999; + + animation: page-down 0.4s ease-in-out 2.6s; + animation-fill-mode: forwards; +} + +.cube { + position: relative; + height: 40vw; + width: 40vw; + + transform-style: preserve-3d; + animation: spin-cube 4s linear infinite; +} + +.cube .cubeFacesWrapper { + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; + transform-style: preserve-3d; +} + +.cube .face { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + + background: linear-gradient(#f3f3f3, #104194); + + transform-style: preserve-3d; + transform: rotateY(0deg) translateZ(20vw); +} + +.cube .face:nth-child(1) { + transform: rotateY(90deg) translateZ(20vw); +} +.cube .face:nth-child(2) { + transform: rotateY(180deg) translateZ(20vw); +} +.cube .face:nth-child(3) { + transform: rotateY(270deg) translateZ(20vw); +} + +.cube > .top { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #f3f3f3; + transform: rotateX(90deg) translateZ(20vw); +} + +.bottom { + position: absolute; + top: 0; + left: 0; + width: 40vw; + height: 40vw; + background: #104194; + transform: rotateX(90deg) translateZ(-40vw); + filter: blur(24px); + box-shadow: 0 0 120px rgba(16, 65, 148, 0.2), 0 0 200px rgba(16, 65, 148, 0.4), + 0 0 300px rgba(16, 65, 148, 0.6), 0 0 400px rgba(16, 65, 148, 0.8), + 0 0 500px rgba(16, 65, 148, 1); +} + +@media screen and (min-width: 720px) { + .cube { + scale: 0.6; + } +} + +@media (min-width: 1536px) { + .cube { + scale: 0.4; + } +} + +@keyframes spin-cube { + 0% { + transform: rotateX(-30deg) rotateY(0deg); + } + + 100% { + transform: rotateX(-30deg) rotateY(350deg); + } +} + +@keyframes page-down { + 0% { + transform: translateY(0); + } + 100% { + transform: translateY(100vh); + } +} diff --git a/src/components/PreLoader/index.jsx b/src/components/PreLoader/index.jsx new file mode 100644 index 0000000..507615b --- /dev/null +++ b/src/components/PreLoader/index.jsx @@ -0,0 +1 @@ +export { PreLoader } from './PreLoader' diff --git a/src/pages/index.jsx b/src/pages/index.jsx index f97705e..0a5655f 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -8,20 +8,24 @@ import { Speakers } from '@/components/Speakers' import { Sponsors } from '@/components/Sponsors' import { Organization } from '@/components/Organization' import { Papers } from '@/components/Papers' +import { PreLoader } from '@/components/PreLoader' export default function Home() { return ( <> Jordi - +
+ + +
- +
diff --git a/tailwind.config.js b/tailwind.config.js index 6ae9f75..e189e86 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -31,10 +31,23 @@ module.exports = { maxWidth: { '2xl': '40rem', }, - colors:{ - primary: "#1B69EE", - secondary: "#104194", - } + colors: { + primary: '#1B69EE', + secondary: '#104194', + }, + }, + keyframes: { + slide: { + '0%': { transform: 'translateX(100vw)' }, + '10%': { transform: 'translateX(60px)' }, + '50%': { transform: 'translateX(0)' }, + '90%': { transform: 'translateX(-60px)' }, + '100%': { transform: 'translateX(-100vw)' }, + }, + }, + animation: { + 'horizontal-slide': 'slide 3s linear', + 'horizontal-slide-reverse': 'slide 3s linear reverse', }, }, plugins: [],