gig-cards: HTML/CSS → Chromium → PNG kart üretimi
Neden bu yol: Satori/vercel-og yalnız flexbox + CSS alt kümesi destekler; headless Chromium TAM CSS verir (grid, filter, blend, değişken fontlar). Kalite farkı buradan gelir. (Araştırma: github.com/vercel/satori değerlendirildi, tam-CSS gereksinimi nedeniyle Playwright screenshot yaklaşımı seçildi. Fontlar: github.com/google/fonts.)
Kullanım
- Çalışma dizini hazırla (proje içinde
cards/gibi):fonts/,assets/,out/klasörleri. - Fontlar yoksa indir (google/fonts, OFL lisans):
curl -sL -o fonts/SpaceGrotesk.ttf "https://raw.githubusercontent.com/google/fonts/main/ofl/spacegrotesk/SpaceGrotesk%5Bwght%5D.ttf" curl -sL -o fonts/Inter.ttf "https://raw.githubusercontent.com/google/fonts/main/ofl/inter/Inter%5Bopsz%2Cwght%5D.ttf" curl -sL -o fonts/IBMPlexMono-Medium.ttf "https://raw.githubusercontent.com/google/fonts/main/ofl/ibmplexmono/IBMPlexMono-Medium.ttf" - Bağımlılık:
python3 -m playwright install chromium(bir kez) + Pillow. scripts/render_cards.py'ı çalışma dizinine kopyala,CARDSconfig listesini düzenle (id / accent / overline / index / head_a / head_b / meta / art / art_mode), çalıştır. Çıktı:out/<id>.png, 1280×769 (W/H sabitlerinden değiştirilebilir; OG için 1200×630).
Tasarım kuralları (klişeden kaçınma — bunlar öğrenilmiş ders)
- ROZET + ÇİP + degrade-panel formülü KLİŞE — kullanma. Onun yerine: mono overline, tek satır mono meta, ince accent rule, dergi köşe indeksi ("01 / KATEGORİ").
- Başlık İRİ (kart 1280px'te ~100px), 2 satır, ikinci satır accent renkli; nokta ile bitir ("Automate Blender with Python.") — cümle gibi okunur, slogan gibi değil.
- Artwork tam-kadraj; metin okunurluğu scrim'le (78deg çift linear-gradient) sağlanır, kutuyla değil. Fotoğraf yoksa inline SVG generatif art (glow'lu eğri/ağ; ikon klişesi yok).
- 2x render → LANCZOS küçültme = keskin tipografi. Grain overlay %5 opacity.
- Alt %10 bandı boş bırak (platform overlay'leri için).
- Her kart farklı accent, aynı grid → seri kimliği.
Doğrulama
Render sonrası her PNG'yi Read ile AÇ ve bak: metin taşması, scrim yetersizliği, artwork-metin çakışması. Kartı görmeden "bitti" deme.