Atomik tasarım, küçük, yeniden kullanılabilir parçaları giderek daha büyük yapılara dönüştürerek arayüz sistemleri oluşturma metodolojisidir. Brad Frost tarafından 2013 yılında tanıtılan bu yöntem, kimya metaforundan yola çıkarak beş seviye tanımlar: atomlar, etiketler, giriş alanları ve düğmeler gibi en küçük, bölünemez öğeler; moleküller, etiketi ve düğmesiyle birlikte bir arama alanı gibi basit gruplar; organizmalar, bir site başlığı veya ürün kartı gibi daha karmaşık yapılar; şablonlar, içerik yer tutucularına sahip sayfa yapıları; ve sayfalar, gerçek içerikle doldurulmuş şablonlar.
Bu metodolojinin katkısı, her arayüz ekibinin örtük olarak verdiği bir karar için ortak bir kelime dağarcığı sağlamasıdır: bileşen nedir, kompozisyon nedir ve yeniden kullanım nerede başlar. Bir çerçeve olmadan, ekipler ekranları ayrı ayrı oluşturur, benzer öğeleri küçük varyasyonlarla çoğaltır ve her birinin bakımı yapılması gereken düzinelerce ince farklılık gösteren düğme ve kartla sonuçlanır. Atomik tasarım, yeniden kullanılabilir birimleri tanımlamak ve arayüzün belirli bir parçasının hangi seviyede yer alacağına karar vermek için bir yapı sağlar.
Pratik faydaları, ilk kurulumdan ziyade bakım aşamasında ortaya çıkar. Temel bir öğeyi değiştirmek, ondan türetilen her şeyi günceller; bu nedenle odak stili veya boşluk ayarındaki bir değişiklik, kod tabanında arama yapmayı gerektirmek yerine tutarlı bir şekilde yayılır. Yeni ekranlar mevcut parçalardan oluşturulabilir, bu da teslimatı kısaltır ve her yeni sayfanın gerektirdiği karar sayısını azaltır. Kalite güvencesi ve erişilebilirlik çalışmaları, her kullanım için tek bir doğru uygulamanın yeterli olduğu bileşen düzeyinde yoğunlaşır; bu, her sayfada tekrarlanmasına gerek kalmadan sağlanır.
Bu metodoloji, çoğunlukla kelime anlamcılığıyla ilgili makul eleştiriler almaktadır. Ekipler, belirli bir elementin molekül mü yoksa organizma mı olduğu konusunda orantısız bir şekilde tartışmaya giriyorlar; bu, pratik bir sonucu olmayan taksonomik bir tartışmadır. Kimya metaforu da sınır noktalarında yetersiz kalıyor ve tasarımcı olmayanlara kötü bir şekilde aktarılıyor. Çoğu deneyimli ekip, seviyeleri gevşek bir kılavuz olarak ele alıyor, genellikle bunları temel öğeler, bileşenler ve desenler gibi daha basit ayrımlara indirgiyor ve doğru sınıflandırmadan ziyade kompozisyonun temel ilkesine odaklanıyor.
Aşırı soyutlama daha ciddi bir risktir. Ürünün gerçekte neye ihtiyacı olduğunu bilmeden bir bileşen kütüphanesi oluşturmak, aşırı yapılandırma seçeneklerine ve belirsiz amaçlara sahip, hayali durumlar için tasarlanmış bileşenler üretir. Daha güvenilir sıra, ekranlar oluşturmak, gerçek tekrarları fark etmek ve desen gerçek kullanımda birkaç kez ortaya çıktıktan sonra bileşenleri ayıklamaktır. Erken soyutlama, kopyalamadan daha zor geri alınır, çünkü bir bileşenin her tüketicisi, nasıl değişebileceğini kısıtlar.
Metodolojinin değeri, kendisinin sağlamadığı yönetişime büyük ölçüde bağlıdır. Net sahiplik, katkı kuralları ve kullanımdan kaldırma süreci olmayan bir bileşen kütüphanesi, çeşitli varyantlar biriktirir: hafifçe farklılık gösteren üç kart, örtüşen amaçlara sahip iki düğme bileşeni ve mevcut bileşen neredeyse uyduğu için uygulanan giderek artan sayıda tek seferlik geçersiz kılma. Yeni bileşenleri kimin onayladığı, bir ekibin paylaşılan bir bileşende nasıl değişiklik talep ettiği ve kullanımdan kaldırılmış bir kalıbın mevcut kullanımdan nasıl kaldırıldığı, taksonomiden daha çok uzun vadeli tutarlılık için önemlidir. Bu yönetişimi kuran kuruluşlar, kütüphanenin zaman içinde iş yükünü azalttığını görür; kurmayanlar ise, basitleştirmeyi amaçladığı kodun yanında bakım gerektiren başka bir tutarsız yüzey haline geldiğini görür.
Teslimat açısından, bu yaklaşım, tasarım kütüphanesi ve kod kütüphanesi birebir eşleştiğinde en iyi sonucu verir; böylece tasarım aracındaki bir bileşenin aynı ada ve aynı varyantlara sahip tek bir uygulaması olur. Bu eşleşmenin sağlanması, tüm ekiplerin ortak sorumluluğundadır. ürün tasarımı hem de ürün geliştirmeVe bu, bir tasarım sisteminin iş yükünü azaltıp azaltmayacağını veya kodun yanında bakımı yapılacak ikinci bir unsur ekleyip eklemeyeceğini belirleyen şeydir.