99 --shadow : rgba (0 , 0 , 0 , 0.1 );
1010 }
1111
12+ .card-container {
13+ display : grid;
14+ grid-template-columns : repeat (3 , 1fr );
15+ gap : 1cm ;
16+ width : 21cm ; /* Standard A4 width */
17+ margin : 0 auto;
18+ }
19+
20+ .page {
21+ margin-bottom : 1cm ;
22+ }
23+
1224 @media print {
1325 body * {
1426 visibility : hidden;
2133 left : 0 ;
2234 top : 0 ;
2335 }
36+
37+ .page {
38+ page-break-after : always;
39+ }
2440 }
2541
2642 body {
@@ -216,10 +232,11 @@ <h2 class="text-xl font-bold mb-4 text-black dark:text-white">
216232
217233 function createQRCard ( track , isQRSide ) {
218234 const card = document . createElement ( 'div' ) ;
219- card . className = 'card' ;
235+ card . className = 'w-[6cm] h-[6cm] border border-gray-200 rounded-lg bg-white p-2.5 m-2.5 break-inside-avoid' ;
236+
220237 if ( isQRSide ) {
221238 const qrContainer = document . createElement ( 'div' ) ;
222- qrContainer . className = 'qr-container ' ;
239+ qrContainer . className = 'flex justify-center items-center h-full ' ;
223240 qrContainer . id = `qr-${ track . id } ` ;
224241 card . appendChild ( qrContainer ) ;
225242 new QRCode ( qrContainer , {
@@ -232,8 +249,12 @@ <h2 class="text-xl font-bold mb-4 text-black dark:text-white">
232249 } ) ;
233250 } else {
234251 const metadata = document . createElement ( 'div' ) ;
235- metadata . className = 'metadata' ;
236- metadata . innerHTML = `<h3 class="title">${ track . name } </h3><p class="artist">${ track . artist } </p><p class="year">${ track . year } </p>` ;
252+ metadata . className = 'text-center h-full flex flex-col justify-center text-black' ;
253+ metadata . innerHTML = `
254+ <h3 class="text-lg font-semibold">${ track . name } </h3>
255+ <p class="text-gray-600">${ track . artist } </p>
256+ <p class="text-2xl mt-2">${ track . year } </p>
257+ ` ;
237258 card . appendChild ( metadata ) ;
238259 }
239260 return card ;
0 commit comments