fkdev UIv2.4.1

CDN · v2.4.1 · Kenar ağı

Bağlan, kullan.

ui.fkdev.sbs bir dokümantasyon sitesi olduğu kadar bir CDN’dir: her sürüm kendi klasöründe durur, hiç değişmez, imzalıdır ve dünyanın her yerinde kenar sunuculardan önbellekle sunulur.

v2.4.1CSS 10,4 KB brJS 6,0 KB brSRI sha384immutable · 1 yıl

01Tek satırda bağlan#

HTMLÜretim için önerilen
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://ui.fkdev.sbs" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500&family=Geist:wght@300..700&family=Instrument+Serif:ital@0;1&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://ui.fkdev.sbs/v2.4.1/fkdev-ui.min.css" integrity="sha384-ywbvrnvLBhspdz061sb4+HVmL4bAnbhyuwKyDq0qCBVdEeLw2Le+aT+M0XhiumnM" crossorigin="anonymous">
<script src="https://ui.fkdev.sbs/v2.4.1/fkdev-ui.min.js" integrity="sha384-M00Zh34vyulzgDN4UvQcDJteSAYjql+zh1KP3B8lMfPikmAoJLDzbKnjWiFHPsvT" crossorigin="anonymous" defer></script>

Bu kadar. integrity imzası dosyanın tek bir baytı bile değişirse tarayıcının onu çalıştırmamasını sağlar; crossorigin="anonymous" imza kontrolü için gereklidir ve çerez göndermez.

02Canlı hız ölçümü#

ui.fkdev.sbs, Cloudflare kenar ağından sunulacak şekilde yapılandırılır; hedef ilk bayt süresi 20 ms’nin altıdır. Aşağıdaki sayı tahmin değil: şu an, senin bağlantında, bu sayfanın yüklediği CSS dosyası için tarayıcının ölçtüğü değerdir.

—ms

Ölçmek için butona bas.

Sayıyı ne etkiler?Kenar sunucuya uzaklık, Wi-Fi/mobil ağ kalitesi ve dosyanın o kenarda önbellekte olup olmadığı. İlk ziyaretten sonra dosya bir yıl boyunca tarayıcı önbelleğinden gelir; yani tekrar eden ziyaretlerde ağ süresi sıfırdır.

03Adres türleri#

AdresNe verir?ÖnbellekNe zaman?
/v2.4.1/Tam olarak bu sürüm, sonsuza kadar1 yıl · immutableÜretim. SRI ile birlikte
/v2/2.x serisinin en yenisi1 saatKırılmayan güncellemeleri otomatik almak
/latest/Her zaman en yeni sürüm10 dakikaPrototip, CodePen, deneme
/dist/En yeni sürüm (1.0 bağlantıları için)10 dakikaEski projeler bozulmasın diye
Sabit CSS
Sabit JS
v2 CSS
latest CSS

SRI yalnızca sabit sürümde/v2/ ve /latest/ içeriği zamanla değişir; bu adreslere integrity eklersen yeni sürüm çıktığında dosya engellenir. İmzayı yalnızca /v2.4.1/ ile kullan.

04Dosyalar, boyutlar ve imzalar#

DosyaHamgzipbrotliSRI
fkdev-ui.min.css62,1 KB12,0 KB10,4 KB
fkdev-ui.min.js21,8 KB6,7 KB6,0 KB
fkdev-icons.css4,2 KB991 B837 B
fkdev-ui.css69,7 KB12,7 KB10,7 KB
fkdev-ui.js31,5 KB8,2 KB7,3 KB
fkdev-tokens.json3,3 KB892 B777 B
icons.json22,9 KB3,3 KB3,0 KB

Ayrıca: manifest.json (bu tablonun makine okunur hâli), versions.json (tüm sürümler), icons/*.svg (95 ikon) ve tüm paket ZIP (73,2 KB).

05SRI imzasını kendin doğrula#

TerminalTerminal
curl -s https://ui.fkdev.sbs/v2.4.1/fkdev-ui.min.css | openssl dgst -sha384 -binary | openssl base64 -A

Çıktı, başına sha384- eklendiğinde yukarıdaki imzayla birebir aynı olmalı:

Metinfkdev-ui.min.css
sha384-ywbvrnvLBhspdz061sb4+HVmL4bAnbhyuwKyDq0qCBVdEeLw2Le+aT+M0XhiumnM
Metinfkdev-ui.min.js
sha384-M00Zh34vyulzgDN4UvQcDJteSAYjql+zh1KP3B8lMfPikmAoJLDzbKnjWiFHPsvT

06Tokenlar, ikonlar ve JSON uçları#

Uçİçerik
/v2.4.1/fkdev-icons.cssİkon servisi: <i class="fk-i fk-i-cart"> ile 95 ikon (liste)
/v2.4.1/fkdev-tokens.jsonAçık ve koyu temanın tüm --fk-* değişkenleri
/v2.4.1/icons/{ad}.svgTek tek SVG ikonlar (search, mail, db…)
/v2.4.1/icons.jsonTüm ikonların SVG kodu, tek istekte
/v2.4.1/manifest.jsonDosya listesi, boyutlar, SRI
/versions.jsonYayınlanmış sürümler ve takma adlar
HTMLİkonu kullanmanın iki yolu
<img src="https://ui.fkdev.sbs/v2.4.1/icons/search.svg" width="20" height="20" alt="">

<span class="ikon-ara"></span>
<style>
  .ikon-ara {
    display: inline-block; width: 20px; height: 20px; background: currentColor;
    -webkit-mask: url(https://ui.fkdev.sbs/v2.4.1/icons/search.svg) center / contain no-repeat;
    mask: url(https://ui.fkdev.sbs/v2.4.1/icons/search.svg) center / contain no-repeat;
  }
</style>
JavaScriptTokenları Figma, Tailwind ya da mobil uygulamaya aktar
const tokens = await fetch('https://ui.fkdev.sbs/v2.4.1/fkdev-tokens.json').then((r) => r.json());
console.log(tokens.light['--fk-ink'], tokens.dark['--fk-ink']);

07Önbellek ve başlıklar#

BaşlıkDeğerNeden?
Cache-Controlpublic, max-age=31536000, immutableSabit sürüm bir yıl boyunca yeniden sorulmaz
Access-Control-Allow-Origin*Her siteden SRI ile yüklenebilsin
Timing-Allow-Origin*Kullanan siteler hız ölçebilsin
Content-Encodingbr / gzipDosya yaklaşık %80 küçülür
X-Content-Type-OptionsnosniffTarayıcı dosya türünü tahmin etmesin
.htaccess.htaccess (bu sitenin kendi ayarı)
<If "%{REQUEST_URI} =~ m#^/v\d+\.\d+\.\d+/#">
  Header set Cache-Control "public, max-age=31536000, immutable"
</If>
<If "%{REQUEST_URI} =~ m#^/v\d+/#">
  Header set Cache-Control "public, max-age=3600, stale-while-revalidate=86400"
</If>
<If "%{REQUEST_URI} =~ m#^/(latest|dist)/#">
  Header set Cache-Control "public, max-age=600, stale-while-revalidate=86400"
</If>
<FilesMatch "\.(css|js|json|svg)$">
  Header set Access-Control-Allow-Origin "*"
  Header set Timing-Allow-Origin "*"
</FilesMatch>

08Cloudflare ayarları#

  1. DNS: ui için bir kayıt ekle (CNAME → hosting adresin ya da A → sunucu IP’si) ve turuncu bulutu açık (Proxied) bırak.
  2. SSL/TLS: Full (strict); Always Use HTTPS ve HTTP/3 açık.
  3. Cache Rules: /v*/ → Eligible for cache, Edge TTL 1 yıl, Browser TTL “origin’e uy”. /latest/* → Edge TTL 10 dakika.
  4. Tiered Cache açık: kenar sunucular önce birbirine sorar, origin’e daha az gidilir.
  5. Brotli açık.
  6. Rocket Loader kapalı; dosya içeriğini değiştiren her optimizasyon SRI imzasını bozar.

Yeni sürüm yayınlarkenSabit sürüm klasörünü asla değiştirme; yeni numarayla yeni klasör aç. Sonra yalnızca /v2/, /latest/ ve /dist/ için Cloudflare’de “Purge by prefix” yap.

09Yedek plan (fallback)#

CDN’e ulaşılamazsa kendi sunucundaki kopyaya düş. İmzalı dosya engellenirse de aynı yol çalışır.

HTML
<link rel="stylesheet" href="https://ui.fkdev.sbs/v2.4.1/fkdev-ui.min.css"
      integrity="sha384-ywbvrnvLBhspdz061sb4+HVmL4bAnbhyuwKyDq0qCBVdEeLw2Le+aT+M0XhiumnM" crossorigin="anonymous"
      onerror="this.onerror=null;this.removeAttribute('integrity');this.href='/assets/fkdev/fkdev-ui.min.css'">
<script src="https://ui.fkdev.sbs/v2.4.1/fkdev-ui.min.js"
        integrity="sha384-M00Zh34vyulzgDN4UvQcDJteSAYjql+zh1KP3B8lMfPikmAoJLDzbKnjWiFHPsvT" crossorigin="anonymous" defer
        onerror="var s=document.createElement('script');s.src='/assets/fkdev/fkdev-ui.min.js';document.head.appendChild(s)"></script>

10Sürüm politikası#

DeğişiklikNumaraÖrnek
Hata düzeltme, görsel incelikyama · 2.4.1Tooltip’in kesilmesi düzeltildi
Yeni bileşen, yeni sınıf, yeni JS metoduküçük · 2.4.0fk-drawer, FK.confirm
Sınıf adının değişmesi ya da silinmesibüyük · 3.0.0Eski sınıflar en az bir büyük sürüm boyunca çalışır

Yayınlanan sabit sürüm dosyaları asla silinmez ve değişmez; bugün bağladığın adres yıllar sonra da aynı dosyayı verir.

Dokümantasyonda ara

Esc
↑ ↓ gezinEnter aç