{
"$schema": "../../schemas/code-crispies-module-schema.json",
"id": "html-tables",
"title": "Tabele HTML",
"description": "Twórz strukturalne tabele danych z semantycznym znacznikiem",
"mode": "html",
"difficulty": "beginner",
"lessons": [
{
"id": "table-basic",
"title": "Tabele danych",
"description": "Tabele wyświetlają strukturalne dane w wierszach i kolumnach. Użyj <table> jako kontenera, <tr> dla wierszy, <th> dla komórek nagłówka i <td> dla komórek danych.
Dodaj <caption> dla dostępnego tytułu opisującego zawartość tabeli.",
"task": "Utwórz tabelę cenową:
1. Element <caption> z tekstem Pricing
2. Wiersz nagłówka z Plan i Price
3. Dwa wiersze danych dla Basic ($9) i Pro ($29)",
"previewHTML": "",
"previewBaseCSS": "body { font-family: system-ui; padding: 20px; background: #f5f5f5; } table { border-collapse: collapse; width: 100%; max-width: 350px; background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.1); } caption { padding: 16px; font-weight: 600; font-size: 1.1rem; color: #333; background: #f8f9fa; } th, td { padding: 14px 20px; text-align: left; border-bottom: 1px solid #eee; } th { background: steelblue; color: white; font-weight: 500; } tr:last-child td { border-bottom: none; } tr:hover td { background: #f8f9fa; }",
"sandboxCSS": "",
"initialCode": "",
"solution": "
| Plan | \nPrice | \n
|---|---|
| Basic | \n$9 | \n
| Pro | \n$29 | \n