Katkı
Bileşen kontrol listesi
Bir bileşenin ya da bileşen değişikliğinin tamam sayılması için aynı değişiklikte gelmesi gereken her şey; testler, hikâyeler, altı sekme, özellik listesi, hareket ve erişilebilirlik.
Bir bileşen ya da bileşen değişikliği, aşağıdaki maddelerin hepsi aynı değişiklikte geldiğinde tamamdır. Yarım bir bileşen ana dala girmez: süre yetmezse kalan maddeler listelenir ve bileşen bir sonraki değişikliğe kalır.
- Bileşen
packages/ui/src/components/<bileşen-adı>/<BileşenAdı>.tsxdosyasındadır; hikâyeleri yanında<BileşenAdı>.stories.tsxdosyasındadır. - Görünüm yalnızca Base UI ilkelleri üzerine
tailwind-variants(tv()) ile kurulur. Radix vecvakullanılmaz (D-05, D-06). - Ham renk, boşluk, süre ya da eğri değeri yoktur; her değer bir token’dan gelir. Bileşene özel bir değer gerekiyorsa yalnızca anlam token’larına bağlanan bir bileşen token’ı eklenir.
- Kök öğe
data-component, iç parçalardata-parttaşır. - Kütüphanenin kendi metinleri (yükleniyor, kapat, zorunlu gibi)
packages/ui/src/strings.tsiçindekiui.*kataloğundan gelir, Türkçe ve İngilizce;Provider localeile değişir ve bir özellikle ezilebilir. - Bileşen
packages/ui/src/index.tsdosyasından özellik türüyle birlikte dışa aktarılır. - Her özelliğin TSDoc açıklaması vardır; varsayılanı
@defaultile yazılır.
Hareket ve etkileşim
Bölüm başlığı “Hareket ve etkileşim”- Fareyle üzerine gelme, basma, odak, devre dışı ve varsa yükleniyor, başarı, açılma ve kapanma durumları tasarlanmıştır. Düz, tepkisiz bir kontrol tamam sayılmaz (D-10).
- Hareket
packages/ui/src/motionönayarlarından gelir (motion.press,motion.popovergibi); bileşen kenditransition,duration-*ya daease-*sınıfını yazmaz. - Yalnızca
opacity,transformve renk canlandırılır (MOT-02). - Azaltılmış harekette hareket kaldırılmaz, yerine kısa bir saydamlık geçişi gelir; başarı işaretleri durağan kalır (MOT-03).
Provider reducedMotion="reduce"da aynı sonucu verir.
Testler
Bölüm başlığı “Testler”- Testler koddan önce ya da kodla birlikte yazılır ve
pnpm --filter @bigbang/ui testile geçer. - Testler rolü ve erişilebilir adı, klavye etkileşimini, durumları (devre dışı, geçersiz, yükleniyor),
data-componentvedata-partözniteliklerini ve kütüphane metinlerinin iki dilini denetler. - Hareket önayarının uygulandığı ve azaltılmış harekette değiştiği test edilir.
- Hiçbir test zayıflatılmaz, atlanmaz ya da silinmez.
Storybook
Bölüm başlığı “Storybook”-
Playgroundhikâyesi bütün özellikleri denetimlerle açar. - Her varyant, boyut ve durum için bir hikâye vardır.
- Hikâyeler araç çubuğundaki marka, açık ve koyu mod ve Türkçe ve İngilizce seçimiyle doğru görünür. Demo metinleri
.storybook/messages.tsdosyasından gelir ve nötrdür (“Birincil buton”, “Kart başlığı”). - Erişilebilirlik eklentisi (axe) hikâyelerde ihlal göstermez.
Doküman
Bölüm başlığı “Doküman”- Altı sekme Türkçe ve İngilizce yazılır: Örnekler, Kullanım, Teknik özellikler, Erişilebilirlik, Kod, Değişiklikler. Zorunlu ara başlıklar
scripts/check-docs.mjstarafından denetlenir. - Örnekler sekmesi kahraman örneği
StoryEmbedile canlı gösterir; diğer örneklersrc/examples/<bileşen>/{tr,en}/altında statik çizilir. - Bileşen
src/data/components.tsiçinde durum, sürüm ve kahraman hikâyesiyle,src/data/categories.tsiçinde kategorisiyle kayıtlıdır ve kenar çubuğuna eklenir. -
pnpm propsileprops.jsonyeniden üretilir; özelliklerin Türkçe açıklamalarısrc/data/props.tsdosyasına yazılır. - Demo metinleri nötrdür; müşteriye ya da gerçek bir işleme ait veri kullanılmaz.
- Bir değişiklik kaydı (
pnpm changeset) eklenir; uyumu bozan değişiklikte geçiş notu yazılır. Bkz. Sürümleme. - Bileşenin Değişiklikler sekmesi güncellenir.
Kontroller
Bölüm başlığı “Kontroller”Değişiklik gönderilmeden önce şu komutlar temiz çıkar:
pnpm install --frozen-lockfilepnpm check # token'lar, lint, tip denetimi (astro check dahil), testlerpnpm docs:build # Storybook derlemesi, doküman denetimi, site derlemesi