diff --git a/la-banquise/.dockerignore b/la-banquise/.dockerignore
deleted file mode 100644
index 9b8d514..0000000
--- a/la-banquise/.dockerignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.react-router
-build
-node_modules
-README.md
\ No newline at end of file
diff --git a/la-banquise/.gitignore b/la-banquise/.gitignore
deleted file mode 100644
index 9b7c041..0000000
--- a/la-banquise/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.DS_Store
-/node_modules/
-
-# React Router
-/.react-router/
-/build/
diff --git a/la-banquise/Dockerfile b/la-banquise/Dockerfile
deleted file mode 100644
index 207bf93..0000000
--- a/la-banquise/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-FROM node:20-alpine AS development-dependencies-env
-COPY . /app
-WORKDIR /app
-RUN npm ci
-
-FROM node:20-alpine AS production-dependencies-env
-COPY ./package.json package-lock.json /app/
-WORKDIR /app
-RUN npm ci --omit=dev
-
-FROM node:20-alpine AS build-env
-COPY . /app/
-COPY --from=development-dependencies-env /app/node_modules /app/node_modules
-WORKDIR /app
-RUN npm run build
-
-FROM node:20-alpine
-COPY ./package.json package-lock.json /app/
-COPY --from=production-dependencies-env /app/node_modules /app/node_modules
-COPY --from=build-env /app/build /app/build
-WORKDIR /app
-CMD ["npm", "run", "start"]
\ No newline at end of file
diff --git a/la-banquise/README.md b/la-banquise/README.md
deleted file mode 100644
index 5c4780a..0000000
--- a/la-banquise/README.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# Welcome to React Router!
-
-A modern, production-ready template for building full-stack React applications using React Router.
-
-[](https://stackblitz.com/github/remix-run/react-router-templates/tree/main/default)
-
-## Features
-
-- 🚀 Server-side rendering
-- ⚡️ Hot Module Replacement (HMR)
-- 📦 Asset bundling and optimization
-- 🔄 Data loading and mutations
-- đź”’ TypeScript by default
-- 🎉 TailwindCSS for styling
-- đź“– [React Router docs](https://reactrouter.com/)
-
-## Getting Started
-
-### Installation
-
-Install the dependencies:
-
-```bash
-npm install
-```
-
-### Development
-
-Start the development server with HMR:
-
-```bash
-npm run dev
-```
-
-Your application will be available at `http://localhost:5173`.
-
-## Building for Production
-
-Create a production build:
-
-```bash
-npm run build
-```
-
-## Deployment
-
-### Docker Deployment
-
-To build and run using Docker:
-
-```bash
-docker build -t my-app .
-
-# Run the container
-docker run -p 3000:3000 my-app
-```
-
-The containerized application can be deployed to any platform that supports Docker, including:
-
-- AWS ECS
-- Google Cloud Run
-- Azure Container Apps
-- Digital Ocean App Platform
-- Fly.io
-- Railway
-
-### DIY Deployment
-
-If you're familiar with deploying Node applications, the built-in app server is production-ready.
-
-Make sure to deploy the output of `npm run build`
-
-```
-├── package.json
-├── package-lock.json (or pnpm-lock.yaml, or bun.lockb)
-├── build/
-│ ├── client/ # Static assets
-│ └── server/ # Server-side code
-```
-
-## Styling
-
-This template comes with [Tailwind CSS](https://tailwindcss.com/) already configured for a simple default starting experience. You can use whatever CSS framework you prefer.
-
----
-
-Built with ❤️ using React Router.
diff --git a/la-banquise/app/app.css b/la-banquise/app/app.css
deleted file mode 100644
index 99345d8..0000000
--- a/la-banquise/app/app.css
+++ /dev/null
@@ -1,15 +0,0 @@
-@import "tailwindcss";
-
-@theme {
- --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif,
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-}
-
-html,
-body {
- @apply bg-white dark:bg-gray-950;
-
- @media (prefers-color-scheme: dark) {
- color-scheme: dark;
- }
-}
diff --git a/la-banquise/app/root.tsx b/la-banquise/app/root.tsx
deleted file mode 100644
index 9fc6636..0000000
--- a/la-banquise/app/root.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import {
- isRouteErrorResponse,
- Links,
- Meta,
- Outlet,
- Scripts,
- ScrollRestoration,
-} from "react-router";
-
-import type { Route } from "./+types/root";
-import "./app.css";
-
-export const links: Route.LinksFunction = () => [
- { rel: "preconnect", href: "https://fonts.googleapis.com" },
- {
- rel: "preconnect",
- href: "https://fonts.gstatic.com",
- crossOrigin: "anonymous",
- },
- {
- rel: "stylesheet",
- href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap",
- },
-];
-
-export function Layout({ children }: { children: React.ReactNode }) {
- return (
-
-
-
-
-
-
-
-
- {children}
-
-
-
-
- );
-}
-
-export default function App() {
- return ;
-}
-
-export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) {
- let message = "Oops!";
- let details = "An unexpected error occurred.";
- let stack: string | undefined;
-
- if (isRouteErrorResponse(error)) {
- message = error.status === 404 ? "404" : "Error";
- details =
- error.status === 404
- ? "The requested page could not be found."
- : error.statusText || details;
- } else if (import.meta.env.DEV && error && error instanceof Error) {
- details = error.message;
- stack = error.stack;
- }
-
- return (
-
- {message}
- {details}
- {stack && (
-
- {stack}
-
- )}
-
- );
-}
diff --git a/la-banquise/app/routes.ts b/la-banquise/app/routes.ts
deleted file mode 100644
index 102b402..0000000
--- a/la-banquise/app/routes.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { type RouteConfig, index } from "@react-router/dev/routes";
-
-export default [index("routes/home.tsx")] satisfies RouteConfig;
diff --git a/la-banquise/app/routes/home.tsx b/la-banquise/app/routes/home.tsx
deleted file mode 100644
index 398e47c..0000000
--- a/la-banquise/app/routes/home.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import type { Route } from "./+types/home";
-import { Welcome } from "../welcome/welcome";
-
-export function meta({}: Route.MetaArgs) {
- return [
- { title: "New React Router App" },
- { name: "description", content: "Welcome to React Router!" },
- ];
-}
-
-export default function Home() {
- return ;
-}
diff --git a/la-banquise/app/welcome/logo-dark.svg b/la-banquise/app/welcome/logo-dark.svg
deleted file mode 100644
index dd82028..0000000
--- a/la-banquise/app/welcome/logo-dark.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
diff --git a/la-banquise/app/welcome/logo-light.svg b/la-banquise/app/welcome/logo-light.svg
deleted file mode 100644
index 7328492..0000000
--- a/la-banquise/app/welcome/logo-light.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
diff --git a/la-banquise/app/welcome/welcome.tsx b/la-banquise/app/welcome/welcome.tsx
deleted file mode 100644
index 8ac6e1d..0000000
--- a/la-banquise/app/welcome/welcome.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-import logoDark from "./logo-dark.svg";
-import logoLight from "./logo-light.svg";
-
-export function Welcome() {
- return (
-
-
-
-
-

-

-
-
-
-
-
-
-
- );
-}
-
-const resources = [
- {
- href: "https://reactrouter.com/docs",
- text: "React Router Docs",
- icon: (
-
- ),
- },
- {
- href: "https://rmx.as/discord",
- text: "Join Discord",
- icon: (
-
- ),
- },
-];
diff --git a/la-banquise/index.html b/la-banquise/index.html
index 7dedc4b..14296bd 100644
--- a/la-banquise/index.html
+++ b/la-banquise/index.html
@@ -1,13 +1,53 @@
-
-
-
-
-
- La Banquise
-
-
-
-
-
-
-
+
+
+
+
+
+ La Banquise
+
+
+
+ La Banquise
+
+
+
+
+
+
+
+
diff --git a/la-banquise/package.json b/la-banquise/package.json
deleted file mode 100644
index e730048..0000000
--- a/la-banquise/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "la-banquise",
- "version": "1.0.0",
- "scripts": {
- "dev": "vite",
- "build": "vite build",
- "preview": "vite preview"
- },
- "dependencies": {
- "@vitejs/plugin-react": "^4.3.4",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "react-router-dom": "^7.5.0"
- },
- "devDependencies": {
- "@vitejs/plugin-react": "^4.3.4",
- "autoprefixer": "^10.4.12",
- "postcss": "^8.4.18",
- "tailwindcss": "^3.2.0",
- "vite": "^4.0.0",
- "vite-plugin-pages": "^0.33.0"
- }
-}
diff --git a/la-banquise/postcss.config.js b/la-banquise/postcss.config.js
deleted file mode 100644
index 1d5ee78..0000000
--- a/la-banquise/postcss.config.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
- plugins: {
- tailwindcss: {},
- autoprefixer: {}
- }
-}
-
diff --git a/la-banquise/public/favicon.ico b/la-banquise/public/favicon.ico
deleted file mode 100644
index 5dbdfcd..0000000
Binary files a/la-banquise/public/favicon.ico and /dev/null differ
diff --git a/la-banquise/react-router.config.ts b/la-banquise/react-router.config.ts
deleted file mode 100644
index 6ff16f9..0000000
--- a/la-banquise/react-router.config.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { Config } from "@react-router/dev/config";
-
-export default {
- // Config options...
- // Server-side render by default, to enable SPA mode set this to `false`
- ssr: true,
-} satisfies Config;
diff --git a/la-banquise/script.js b/la-banquise/script.js
new file mode 100644
index 0000000..7988949
--- /dev/null
+++ b/la-banquise/script.js
@@ -0,0 +1,15 @@
+const tile = document.querySelectorAll("a")[0];
+const parent = tile.parentNode;
+tile.remove();
+
+const tiles = [
+ { name: "Notre wiki", href: "https://wiki.la-banquise.fr" },
+ { name: "Notre git", href: "https://git.la-banquise.fr" },
+]
+
+tiles.forEach((info) => {
+ const newTile = tile.cloneNode(true);
+ newTile.querySelectorAll("p")[0].innerHTML = info.name;
+ newTile.href = info.href;
+ parent.appendChild(newTile);
+});
diff --git a/la-banquise/src/App.css b/la-banquise/src/App.css
deleted file mode 100644
index c1506c7..0000000
--- a/la-banquise/src/App.css
+++ /dev/null
@@ -1,5 +0,0 @@
-body {
- background: linear-gradient(#002244, #004466);
- overflow: hidden;
-}
-
diff --git a/la-banquise/src/App.jsx b/la-banquise/src/App.jsx
deleted file mode 100644
index 57f9482..0000000
--- a/la-banquise/src/App.jsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import Iceberg from './components/Iceberg';
-
-const icebergsData = [
- { href: '/service1', top: '20%', left: '10%' },
- { href: '/service2', top: '40%', left: '70%' },
- { href: '/service3', top: '60%', left: '30%' },
- { href: '/service4', top: '75%', left: '55%' },
-];
-
-function App() {
- return (
-
- {icebergsData.map((iceberg, index) => (
-
- ))}
-
- );
-}
-
-export default App;
-
diff --git a/la-banquise/src/components/Iceberg.jsx b/la-banquise/src/components/Iceberg.jsx
deleted file mode 100644
index c10f97f..0000000
--- a/la-banquise/src/components/Iceberg.jsx
+++ /dev/null
@@ -1,28 +0,0 @@
-const Iceberg = ({ href, style }) => {
- return (
-
-
-
- );
-};
-
-export default Iceberg;
-
diff --git a/la-banquise/src/index.css b/la-banquise/src/index.css
deleted file mode 100644
index de147e5..0000000
--- a/la-banquise/src/index.css
+++ /dev/null
@@ -1,12 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-/* Fond océan pour l'ensemble du site */
-body {
- background: linear-gradient(180deg, #1e3c72, #2a5298);
- min-height: 100vh;
- margin: 0;
- font-family: Arial, sans-serif;
-}
-
diff --git a/la-banquise/src/index.html b/la-banquise/src/index.html
deleted file mode 100644
index de58d31..0000000
--- a/la-banquise/src/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-/* Fond océan pour l'ensemble du site */
-body {
- background: linear-gradient(180deg, #1e3c72, #2a5298);
- min-height: 100vh;
- margin: 0;
- font-family: 'Arial', sans-serif;
-}
-
diff --git a/la-banquise/src/main.jsx b/la-banquise/src/main.jsx
deleted file mode 100644
index 7ce3ed0..0000000
--- a/la-banquise/src/main.jsx
+++ /dev/null
@@ -1,15 +0,0 @@
-// src/main.jsx
-import React from 'react';
-import ReactDOM from 'react-dom/client';
-import { BrowserRouter } from 'react-router-dom';
-import App from './App';
-import './index.css';
-
-ReactDOM.createRoot(document.getElementById('root')).render(
-
-
-
-
-
-);
-
diff --git a/la-banquise/style.css b/la-banquise/style.css
new file mode 100644
index 0000000..c845a58
--- /dev/null
+++ b/la-banquise/style.css
@@ -0,0 +1,125 @@
+@import url('https://fonts.googleapis.com/css2?family=League+Spartan:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap');
+
+/* Réinitialisation et styles généraux */
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: Roboto, sans-serif;
+}
+body {
+ margin: 0;
+ padding: 30px;
+ min-height: 100vh;
+ background: linear-gradient(45deg, #001e6c, #5dadc2, #001e6c);
+ background-size: 400% 400%;
+ animation: gradient 100s ease infinite;
+}
+@keyframes gradient {
+ 0% { background-position: 0% 50%; }
+ 50% { background-position: 100% 50%; }
+ 100% { background-position: 0% 50%; }
+}
+/* Exemple de contenu */
+.content {
+ color: #fff;
+ text-align: center;
+ padding-top: 20vh;
+}
+
+h1 {
+ display: flex;
+ justify-content: center;
+}
+
+/* Style de la vague en bas de page */
+.wave {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ overflow: hidden;
+ line-height: 0;
+}
+.wave svg {
+ position: relative;
+ display: block;
+ width: calc(100% + 1.3px);
+ height: 150px;
+}
+.wave .shape-fill {
+ fill: rgba(255,255,255,0.2);
+}
+.title {
+ font-size: 2.5rem;
+ margin-bottom: 2rem;
+}
+
+/* En-tĂŞte du site */
+header {
+ text-align: center;
+ color: #fff;
+ padding: 1rem;
+}
+
+/* Container en flexbox pour agencer les éléments dans une "grid" */
+.grid-container {
+ flex: 1;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-items: stretch;
+ gap: 20px;
+ padding: 1rem;
+}
+
+/* Chaque élément de la grid */
+.grid-item {
+ background: rgba(255,255,255,0);
+ padding: 2px;
+ border-radius: 8px;
+ color: #fff;
+ text-align: center;
+ /* Permet de s'étendre sur au moins 300px et de grandir si besoin */
+ flex: 0 1 calc(10% - 40px); /* 3 items par ligne avec 20px de gap */
+ max-width: calc(10% - 40px);
+ box-shadow: 0 4px 6px rgba(0,0,0,0);
+ transition: transform 0.3s;
+}
+
+.grid-item:hover {
+ transform: scale(1.05);
+ background: rgba(255,255,255,0.1);
+ box-shadow: 0 4px 6px rgba(0,0,0,0.2);
+}
+
+.grid-item img,
+.grid-item svg {
+ max-width: 100%;
+ height: auto;
+ display: block;
+ margin: 0 auto 10px;
+ /* Pour donner une vue isométrique */
+ transform: rotateX(0deg) rotateZ(0deg);
+ transform-origin: center;
+}
+
+.grid-item p {
+ font-size: 1.5rem;
+ margin-top: 0rem;
+ font-weight: bold;
+}
+
+@media (max-width: 900px) {
+ .grid-item {
+ flex: 0 1 calc(25% - 40px);
+ max-width: calc(25% - 40px);
+ }
+}
+
+@media (max-width: 600px) {
+ .grid-item {
+ flex: 0 1 calc(50% - 40px);
+ max-width: calc(50% - 40px);
+ }
+}
diff --git a/la-banquise/tailwind.config.js b/la-banquise/tailwind.config.js
deleted file mode 100644
index f8262f8..0000000
--- a/la-banquise/tailwind.config.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- content: [
- "./index.html",
- "./src/**/*.{js,jsx}"
- ],
- theme: {
- extend: {
- keyframes: {
- float: {
- '0%, 100%': { transform: 'translateY(0)' },
- '50%': { transform: 'translateY(-10px)' },
- },
- },
- animation: {
- float: 'float 4s ease-in-out infinite',
- },
- },
- },
- plugins: [],
-}
-
diff --git a/la-banquise/tsconfig.json b/la-banquise/tsconfig.json
deleted file mode 100644
index dc391a4..0000000
--- a/la-banquise/tsconfig.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "include": [
- "**/*",
- "**/.server/**/*",
- "**/.client/**/*",
- ".react-router/types/**/*"
- ],
- "compilerOptions": {
- "lib": ["DOM", "DOM.Iterable", "ES2022"],
- "types": ["node", "vite/client"],
- "target": "ES2022",
- "module": "ES2022",
- "moduleResolution": "bundler",
- "jsx": "react-jsx",
- "rootDirs": [".", "./.react-router/types"],
- "baseUrl": ".",
- "paths": {
- "~/*": ["./app/*"]
- },
- "esModuleInterop": true,
- "verbatimModuleSyntax": true,
- "noEmit": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "strict": true
- }
-}
diff --git a/la-banquise/vite.config.ts b/la-banquise/vite.config.ts
deleted file mode 100644
index 0087b50..0000000
--- a/la-banquise/vite.config.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { defineConfig } from 'vite';
-import react from '@vitejs/plugin-react';
-import Pages from 'vite-plugin-pages';
-
-export default defineConfig({
- plugins: [
- react(),
- // Plugin pour générer automatiquement les routes basées sur les fichiers dans src/pages
- Pages({
- extensions: ['jsx', 'tsx'], // Extensions reconnues pour les pages
- // Vous pouvez ajouter d'autres options ici (path route, etc.)
- })
- ]
-});
-