Racine publique et chemin URL
Le mot public ne figure pas dans l’URL, car ce dossier est déjà la racine exposée par le serveur. Une URL /src/views/books/index.php doit rester inaccessible.
Créez une base CSS simple
public/css/app.css
:root {
color-scheme: light;
font-family: system-ui, sans-serif;
color: #171717;
background: #f7f7f5;
}
body { margin: 0; }
.container { width: min(68rem, calc(100% - 2rem)); margin-inline: auto; }
header { border-bottom: 1px solid #d7d7d2; }
nav { display: flex; gap: 1rem; padding-block: 1rem; }
main { padding-block: 3rem; }
input, button { min-height: 2.75rem; font: inherit; }
.field-error { color: #a40018; }Le CSS améliore la présentation sans déplacer la structure HTML ni la logique PHP. Commencez par les fondations : largeur lisible, contraste, espacements et champs utilisables.
Ajoutez une image avec une alternative
<img src="/img/logo.svg"
width="40" height="40"
alt="Reading List">width et height réservent l’espace avant le téléchargement. alt décrit l’information utile. Si l’image est purement décorative, utilisez alt="" afin qu’un lecteur d’écran l’ignore.
JavaScript seulement lorsqu’il apporte quelque chose
<script src="/js/books.js" defer></script>defer télécharge le script sans bloquer la lecture du HTML et l’exécute après l’analyse du document. Le CRUD doit rester fonctionnel sans ce fichier. Un script peut ensuite ajouter une confirmation de suppression ou une amélioration visuelle, jamais remplacer la validation serveur.
Ajoutez /js/books.js seulement dans les pages Livres si les autres pages n’en ont pas besoin. Cela évite du travail inutile au navigateur.