index html et css pour page principale
This commit is contained in:
@@ -1,3 +1,342 @@
|
||||
body{
|
||||
background-color: bisque;
|
||||
}
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #fff;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.dark {
|
||||
background-color: #1e1e1e;
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
.dark header {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.dark .left-column,
|
||||
.dark .right-column {
|
||||
background-color: #2d2d2d;
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
.dark .center-column {
|
||||
background-color: #252525;
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
.dark .trello,
|
||||
.dark .planning,
|
||||
.dark .user-info {
|
||||
background: #333;
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
.dark .dropdown-content,
|
||||
.dark .nested-content {
|
||||
background-color: #333;
|
||||
color: #f5f5f5;
|
||||
border: 1px solid #555;
|
||||
}
|
||||
|
||||
.dark .dropdown-content a,
|
||||
.dark .nested-content a {
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
.dark .dropdown-content a:hover,
|
||||
.dark .nested-content a:hover {
|
||||
background-color: #444;
|
||||
}
|
||||
|
||||
#toggle-darkmode {
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
padding: 0.5rem;
|
||||
border-radius: 50%;
|
||||
border: none;
|
||||
background-color: #444;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 1rem;
|
||||
background-color: #222;
|
||||
color: white;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-link a, .nav-link span {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
margin: 0 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Menu Contacter */
|
||||
.nav-link.dropdown {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.dropdown-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
color: #333;
|
||||
min-width: 200px;
|
||||
padding: 0.5rem;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.2);
|
||||
border-radius: 5px;
|
||||
z-index: 10;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
margin-top: 5px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.dropdown-content.show {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.dropdown-content a {
|
||||
color: #333;
|
||||
padding: 8px 12px;
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.dropdown-content a:hover {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
/* Sous-menus */
|
||||
.nested-dropdown {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nested-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 100%;
|
||||
top: 0;
|
||||
background-color: white;
|
||||
min-width: 160px;
|
||||
border-radius: 5px;
|
||||
z-index: 20;
|
||||
margin-left: 5px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.nested-content.show {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.expandable::after {
|
||||
content: " ▼";
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
.notification {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.notification .notification-dropdown {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 100%;
|
||||
background-color: white;
|
||||
color: black;
|
||||
min-width: 200px;
|
||||
padding: 0.5rem;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.2);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.notification.active .notification-dropdown {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.profile-menu {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.profile-dropdown {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 100%;
|
||||
background-color: white;
|
||||
color: black;
|
||||
min-width: 160px;
|
||||
padding: 0.5rem;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.2);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.profile-menu.active .profile-dropdown {
|
||||
display: block;
|
||||
}
|
||||
|
||||
main {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: calc(100vh - 60px);
|
||||
}
|
||||
|
||||
.left-column {
|
||||
width: 20%;
|
||||
padding: 1rem;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
.center-column {
|
||||
width: 60%;
|
||||
padding: 2rem;
|
||||
background-color: #ffffff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.right-column {
|
||||
width: 20%;
|
||||
padding: 1rem;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
.main-title {
|
||||
text-align: center;
|
||||
margin-bottom: 2rem;
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
.trello {
|
||||
background: #ddd;
|
||||
border-radius: 10px;
|
||||
padding: 2rem;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.planning, .user-info {
|
||||
background: #ddd;
|
||||
border-radius: 10px;
|
||||
padding: 1rem;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* Modal de contact */
|
||||
.modal {
|
||||
display: none;
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0,0,0,0.7);
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background-color: #fefefe;
|
||||
margin: 10% auto;
|
||||
padding: 20px;
|
||||
border-radius: 10px;
|
||||
width: 80%;
|
||||
max-width: 500px;
|
||||
}
|
||||
|
||||
.dark .modal-content {
|
||||
background-color: #333;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.close-modal {
|
||||
color: #aaa;
|
||||
float: right;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.close-modal:hover {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.dark .close-modal:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.modal-content textarea {
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
margin: 15px 0;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid #ddd;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
.dark .modal-content textarea {
|
||||
background-color: #444;
|
||||
color: white;
|
||||
border-color: #555;
|
||||
}
|
||||
|
||||
.modal-buttons {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.btn-cancel {
|
||||
background-color: #ff4444 !important;
|
||||
padding: 8px 20px;
|
||||
}
|
||||
|
||||
.btn-send {
|
||||
background-color: #4CAF50 !important;
|
||||
padding: 8px 20px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
main {
|
||||
flex-direction: column;
|
||||
}
|
||||
.left-column, .center-column, .right-column {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
header {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.dropdown-content,
|
||||
.nested-content {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
margin: 20% auto;
|
||||
width: 90%;
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,168 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>HUB Nexium - Interface Web</title>
|
||||
<link rel="stylesheet" href="../../assets/css/index.css">
|
||||
</head>
|
||||
<body>
|
||||
Hello World!
|
||||
<h1>Welcome to the GestHub Web Interface</h1>
|
||||
|
||||
<button id="toggle-darkmode">🌓</button>
|
||||
|
||||
<header>
|
||||
<div class="notification">
|
||||
<span class="bell">🔔</span>
|
||||
<div class="notification-dropdown">
|
||||
<p>📌 Rendu le 03.02.2026</p>
|
||||
<p>📝 Nouvelle tâche ajoutée</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="nav-link">
|
||||
<a href="https://discord.com" target="_blank">Accéder au serveur Discord</a>
|
||||
</div>
|
||||
|
||||
<div class="nav-link dropdown">
|
||||
<span>Contacter</span>
|
||||
<div class="dropdown-content">
|
||||
<a href="#" class="contact-option" data-role="LEAD HUB">LEAD HUB</a>
|
||||
<a href="#" class="contact-option" data-role="CO LEAD HUB">CO LEAD HUB</a>
|
||||
<div class="nested-dropdown">
|
||||
<a href="#" class="contact-option expandable">CHEF PROJET ▼</a>
|
||||
<div class="nested-content">
|
||||
<a href="#" class="contact-option" data-role="Y. Conception">Y. Conception</a>
|
||||
<a href="#" class="contact-option" data-role="Y.Comm">Y.Comm</a>
|
||||
<a href="#" class="contact-option" data-role="Y.dev">Y.dev</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="profile-menu">
|
||||
<span id="profile-name">LAJUS Erika ⌄</span>
|
||||
<div class="profile-dropdown">
|
||||
<p>Mon profil</p>
|
||||
<button>Déconnexion</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- contact -->
|
||||
<div id="contactModal" class="modal">
|
||||
<div class="modal-content">
|
||||
<span class="close-modal">×</span>
|
||||
<h3 id="modal-recipient">Envoyer un message à <span id="recipient-name"></span></h3>
|
||||
<textarea id="message-content" placeholder="Écrivez votre message ici..."></textarea>
|
||||
<div class="modal-buttons">
|
||||
<button id="cancel-message" class="btn-cancel">Annuler</button>
|
||||
<button id="send-message" class="btn-send">Envoyer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<main>
|
||||
<!-- clonne gauche pr widget planning -->
|
||||
<aside class="left-column">
|
||||
<div class="planning">Planning / Agenda</div>
|
||||
</aside>
|
||||
|
||||
<!-- Centre pr widget trello -->
|
||||
<section class="center-column">
|
||||
<h1 class="main-title">HUB Nexium</h1>
|
||||
<div class="trello">Zone Trello</div>
|
||||
</section>
|
||||
|
||||
<!-- colonne droite pr partie info user je vais changer ca dans cet emplacement
|
||||
je vais metrre des boutons et autres features comme des doc etc ou jsp
|
||||
je m en occupe -->
|
||||
<aside class="right-column">
|
||||
<div class="user-info">Infos utilisateur</div>
|
||||
</aside>
|
||||
</main>
|
||||
<script>
|
||||
// mode dark pour les gens qui ne sortent pas de chez eux voir la lumiere du jours
|
||||
document.getElementById("toggle-darkmode").onclick = () => {
|
||||
document.body.classList.toggle("dark");
|
||||
};
|
||||
|
||||
// profil
|
||||
document.querySelector(".profile-menu").addEventListener("click", (e) => {
|
||||
e.stopPropagation();
|
||||
document.querySelector(".profile-menu").classList.toggle("active");
|
||||
});
|
||||
|
||||
// notif
|
||||
document.querySelector(".notification").addEventListener("click", (e) => {
|
||||
e.stopPropagation();
|
||||
document.querySelector(".notification").classList.toggle("active");
|
||||
});
|
||||
|
||||
// ssyteme contact
|
||||
const contactOptions = document.querySelectorAll('.contact-option:not(.expandable)');
|
||||
const contactModal = document.getElementById('contactModal');
|
||||
const recipientName = document.getElementById('recipient-name');
|
||||
const cancelBtn = document.getElementById('cancel-message');
|
||||
const sendBtn = document.getElementById('send-message');
|
||||
const dropdown = document.querySelector('.dropdown');
|
||||
const nestedDropdowns = document.querySelectorAll('.nested-dropdown');
|
||||
|
||||
//menu princ
|
||||
dropdown.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
const content = dropdown.querySelector('.dropdown-content');
|
||||
content.style.display = content.style.display === 'block' ? 'none' : 'block';
|
||||
});
|
||||
|
||||
// Gestion des sous-menus
|
||||
nestedDropdowns.forEach(dropdown => {
|
||||
dropdown.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
const nestedContent = dropdown.querySelector('.nested-content');
|
||||
nestedContent.style.display = nestedContent.style.display === 'block' ? 'none' : 'block';
|
||||
});
|
||||
});
|
||||
|
||||
// Fermer les menus quand on clique ailleurs
|
||||
document.addEventListener('click', () => {
|
||||
document.querySelector('.dropdown-content').style.display = 'none';
|
||||
document.querySelectorAll('.nested-content').forEach(el => {
|
||||
el.style.display = 'none';
|
||||
});
|
||||
});
|
||||
|
||||
contactOptions.forEach(option => {
|
||||
option.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
if (option.dataset.role) {
|
||||
recipientName.textContent = option.dataset.role;
|
||||
contactModal.style.display = 'block';
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelector('.close-modal').addEventListener('click', () => {
|
||||
contactModal.style.display = 'none';
|
||||
});
|
||||
|
||||
cancelBtn.addEventListener('click', () => {
|
||||
contactModal.style.display = 'none';
|
||||
});
|
||||
|
||||
sendBtn.addEventListener('click', () => {
|
||||
const message = document.getElementById('message-content').value;
|
||||
if (message.trim() !== '') {
|
||||
contactModal.style.display = 'none';
|
||||
document.getElementById('message-content').value = '';
|
||||
}
|
||||
});
|
||||
|
||||
// Fermer la modale si on clique en dehors
|
||||
window.addEventListener('click', (e) => {
|
||||
if (e.target === contactModal) {
|
||||
contactModal.style.display = 'none';
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user