Ballistic
Defence — Taktik Giyim & Ballistik Koruma
Site İçi Görüntüler
Proje & Bağlam
Ballistic Defence; sertifikalı ballistik plakalar, plate carrier'lar ve taktik giyim sunan kurumsal bir web sitesi. Ürün kalitesi ve güvenilirlik, tasarımın her katmanına yansımış.
Sıfır harici bağımlılık. Hiçbir framework, hiçbir kütüphane, hiçbir build adımı. Tüm animasyonlar ve altyapı Vanilla HTML/CSS/JS ile inşa edildi.
Tasarım Sistemi
Orbitron + Inter kombinasyonu: Orbitron ile taktik atmosfer, Inter ile okunabilirlik. İkisi birlikte otorite ve modernliği dengede tutuyor.
Noise overlay + özel imleç + loader animasyonu — kullanıcıyı bir 'sistem başlatma' ritüeliyle karşılıyor. Web sitesi değil, operasyon merkezi.
Platform Özellikleri
Ballistik Sertifikasyon Vurgusu
Sertifikalı ballistik plakalar, sitenin en kritik satış argümanı. NIJ ve uluslararası sertifikasyonlar tasarım hiyerarşisinde ön plana alındı.
Custom Cursor Efekti
Standart imlecin yerine özel CSS imleç — trail efekti ile. Sitenin operasyonel sistem hissini güçlendiren kritik mikro-etkileşim.
Loader Animasyonu
Sayfa açılışında tam ekran sistem başlatma loader'ı. Terminal estetiği, progress bar, saf CSS animasyonu — hiçbir kütüphane yok.
TR/EN Çok Dilli Sistem
data-key sistemi ile tüm DOM iki dilde. Tek JS fonksiyonu, localStorage hafızası. Hiçbir i18n kütüphanesi yok.
Sıfır Bağımlılık Felsefesi
En cesur karar: framework reddi. Bu ölçekte kurumsal bir tanıtım sitesi için framework yükü — bundle, build, güvenlik açıkları — kazanımlarını aşıyor.
Her satır tam kontrol altında. Deploy: Netlify'e klasör sürükle. Build adımı yok, npm install yok, pipeline yok. Mutlak basitlik.
Neden Vanilla JS? Sıfır Bağımlılık.
Ballistik zırh bir güven ürünü. Sitenin de bant genişliği harcayan bir yükleme animasyonu göstermemesi, 3 saniyede içeriğe ulaşması gerekiyor. Framework bağımlılığı olmayan saf HTML/CSS/JS dosyası herhangi bir CDN üzerinden ışık hızında servis ediliyor. Orbitron font ise tek başına tüm askeri estetiği taşıyor — başka bir şeye ihtiyaç yok.
Teknik Zorluklar
Custom Cursor Touch Cihazlarda
⚡ Sorun
Touch cihazlarda özel imleç dokunma noktasını yanlış takip etti — tıklama alanları kaydı.
✓ Çözüm
matchMedia('pointer: fine') ile tespit — fare varsa özel cursor, dokunma varsa native cursor. Sıfır çakışma.
Loader Süresinin Gerçek Yükle Eşlenmesi
⚡ Sorun
Sabit 3 saniyelik loader — hızlı bağlantıda gereksiz bekletme, yavaş bağlantıda erken kapanma.
✓ Çözüm
Promise.all() ile minimum süre (1.5s) + DOMContentLoaded — her ikisi bitince loader kapanıyor. Mükemmel senkronizasyon.
İki Dil, Tek URL — SEO
⚡ Sorun
JS ile dil değişimi — Google bot JS çalıştırmadan taradığında sadece TR içeriği görüyor, EN indexlenmiyor.
✓ Çözüm
Hreflang meta + ayrı /en/ HTML dosyası. Google her iki dili farklı URL üzerinden indexliyor.