This commit is contained in:
2026-05-04 13:19:39 +02:00
parent f5184be676
commit bf10bc1f4b
5 changed files with 269 additions and 0 deletions
View File
View File
+55
View File
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OpenPlanetsMaps</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="bg-animated"></div>
<header>
<div class="menu-icon" onclick="toggleSidebar()"></div>
<h1>Title</h1>
<button class="help-btn">?</button>
</header>
<nav id="sidebar" class="sidebar">
<ul>
<li onclick="showLayer('home')">Accueil</li>
<li onclick="showLayer('theme')">Thème</li>
</ul>
</nav>
<main id="content-area">
<section id="layer-home" class="layer active">
<div class="main-img">IMG/LOGO</div>
<div class="flex-row">
<div class="box">jsp</div>
<div class="box">txt</div>
</div>
<div class="ticker-wrap">
<div class="ticker">Texte qui défile vers la droite...</div>
</div>
<div class="desc-box">TXT desc / Potentiellement un form</div>
</section>
<section id="layer-theme" class="layer">
<div class="search-bar"><input type="text" placeholder="Recherche multi-critères..."></div>
<div class="main-img">IMG THEME (Ptet anim)</div>
<div class="desc-box">DESCR THEME</div>
<div class="ticker-wrap">
<div class="ticker">Autre texte défilant différent...</div>
</div>
<div class="table-container">Tableau dates & data</div>
</section>
</main>
<footer class="site-footer">
&copy; 2026 OpenPlanetsMaps. Libre de droits.
</footer>
<script src="main.js"></script>
</body>
</html>
+16
View File
@@ -0,0 +1,16 @@
function toggleSidebar() {
document.getElementById('sidebar').classList.toggle('open');
}
function showLayer(layerId) {
document.querySelectorAll('.layer').forEach(layer => {
layer.classList.remove('active');
});
document.getElementById('layer-' + layerId).classList.add('active');
toggleSidebar();
}
async function fetchData() {
}
+198
View File
@@ -0,0 +1,198 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
body {
background-color: #f4f5f7;
color: #2c3e50;
display: flex;
flex-direction: column;
min-height: 100vh;
overflow-x: hidden;
}
.bg-animated {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(circle at top right, #ffffff, #f4f5f7);
z-index: -1;
filter: blur(8px);
}
header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
background-color: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(10px);
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.02);
z-index: 10;
}
header h1 {
font-size: 1.5rem;
font-weight: 600;
color: #1a1a1a;
letter-spacing: -0.5px;
}
.menu-icon, .help-btn {
cursor: pointer;
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 0.5rem 1rem;
box-shadow: 0 2px 4px rgba(0,0,0,0.02);
transition: all 0.2s ease;
font-size: 1rem;
color: #475569;
}
.menu-icon:hover, .help-btn:hover {
background: #f8fafc;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
color: #0f172a;
}
.sidebar {
position: fixed;
top: 0;
left: -320px;
width: 320px;
height: 100vh;
background-color: #ffffff;
box-shadow: 4px 0 15px rgba(0, 0, 0, 0.05);
transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
z-index: 1000;
padding: 2rem 0;
}
.sidebar.open {
left: 0;
}
.sidebar ul {
list-style: none;
}
.sidebar li {
padding: 1rem 2rem;
cursor: pointer;
font-weight: 500;
color: #475569;
transition: background-color 0.2s, color 0.2s;
border-left: 3px solid transparent;
}
.sidebar li:hover {
background-color: #f8fafc;
color: #0f172a;
border-left-color: #3b82f6;
}
#content-area {
flex: 1;
padding: 2rem;
display: flex;
}
.layer {
display: none;
width: 100%;
flex-direction: column;
flex: 1;
text-align: center;
animation: fadeIn 0.4s ease-out;
}
.layer.active {
display: flex;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.main-img {
min-height: 25vh;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.25rem;
color: #94a3b8;
margin-bottom: 2rem;
}
.box, .desc-box, .search-bar, .table-container {
padding: 0.5rem 0;
margin-bottom: 2.5rem;
font-size: 1.05rem;
text-align: center;
}
.flex-row {
display: flex;
gap: 2rem;
margin-bottom: 3.5rem;
}
.flex-row .box {
flex: 1;
margin-bottom: 0;
}
.search-bar input {
width: 100%;
max-width: 500px;
padding: 0.75rem 1rem;
border: 1px solid #cbd5e1;
border-radius: 6px;
outline: none;
font-size: 0.95rem;
text-align: center;
transition: border-color 0.2s;
}
.search-bar input:focus {
border-color: #3b82f6;
}
.ticker-wrap {
width: 100%;
overflow: hidden;
color: #475569;
padding: 0.75rem 0;
margin-bottom: 3.5rem;
border-top: 1px solid #e2e8f0;
border-bottom: 1px solid #e2e8f0;
}
.ticker {
display: inline-block;
white-space: nowrap;
animation: marquee 15s linear infinite;
font-weight: 500;
}
@keyframes marquee {
0% { transform: translateX(100%); }
100% { transform: translateX(-100%); }
}
.site-footer {
text-align: center;
padding: 1.5rem;
background-color: #ffffff;
color: #94a3b8;
font-size: 0.85rem;
border-top: 1px solid #f1f5f9;
margin-top: auto;
}