Amsterdam Tasarım Sistemi Bileşeni ve temayı birbirinden ayırın
Açık kaynak katmanını doğru biçimde kullanın
Amsterdam, bileşen CSS'yi ayrı yayımlar; böylece sınıf sözleşmesi React dışında uygulanabilir. Stil sayfası, CSS özel özelliklerine bağlıdır; eksiksiz bir tema olmadan içe aktarılırsa önemli boyutlar ve renkler tanımsız kalır. Bu nedenle bu örnekte yerel Switch stil sayfası, eksiksiz ve özgün bir nötr yapılandırmayla birlikte kullanılmıştır.
Depo, açık kaynak paketlerini özel varlıklardan ayrı tutar. İncelenen 4.3.0 token paketi, onu açık kaynak lisansının kapsamı dışında bırakan kendi lisans bildirimine sahiptir. Amsterdam Sans, simgeler ve şehir logosu da belirli kısıtlamalara tabidir. Bu kılavuz, bunları bağlam olarak anmakla birlikte yeniden dağıtmaz ve herkese açık bir npm indirmesinin sınırsız marka kullanım hakkı verdiğini öne sürmez.
Amsterdam Tasarım Sistemi Eksiksiz, nötr bir yapılandırma
Komponentin ihtiyaç duyduğu tüm özellikleri sağlayın
Referans tablosu, seçilen Switch stil sayfasında kullanılan tüm değişkenleri listeler. Genişlik, düğme boyutları, kenarlık genişliği, renkler, anahat uzaklığı, imleç ve üzerine gelme görünümü için açık değerler belirtilmiştir. Bunlar bu örnek için belirlenmiş özgün değerlerdir; kopyalanmış Amsterdam tasarım token'ları değildir. Bu ayrım, okuyucuların eksik tema parçalarını tahmin etmek zorunda kalmadan örneği yeniden oluşturmasını sağlar.
İz 50px genişliğinde; düğme 22px, kenarlık ise 3px'tir. Yerel checked durumu dönüşümü, düğmenin hareket mesafesini düğme genişliği ve kenarlık genişliğinden hesaplar. Bu nedenle yalnızca iz genişliğini değiştirmek düğmenin hizasının bozulmasına yol açabilir. İlgili geometri değerlerini birlikte değiştirin ve her iki durumu da inceleyin.
Amsterdam Tasarım Sistemi Yerel Switch bileşeninin yapısı
Etiket, input öğesinin ardından gelmelidir
React uygulaması bir sarmalayıcı, bir input ve ilişkili, boş bir label oluşturur. CSS, input öğesinin odak, seçili ve devre dışı durumlarına göre etiketi biçimlendirmek için bitişik kardeş seçicileri kullanır. Düz bir HTML uygulamasında bu sıralamayı koruyun; input ile etiket arasına açıklama eklemek bu seçicileri bozar.
Gerçek input, role="switch" olan bir checkbox'tır. Yerel checked özelliğini ve klavye davranışını korur. Görsel etiket metin içermediği için aria-label veya aria-labelledby aracılığıyla erişilebilir bir ad sağlayın. Bu örnek, görünür bir ayar başlığını referans alır ve açıklamasını aria-describedby ile ilişkilendirir.
Bileşen kaynağı, Switch bileşenini anında uygulanan ikili bir ayar olarak tanımlar. Önizleme bu sözleşmeye uyar: Daha büyük metin makale boyutunu, daha güçlü kontrast metni ve dış çizgiyi değiştirir; azaltılmış hareket ise rozetin kısa görünme efektini kaldırır. Bu yerel seçimlerin bir hesap hizmetine gönderildiği izlenimini veren bir Kaydet düğmesi yoktur.
Varsayılanları geri yükle seçeneği, yerel üç checked durumunu da temizler ve makalenin varsayılan sınıflarını yeniden uygular. Durum mesajı etkin ayarları açıklar. Sayfadan ayrıldıktan veya sayfayı yeniden yükledikten sonra hiçbir şey saklanmaz. Üretim ortamındaki bir tercih hizmeti kalıcılık sağlayabilir; ancak ayarın bu sayfayı mı, cihazı mı yoksa hesabı mı etkilediğini belirtmelidir.
Daha büyük metni aç ve yanındaki makaledeki paragraf boyutunu incele.
Daha güçlü kontrast seçeneğine odaklan ve klavyeden açıp kapatmak için Boşluk tuşuna bas.
Varsayılanları geri yükle seçeneğini kullan ve üç anahtarın da makaleyle birlikte eski hâline döndüğünü doğrula.
Stil sayfası, gerçek kontrolü korurken görsel girdi genişliğini küçültür. Odak seçicisi, dış çizgiyi sonraki etikete uygular. Girdiyi dekoratif bir div ile değiştirmek, yerel form anlamını ortadan kaldırır ve ayrıca klavye desteği gerektirir. Girdiye display:none uygulama.
Yerel stil sayfası, geçiş efektlerini yalnızca prefers-reduced-motion:no-preference koşulunda uygular. Makale efekti de yerel anahtardan bağımsız olarak işletim sistemi tercihine uyar. Sistem düzeyinde daha az hareket isteyen bir kullanıcının, örneğin sakin davranması için ek bir anahtar keşfetmesi gerekmemelidir.
Tek doğru kaynak olarak checked özelliğini kullan; bununla ilgisiz bir görsel etkin durumu uydurma.
Her ayara sabit bir ad ver ve açıklamasını girdiyle ilişkili tut.
Tema geometrisini veya renklerini değiştirdikten sonra kapalı, açık, odaklı ve devre dışı durumları test et.
Amsterdam Tasarım Sistemi Okuma önizlemesinin düzeni
Denetimin yanındaki etkiyi göster
Örnek, her ayarın makalede görünür bir sonucu olması için iki sütunlu bir düzen kullanır. Uygulamaya özgü 700px kırılma noktasının altında, denetimler önizlemenin üstüne gelecek şekilde alt alta dizilir. 900px azami genişlik ve 32px boşluk, özgün düzen kararlarıdır; şehir genelinde kullanılan bir ızgara belirtecinin kanıtı değildir.
Nötr yazı tipi Arial'dır. Gövde metni 18px ve satır aralığı 1.5 değerindedir; büyük metin modu yalnızca makaleyi 22px yapar. Bu, uygulamaya özgü bir ayar örneğidir; tarayıcı yakınlaştırmasının yerini tutmaz ve bu boyutların Amsterdam tarafından belirlendiği anlamına gelmez. Uzun etiketler, yerel anahtarın genişliği daraltılmadan satırlara bölünür.
Amsterdam Tasarım Sistemi CSS veya React entegrasyonu
Uygulama katmanını seç
Mevcut bir React uygulamasında doğrulanmış Switch, standart girdi özniteliklerini kabul eder ve ref değerini girdiye iletir. Kontrollü kullanımda checked ve onChange sağlanır; kontrolsüz kullanımda defaultChecked sağlanabilir. Bileşen, uygulama depolama alanı veya hesap tercihleri için bir API sağlamaz.
Bu bağımsız HTML örneği için yalnızca açık kaynaklı Switch CSS gerekir. Kurulum ve eksiksiz kod, eksik tema yapılandırmasını ve yerel durum yönetimini sağlar. Paket yükleyicisi bağımlılık olarak tescilli varlıkları indirebilir; bunların diskte bulunması, içe aktarılmalarına veya dağıtılmalarına izin verildiği anlamına gelmez. Satıcı tarafından pakete eklenen örnek yalnızca seçilen CSS bileşenini ve açık kaynak lisansını içerir.
Amsterdam Tasarım Sistemi Kullanım ve sınırlamalar
Görsel benzerliği kurumsal bağlılıkla karıştırma
Şehir sistemi, belediye ürünlerinin tutarlı ve erişilebilir olmasını amaçlar. Yeniden kullanılabilir kodu lisansı kapsamında incelenip uyarlanabilir; ancak logosu, tescilli yazı tipi ve simge varlıkları ayrı koşullara tabidir. Önizleme, bir Amsterdam hizmetiyle karıştırılmaması için özgün markalama ve nötr içerik kullanır.
Doğrulanmış kapsam; eksiksiz bir özel tema ve anlamlı yerel davranışa sahip tek bir yerel bileşenden oluşur. Bu, şehir temasının baştan sona yeniden uygulanması değildir. Daha geniş kapsamlı CSS paketini kullanan gerçek bir ürün, bu Switch yapılandırmasını ilgisiz denetimlere genellemek yerine ek bileşenlerin gerektirdiği tüm değişkenleri tanımlamalı ve test etmelidir.
Amsterdam Tasarım Sistemi Yapay Zekâ Ajanı Kurulumu
Uygulamaya Başlangıç Noktası
Yalnızca açık kaynaklı CSS; eksiksiz özgün tema ve çalışan HTML örneği dahildir. Tescilli belirteç veya varlık paketi dağıtılmaz. Kaynaklar bölümündeki eksiksiz çalışan örnek ZIP dosyası, tam önizleme bağımlılıklarını ve belgenin tamamını da içerir. Dosyayı çıkarın, o dizinde python3 -m http.server 8080 komutunu çalıştırın ve ardından http://localhost:8080/amsterdam.html adresini açın. Modül kullanan örnekleri file:// üzerinden açmayın.
bash
npm install @amsterdam/[email protected]
# Copy dist/switch/switch.css into your public assets.
# Load it before the complete original theme configuration below.
# Do not import the proprietary assets or tokens for this neutral example.
Projeniz İçin Bir İstem
Ajan İstemi
Amsterdam açık kaynaklı Switch CSS bileşenini eksiksiz ve özgün bir temayla kullan. Sarmalayıcı/girdi/bitişik etiket yapısını, role=switch değerini ve erişilebilir adlandırmayı koru. İkili ayarları anında uygula ve durum bilgisinin kaynağı olarak checked değerini kullan. Azaltılmış hareket tercihine uy ve yerel tercihleri kalıcı hesap ayarlarından ayır. İlgili haklar olmadan tescilli belirteçleri, yazı tiplerini, logoları veya simgeleri içe aktarma.
05
Amsterdam Tasarım Sistemi Kaynaklar ve kapsam
Bağımsız OpenDesign örneği. Amsterdam marka belirteçleri, Amsterdam Sans, resmî simgeler ve logo dahil değildir.