Tasarım diliKaynaklar

Tasarım dili Kaynaklar

Kaynaklar

Tasarım dili, açıp okuyabileceğiniz dosyalar hâlinde. Glifi indirin, sitenin derlendiği token dosyasını ve Zero Door tokenlarının anlık görüntüsünü okuyun, dili denetleyen testleri ve kapıları görün, neyin ne zaman değiştiğini ve bir değişikliğin yayına nasıl ulaştığını izleyin.

Glif ve tokenlar, dosya olarak

#

Glif iki SVG dosyası, tokenlar iki metin dosyası olarak sunulur. Her biri bu sayfanın okuduğu kaynakla aynıdır; indirdiğiniz, bu sayfaların gösterdiğinin ta kendisidir.

İki dosya, tek glif.

İki glif dosyası da sitenin kodda çizdiği tek yolu çizer; indirdiğiniz işaret, bu sayfada gördüğünüz işaretin ta kendisidir.

  • Mürekkep renginde Zerone glifi.

    Mürekkep glif

    Açık zeminler için. Glif mürekkep rengiyle ve kendi zemini olmadan çizilir; altındaki yüzey görünür kalır.

    SVG indir: zerone-glyph.svg
    Dosya
    zerone-glyph.svg
    Tuval
    viewBox 0 0 101.6 134.69
    Renkler
    • #0f1c26--color-ink
    Boyut
    412 bayt
    Yol
    Sitenin çizdiği glif yoluyla birebir aynı
  • Kare mürekkep kutu üzerinde kâğıt renginde Zerone glifi.

    Mürekkep kutuda glif

    Kendi zemini olan kare bir işaret gereken yerler için. Tasarımcının mürekkep karesidir: köşeler kare, glif kâğıt renginde, kendi boyutunda ve ortada.

    SVG indir: zerone-glyph-ink-tile.svg
    Dosya
    zerone-glyph-ink-tile.svg
    Tuval
    viewBox 0 0 283.465 283.465
    Renkler
    • #0f1c26--color-ink
    • #fdfaf6--color-paper
    Boyut
    516 bayt
    Yol
    Sitenin çizdiği glif yoluyla birebir aynı
    Tarayıcı simgesi
    /favicon.svg ayrı bir dosyadır: bu kare ve renkleri, glif sekme boyunda okunsun diye kenarın üçte ikisine büyütülmüş.
  • Logoyu dosyalarının çizdiği gibi kullanın. Yeniden renklendirmeyin, döndürmeyin, efekt eklemeyin.

    NedenTasarımcı logoya iki renk kullanımı verdi: açık zeminde mürekkep, mürekkep zeminde kâğıt. Bunlara bağlı kalmak onu her yerde tanınır kılar. Kural basın kitinde yazılıdır.

    İncelemeBir testle değil, incelemeyle korunur.

  • İndirilen dosyalar glifi koddan çizer, yeniden çizilmiş bir kopyadan değil.

    NedenKoddaki glif yolu değişirse dosyalar da onunla birlikte değişmek zorundadır; yoksa test kırılır.

    TestHer değişiklikte bir testle korunur.

  • İndirilen dosyalardaki her dolgu bir token rengidir.

    NedenSiteden çıkan bir dosya da paleti taşır: mürekkep ve kâğıt, token dosyasının tanımladığı hâliyle.

    TestHer değişiklikte bir testle korunur.

  • Tarayıcı simgesi, /favicon.svg, mürekkep kutunun karesini, renklerini ve ortalamasını korur; glif kenarın üçte ikisidir.

    Neden16 px'te tasarımcının karesi glifi sekmede okunamayacak kadar küçük bırakır; bu yüzden simge ayrı bir dosyadır. Bir test onu ölçer; büyük glif kutunun karesinden ayrışamaz.

    TestHer değişiklikte bir testle korunur.

Dosya olarak tokenlar

Sitenin derlendiği token dosyası ve Zero Door tokenlarının anlık görüntüsü; sonraki iki bölümün gösterdiği iki dosya.

  • Sitenin token dosyası

    Sitenin derlendiği dosya, olduğu gibi. Düz bir stil dosyası değil, bir Tailwind 4 @theme bloğudur.

    CSS indir: tokens.css
    Dosya
    tokens.css
    Kaynak
    Sitenin derlendiği token dosyası, bayt bayt aynı
    Tür
    text/css
  • Zero Door tokenlarının anlık görüntüsü

    Ürünün token dosyasındaki iki renk teması, aralık, yarıçap, gölge, eğriler ve süreler; ürün kodundan okunan, yazı tipi ve simge boyutları gibi değerler ve aşağıda anlık görüntüyle birlikte gösterilen iki tarih. Commit kimliği taşımaz.

    JSON indir: product-tokens.json
    Dosya
    product-tokens.json
    Kaynak
    Bu sayfaların okuduğu anlık görüntü, source.repo alanındaki iç depo adı çıkarılmış hâliyle
    Tür
    application/json

Henüz tanımlı olmayanlar

Raster bir sürüm yok. Koruma alanı, en küçük boyutlar ve kâğıt ile vurgunun baskı değerleri Zerone'un eklediği kurallardır; logo sayfası bunları yöntemleriyle birlikte yazar ve logo sisteminin tamamını gösterir. Basın kiti altı dosyasını sunar: mürekkep ve kâğıt renginde iki dizilim ve buradaki iki glif dosyası. Yazı tipi dosyaları bu site için sunulur, burada indirilmeye açılmaz.

Token dosyası, derlemenin okuduğu hâliyle

#

Sitenin adlı renkleri, yazı tipi yığınları, eğrisi, köşe yarıçapları ve gölgesi tek bir dosyada tanımlanır. Aşağıdaki blok o dosyanın kendisidir; site derlenirken okunur, bu yüzden yayındaki hâlinden farklı olamaz. Kullanımda bileşenler bazı yarıçapları ve renk karışımlarını bir tokenı anmak yerine yerinde de yazar.

Yayın adresi
/design/tokens.css
Satır
35
Adlı token
19
Son değişiklik
tokens.cssDerleme anında okunur, olduğu gibi basılır
/* Zerone tasarim tokenlari: renk, yazi tipi yigini, egri, yaricap ve golge
   degerleri. Bilesenler renkleri token adiyla kullanir (var(--color-*)).
   CSS disindaki kopyalar (theme-color, SVG, OG gorseli, e-posta)
   tasarim kaynaklari betiginde, RAW_HEX_COPIES
   listesinde tutulur. */
@theme {
  --color-*: initial;
  --color-transparent: transparent;
  --color-current: currentColor;

  --color-paper: #fdfaf6;
  --color-paper-2: #f6f3ee;
  --color-hair: #e2dfdb;
  --color-hair-2: #cdcac6;
  --color-ink: #0f1c26;
  --color-ink-muted: #5c5753;
  --color-ink-subtle: #736d69;
  --color-accent: #00847e;
  --color-accent-deep: #006560;
  --color-accent-tint: #d9f5f3;
  /* Ham, dogrulanmamis degisim. Kanit sahnesinde inen egri ve isaretleri bu
     renktedir: accent "dogrulanmis tek sinyal" demek oldugu icin gurultunun
     de kendi rengi olmali, yoksa ikisi de koyu kaliyor ve sahne tek renkli
     bir grafige donuyor. Alarm kirmizisi DEGIL, kirilmis bir tugla tonu:
     kagit uzerinde 5,7:1, uzerindeki beyaz tik 5,9:1. */
  --color-raw: #a9432c;

  --font-sans: var(--font-newblack), system-ui, sans-serif;
  --font-mono: var(--font-geistmono), ui-monospace, SFMono-Regular, monospace;

  --ease-out-quart: cubic-bezier(0.23, 1, 0.32, 1);
  --radius-sm: 6px;
  --radius-md: 8px;
  --shadow-float: 0 12px 30px -18px rgb(15 28 38 / 0.45);
}

Sayfa dosyayı olduğu gibi basar; derleme kapısı da yüzde işaretinin yanındaki 99,5 dışındaki her sayıyı reddeder. Bu yüzden bir birim testi dosyaya yüzde işareti girmesini engeller ve kırıldığında nedenini söyler.

Dosya nasıl çalışır.

Dosya bir Tailwind 4 @theme bloğudur. İlk bildirimi olan --color-*: initial, Tailwind'in varsayılan paletini kaldırır; bg-red-500 gibi palet adıyla yazılan bir renk sınıfı ancak o ad burada tanımlıysa vardır. Geri eklenen iki anahtar sözcük vardır: transparent ve currentColor. --color-raw tokenının üstündeki yorum da dosyanın parçasıdır, çünkü o rengin neden var olduğunu kayda geçirir.

Hangi tokenı hangi test denetliyor.

Bu tablo site derlenirken testlerden okunur. Değer, token testinin tam değeri denetlediği; varlık, yalnızca tokenın tanımlı olduğunu denetlediği anlamına gelir. Son sütun tokenı okuyan diğer testleri sayar. İki sütunda da karşılığı olmayan bir tokenı yalnızca inceleme korur.

Token dosyasındaki her adlı token ve onu okuyan testler
TokenToken testindeAyrıca okuyan
--color-transparentDenetlenmiyorYok
--color-currentDenetlenmiyorYok
--color-paperDeğer1 başka test
--color-paper-2Değer1 başka test
--color-hairDeğer1 başka test
--color-hair-2Değer1 başka test
--color-inkDeğer1 başka test
--color-ink-mutedDeğer1 başka test
--color-ink-subtleDeğer1 başka test
--color-accentDeğer1 başka test
--color-accent-deepDeğer1 başka test
--color-accent-tintDeğer1 başka test
--color-rawDeğer1 başka test
--font-sansVarlık1 başka test
--font-monoVarlık1 başka test
--ease-out-quartVarlık1 başka test
--radius-smVarlık1 başka test
--radius-mdVarlık1 başka test
--shadow-floatDenetlenmiyor1 başka test
  • Paletin her rengi, 11 hex renk, kendisine verilen değeri aynen korur.

    NedenHer sayfadaki kontrast bu değerlerden hesaplanır; kayan bir renk bütün oranları birden kaydırır.

    TestHer değişiklikte bir testle korunur.

  • Token dosyasında saf siyah da saf beyaz da yoktur.

    NedenPaletin en koyu rengi mürekkep, en açık rengi kâğıttır.

    TestHer değişiklikte bir testle korunur.

  • Tailwind'in varsayılan paleti kapalı kalır.

    Neden--color-*: initial olmasa bg-red-500 gibi varsayılan bir renk sınıfı yine çalışır ve paletin dışına fark edilmeden çıkılırdı.

    TestHer değişiklikte bir testle korunur.

Zero Door tokenlarının anlık görüntüsü

#

Zero Door arayüzünün kendi token dosyası vardır. Onu elle yeniden yazmıyoruz: bir betik ürünün dosyalarını değiştirmeden okur ve değerleri bu depodaki tek bir JSON dosyasına yazar.

Betik, token dosyasının yanında yazı tipi, varsayılan tema ve simge boyutları gibi, ürünün kendi kodunda belirlediği değerleri de okur. İki tarih kaydeder: token dosyasının son değiştiği gün ve değer okuduğu dosyalardan herhangi birinin son değiştiği gün. Aşağıdaki tarihler, hangi sürümün anlatıldığını böyle söyler.

Yayın adresi
/design/product-tokens.json
Okunduğu yer
Zero Door token dosyası ve 13 kaynak dosyası daha
Token dosyasının son değişikliği
Kaynak dosyaların son değişikliği

İki tema

Anlık görüntüdeki değerlerle boyanmış iki tema: üç yüzey, üç metin düzeyi, dört sinyal rengi, marka ve odak halkası. Bu sitenin yazı tipiyle dizildi; ürünün kendisi Inter kullanır.

Renk tokenları

Açık temanın 6 rengi, sRGB'ye çevrildiğinde bir site rengiyle birebir aynı değeri verir; örnekleri o site rengini adıyla anar.

Açık tema

  • --surfaceoklch(0.985 0.006 75) · #fdfaf6paper ile aynı
  • --surface-subtleoklch(0.965 0.007 75) · #f6f3eepaper-2 ile aynı
  • --surface-raisedoklch(1 0 0) · #ffffff
  • --fgoklch(0.235 0.010 60) · #221d19
  • --fg-mutedoklch(0.460 0.010 60) · #5c5753ink-muted ile aynı
  • --fg-subtleoklch(0.540 0.010 60) · #736d69ink-subtle ile aynı
  • --zd-borderoklch(0.905 0.006 75) · #e2dfdbhair ile aynı
  • --zd-border-strongoklch(0.840 0.006 75) · #cdcac6hair-2 ile aynı
  • --brandoklch(0.25 0.025 233) · #15242c
  • --brand-mutedoklch(0.40 0.030 233) · #384b55
  • --signal-successoklch(0.53 0.11 150) · #347d48
  • --signal-warningoklch(0.53 0.12 70) · #975d00
  • --signal-dangeroklch(0.53 0.17 25) · #ba3535
  • --signal-infooklch(0.54 0.12 240) · #0d76ad
  • --focus-ringoklch(0.45 0.10 233) · #005d83

Koyu tema

  • --surfaceoklch(0.190 0.008 250) · #111417
  • --surface-subtleoklch(0.225 0.008 250) · #191c1f
  • --surface-raisedoklch(0.255 0.008 250) · #202327
  • --fgoklch(0.930 0.005 85) · #e9e8e4
  • --fg-mutedoklch(0.665 0.008 250) · #909499
  • --fg-subtleoklch(0.640 0.010 250) · #888d92
  • --zd-borderoklch(0.300 0.008 250) · #2b2e32
  • --zd-border-strongoklch(0.390 0.008 250) · #424549
  • --brandoklch(0.62 0.060 245) · #688aa8
  • --brand-mutedoklch(0.45 0.050 245) · #3d586f
  • --signal-successoklch(0.66 0.13 150) · #4fa866
  • --signal-warningoklch(0.76 0.13 75) · #e1a447
  • --signal-dangeroklch(0.66 0.18 25) · #ec5b57
  • --signal-infooklch(0.66 0.12 240) · #419bd4
  • --focus-ringoklch(0.62 0.09 245) · #558cb9

Her hex değeri, oklch değerinden bu sayfalarda kontrastı hesaplayan aynı kodla hesaplanır; sRGB aralığı dışına taşan bir renk kanalı kırpılır.

Aralık, yarıçap, gölge ve hareket

Aralık ölçeği, her çubuk kendi değeri uzunluğunda
  • --space-12px
  • --space-24px
  • --space-36px
  • --space-48px
  • --space-512px
  • --space-616px
  • --space-720px
  • --space-824px
  • --space-932px
  • --space-1040px
  • --space-1148px
  • --space-1264px
Yarıçap, eğriler ve süreler
TokenDeğer
--radius-sm4px
--radius-md8px
--radius-lg12px
--ease-outcubic-bezier(0.23, 1, 0.32, 1)
--ease-in-outcubic-bezier(0.77, 0, 0.175, 1)
--ease-drawercubic-bezier(0.32, 0.72, 0, 1)
--duration-feedback130ms
--duration-fast160ms
--duration-default200ms
--duration-slow300ms
--duration-drawer400ms
Gölgeler, açık ve koyu
TokenAçıkKoyu
--shadow-flat0 1px 2px rgb(0 0 0 / 0.04)0 1px 2px rgb(0 0 0 / 0.20)
--shadow-raised0 8px 24px rgb(0 0 0 / 0.08)0 8px 24px rgb(0 0 0 / 0.40)
  • Ürün değerleri elle yazılmaz, bir betikle kopyalanır.

    NedenElle yazılmış bir kopya ürün değiştiği gün eskir. Anlık görüntü, ürünün token dosyasının son değiştiği günü ve okuduğu dosyalardan herhangi birinin son değiştiği günü kaydeder; eskimiş bir kopya böylece göze çarpar.

    İncelemeBir testle değil, incelemeyle korunur.

  • Ürünün her metin tokenı, iki temada da üç yüzeyin hepsinde 4,5:1 ya da daha yüksek kontrast verir.

    NedenArayüz yoğundur; metin hangi yüzeye düşerse düşsün okunur kalmalıdır.

    TestHer değişiklikte bir testle korunur.

  • Ürünün --zd-border kenar tokenı için 3:1 iddia edilmez.

    NedenBölgeleri ayırır ve iki temada da yüzeye karşı 3:1'in altında kalır. Test bunu sabitler; hiçbir sayfa daha fazlasını iddia edemez.

    TestHer değişiklikte bir testle korunur.

Dili ne denetliyor.

#

Bu sayfalardaki her kural, onu neyin denetlediğini söyler. Dili sitenin tamamında denetleyen testler ve kapılar bunlardır; onları çalıştıran hat aşamasına göre gruplanmış, her birinin denetlediği şeyle birlikte. Yalnızca tek bir sayfanın kuralını denetleyen bir test, o kuralın kartında işaretlenir.

Derlemeden önce: birim testleri

  • Token değerleri

    Token dosyasındaki paletin her renginin, 11 hex rengin, tam değerini sabitler. Yazı tipi yığınlarının, eğrinin ve yarıçapların tanımlı olduğunu denetler; dosyada hiçbir hex yazımıyla saf siyah ve beyaz bulunmamasını ve Tailwind'in varsayılan paletinin kapalı kalmasını sağlar.

  • Yazı tipi dosyaları

    Sitenin kendisinin sunduğu 6 yazı tipi dosyasının her birinin gerçek bir WOFF2 dosyası olduğunu ve boyutunun makul kaldığını denetler: 8.000 bayttan büyük, 120.000 bayttan küçük. Denetlenen ağırlıklar: New Black 400, 500, 600, 700; Geist Mono 400, 500.

  • İki dil

    Bu tasarım sayfaları dahil her sayfa sözlüğünü okur; Türkçe ve İngilizce sürümlerin yapısı farklıysa ya da herhangi bir dizede uzun tire, ürün adının tek kelimelik yazımı, başka bir yasaklı dize veya 99,5 dışında bir yüzde varsa kırılır.

  • Renk hesabı

    Bu sayfaların kullandığı renk hesabını bilinen değerlere karşı doğrular; gösterilen bir oranın aşağı yuvarlandığını, yani eşiği geçmeyen bir oranın geçmiş gibi görünmediğini denetler; token dosyasındaki bütün renkleri sırasıyla okur; token dosyasının ve birincil düğme stilinin yorumlarında belirtilen oranları doğrular ve ink, ink-muted, ink-subtle ve accent-deep renklerinin paper ve paper-2 üzerinde en az 4,5:1 olduğunu denetler.

  • Tasarım sayfaları

    Her tasarım sayfasının sözlüğü, bileşeni, rota kaydı ve gezinme etiketi olduğunu; önceki/sonraki zincirinin her sayfayı bir kez gezdiğini; site tokenlarının beklenen değerlerle okunduğunu ve Zero Door anlık görüntüsünün iki temada da kontrast iddialarını koruduğunu denetler.

  • Bu sayfanın iddiaları

    Bu sayfanın dosyalar hakkındaki iddialarını denetler: indirilen dosyalar glif yolunu koddan çizer ve yalnızca token renkleri kullanır, tarayıcı simgesi mürekkep kutunun karesini korur ve glifi kenarın üçte ikisidir, token dosyasında yüzde işareti yoktur, bu sayfada bir testle korunduğunu söyleyen her kural kartı var olan bir teste bağlıdır ve token renklerini tekrarlayan dosyaların listesi eksiksiz kalır.

  • Ortak hareket ayarı

    Bütün sitenin paylaştığı tek hareket ayarını denetler: ayar oynar durumda başlar, bir duraklatma ya da sürdürme her dinleyiciye bir kez ulaşır ve tercih sabit bir anahtarla saklanır.

  • Çerçeve listesi

    Sitenin uyumluluk çerçevesi listesini, ürün kataloğundan kopyalanmış 13 kimliğe sabit bir sırayla bağlar; ürün tarafındaki bir değişikliği bu test değil, inceleme yakalar. Ayrıca listedeki hiçbir adın boş olmadığını ve ürünün getirmediği çerçevelerin sabit listesinden bir ad içermediğini denetler.

Derlemeden sonra: derlenmiş sitede kapılar

  • Derlenmiş site

    Derlenmiş her sayfa ve stil dosyası üzerinde çalışır. Uzun tire, tek kelimelik ürün adı ve geniş ekranda dört sütunlu ızgara sınıfı yok; 99,5 dışında yüzde yok; her sayfada güvenlik politikası, 404 sayfası dışındaki her sayfada kanonik bağlantı ve dil bağlantıları var; Google Fonts yok, iletişim sayfasındaki adı belli tek istisna dışında dış betik yok; yayına çıkan CSS'te, adı belli tek bir Tailwind varsayılanı dışında, hiçbir yazımla (hex, anahtar sözcük ya da renk fonksiyonu; satır içi SVG görselleri dahil) saf siyah ya da beyaz yok, bir anahtar karede ya da onu adıyla anan bir geçişte opacity yok; main içinde başlık düzeyi atlanmıyor; araştırma ve yasal sayfalar dışındaki sayfaların ana içeriğinde, sitenin desteklenmeyen uyumluluk çerçeveleri listesinden hiçbir ad geçmiyor.

Tarayıcıda

  • Tarayıcıda erişilebilirlik

    404 sayfası dahil her derlenmiş sayfayı aşağıdaki WCAG etiketleriyle axe'den geçirir ve sıfır ihlal bekler; mobil çalıştırma yasal belgeleri ve araştırma yazılarını dışarıda bırakır, iki dizin sayfasını bırakmaz. Ortak belirme hareketiyle başlayan bir döngü kendini işaretler; ana sayfadaki gürültü alanı gibi kendi betiğiyle çalışan birkaç döngü de öyle. Test, işaretli bir döngünün görünür bir duraklatma düğmesi olmadan çalıştığı sayfayı kırar. Ayrıca 320 CSS px genişlikte hiçbir sayfanın yana kaymadığını, aşağıdaki boşluklarda adı geçen sayfalarda klavye odağının sabit üst menünün altında kalmadığını (bir masaüstü penceresinde ve bir de 390 CSS px genişlikte) ve bir duraklatma kararının sayfadan sayfaya taşındığını denetler.

    WCAG etiketleri

    • wcag2a
    • wcag2aa
    • wcag21a
    • wcag21aa
    • wcag22aa
  • Masaüstünde Lighthouse

    Sabit bir sayfa listesinde Lighthouse. Eşiğin altında kalan bir puan hattı durdurur, çünkü siteyi yayımlayan işler bu işi bekler.

    Eşikler

    Ön ayar
    desktop
    Sayfa
    21
    Sayfa başına çalıştırma
    2
    Performans
    100 üzerinden en az 95 (en iyi çalıştırma)
    Erişilebilirlik
    100 üzerinden 100 (en kötü çalıştırma)
    En iyi uygulamalar
    100 üzerinden 100 (en iyi çalıştırma)
    SEO
    100 üzerinden 100 (en iyi çalıştırma)

    Yasal belgeler SEO puanını atlar ama diğer tek tek SEO denetimlerini korur; is-crawlable kapalıdır.

  • Mobilde Lighthouse

    tavsiye niteliğinde

    Mobil öykünmeyle, daha kısa bir sayfa listesinde Lighthouse. İş tavsiye niteliğindedir: CI başarısız olmasına izin verir, hat durmaz.

    Eşikler

    Ön ayar
    mobil öykünme
    Sayfa
    11
    Sayfa başına çalıştırma
    3
    Performans
    100 üzerinden en az 90 (ortanca)
    Erişilebilirlik
    100 üzerinden 100 (en kötü çalıştırma)
    En büyük içerikli boyama
    en çok 2.800 ms (ortanca, yalnızca uyarı)

Yayından önce

  • Yayın kapısı

    elle başlatılır

    Üretim yayını işinde ilk sırada çalışır.

    Yayını durduran durumlar

    • derleme yok ya da eksik
    • bir yasal sayfada doldurulmamış bir alan kalmış
    • ana sayfa noindex olarak işaretli
    • bir sayfa, yayımlanan gizlilik sayfasının adını anmadığı bir kaynaktan betik ya da çerçeve yüklüyor
    • kendi alt alan adlarımızdan birine verilen bağlantı yanıt vermiyor

Henüz hiçbir testin denetlemediği kurallar.

  • Token dosyası dışındaki ham hex. Token dosyasının başlığı, bileşenlerin renkleri token adıyla kullandığını söyler ve CSS dışında tutulan kopyalar için bir listeyi gösterir. Bir palet değeri sitede, ortak pakette ya da form servisinde başka bir yerde geçerse bir birim testi kırılır; paletin dışındaki bir hex değeri ise yalnızca saf siyah ya da beyazsa yakalanır. Kopyalar, her biri ne için tutulduğuyla:
    • Tarayıcı tema rengi
    • Paylaşım kartı çizicisi
    • Logo SVG dosyaları
    • Siteden ayrı dağıtılan form servisi
  • Odağın sabit üst menünün altında kalmadığını denetleyen test her sayfada değil, 3 sayfada çalışır: /, /zero-door ve /tr/contact.

Değişiklik geçmişi

#

Tasarım dili sürümlerle yayımlanmaz; kaydını git tutar. Bir girdi ana dala ulaştığını söylemedikçe her tarih, değişikliğin commit edildiği gündür; en yenisi en üsttedir.

  1. Maskot sayfasına ve adına kavuştu.

    Zero Door sayfasının kunduzu kendi sayfasına, onunla birlikte de adına kavuştu. Sayfa, sahnesinin her parçasının neyi temsil ettiğini anlatır ve her parçayı Zero Door sayfasında yankıladığı metinle eşler; onun gliften nasıl çizildiğini ve nasıl hareket ettiğini de gösterir. Kuralları nerede görünebileceğini söyler. Ad, Zero Door açılışının metin karşılığı dahil, onun anlatıldığı her yerde kullanılır. Maskot sayfası temellerde, logodan sonra durur.

    Kapı figürü emekli oldu; baraj bir figür türü oldu.

    Kapı figürü tasarım dilinden çıktı; Zero Door sayfasının barajı figür türleri arasında onun yerini aldı. Görselleştirme sayfası artık barajı ölçüleri ve kurallarıyla canlı gösterir. Diyagramlar sayfasındaki temel öğeler barajın kartını, orijinalini, durdurulan kartını ve karar etiketini, barajın geniş bir ekranda Zero Door açılışındaki boyunda çizer.

  2. Betikli hareket için tek bir dil

    Betikli hareket adlandırılmış süreler, eğriler ve hareketlerden oluşan tek bir modüle taşındı; bir birim testi de adıyla listelenmiş birkaç istisna dışında kendi eğrisini ya da çıplak bir süre yazan her betiği kırmaya başladı. Önceden her bileşen aynı hareketi kendi sayılarıyla tarif ediyordu. Bu dili hareket sayfası anlatır.

  3. Tasarım dili bölümü

    Bu bölüm, her sayfanın paylaştığı parçalarla geldi: gezinme, git'ten okunan son değişiklik tarihi ve her kuralı neyin koruduğunu söyleyen kural kartları. Altında bir ölçüm katmanı vardı: site tokenları derleme anında token dosyasından okunur, kontrast oranları elle yazılmaz, hesaplanır; Zero Door tokenları da üründen bir betikle kopyalanır.

    Duraklatma düğmesi için bir bekçi

    Ortak belirme hareketiyle başlayan bir döngü kendini işaretlemeye başladı; erişilebilirlik testi de böyle bir döngünün görünür bir duraklatma düğmesi olmadan çalıştığı sayfayı kırmaya başladı. Mimari sayfasındaki akış diyagramı düğmesiz yayına çıkmıştı; aynı gün düğmesine kavuştu.

  4. Erişilebilirlik kapısı ana dala ulaştı.

    Bu tarihten itibaren derlenmiş sayfalar axe'den sıfır ihlalle geçmek zorunda kaldı; 320 CSS px genişlikte yana kayan bir sayfa kapıdan geçemedi. Kapı bir gün önce yazıldı, ana dala bu tarihte ulaştı. Neyin sınandığını erişilebilirlik sayfası anlatır.

  5. Tek duraklatma düğmesi; odak menünün altında kalmaz.

    Bütün site için tek bir hareket ayarı geldi: bir animasyonu duraklatmak her sayfadaki bütün animasyonları duraklattı ve tarayıcı bu tercihi hatırladı. O günün döngülü görsellerinin yanına küçük, yuvarlak bir duraklatma düğmesi geldi. Odaklanabilen öğeler de klavye odağını sabit üst menünün altından uzak tutan bir kaydırma payı kazandı. Düğmeyi hareket sayfası anlatır.

  6. Ham değişimin rengi

    --color-raw, #a9432c, palete katıldı: ham, doğrulanmamış değişim için soluk bir tuğla tonu. Vurgu rengi doğrulanmış tek sinyal demektir; gürültünün de kendi rengi olmalıydı. İlk günden sonra eklenen tek renk budur; token testi değerini aynı gün sabitledi.

  7. Temel

    Tek bir commit token dosyasını, sitenin kendisinden sunulan New Black ve Geist Mono yazı tiplerini, glifi, temel stilleri ve ilk token ve yazı tipi testlerini getirdi. Aynı gün birincil düğme, kâğıt rengi metinle 4,5:1'e ulaşmak için accent-deep'e geçti ve belirme hareketi yalnızca transform kullanmaya başladı. Yasaklı dizeler, dış yazı tipleri ve her türlü saf siyah ya da beyaz için derleme kapıları geldi; basın kiti iki glif dosyasını yayımladı.

Bir değişiklik nasıl yayına çıkar.

#

Dilde bir değişiklik, bir dosyada bir değişikliktir ve siteye ancak her değişikliğin geçtiği hattan geçerek ulaşır. Adımlar, hattın çalıştırdığı sırayla şunlardır.

  1. Denetim

    • Tür denetimi ve birim testleri
  2. Derleme

    • Derleme ve kapılar
  3. Test

    • Tarayıcı testleri
    • Masaüstünde Lighthouse
    • Mobilde Lighthousetavsiye niteliğinde
  4. Yayın

    • Üretim yayınıelle başlatılırbekler: derleme ve kapıları, tarayıcı testleri ve masaüstünde Lighthouse
Site derlenirken hattın yapılandırmasından okunur. Yayın aşaması yalnızca üretim yayınını gösterir.
  1. Tokenı ya da bileşeni değiştirin.

    Renkler, yazı tipi yığınları, eğri, yarıçaplar ve gölge token dosyasında değişir; yazı tiplerinin kendisi derleme yapılandırmasında tanımlanır. Düğmeler, bağlantılar ve temel yazı sitenin stil dosyasında ya da bileşenin kendisinde değişir. Teamül olarak bir bileşen bir renk tokenının değerini kopyalamaz, tokenı adıyla anar.

  2. Birim testleri değerleri sabitler.

    İlk aşama tür denetimini ve birim testlerini bütün çalışma alanında çalıştırır. Bir test, testi değişmeden değişen bir palet renginde kırılır; bir başkası token dosyasında ve düğme stilinde belirtilen oranları yeniden denetler; bir üçüncüsü iki dili aynı yapıda tutar.

  3. Derlenmiş site kapılardan geçer.

    Derleme aşaması her sayfayı iki dilde derler, ardından kapıları sonuç üzerinde çalıştırır: yasaklı dizeler, yayına çıkan CSS'te saf siyah ve beyaz ile canlandırılan opacity, başlık sırası ve her iç bağlantı ve çapa.

  4. Bir tarayıcı, okurun karşılaştığını denetler.

    Tarayıcı testleri derlenmiş siteyi bir masaüstü ve bir mobil tarayıcıda açar: her sayfanın kendi testleri, derlenmiş sayfalarda axe, 320 CSS px genişlikte yeniden akış ve işaretli bir döngü çalıştıran her sayfada görünür bir duraklatma düğmesi.

  5. Lighthouse sonucu puanlar.

    Lighthouse sabit bir sayfa listesini masaüstünde puanlar ve eşiklerin altında yayını durdurur; mobil çalıştırma raporlar ama hiçbir şeyi durdurmaz.

  6. Yayından önce bir kapı daha çalışır.

    Siteyi yayımlayan işler şunları bekler: derleme ve kapıları, tarayıcı testleri ve masaüstünde Lighthouse. Üretim yayını elle başlatılır ve ilk adım olarak yayın kapısını çalıştırır.

.note { color: var(--color-ink-muted); }
YapınTokenı adıyla anın. Tokendaki bir değişiklik böylece her kullanıma birden ulaşır.
.note { color: #5c5753; }
YapmayınBir tokenın değerini bileşene kopyalamayın. Token değiştiğinde kopya geride kalır; kopyalar testi, kopya kaldırılana ya da listeye eklenene kadar kırılır.
  • Bileşen bir renk tokenını adıyla anar, hex değer yazmaz.

    NedenToken dosyasının başlığı bunu söyler. Paletin dışındaki bir hex değeri yalnızca saf siyah ya da beyazsa yakalanır; kuralı inceleme korur.

    İncelemeBir testle değil, incelemeyle korunur.

  • Token dosyası dışında yazılan bir palet değeri, listelenmiş bir kopyadır.

    NedenTest siteyi, ortak paketi ve form servisini paletin her değeri için tarar. Kopyalar listesinin anmadığı bir dosyada da, listede olup artık değer taşımayan bir dosyada da kırılır.

    TestHer değişiklikte bir testle korunur.

  • Sabitlenmiş bir değeri değiştiren commit, testini de değiştirir.

    NedenToken testi paletin her renginin, 11 hex rengin, tam değerini denetler; testi değişmeyen bir renk değişikliği hattın ilk aşamasında kırılır.

    TestHer değişiklikte bir testle korunur.