# Snippets, CSS i pliki

## Snippets, CSS i pliki

```html
<template gs-component="link" gs-prop-label="block.settings.label" gs-prop-href="block.settings.url"></template>
```

Snippet ma własny zakres parametrów. Globalne `site`, `page`, `settings` i `locale` są nadal dostępne. Fragmenty nie tworzą dodatkowych pozycji w kreatorze.

Pliki CSS umieszczaj w `assets/*.css`. Są dołączane przez renderer z zakresem `data-loom-theme`, aby selektory szablonu nie zmieniały panelu. Pisz selektory klas wewnątrz szablonu. Nie używaj `body` do stylowania obszaru podglądu. Obsługa plików binarnych i własnego JavaScript w importerze nie jest jeszcze dostępna; obrazy wskazuj adresami biblioteki mediów lub HTTPS.

Silnik Loom nie ma dostępu do systemu plików serwera ani sieci. Snippets odczytuje wyłącznie z zainstalowanej paczki. Istnieją limity rozmiaru paczki, głębokości bloków i kosztu renderowania. Nieznany tag lub nieprawidłowa schema powoduje błąd walidacji zamiast cichego pominięcia.

## Responsywny układ

```css
.offer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 24px;
}
.offer-card { padding: 24px; }
```

CSS definiuje układ, a wartości schema sterują edytowalnymi wymiarami. Jeśli oferujesz kontrolkę zaokrąglenia, użyj jej wartości zamiast stałego promienia w CSS. Sprawdź wąski ekran i długie tłumaczenia.

Snippet ma izolowane parametry. Przekaż jawnie to, czego potrzebuje, zamiast polegać na lokalnej zmiennej z rodzica. Nie dodawaj schema do snippetu — dla niezależnych ustawień użyj bloku.

Wyjście jest escapowane domyślnie. Renderer odrzuca nieobsługiwane tagi i zdarzenia. Style inline z funkcjami URL, wyrażeniami lub importami są filtrowane. Filtr `asset_url` wskazuje pliki zainstalowanej paczki, nie daje dostępu do plików serwera.
