diff --git a/admin/index.php b/admin/index.php
index 18c2167..2b8687b 100644
--- a/admin/index.php
+++ b/admin/index.php
@@ -31,6 +31,7 @@ $users = Auth::getAllUsers(false);
         <link rel="icon" type="image/png" href="../assets/images/site/favicon.png">
     <?php endif; ?>
     <link rel="stylesheet" href="../assets/css/main.css">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css">
     <style>
         .version-banner {
             position: fixed;
@@ -58,18 +59,31 @@ $users = Auth::getAllUsers(false);
             <?php endif; ?>
             <span>Administration</span>
         </div>
-        <!-- Le bouton hamburger sera inséré par JS -->
         <div class="nav-menu">
-            <a href="../index.php" target="_blank" class="button">Visiter le site</a>
-            <a href="profile.php" class="button">Profil</a>
+            <a href="../index.php" target="_blank" class="button tooltip" data-tooltip="Visiter le site">
+                <i class="fa-solid fa-house"></i>
+            </a>
+            <a href="profile.php" class="button tooltip" data-tooltip="Profil">
+                <i class="fas fa-user"></i>
+            </a>
             <?php if (Auth::isAdmin() || Auth::hasAdminRole()): ?>
-            <a href="users.php" class="button">Utilisateurs</a>
+            <a href="users.php" class="button tooltip" data-tooltip="Utilisateurs">
+                <i class="fas fa-users"></i>
+            </a>
             <?php endif; ?>
-            <a href="story-edit.php" class="button">Nouveau roman</a>
-            <a href="options.php" class="button">Options</a>
-            <a href="export-import.php" class="button">Import/Export</a>
+            <a href="story-edit.php" class="button tooltip" data-tooltip="Nouveau roman">
+                <i class="fa-solid fa-book"></i>
+            </a>
+            <a href="options.php" class="button tooltip" data-tooltip="Options">
+                <i class="fas fa-cog"></i>
+            </a>
+            <a href="export-import.php" class="button tooltip" data-tooltip="Import/Export">
+                <i class="fa-solid fa-upload"></i>
+            </a>
             <form method="POST" action="logout.php" class="logout-form">
-                <button type="submit">Déconnexion</button>
+                <button type="submit" class="tooltip" data-tooltip="Déconnexion">
+                    <i class="fas fa-sign-out-alt"></i>
+                </button>
             </form>
         </div>
     </nav>
@@ -92,11 +106,17 @@ $users = Auth::getAllUsers(false);
                     </p>
                 </div>
                 <div class="story-actions">
-                    <a href="story-edit.php?id=<?= htmlspecialchars($story['id']) ?>" class="button">Modifier</a>
+                    <a href="story-edit.php?id=<?= htmlspecialchars($story['id']) ?>" class="button tooltip" data-tooltip="Modifier">
+                        <i class="fas fa-edit"></i>
+                    </a>
                     <?php if (Auth::isAdmin() || Auth::hasAdminRole()): ?>
-                    <button type="button" class="button manage-access" data-id="<?= htmlspecialchars($story['id']) ?>">Accès</button>
+                    <button type="button" class="button tooltip manage-access" data-tooltip="Accès" data-id="<?= htmlspecialchars($story['id']) ?>">
+                        <i class="fas fa-users-cog"></i>
+                    </button>
                     <?php endif; ?>
-                    <button type="button" class="button delete-story" data-id="<?= htmlspecialchars($story['id']) ?>">Supprimer</button>
+                    <button type="button" class="button tooltip delete-story" data-tooltip="Supprimer" data-id="<?= htmlspecialchars($story['id']) ?>">
+                        <i class="fas fa-trash-alt"></i>
+                    </button>
                 </div>
             </div>
             <?php endforeach; ?>
diff --git a/assets/css/buttons.css b/assets/css/buttons.css
new file mode 100644
index 0000000..4c3d4ad
--- /dev/null
+++ b/assets/css/buttons.css
@@ -0,0 +1,220 @@
+/* buttons.css - Styles pour les boutons, tooltips et menu */
+
+/* Styles pour les boutons avec icônes */
+.button.tooltip,
+.tooltip {
+    position: relative;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 40px;
+    height: 40px;
+    padding: 0;
+    border-radius: var(--radius-sm);
+    transition: var(--transition-fast);
+}
+
+.button.tooltip i,
+.tooltip i {
+    font-size: 1.2rem;
+}
+
+/* Style pour le bouton de déconnexion */
+.logout-form button {
+    width: 40px;
+    height: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: var(--radius-sm);
+    padding: 0;
+    border: 1px solid var(--border-color);
+    background-color: var(--bg-tertiary);
+    color: var(--text-primary);
+    position: relative;
+}
+
+.logout-form button:hover {
+    background-color: var(--error-color);
+}
+
+.logout-form button i {
+    font-size: 1.2rem;
+}
+
+/* Tooltip styles */
+.tooltip::after {
+    content: attr(data-tooltip);
+    position: absolute;
+    bottom: -35px;
+    left: 50%;
+    transform: translateX(-50%);
+    background-color: var(--bg-primary);
+    color: var(--text-primary);
+    padding: 5px 10px;
+    border-radius: var(--radius-sm);
+    font-size: 0.8rem;
+    white-space: nowrap;
+    opacity: 0;
+    visibility: hidden;
+    transition: opacity 0.3s, visibility 0.3s;
+    z-index: 100;
+    pointer-events: none;
+    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
+    border: 1px solid var(--border-color);
+}
+
+.tooltip:hover::after {
+    opacity: 1;
+    visibility: visible;
+}
+
+/* Styles pour le texte à côté des icônes (mobile) */
+.tooltip-text {
+    display: none;
+    margin-left: var(--spacing-md);
+}
+
+/* Menu toggle button */
+.menu-toggle {
+    display: none;
+    background: none;
+    border: none;
+    color: var(--text-primary);
+    font-size: 1.5rem;
+    cursor: pointer;
+    padding: var(--spacing-sm);
+}
+
+/* Styles pour la barre de navigation */
+.admin-nav {
+    position: relative;
+}
+
+.nav-menu {
+    display: flex;
+    gap: var(--spacing-md);
+    justify-content: flex-end;
+}
+
+/* Styles pour les boutons d'action des romans */
+.story-actions {
+    display: flex;
+    gap: var(--spacing-sm);
+}
+
+/* Style spécifique pour le bouton d'édition */
+.story-actions a.button {
+    background-color: var(--accent-primary);
+    color: var(--text-tertiary);
+}
+
+.story-actions a.button:hover {
+    background-color: var(--accent-secondary);
+}
+
+/* Style spécifique pour le bouton d'accès */
+.story-actions .manage-access {
+    background-color: var(--bg-secondary);
+    color: var(--text-primary);
+}
+
+.story-actions .manage-access:hover {
+    background-color: var(--accent-primary);
+    color: var(--text-tertiary);
+}
+
+/* Style spécifique pour le bouton de suppression */
+.story-actions .delete-story {
+    background-color: var(--bg-secondary);
+    color: var(--text-primary);
+}
+
+.story-actions .delete-story:hover {
+    background-color: var(--error-color);
+    color: var(--text-tertiary);
+}
+
+/* Media queries pour le menu mobile */
+@media (max-width: 768px) {
+    .menu-toggle {
+        display: block;
+        position: absolute;
+        right: var(--spacing-md);
+        top: 50%;
+        transform: translateY(-50%);
+        z-index: 101;
+    }
+    
+    .nav-menu {
+        flex-direction: column;
+        position: absolute;
+        top: 100%;
+        right: 0;
+        background-color: var(--bg-secondary);
+        border: 1px solid var(--border-color);
+        border-radius: var(--radius-sm);
+        padding: var(--spacing-md);
+        z-index: 100;
+        width: 200px;
+        gap: var(--spacing-sm);
+        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
+        
+        /* État caché par défaut */
+        opacity: 0;
+        visibility: hidden;
+        transform: translateY(-10px);
+        transition: all var(--transition-fast);
+    }
+    
+    .nav-menu.active {
+        opacity: 1;
+        visibility: visible;
+        transform: translateY(0);
+    }
+    
+    /* Style des boutons en mode mobile */
+    .nav-menu.active .button,
+    .nav-menu.active .logout-form button {
+        width: 100%;
+        justify-content: flex-start;
+        padding: var(--spacing-sm) var(--spacing-md);
+        gap: var(--spacing-md);
+    }
+    
+    /* Afficher le texte des tooltips en mode mobile */
+    .nav-menu.active .tooltip-text {
+        display: inline-block;
+    }
+    
+    /* Cacher les tooltips standards sur mobile */
+    .tooltip::after {
+        display: none;
+    }
+    
+    .logout-form {
+        width: 100%;
+    }
+    
+    /* Afficher le texte des tooltips en mode mobile pour les actions des romans */
+    .story-actions.active .tooltip-text {
+        display: inline-block;
+        margin-left: var(--spacing-sm);
+    }
+    
+    .story-actions.active .button {
+        width: auto;
+        padding: var(--spacing-xs) var(--spacing-sm);
+    }
+}
+
+/* Pour les très petits écrans */
+@media (max-width: 480px) {
+    .story-actions {
+        justify-content: space-between;
+    }
+    
+    .story-actions .button {
+        flex: 1;
+    }
+}
\ No newline at end of file
diff --git a/assets/css/components.css b/assets/css/components.css
index d042a1e..8defa3a 100644
--- a/assets/css/components.css
+++ b/assets/css/components.css
@@ -5,9 +5,10 @@
     border-radius: var(--radius-md);
     border: 1px solid var(--border-color);
     display: flex;
-    align-items: center;
+    align-items: flex-start;
     gap: var(--spacing-lg);
     transition: transform var(--transition-fast), box-shadow var(--transition-fast);
+    position: relative;
 }
 
 .story-item:hover {
@@ -16,7 +17,7 @@
 }
 
 .story-cover {
-    width: 200px;
+    width: 180px;
     height: 120px;
     object-fit: cover;
     border-radius: var(--radius-sm);
@@ -35,6 +36,10 @@
 
 .story-info {
     flex: 1;
+    display: flex;
+    flex-direction: column;
+    justify-content: space-between;
+    height: 120px;
 }
 
 .story-info p {
diff --git a/assets/css/main.css b/assets/css/main.css
index c89749c..c5433ff 100644
--- a/assets/css/main.css
+++ b/assets/css/main.css
@@ -3,4 +3,5 @@
 @import 'layout.css';
 @import 'components.css';
 @import 'forms.css';
-@import 'editor.css';
\ No newline at end of file
+@import 'editor.css';
+@import 'buttons.css';
\ No newline at end of file
diff --git a/assets/js/admin.js b/assets/js/admin.js
index 183f88b..312ffff 100644
--- a/assets/js/admin.js
+++ b/assets/js/admin.js
@@ -133,33 +133,77 @@ document.addEventListener('DOMContentLoaded', function() {
         }
     });
     
-        // Gestion du menu mobile
-        const navMenu = document.querySelector('.nav-menu');
-        const navBrand = document.querySelector('.nav-brand');
+    // Gestion du menu mobile
+    const navMenu = document.querySelector('.nav-menu');
+    
+    // Créer le bouton hamburger s'il n'existe pas déjà
+    if (!document.querySelector('.menu-toggle')) {
+        const menuToggle = document.createElement('button');
+        menuToggle.className = 'menu-toggle';
+        menuToggle.innerHTML = '☰';
+        menuToggle.setAttribute('aria-label', 'Menu');
         
-        // Créer le bouton hamburger s'il n'existe pas déjà
-        if (!document.querySelector('.menu-toggle')) {
-            const menuToggle = document.createElement('button');
-            menuToggle.className = 'menu-toggle';
-            menuToggle.innerHTML = '☰';
-            menuToggle.setAttribute('aria-label', 'Menu');
-            
-            // Insérer le bouton avant le menu
-            navMenu.parentNode.insertBefore(menuToggle, navMenu);
-            
-            // Gérer les clics sur le bouton
-            menuToggle.addEventListener('click', function() {
-                navMenu.classList.toggle('active');
-            });
-            
-            // Fermer le menu au clic en dehors
-            document.addEventListener('click', function(e) {
-                if (!navMenu.contains(e.target) && !menuToggle.contains(e.target)) {
-                    navMenu.classList.remove('active');
+        // Insérer le bouton avant le menu
+        navMenu.parentNode.insertBefore(menuToggle, navMenu);
+        
+        // Ajouter le texte des tooltips à côté des icônes pour mobile
+        document.querySelectorAll('.nav-menu .tooltip').forEach(button => {
+            const tooltip = button.getAttribute('data-tooltip');
+            const tooltipSpan = document.createElement('span');
+            tooltipSpan.className = 'tooltip-text';
+            tooltipSpan.textContent = tooltip;
+            button.appendChild(tooltipSpan);
+        });
+        
+        // Gérer les clics sur le bouton
+        menuToggle.addEventListener('click', function() {
+            navMenu.classList.toggle('active');
+        });
+        
+        // Fermer le menu au clic en dehors
+        document.addEventListener('click', function(e) {
+            if (!navMenu.contains(e.target) && !menuToggle.contains(e.target)) {
+                navMenu.classList.remove('active');
+            }
+        });
+    }
+
+        // Ajouter le texte des tooltips à côté des icônes pour mobile - pour tous les tooltips
+        function addTooltipText() {
+            document.querySelectorAll('.tooltip').forEach(button => {
+                // Vérifier si le tooltip-text n'existe pas déjà
+                if (!button.querySelector('.tooltip-text')) {
+                    const tooltip = button.getAttribute('data-tooltip');
+                    const tooltipSpan = document.createElement('span');
+                    tooltipSpan.className = 'tooltip-text';
+                    tooltipSpan.textContent = tooltip;
+                    button.appendChild(tooltipSpan);
                 }
             });
         }
         
+        // Appliquer à tous les tooltips du site
+        addTooltipText();
+        
+        // Détection de la taille d'écran pour activer le mode mobile
+        function checkMobileMode() {
+            const isMobile = window.innerWidth <= 768;
+            
+            // Gestion des actions pour les romans
+            const storyActions = document.querySelectorAll('.story-actions');
+            storyActions.forEach(action => {
+                if (isMobile) {
+                    action.classList.add('active');
+                } else {
+                    action.classList.remove('active');
+                }
+            });
+        }
+        
+        // Vérifier au chargement et au redimensionnement
+        checkMobileMode();
+        window.addEventListener('resize', checkMobileMode);
+        
     // Gestion de la suppression des romans
     const storyList = document.querySelector('.stories-list');
     if (storyList) {