3333 <!-- Style principal -->
3434 < link rel ="stylesheet " href ="assets/css/style.css ">
3535 < script src ="https://cdn.jsdelivr.net/npm/howler@2.2.3/dist/howler.core.min.js "> </ script >
36+
37+ < style >
38+ .youtube-section {
39+ margin : 2rem auto;
40+ max-width : 900px ;
41+ padding : 0 1rem ;
42+ }
43+ .youtube-section h3 {
44+ font-family : 'Russo One' , sans-serif;
45+ color : var (--primary-color , # ff0000 );
46+ font-size : 1.4rem ;
47+ margin-bottom : 1.2rem ;
48+ text-transform : uppercase;
49+ letter-spacing : 0.05em ;
50+ display : flex;
51+ align-items : center;
52+ gap : 0.5rem ;
53+ justify-content : center;
54+ }
55+ .youtube-grid {
56+ display : grid;
57+ grid-template-columns : repeat (auto-fill, minmax (260px , 1fr ));
58+ gap : 1.2rem ;
59+ }
60+ .youtube-card {
61+ background : rgba (255 , 255 , 255 , 0.05 );
62+ border : 1px solid rgba (255 , 255 , 255 , 0.1 );
63+ border-radius : 10px ;
64+ overflow : hidden;
65+ transition : transform 0.2s ease, box-shadow 0.2s ease;
66+ text-decoration : none;
67+ display : block;
68+ }
69+ .youtube-card : hover {
70+ transform : translateY (-4px );
71+ box-shadow : 0 8px 24px rgba (255 , 0 , 0 , 0.2 );
72+ }
73+ .youtube-card img {
74+ width : 100% ;
75+ aspect-ratio : 16 / 9 ;
76+ object-fit : cover;
77+ display : block;
78+ }
79+ .youtube-card-body {
80+ padding : 0.7rem 0.9rem ;
81+ }
82+ .youtube-card-title {
83+ color : # fff ;
84+ font-size : 0.9rem ;
85+ font-weight : 600 ;
86+ line-height : 1.3 ;
87+ margin-bottom : 0.3rem ;
88+ }
89+ .youtube-card-date {
90+ color : rgba (255 , 255 , 255 , 0.5 );
91+ font-size : 0.75rem ;
92+ }
93+ </ style >
3694</ head >
3795< body class ="home-page ">
3896
@@ -75,6 +133,18 @@ <h1 class="main-title">David KRK</h1>
75133 < div class ="elfsight-app-0d876127-462b-4b8f-95a5-33ec1a5916f8 " data-elfsight-app-lazy > </ div >
76134
77135 <!-- YOUTUBE-AUTO-START -->
136+ < section class ="youtube-section ">
137+ < h3 > < i class ="fab fa-youtube " style ="color:#ff0000; "> </ i > Dernières vidéos YouTube</ h3 >
138+ < div class ="youtube-grid " id ="youtube-grid ">
139+ <!-- Les vidéos sont chargées dynamiquement depuis youtube-videos.json -->
140+ </ div >
141+ < div style ="margin-top:1.2rem; ">
142+ < a href ="https://www.youtube.com/@DavidKRKofficial " target ="_blank " rel ="noopener noreferrer "
143+ style ="display:inline-flex;align-items:center;gap:0.5rem;background:#ff0000;color:#fff;padding:0.6rem 1.4rem;border-radius:6px;font-family:'Russo One',sans-serif;font-size:0.9rem;text-decoration:none;transition:background 0.2s; ">
144+ < i class ="fab fa-youtube "> </ i > Voir toutes les vidéos
145+ </ a >
146+ </ div >
147+ </ section >
78148 <!-- YOUTUBE-AUTO-END -->
79149 </ main >
80150
@@ -109,6 +179,28 @@ <h1 class="main-title">David KRK</h1>
109179
110180 < script src ="assets/js/main.js "> </ script >
111181 < script >
182+ // Chargement dynamique des vidéos YouTube depuis youtube-videos.json
183+ fetch ( 'assets/data/youtube-videos.json' )
184+ . then ( r => r . json ( ) )
185+ . then ( videos => {
186+ const grid = document . getElementById ( 'youtube-grid' ) ;
187+ if ( ! grid || ! videos . length ) return ;
188+ grid . innerHTML = videos . map ( v => `
189+ <a class="youtube-card" href="${ v . url } " target="_blank" rel="noopener noreferrer">
190+ <img src="${ v . thumbnail } " alt="${ v . title } " loading="lazy" width="480" height="270">
191+ <div class="youtube-card-body">
192+ <div class="youtube-card-title">${ v . title } </div>
193+ <div class="youtube-card-date">${ v . published } </div>
194+ </div>
195+ </a>
196+ ` ) . join ( '' ) ;
197+ } )
198+ . catch ( ( ) => {
199+ const grid = document . getElementById ( 'youtube-grid' ) ;
200+ if ( grid ) grid . innerHTML = '<p style="color:rgba(255,255,255,0.5);text-align:center;">Vidéos temporairement indisponibles.</p>' ;
201+ } ) ;
202+
203+ // Sélecteur de langue
112204 document . addEventListener ( 'DOMContentLoaded' , ( ) => {
113205 const langBtns = document . querySelectorAll ( '.language-btn' ) ;
114206 const langContents = document . querySelectorAll ( '.lang-content' ) ;
@@ -131,8 +223,7 @@ <h1 class="main-title">David KRK</h1>
131223 switchLanguage ( btn . dataset . lang ) ;
132224 } ) ;
133225 } ) ;
134-
135226 } ) ;
136- </ script >
227+ </ script >
137228</ body >
138229</ html >
0 commit comments