diff --git a/.gitignore b/.gitignore index dec841e..8135c77 100644 --- a/.gitignore +++ b/.gitignore @@ -86,4 +86,7 @@ frontend/.env.*.orig venv .venv -certs \ No newline at end of file +certs + +# large video assets — host externally (S3) +frontend/public/portfolio/*.mp4 \ No newline at end of file diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index d65995f..6678dfc 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -6,6 +6,8 @@ import ChatLayout from "./layouts/social/Chat"; import Downloader from "./pages/downloader/Downloader"; import Home from "./pages/home/home"; import DroneServisSection from "./pages/home/components/Services/droneServis"; +import WebServicePage from "./pages/home/components/Services/webs"; +import FilmServicePage from "./pages/home/components/Services/kinematografie"; import PrivateRoute from "./routes/PrivateRoute"; import PublicOnlyRoute from "./routes/PublicOnlyRoute"; @@ -47,7 +49,8 @@ export default function App() { } /> } /> } /> - } /> + } /> + } /> } /> diff --git a/frontend/src/components/home/ContactMe/contact-me.module.css b/frontend/src/components/home/ContactMe/contact-me.module.css index b649b93..a7fd0d5 100644 --- a/frontend/src/components/home/ContactMe/contact-me.module.css +++ b/frontend/src/components/home/ContactMe/contact-me.module.css @@ -147,15 +147,8 @@ @media only screen and (max-width: 990px){ - .contact-me{ - aspect-ratio: unset; - margin-top: 3ch; - background: transparent; - border: none; + .contact-me { + width: min(30em, 100%); + margin: 11rem auto 1.5rem; } - .contact-me .opening, - .contact-me .cover, - .contact-me .triangle { display: none; } - .contact-me .content { position: relative; width: 100%; transform: none !important; } - .contact-me .content form { backdrop-filter: none; border: 1px solid var(--c-lines); } } diff --git a/frontend/src/components/home/Footer/footer.module.css b/frontend/src/components/home/Footer/footer.module.css index e9f5585..bdf3e50 100644 --- a/frontend/src/components/home/Footer/footer.module.css +++ b/frontend/src/components/home/Footer/footer.module.css @@ -1,106 +1 @@ -footer a{ - color: var(--c-text); - text-decoration: none; - color: white; - -} -footer{ - padding: 2em; - - font-family: "Roboto Mono", monospace; - - background-color: var(--c-boxes); - - margin-top: 2em; - display: flex; - - color: white; - align-items: flex-start; - justify-content: space-evenly; -} -footer .logo{ - font-size: 3em; - - transition: all 0.3s ease-in-out; - - &:hover{ - text-shadow: 0.25em 0.25em 0.2em var(--c-text); - } -} -footer address{ - display: flex; - flex-direction: column; - align-items: flex-start; - - font-size: 1.2em; - font-style: normal; - gap: 0.2em; -} -footer address h2{ - font-size: 1.5em; -} -footer address p{ - display: flex; - flex-direction: row; - align-items: center; - gap: 1em; -} -footer address p > svg{ - font-size: 1.2em; -} -footer address a{ - display: inline-block; - color: var(--c-text); -} - - -footer .services{ - display: flex; - flex-direction: column; - align-items: flex-start; - - font-size: 1.2em; - font-style: normal; - gap: 0.2em; -} -footer .services h2{ - font-size: 1.5em; -} -footer .services p{ - display: flex; - flex-direction: row; - align-items: center; - gap: 1em; -} -footer .services p > svg{ - font-size: 1.2em; -} -footer .services a{ - display: inline-block; - color: var(--c-text); -} - -footer .links{ - margin-top: 0.5em; - font-size: 2em; - display: flex; - flex-direction: row; - justify-content: space-around; - gap: 0.8em; - -} -footer .links a{ - transition: all 0.2s ease-in-out; - &:hover{ - transform: scale(1.5); - } -} - -@media only screen and (max-width: 990px){ - footer{ - flex-direction: column; - padding-bottom: 1em; - padding-top: 1em; - gap: 2em; - } -} \ No newline at end of file +/* styles migrated to inline — file kept to avoid import errors */ diff --git a/frontend/src/components/home/Footer/footer.tsx b/frontend/src/components/home/Footer/footer.tsx index 2ba49a8..492ac17 100644 --- a/frontend/src/components/home/Footer/footer.tsx +++ b/frontend/src/components/home/Footer/footer.tsx @@ -1,55 +1,215 @@ -import { FaGitAlt , FaInstagram, FaYoutube, FaLinkedin, FaSteam, FaXTwitter, FaClapperboard } from "react-icons/fa6"; +import { motion } from "framer-motion"; +import { + FaGitAlt, FaInstagram, FaYoutube, FaLinkedin, FaSteam, FaXTwitter, FaClapperboard, +} from "react-icons/fa6"; import { FaPhoneAlt, FaEnvelope, FaTeamspeak, FaGlobe } from "react-icons/fa"; import { GiAutoRepair } from "react-icons/gi"; -import styles from "./footer.module.css"; +const SOCIALS = [ + { Icon: FaGitAlt, href: "https://git.vontor.cz/Brunobrno", label: "Gitea" }, + { Icon: FaInstagram, href: "https://www.instagram.com/brunovontor/", label: "Instagram" }, + { Icon: FaXTwitter, href: "https://twitter.com/BVontor", label: "X" }, + { Icon: FaSteam, href: "https://steamcommunity.com/id/Brunobrno/", label: "Steam" }, + { Icon: FaYoutube, href: "https://www.youtube.com/@brunovontor", label: "YouTube" }, + { Icon: FaLinkedin, href: "https://www.linkedin.com/in/brunobrno/?skipRedirect=true", label: "LinkedIn" }, +]; + +const CONTACTS = [ + { Icon: FaPhoneAlt, href: "tel:+420605512624", label: "+420 605 512 624" }, + { Icon: FaEnvelope, href: "mailto:brunovontor@gmail.com", label: "brunovontor@gmail.com" }, + { Icon: FaTeamspeak, href: undefined, label: "teamspeak.vontor.cz:4926" }, +]; + +const SERVICES = [ + { Icon: FaGlobe, href: "/services/web", label: "Weby" }, + { Icon: FaClapperboard, href: "/services/film", label: "Filmařina" }, + { Icon: GiAutoRepair, href: "/services/drone", label: "Servis dronu" }, +]; + +const fade = { + initial: { opacity: 0, y: 24 }, + animate: { opacity: 1, y: 0, transition: { duration: 0.6, ease: "easeOut" } }, +}; export default function Footer() { return ( -