Web sitesi

JavaScript'siz modern bir site kur: CSS kaydırma animasyonları, View Transitions ve container queries

Hosting sunucunuza hiç betik yüklemeyen, hareketini animation-timeline ile, sayfa geçişlerini View Transitions ile, duyarlı kartlarını container queries ile yapan çok sayfalı bir site kurar. Her özellik @supports ve hareket azaltma tercihiyle korunur, desteklemeyen tarayıcıda sayfa eksiksiz görünür.

Ne zaman kullanılır

Sitenizin modern ve akıcı görünmesini ama hiç JavaScript yüklemeden, en hafif haliyle açılmasını istediğinizde.

Sonunda ne alırsınız

Betiksiz, beş sayfalı, sayfa geçişli ve kaydırma animasyonlu bir site; sayfa sayfa Lighthouse tablosu, geçilen kapılar ve tarayıcıda destek kontrolünün adımları.

Hesabımda değişiklik yapar mı?

Yalnızca onayınızla. Asistan her değişikliğin önce önizlemesini gösterir ve sizden onay bekler.

Birlikte çalıştığı hesaplar

SEO Intelligence, Search Console

Göndermeden önce doldurun

[sunucu adı][işletme adı][ne yapıyor, kime][şehir, semt][liste][e-posta][telefon][WhatsApp numarası][adres][alan adı][[NAV]
Opus Growth hosting sunucumdaki [sunucu adı] sitesine, [işletme adı] için hiç JavaScript yüklemeyen, hareketini ve sayfa geçişlerini tarayıcının kendi CSS özellikleriyle yapan çok sayfalı bir site kur. İşletme: [ne yapıyor, kime], şehir: [şehir, semt]. Hizmetler ya da ürünler: [liste]. İşler: [her biri için ad, malzeme ya da kapsam, süre, çözülen sorun, görsel bağlantısı]. İletişim: [e-posta], [telefon], [WhatsApp numarası], [adres]. Alan adı: [alan adı]. Sayfalar: ana sayfa (hero, son işler, süreç, SSS), işler (/isler/), hakkımızda (/hakkimizda/), iletişim (/iletisim/, form yok), gizlilik (/gizlilik/) ve 404.html. Tarz: editoryal ve doğal. Serif bir display (ör. Zodiak) ile sakin bir gövde fontu (ör. Switzer), keten tonlu zemin, tek koyu aksan, bol boşluk. Cesaret iş kartlarında. Modern CSS kuralları (aşamalı iyileştirme; desteklemeyen tarayıcıda sayfa hareketsiz ama eksiksiz olmalı): 1. Hiç JavaScript dosyası yükleme; GSAP, Lenis ve Swiper yok. Mobil menü `<details>` ile çalışsın. 2. Sayfa geçişleri (View Transitions, aynı kökenli sayfalar arası): `@media (prefers-reduced-motion: no-preference) { @view-transition { navigation: auto; } }` yaz ve süreyi 0,35 saniye civarında tut. Üst bara view-transition-name: site-header ver. Ana sayfadaki bir iş kartının görseline ve işler sayfasındaki aynı görsele aynı benzersiz view-transition-name ver, böylece görsel yeni sayfadaki yerine büyüyerek geçsin. Bir ad bir sayfada yalnız bir kez kullanılsın. 3. Kaydırmaya bağlı animasyonlar: üstte `animation-timeline: scroll(root)` ile scaleX büyüyen bir ilerleme çizgisi (varsayılanı display:none, yalnız destek varsa görünür); kartlarda ve bölüm başlıklarında `animation-timeline: view()` ve `animation-range: entry 0% entry 70%` ile yalnız translateY; hero görselinde görünür olduğu süre boyunca hafif scale ve translate. Opacity kullanma: ekranın altında soluk duran öğeler Lighthouse'ta kontrast hatası çıkarır. Bu kuralların hepsini `@supports (animation-timeline: scroll())` ve `prefers-reduced-motion: no-preference` içine koy. 4. Container queries: iş kartını `container-type: inline-size` olan bir bileşen yap. `@container (min-width: 34rem)` ile dar kapta görsel üstte, geniş kapta görsel ve metin yan yana olsun. Aynı kart ana sayfada üç sütunda dar, işler sayfasında tek sütunda geniş görünsün. Tailwind 3 çekirdeği container query sınıflarını içermez; bu kuralları app.css'e düz CSS olarak yaz. 5. Kartın başlık seviyesi bulunduğu sayfaya uysun: işler sayfasında h1 ile kartların h3'leri arasına bir h2 koy. Demoda bu eksik olduğunda erişilebilirlik heading-order nedeniyle 98'e düştü. 6. İşler sayfasında ilk ekrana giren ilk kart görseli lazy olmasın ve fetchpriority="high" alsın. Kurulum ve bilinen tuzaklar (demo ölçümünde her biri puanı düşürdü, atlama): 1. Sunucuda yayında bir site varsa önce bana söyle, çünkü kurulum index.html ve assets klasörünü ezer. scaffold_site'ı önce confirm=false ile önizle, onayımla confirm=true çağır. Sonra site_design_guide ve site_seo_guide'ı oku. Koda başlamadan tasarım yönünü (tipografi, renk, ızgara, imza öğesi, hareket dili ve YÜKLENMEYECEK kütüphaneler) assets dışında kısa bir ART.md dosyasına yaz ve bana göster. 2. Tailwind'i derle, CDN'den yükleme. site_run_command ile background=true vererek `npm i -D tailwindcss@3` kur ve sonucu site_command_status ile izle. `tailwind.config.js` içindeki content yolları bütün HTML dosyalarını, şablonları ve sınıf yazan JS dosyalarını kapsasın. `_src/tw.css` dosyası `@import "../assets/app.css";` satırı ve üç `@tailwind` satırından oluşsun; `npx tailwindcss -c tailwind.config.js -i _src/tw.css -o assets/site.css --minify` ile tek dosyaya derle. Sayfalardan cdn.tailwindcss.com betiğini ve satır içi tailwind.config'i kaldır, yalnız `/assets/site.css` bağla. Her HTML değişikliğinden sonra yeniden derle. 3. Fontları kendi sunucunda barındır. Seçtiğin Fontshare ailelerinin CSS'ini oku, her ağırlığın woff2 dosyasını site_fetch ile `assets/fonts/` altına indir ve @font-face kurallarını `font-display: swap` ile `assets/app.css` içine yaz; design-check özgün fontu orada arar. İndirdiğin CSS'teki font-family adını kontrol et, çünkü Fontshare olmayan bir ağırlık istendiğinde başka bir aile döndürebiliyor. İlk ekrandaki başlığın fontunu ve gövde fontunu her sayfada `<link rel="preload" as="font" type="font/woff2" crossorigin>` ile önceden yükle; demoda bu adım yazı tipi değişiminden doğan kaymayı (CLS 0,024) sıfırladı. Fontshare fontlarının çoğunda ₺ işareti yok, fiyat yazacaksan "TL" kullan. 4. Menüyü ve alt bilgiyi statik HTML yap. chrome.js ve site.config.js'i sayfalara yükleme. site.config.js'teki nav listesini okuyup `_src/header.tpl` ve `_src/footer.tpl` şablonlarını her sayfadaki `<!-- nav:start --><!-- nav:end -->` ve `<!-- footer:start --><!-- footer:end -->` işaretlerinin arasına basan küçük bir `chrome-stamp.mjs` yaz; etkin sayfanın bağlantısına aria-current="page" eklesin. Şablon dosyalarının uzantısı .html olmasın ve içlerinde `{{...}}` yerine `[[NAV]]` gibi yer tutucu kullan, yoksa design-check ve seo-check onları yarım kalmış sayfa sanar. Mobil menüyü JS'siz `<details>` ile kur. Alt bilgide işletme adı, adres ve telefon düz metin olarak dursun. 5. Görselleri site_fetch ile indirirken dönüştür: aynı fotoğrafı resize="480x", "800x" ve "1200x", image_format="webp", quality=65 ile ayrı dosyalara yaz. Her `<img>` için srcset, sizes, width ve height ver. İlk ekrandaki ana görsel fetchpriority="high" olsun ve lazy olmasın; diğerleri loading="lazy" decoding="async" olsun. Mobilde ana görsel ekranı dolduruyorsa `<picture>` ile mobile daha yatay ve küçük bir kırpım ver (demoda mobil görsel 89 KB'tan 43 KB'a indi). 6. Logodan site_fetch ile 48 piksellik PNG favicon üret ve her sayfaya `<link rel="icon">` ekle. Favicon yoksa tarayıcı konsola 404 yazar ve En İyi Uygulamalar puanı 96'ya düşer. 7. HTML doğrulayıcısının kuralları: belge büyük harfli `<!DOCTYPE html>` ile başlasın (kitin başlangıç dosyaları küçük harfle başlıyor), tel: bağlantılarının görünen metnindeki boşluklar `&nbsp;` olsun, style="" niteliği kullanma, her düğmeye type="button" yaz. SEO, AEO ve GEO: 1. Adresleri dizin biçiminde ve sonu eğik çizgili kur (/isler/, /hakkimizda/, /iletisim/, /gizlilik/). site.config.js'in seo bloğunu doldur ve `node seo-stamp.mjs` çalıştır. Sayfaya özel şemayı (ana sayfa WebPage ve FAQPage; işler CollectionPage ve her iş için hasPart içinde CreativeWork (malzeme varsa material); hakkımızda AboutPage; iletişim ContactPage; iç sayfalarda BreadcrumbList. site.config.js'te en özgül LocalBusiness alt türü) ayrı `<script type="application/ld+json">` bloklarına yaz ve @id ile temel grafiğe bağla. BreadcrumbList'i @graph içine gömme, kendi bloğunda dursun; seo-check onu yalnız böyle görür. 2. Title 48 ile 60 karakter olsun (seo-check 65'i aşanı hata sayar), description 145 ile 158 karakter, her sayfada tek h1. Her sayfanın ana içeriği en az 150 kelime olsun; iletişim ve gizlilik sayfaları bu sınırın altında kalmaya yatkın. 3. Her sayfanın ilk paragrafı sayfanın sorusuna doğrudan cevap versin. Sayfaya özgü SSS'yi `<details>` ile yaz ve FAQPage olarak işaretle. Yayımlayan kurumu ve "Son güncelleme" tarihini `<time>` ile göster. 4. robots.txt'te GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, Bingbot ve CCBot için kararını gerekçesiyle yaz ve sitemap'i göster. sitemap.xml'de gerçek lastmod olsun. llms.txt'te sitenin iki cümlelik doğru özeti ve önemli sayfaların listesi bulunsun. 5. Uydurma yok: bana sormadan yorum, puan, ödül, müşteri sayısı, sertifika, çalışma saati, koordinat ya da fiyat yazma. Bilmediğin alanı şemaya hiç koyma. Kapılar (sırayla; hepsi geçmeden "bitti" deme): 1. site_run_command ile `node chrome-stamp.mjs`, Tailwind derlemesi, `node seo-stamp.mjs`, `node seo-check.mjs` (0 hata, 0 uyarı), `node design-check.mjs` (0 hata; kalan uyarıyı gerekçesiyle yaz) ve `npx html-validate "**/*.html"` (0 hata). 2. Her sayfayı site_preview ile view="mobile" ve view="desktop" olarak gör. site_preview sayfayı hareket kapalıyken (reduced-motion) çeker; bu görüntüde içerik eksiksiz görünmüyorsa hareketsiz hal bozuk demektir. Tam sayfa görüntüsünde aşağıdaki lazy görseller boş çıkabilir; bunu hata sayma ama yolunu kontrol et. 3. Her sayfa için core_web_vitals'ı strategy="mobile" ve strategy="desktop" ile çalıştır. Kabul: mobilde Performance en az 95, Accessibility, Best Practices ve SEO 100; masaüstünde dördü de en az 95. Tutmayan sayfada resources=true ile hangi dosyanın geciktirdiğini bul, düzelt ve yeniden ölç. Ardından ana sayfada seo_audit'i strategy="mobile" ve runs=2 ile çalıştır. Ağ istekleri listesinde kendi alan adın dışında bir adres kalmamalı. 4. 360, 390, 768 ve 1440 piksel genişlikte yatay kaydırma olmasın, dokunma hedefleri en az 44 piksel olsun, konsolda hata olmasın. Destek kontrolü: site_preview hareketi kapalı çektiği için geçişleri gösteremez. Bana Chrome'da ana sayfadan bir işe tıklayınca görselin büyüyerek geçtiğini, kaydırınca üstteki çizginin dolduğunu, pencereyi daraltıp genişletince kartın düzen değiştirdiğini ve bu özellikleri desteklemeyen bir tarayıcıda sayfanın eksiksiz açıldığını nasıl kontrol edeceğimi yaz. Yayından sonra: site_headers ile `/assets/* Cache-Control: public, max-age=31536000, immutable` kuralını önizle ve onayımla uygula; bundan sonra CSS ya da JS değiştiğinde dosya adını sürümle (site-v2.css gibi). gsc_submit_sitemap ile sitemap.xml'i gönder ve gsc_url_inspect ile ana sayfanın durumuna bak. En sonda bana şunları ver: sayfa sayfa puan tablosu (sayfa, mobil dört puan, masaüstü dört puan, LCP, CLS), kapıların sonucu ve uyguladığın düzeltmelerin listesi.

Örnek sonuç

Bu promptun vereceği çıktının bir örneğidir. Yapısı araçların gerçek çıktısına dayanır, rakamlar ve adlar kurgusaldır.

Örnek çıktı (kurgusal bir demo atölye üzerinde, gerçek müşteri verisi değildir; puanlar demonun gerçek ölçümüdür)

Prompt Eskişehir'de ısmarlama masif ahşap mobilya yapan kurgusal "Ardıç Mobilya Atölyesi" için uygulandı: keten zemin, ardıç yeşili tek aksan, Zodiak ve Switzer. Sitede tek bir JavaScript dosyası yok. Chromium'da kaydırma ilerleme çizgisi ScrollTimeline, kart ve görsel hareketleri ViewTimeline ile çalıştı; iş kartı ana sayfada 344 piksellik tek sütun, işler sayfasında iki sütun düzene geçti; ana sayfadaki karta tıklayınca görsel işler sayfasındaki yerine View Transitions ile geçti.

SayfaMobil (P/E/İU/SEO)Mobil LCPMasaüstü (P/E/İU/SEO)CLS
Ana sayfa99/100/100/1001,96 sn100/100/100/1000
İşler100/100/100/1001,73 sn100/100/100/1000
Atölye100/100/100/1001,5 sn100/100/100/1000
İletişim100/100/100/1001,5 sn100/100/100/1000
Gizlilik100/100/100/1001,51 sn100/100/100/1000

Kapılar: seo-check 0/0, design-check 0/0, html-validate 0, 4 genişlikte taşma yok, JS kapalıyken ve reduced-motion'da gizli içerik yok, dış ağ isteği yok.

Uygulanan düzeltmeler:
1. İşler sayfasında h1'den sonra doğrudan h3 gelen kartlar erişilebilirliği 98'e düşürdü; araya h2 eklenince 100.
2. Kaydırma animasyonunda opacity kullanılmadı, çünkü aynı yöntem kampanya demosunda kontrast hatası vermişti.
3. Üç sayfa 150 kelimenin altındaydı; sayfaya özgü içerik eklendi.

Bu promptla kurulmuş örnek site

Editoryal ve doğal, sıfır JavaScript: @view-transition ile sayfa geçişi, animation-timeline scroll() ve view() ile transform tabanlı hareket, container query'li iş kartı

Kurgusal bir marka için bu prompt harfiyen uygulanarak kuruldu. Puanlar Lighthouse ile her sayfada ölçüldü.

Lighthouse puanları (en düşük sayfa)
MobilMasaüstü
Performans99100
Erişilebilirlik100100
En iyi uygulamalar100100
SEO100100

Geçilen kontroller

  • seo check: 0 hata 0 uyarı
  • design check: 0 hata 0 uyarı
  • html validate: 0 hata
  • overflow: 360/390/768/1440 taşma yok, konsol temiz, JS kapalıyken ve reduced-motion'da gizli içerik yok, dış ağ isteği yok, yüklenen JS dosyası yok
  • tailwind before after: Bu demoda ayrıca ölçülmedi; aynı kurulumla webb-gsap-urun demosunda CDN'li hal mobil 89, derlenmiş hal 99 ölçüldü
Ekran görüntüleri
JavaScript'siz modern bir site kur: CSS kaydırma animasyonları, View Transitions ve container queries: Mobil
Mobil
JavaScript'siz modern bir site kur: CSS kaydırma animasyonları, View Transitions ve container queries: Masaüstü
Masaüstü

Ölçüm tarihi: 2026-10-11

İlgili aramalar

Bu promptlar, yapay zeka asistanınız Opus Growth ile hesaplarınıza bağlıyken en iyi sonucu verir.

Hesaplarınızı ücretsiz bağlayın

Diğer promptlar

Web sitesiOnayınızla değişiklik yaparCanlı demo

Uzman ya da danışman için dergi tadında, rehber bölümü ve yazar şeması olan bir site kur

Bir uzmanın sitesini dergi kapağı gibi bir anasayfa, uzun rehber yazıları ve yazar künyesiyle kurdurur. Serif tipografi, Article ve Person şeması, tarihli ve kaynaklı yazılarla hem okunur hem yapay zeka cevaplarında alıntılanabilir bir yayın üretir.

Ne zaman kullanılırDanışman, uzman ya da tek kişilik bir bilgi işi yapıyorsanız ve sitenizin bir broşür değil, uzmanlığınızı yazılarla gösteren bir yayın gibi okunmasını istediğinizde.

SEO Intelligence, Search Console
Web sitesiOnayınızla değişiklik yaparCanlı demo

Köklü bir aile işletmesi için klasik görünümlü ama modern standartlarda bir site kur

Üç kuşaktır süren bir üretici için eski etiket ve dükkan tabelası havasında, çerçeveli ve kağıt dokulu bir site kurdurur. Görünüm eski, altyapı yeni: mobil öncelikli, JavaScript içermeyen, yerel fontlu, WebP, Product ve HowTo şeması.

Ne zaman kullanılırLokum, zeytinyağı, peynir ya da bakır gibi kuşaklardır süren bir zanaatı satıyorsanız ve sitenizin bu geçmişi taşıyan klasik bir görünümle, ama hızdan ve erişilebilirlikten ödün vermeden açılmasını istediğinizde.

SEO Intelligence, Search Console
Web sitesiOnayınızla değişiklik yaparCanlı demo

Hukuk ya da mali müşavirlik bürosu için güven sinyalleri güçlü İsviçre-minimal site kur

Katı ızgaralı, tek font ailesiyle hiyerarşi kuran, hareketsiz bir büro sitesi kurdurur. Uzman künyeleri, tarihli ve kaynaklı bilgi notu, meslek kuralına uygun dil ve Person şemasıyla YMYL alanındaki güven sinyallerini sayfaya koyar.

Ne zaman kullanılırBir avukatlık, mali müşavirlik ya da benzeri bir meslek bürosu için, ciddi ve sade görünen, meslek kurallarına takılmayan ve uzmanlığını kanıtlayan bir site istediğinizde.

SEO Intelligence, Search Console
Web sitesiOnayınızla değişiklik yaparCanlı demo

JavaScript kullanmayan, çok sayfalı kurumsal bir site kur ve 100 puanla teslim et

Mimarlık, mühendislik ya da danışmanlık gibi kurumsal işler için hareketsiz, hızlı ve erişilebilir bir site kurdurur. Menü ve alt bilgi statik HTML, fontlar ve CSS kendi sunucunda, her sayfa ölçülerek teslim edilir.

Ne zaman kullanılırHızın ve erişilebilirliğin süsten önemli olduğu kurumsal bir işletme için, animasyonsuz ve JavaScript yüklemeyen çok sayfalı bir site istediğinizde.

SEO Intelligence, Search Console