=== Tradycyjny print() ===

Starting application...

Loading configuration...

Warning: Config file not found, using defaults

Error: Database connection failed

Success: Application started

## Z clickmd - te same komunikaty, ale ładniejsze

ℹ️ Starting application...

ℹ️ Loading configuration...

⚠️ Config file not found, using defaults

🛑 Database connection failed

✅ Application started

## Logowanie akcji

    → Pobieranie pliku config.yaml

    ✅ Plik pobrany (2.3 KB)

    → Parsowanie konfiguracji

    ⚠️ Brak klucza 'timeout', używam domyślnej wartości

    → Łączenie z bazą danych

    🛑 Timeout po 30s

## Markdown w komunikatach

### Podsumowanie instalacji

Zainstalowano 3 pakiety:

- `clickmd` - renderowanie markdown
- `click` - CLI framework
- `rich` - opcjonalny backend

Uruchom `clickmd --help` aby rozpocząć.

## Porównanie kodu

### Bez clickmd (ANSI escape codes):

    print("\033[92m✅ Success\033[0m")
    print("\033[93m⚠️  Warning\033[0m")
    print("\033[91m🛑 Error\033[0m")

### Z clickmd:

    clickmd.success("Success")
    clickmd.warning("Warning")
    clickmd.error("Error")

Rezultat: Ten sam efekt, 3x mniej kodu, 10x czytelniej!