🎨 Feature: Configuration Tailwind + Templates PHP + Page Canary
Stories 1.2, 1.3, 1.4: - Tailwind CSS configuré avec palette sombre personnalisée - Templates header.php et footer.php avec meta SEO/Open Graph - Fonction include_template() pour les composants réutilisables - Page canary avec animations et composants de test - Configuration nginx exemple pour le déploiement - Dépendances: vlucas/phpdotenv, tailwindcss, postcss, autoprefixer Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
19
templates/footer.php
Normal file
19
templates/footer.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/**
|
||||
* Template Footer
|
||||
*/
|
||||
$currentYear = date('Y');
|
||||
?>
|
||||
<!-- Footer -->
|
||||
<footer class="bg-surface border-t border-border py-8 mt-auto">
|
||||
<div class="container-content text-center">
|
||||
<p class="text-text-muted text-sm">
|
||||
© <?= $currentYear ?> Portfolio. Tous droits réservés.
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="/assets/js/main.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
38
templates/header.php
Normal file
38
templates/header.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* Template Header
|
||||
* Variables disponibles :
|
||||
* - $pageTitle (string) : Titre de la page
|
||||
* - $pageDescription (string, optionnel) : Meta description
|
||||
*/
|
||||
|
||||
$pageTitle = $pageTitle ?? 'Portfolio - Développeur Web';
|
||||
$pageDescription = $pageDescription ?? 'Portfolio de développeur web full-stack. Découvrez mes projets, compétences et parcours.';
|
||||
$siteName = 'Portfolio';
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="<?= htmlspecialchars($pageDescription, ENT_QUOTES, 'UTF-8') ?>">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="<?= htmlspecialchars($pageTitle, ENT_QUOTES, 'UTF-8') ?>">
|
||||
<meta property="og:description" content="<?= htmlspecialchars($pageDescription, ENT_QUOTES, 'UTF-8') ?>">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:locale" content="fr_FR">
|
||||
|
||||
<!-- Preload fonts -->
|
||||
<link rel="preload" href="/assets/fonts/inter-var.woff2" as="font" type="font/woff2" crossorigin>
|
||||
<link rel="preload" href="/assets/fonts/jetbrains-mono-var.woff2" as="font" type="font/woff2" crossorigin>
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="icon" href="/assets/img/favicon.ico" type="image/x-icon">
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="/assets/css/output.css">
|
||||
|
||||
<title><?= htmlspecialchars($pageTitle, ENT_QUOTES, 'UTF-8') ?> | <?= $siteName ?></title>
|
||||
</head>
|
||||
<body class="bg-background text-text-primary font-sans antialiased">
|
||||
Reference in New Issue
Block a user