84 lines
4.2 KiB
TypeScript
84 lines
4.2 KiB
TypeScript
import React from 'react';
|
||
import { URLS, SITE_CONFIG } from '../../config/constants';
|
||
|
||
export const Footer: React.FC = () => (
|
||
<footer className="bg-banquise-blue-dark/95 backdrop-blur-sm text-white py-8 px-4 sm:px-6 md:px-8 relative z-10 border-t border-banquise-blue-lightest/10 w-full box-border">
|
||
<div className="max-w-6xl mx-auto">
|
||
{/* Main Footer Content */}
|
||
<div className="flex flex-col md:flex-row justify-between items-center gap-6 mb-6">
|
||
{/* Logo/Brand */}
|
||
<div className="flex items-center gap-3">
|
||
<div className="w-8 h-8 bg-gradient-to-br from-banquise-blue-light to-banquise-blue rounded-lg flex items-center justify-center">
|
||
<span className="text-white font-bold text-sm">B</span>
|
||
</div>
|
||
<span className="text-banquise-blue-lightest font-semibold text-lg">
|
||
{SITE_CONFIG.name}
|
||
</span>
|
||
</div>
|
||
|
||
{/* Quick Links */}
|
||
<div className="flex flex-wrap items-center gap-6 text-sm">
|
||
<a
|
||
href={URLS.services.wiki}
|
||
className="text-banquise-gray/80 hover:text-banquise-blue-lightest transition-colors duration-200"
|
||
>
|
||
Wiki
|
||
</a>
|
||
<a
|
||
href={URLS.services.gitea}
|
||
className="text-banquise-gray/80 hover:text-banquise-blue-lightest transition-colors duration-200"
|
||
>
|
||
Gitea
|
||
</a>
|
||
<a
|
||
href={URLS.services.panel}
|
||
className="text-banquise-gray/80 hover:text-banquise-blue-lightest transition-colors duration-200"
|
||
>
|
||
Panel
|
||
</a>
|
||
<a
|
||
href={URLS.services.opencloud}
|
||
className="text-banquise-gray/80 hover:text-banquise-blue-lightest transition-colors duration-200"
|
||
>
|
||
OpenCloud
|
||
</a>
|
||
</div>
|
||
|
||
{/* Social Links */}
|
||
<div className="flex items-center gap-4">
|
||
<a
|
||
href={URLS.social.discord}
|
||
className="w-10 h-10 bg-banquise-blue/20 hover:bg-banquise-blue/30 rounded-full flex items-center justify-center transition-all duration-200 hover:scale-110"
|
||
aria-label="Discord"
|
||
>
|
||
<span className="text-banquise-blue-lightest text-sm">
|
||
<svg className="w-4 h-4 lg:w-5 lg:h-5" fill="currentColor" viewBox="0 0 24 24">
|
||
<path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.211.375-.445.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03z"/>
|
||
</svg>
|
||
</span>
|
||
</a>
|
||
<a
|
||
href={URLS.contact.email}
|
||
className="w-10 h-10 bg-banquise-blue/20 hover:bg-banquise-blue/30 rounded-full flex items-center justify-center transition-all duration-200 hover:scale-110"
|
||
aria-label="Email"
|
||
>
|
||
<span className="text-banquise-blue-lightest text-sm">📧</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Bottom Bar */}
|
||
<div className="flex flex-col sm:flex-row justify-between items-center gap-4 pt-6 border-t border-banquise-blue-lightest/5">
|
||
<p className="text-banquise-gray/60 text-xs text-center sm:text-left">
|
||
© 2025 {SITE_CONFIG.name}. Hébergement communautaire pour développeurs et gamers.
|
||
</p>
|
||
<div className="flex items-center gap-4 text-xs text-banquise-gray/60">
|
||
<span>Fait avec ❤️ par Banquise</span>
|
||
<div className="w-1 h-1 bg-banquise-gray/40 rounded-full"></div>
|
||
<span>EPITA 2025</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
);
|