diff --git a/src/App.tsx b/src/App.tsx index 7da2861..6b501c0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -10,6 +10,7 @@ import Home from './pages/home/Home'; import NotFound from './pages/404/404'; import Partenaires from './pages/partenaires/Partenaires'; import Projets from './pages/projets/Projets'; +import Contact from './pages/contact/Contact'; const App: React.FC = () => { @@ -21,6 +22,7 @@ const App: React.FC = () => { } /> } /> } /> + } /> } /> diff --git a/src/assets/isen_group_photo.png b/src/assets/isen_group_photo.png new file mode 100644 index 0000000..e3810d9 Binary files /dev/null and b/src/assets/isen_group_photo.png differ diff --git a/src/components/contact/contact.css b/src/components/contact/contact.css new file mode 100644 index 0000000..e1b18ff --- /dev/null +++ b/src/components/contact/contact.css @@ -0,0 +1,62 @@ +.contact-list { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 3em; +} +.contact { + padding: 2em; + background: var(--white); + box-shadow: var(--shadow); + border-radius: 15px; + width: 300px; + display: flex; + flex-direction: column; + justify-content: space-between; + text-decoration: none; + gap: 3em; + transition-duration: .3s; +} +.contact:hover { + scale: 1.05; +} +.contact-icon { + font-size: 20px; +} +.contact-title { + font-size: 18px; + font-weight: 600; +} +.contact-description { + font-size: 14px; + color: var(--darkGray); +} +.contact-link { + margin-top: 2em; + padding: 0.5em 1em; + background: var(--black); + color: var(--white); + border-radius: 999px; + width: fit-content; + font-size: 12px; + font-weight: 500; + text-transform: uppercase; + position: relative; + overflow: hidden; + z-index: 1; +} +.contact-link::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 0; + height: 100%; + background: var(--main); + transition-duration: .3s; + z-index: -1; + border-radius: 999px; +} +.contact:hover .contact-link::before { + width: 100%; +} \ No newline at end of file diff --git a/src/components/contact/contact.tsx b/src/components/contact/contact.tsx new file mode 100644 index 0000000..1b40e4e --- /dev/null +++ b/src/components/contact/contact.tsx @@ -0,0 +1,39 @@ +import React from "react"; + +import './contact.css'; + +interface ContactProps { + Icon: React.ElementType; + title: string; + description: string; + link: { + location: string; + text: string; + }; + alt?: string; +} + +interface ContactListProps { + contacts: ContactProps[]; +} + +const Contact: React.FC = ({ Icon, title, description, link }) => { + return ( + +
+

{title}

+

{description}

+

{link.text}

+
+
) +} + +export const ContactList: React.FC = ({ contacts }) => { + return ( +
+ {contacts.map((contact, index) => ( + + ))} +
+ ); +} \ No newline at end of file diff --git a/src/pages/contact/Contact.tsx b/src/pages/contact/Contact.tsx new file mode 100644 index 0000000..128a483 --- /dev/null +++ b/src/pages/contact/Contact.tsx @@ -0,0 +1,55 @@ +import React from 'react'; + +import { Github, Youtube, Instagram, Handbag, MapPin, ChatBubbleEmpty } from 'iconoir-react'; +import { SocialNetworkList } from '../../components/socialnetwork/socialnetwork.tsx'; + +import { ContactList } from '../../components/contact/contact.tsx'; +import { Banner } from '../../components/banner/banner.tsx'; + +import isen_group_photo from '../../assets/isen_group_photo.png'; + +const Contact: React.FC = () => { + return ( + <> +

Nous Contacter

+ + + Vous avez une question vis-à-vis de notre club ou de l'un de nos projets ? N'hésitez pas à nous contacter via l'une des méthode ci-dessus, nous serons ravis de vous répondre. + +

Nos Réseaux

+ + + ); +}; + +export default Contact;