Hizmet pazarı · Yeni kaynak

Thumbtack Thumbprint Tasarım Sistemi.

Thumbprint’in belgelenmiş v2 temel bileşenleriyle bir hizmet keşif arayüzü oluşturun: kompakt sağlayıcı kartları, okunaklı karşılaştırma ayrıntıları, belirgin seçim durumları ve sabit bir kısa liste.

OpenDesign Kılavuzu8 Bölüm37 başvuru girdisiÖzgün Uygulama Kılavuzu
01

Thumbtack Thumbprint Tasarım Sistemi Arayüz Önizlemesi

Kurgusal bahçe hizmetlerini filtreleyin, hizmet sağlayıcıları kaydedin ve yerel kısa listenizi gözden geçirin.

Hizmet sağlayıcıları karşılaştırın ve kısa liste oluşturunÖrneğin Tamamını Aç
Seçili Thumbprint v2 temel bileşenlerinin özgün HTML yorumu. · Uygulama başvurusu
02

Thumbtack Thumbprint Tasarım Sistemi Tasarım Başvurusu

Thumbprint'in herkese açık v2 JavaScript belirteç başvurusu; değerler Ekim 2026'da okunmuştur. Örnekte sayısal boyutlar CSS piksele dönüştürülmüştür.

Renk temel değerleri ve uygulama rolleri

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
tpV2ColorGray50#f5f6f6 Kısa liste için sakin arka plan yüzeyi.
tpV2ColorGray200#dddee1 Kart sınırları ve ayırıcılar.
tpV2ColorGray600#595c61 Beyaz üzerindeki ikincil ayrıntılar.
tpV2ColorGray900#2b2d2f Ana metin.
tpV2ColorBlue50#f0faff Seçili denetim yüzeyi.
tpV2ColorBlue100#e0f4fe Özgün ev çiziminin dolgu rengi.
tpV2ColorBlue600#009fd9 Başvuru temel değeri; küçük beyaz metinlerde kullanılmaz.
tpV2ColorBlue700#0175A3 Beyaz metinli uygulama eylem rengi.
tpV2ColorBlue800#066286 Odak dış çizgisi ve çizim konturu.
tpV2ColorGreen50#eefbf4 Uygunluk etiketi yüzeyi.
tpV2ColorGreen200#b0eacb Dekoratif bahçe çizimi.
tpV2ColorGreen700#126a4b Uygunluk metni.

Aralıklar ve köşeler

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
tpV2SpaceXxsmall4Sayısal piksel değeri; bileşim aralıklarında kullanılır.
tpV2SpaceXsmall8Sayısal piksel değeri; bileşim aralıklarında kullanılır.
tpV2SpaceSmall12Sayısal piksel değeri; bileşim aralıklarında kullanılır.
tpV2SpaceMedium16Sayısal piksel değeri; bileşim aralıklarında kullanılır.
tpV2SpaceLarge20Sayısal piksel değeri; bileşim aralıklarında kullanılır.
tpV2SpaceXlarge24Sayısal piksel değeri; bileşim aralıklarında kullanılır.
tpV2SpaceXxlarge32Sayısal piksel değeri; bileşim aralıklarında kullanılır.
tpV2CornerRadiusXsmall4Sayısal piksel değeri; örnekte denetimler için Medium, kartlar için Large kullanılır.
tpV2CornerRadiusSmall6Sayısal piksel değeri; örnekte denetimler için Medium, kartlar için Large kullanılır.
tpV2CornerRadiusMedium8Sayısal piksel değeri; örnekte denetimler için Medium, kartlar için Large kullanılır.
tpV2CornerRadiusLarge12Sayısal piksel değeri; örnekte denetimler için Medium, kartlar için Large kullanılır.
tpV2CornerRadiusXlarge16Sayısal piksel değeri; örnekte denetimler için Medium, kartlar için Large kullanılır.
tpV2CornerRadiusSides9999Sayısal piksel değeri; örnekte denetimler için Medium, kartlar için Large kullanılır.

Duyarlı tipografi ve düzen

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
tpV2BreakpointSmall481pxKüçük düzen eşiği.
tpV2BreakpointMedium700pxÖrnek bu eşikte iki sütunlu düzene geçer.
tpV2BreakpointLarge1025pxBüyük düzen eşiği.
tpV2BreakpointSplitViewSmall769pxYalnızca bölünmüş görünüme özgü eşik; Medium ile eş anlamlı değildir.
tpV2BreakpointSplitViewMedium1060pxDaha geniş bölünmüş görünüm eşiği.
tpV2FontTitle2Size28Küçük ekran başlık boyutu, piksel cinsinden.
tpV2FontTitle2ResponsiveSize36Büyük ekran başlık boyutu, piksel cinsinden.
tpV2FontTitle2LineHeight1.1Birim içermeyen başlık satır yüksekliği; anlamsal başlık düzeyinden bağımsızdır.
tpV2FontText1Size16Gövde metni boyutu.
tpV2FontText1LineHeight1.4Gövde satır yüksekliği çarpanı.
tpV2FontWeightRegular400Normal gövde metni.
tpV2FontWeightBold700Yedek yazı tipi kullanılırken güçlü vurgu.
03

Thumbtack Thumbprint Tasarım Sistemi Eksiksiz Kılavuz

Bu sistemi gerçek bir arayüz için seçmeye, uygulamaya ve gözden geçirmeye yönelik pratik bir kılavuz.

DESIGN-thumbtack-thumbprint.md

Eksiksiz yönlendirme, uygulama için başlangıç noktası ve kaynak bağlantıları.

Kılavuzu İndir

Thumbtack Thumbprint Tasarım Sistemi Belirteç Nesli Seçin

v1 ve v2'yi birbirinden ayrı tutun

Thumbprint, iki belirteç neslini de sunar. v2 dışa aktarma adları tpV2 ile başlar ve yeni bir gri ton skalası, duyarlı başlık değerleri ve ara yazı tipi kalınlıkları içerir. v1 yolunda belgelenmiş yerel bir bileşen, bu v2 değerlerini kullandığının kanıtı değildir. Paylaşılan stilleri değiştirmeden önce ürününüzün hangi paketi ve nesli kullandığını kaydedin.

Bu OpenDesign kılavuzundan

Bu örneği bir bileşim çalışması olarak kullanın

Bu örnek, herkese açık temel değerleri doğrudan özgün HTML üzerinde uygular. ServiceCard bileşenini sarmalamaz ve Thumbtack uygulamasıyla özellik eşitliği iddiasında bulunmaz. Yerel bir uygulama, belgelenmiş API paketinden başlamalı; gerçek hizmet verilerini ise yalnızca yükleme, hata ve izin sözleşmeleri tanımlandıktan sonra kullanmalıdır.

Thumbtack Thumbprint Tasarım Sistemi Renk Rolleri ve Seçim

Eylemi, seçimi ve uygunluğu birbirinden ayırın

Yerel birincil eylem için Blue700, kaydedilmiş denetimler için Blue50; uygunluk metni içinse Green50 üzerinde Green700 kullanılır. Sağlayıcı adı Gray900, destekleyici ayrıntılar Gray600 rengindedir. Bu eşlemeler, belgelenmiş temel değerler üzerine kurulmuş uygulama tercihleridir; uydurulmuş anlamsal belirteç adları değildir.

Kısa listeyi yalnızca renkle belirtmeyin

Kaydedilmiş bir sağlayıcıda düğme etiketi ve aria-pressed durumu renk tonuyla birlikte değişir. Uygunluk bilgisi saat ifadesiyle metin olarak sunulmaya devam eder. Filtreleme, kaydedilmiş bir sağlayıcıyı kısa listeden silmeden gizleyebilir; kullanıcının bu ayrımı anlayabilmesi için liste görünür kalır.

Thumbtack Thumbprint Tasarım Sistemi Tipografi ve İçerik

Yazı tipinde sürüm farklılıklarını gözetin

Herkese açık tipografi kılavuzunda Rise, 400 ve 700 kalınlıklarında; başlıklar içinse daha eski bir duyarlı ölçekle listelenir. v2 belirteç sayfasında farklı boyutlar ve kesirli kalınlıklar bulunur. Bunları birleştirip hayalî bir varsayılan oluşturmayın. Bu önizleme, v2 ölçeğinden esinlenen açık boyutlarla sistem yazı tipi yedeğini kullanır ve Rise yazı tipini yeniden dağıtmaz.

Karşılaştırmaya yardımcı olacak ayrıntılar yazın

Her sağlayıcı için bir hizmet kategorisi, kısa açıklama ve okunabilir bir uygunluk etiketi bulunur. Rehberde uydurma yorum sayıları, puanlar ve fiyatlar bilerek kullanılmamıştır. Gerçek bir hizmet pazarında bu değerlerin güvenilir bir kaynağı ve ölçü birimi olmalıdır; dekoratif yıldızlar yararlı bilgi sunmak yerine asılsız bir güven duygusu yaratır.

Thumbtack Thumbprint Tasarım Sistemi Kartlar, Aralıklar ve Duyarlı Düzen

Karşılaştırma ayrıntılarını bir arada tutun

Hizmet sağlayıcı kartlarında 24px dolgu, 16px iç aralık ve 12px köşe yarıçapı kullanılır. Baş harfler dekoratiftir; yanındaki başlık erişilebilir addır. Kartın tüm yüzeyi iç içe geçmiş bir bağlantıya dönüştürülmez. Kaydetme ayrı bir düğme olarak kalır; böylece gelecekte eklenecek profil bağlantısı seçim davranışını yutmaz.

Dar ekranlarda kısa listeyi dikey olarak sıralayın

Thumbtack Thumbprint Tasarım Sistemi Filtreleme ve Kısa Liste Durumları

Filtreleri ve kaydedilmiş durumu birbirinden bağımsız tutun

Kategori seçimi ve uygunluk onay kutusu, oluşturulmuş üç kaydı filtreler. Bahçe bakımı ve Bu hafta müsait seçenekleri birlikte seçildiğinde sonuç boş kalır ve filtreleri sıfırlama eylemi görünür. Filtreleme silme işlemi olmadığından daha önce kaydedilmiş kayıtlar kısa listede kalır. Bu kural kaynakta görülebilir ve arka uç olmadan denetlenebilir.

İnceleme eyleminin sonucunu doğru ifade edin

Boş bir kısa listeyi incelemek, sonraki adımda ne yapılacağını açıklar. Boş olmayan bir listeyi incelemek, listedeki öğe sayısını bildirir ve işlemin yalnızca yerel olarak gerçekleştiğini açıkça belirtir. Kaydedilmiş bir öğe değiştiğinde bu sonuç temizlenir; böylece eski bir onay mesajının farklı bir kısa listeyi tanımlaması önlenir. Örnek, bir uzmanla iletişime geçtiğini asla iddia etmez.

Thumbtack Thumbprint Tasarım Sistemi Klavye ve Erişilebilir Seçim

Denetimler için yerel anlamlandırma kullanın

Kategori seçimi etiketli bir açılır menüyle, ikili bir koşul ise etiketli bir onay kutusuyla yapılır. Her kaydetme düğmesinin sağlayıcıya özel bir erişilebilir adı ve aria-pressed özelliği vardır. Sonuç sayacı nazik bir canlı bölge kullanır; inceleme geri bildirimi ise durum anlamlandırmasına sahiptir. Klavye odağı, üzerine gelme durumundan bağımsız olarak görünür.

Gerçek başlıklar ve esnek yükseklikler kullanın

Sağlayıcı adları, kalın yazılmış span öğeleri değil, örnek içindeki h2 öğeleridir. Baş harfler ve özgün dekoratif SVG, erişilebilirlik ağacının dışında tutulur. Uzun adlar ve açıklamalar, eylemi ekran dışına taşımadan satırlara bölünebilmelidir; metin yakınlaştırmasında kırpma yerine esnek satırlar kullanılmalıdır.

Thumbtack Thumbprint Tasarım Sistemi Eksiksiz Uygulama

Eksiksiz örneği çalıştırıp inceleyin

HTML örneğini index.html olarak kaydedin ve bulunduğu klasörü sunun. Örnek, satır içi CSS ve JavaScript içerir; paket kurulumu veya ağ bağlantısı gerektirmez. Üç kayıt ve seçim Set'i açıkça tanımlanmıştır; böylece oluşturulmuş bir paketi tersine mühendislikle çözmeden davranış uyarlanabilir.

  1. Eksiksiz HTML dosyasını kaydedin.
  2. Dosyayı yerel olarak sunun ve tarayıcıda açın.
  3. Sonuçları boş kalacak şekilde filtreleyin ve filtreleri sıfırlayın.
  4. İki sağlayıcıyı kaydedin, inceleyin ve ardından birini kaldırın.

Yerel bileşenlere bilinçli biçimde geçin

React kitaplığına geçerken, kullanılan tam sürüm için güncel ServiceCard, Button ve tipografi belgelerini inceleyin. Ürüne uygunsa bu örnekteki durum modelini koruyun, ancak özgün işaretlemeyi doğrulanmış API'lerle değiştirin. Görsel ve klavye regresyon kontrolleri yapmadan v2 değerlerini v1 bileşenlerine uygulamayın.

Thumbtack Thumbprint Tasarım Sistemi Ajan Devri ve İnceleme

Ajana kapsamı belirli bir görev verin

Ajandan, seçilen Thumbprint sürümünü kullanan, açık kaynak URL'lerine ve yalnızca yerel kullanım için oluşturulmuş kurgusal kayıtlara sahip bir ev hizmetleri karşılaştırma ekranı hazırlamasını isteyin. Filtreleme ile seçimin birbirinden ayrı olduğu kuralı koruyun. Eksiksiz örneği davranış referansı olarak verin ve yerel React bileşenlerinin mi yoksa bağımsız HTML öğelerinin mi beklendiğini belirtin.

Hata durumlarını inceleyin

  • Kaydedilmiş durum filtreleme boyunca korunur.
  • Kısa liste değiştiğinde eski onay temizlenir.
  • Uydurma puan veya iletişim sonucu gösterilmez.

Thumbtack Thumbprint Tasarım Sistemi Bileşen Örnekleri

Eksiksiz ev projesi kısa listesi

Özgün, kendi içinde çalışan HTML/CSS/JavaScript; filtreler, seçili durum, boş sonuçtan kurtarma ve yerel inceleme içerir.

html
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Home project shortlist</title><style>
:root{--ink:#2b2d2f;--muted:#595c61;--line:#dddee1;--soft:#f5f6f6;--action:#0175a3;--selected:#f0faff}*{box-sizing:border-box}body{margin:0;padding:32px;font:400 16px/1.4 system-ui,sans-serif;color:var(--ink);background:white}h1{font-size:36px;line-height:1.05;letter-spacing:-.02em;margin:12px 0}h2{font-size:22px;margin:0 0 8px}p{margin:8px 0 20px}.eyebrow,.meta{font-size:14px;color:var(--muted)}header{display:grid;grid-template-columns:1fr 180px;gap:32px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:24px}svg{width:180px;height:120px}.filters{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin:24px 0}select,button{font:inherit;border:1px solid var(--line);border-radius:8px;min-height:44px;padding:10px 16px;background:white;color:var(--ink)}label{display:flex;align-items:center;gap:8px}input{accent-color:var(--action);width:18px;height:18px}main{display:grid;grid-template-columns:2fr 1fr;gap:24px}.cards{display:grid;gap:16px}.card{padding:24px;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:48px 1fr auto;gap:16px;align-items:start}.avatar{display:grid;place-items:center;border-radius:50%;height:48px;background:var(--selected);color:var(--action);font-weight:700}.card p{margin:4px 0 12px}.card button[aria-pressed=true]{background:var(--selected);border-color:var(--action);color:var(--action)}.badge{display:inline-block;background:#eefbf4;color:#126a4b;padding:4px 8px;border-radius:6px;font-size:14px}aside{align-self:start;border:1px solid var(--line);border-radius:12px;padding:24px;background:var(--soft)}aside ul{padding-left:20px}aside li{margin:12px 0}.primary{background:var(--action);color:white;border-color:var(--action)}button{cursor:pointer}button:hover{border-color:var(--action)}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #066286;outline-offset:3px}#notice{font-size:14px;color:#126a4b}footer{font-size:12px;color:var(--muted);margin-top:24px}#empty{padding:24px;border:1px dashed var(--line);border-radius:12px}[hidden]{display:none!important}@media(max-width:699px){body{padding:20px}header{grid-template-columns:1fr}header svg{display:none}h1{font-size:28px}main{grid-template-columns:1fr}.card{grid-template-columns:40px 1fr;padding:16px}.avatar{height:40px}.card button{grid-column:2;justify-self:start}}
</style><body><header><div><span class="eyebrow">HOME PROJECT / FICTIONAL DIRECTORY</span><h1>Find the right help for home</h1><p>Compare the details, then build a shortlist for a garden project.</p></div><svg viewBox="0 0 180 120" aria-hidden="true"><path d="M20 66 84 16l64 50v45H20z" fill="#e0f4fe"/><path d="m9 68 75-58 75 58" fill="none" stroke="#0175a3" stroke-width="5"/><path d="M65 110V70h38v40" fill="#fff" stroke="#066286" stroke-width="3"/><circle cx="146" cy="80" r="24" fill="#b0eacb"/><path d="M146 80v35" stroke="#126a4b" stroke-width="4"/></svg></header><div class="filters"><label>Project type <select id="category"><option value="all">All garden services</option><option value="design">Garden design</option><option value="care">Garden care</option></select></label><label><input id="available" type="checkbox">Available this week</label><span id="count" class="meta" aria-live="polite"></span></div><main><section aria-label="Service providers"><div id="cards" class="cards"></div><div id="empty" hidden><h2>No matching services</h2><p>Try a different project type or include later availability.</p><button id="reset">Reset filters</button></div></section><aside><h2>Project shortlist</h2><p class="meta">Saved only while this preview is open.</p><ul id="saved"></ul><p id="savedEmpty">Save a provider to compare your options.</p><button class="primary" id="review">Review shortlist</button><p id="notice" role="status"></p></aside></main><footer>Original HTML study using documented Thumbprint v2 primitives. System font fallback; no Thumbtack service, ratings or contact request.</footer><script>
const providers=[{id:'fern',name:'Fern & Field',type:'design',description:'Planting plans for small outdoor spaces.',timing:'This week',available:true,initials:'FF'},{id:'grove',name:'Grove Garden Care',type:'care',description:'Seasonal pruning, planting and routine care.',timing:'Next week',available:false,initials:'GG'},{id:'yard',name:'Yard Workshop',type:'design',description:'Practical layouts for shared courtyards.',timing:'This week',available:true,initials:'YW'}];const chosen=new Set();const $=id=>document.getElementById(id);
function render(){const shown=providers.filter(p=>($('category').value==='all'||p.type===$('category').value)&&(!$('available').checked||p.available));$('cards').replaceChildren(...shown.map(p=>{const card=document.createElement('article');card.className='card';card.innerHTML=`<span class="avatar" aria-hidden="true">${p.initials}</span><div><h2>${p.name}</h2><p>${p.description}</p><span class="badge">${p.timing}</span></div><button aria-pressed="${chosen.has(p.id)}" aria-label="${chosen.has(p.id)?'Remove':'Save'} ${p.name}">${chosen.has(p.id)?'Saved':'Save'}</button>`;card.querySelector('button').onclick=()=>{chosen.has(p.id)?chosen.delete(p.id):chosen.add(p.id);$('notice').textContent='';render()};return card}));$('count').textContent=`${shown.length} of ${providers.length} sample providers`;$('empty').hidden=shown.length>0;$('saved').replaceChildren(...providers.filter(p=>chosen.has(p.id)).map(p=>{const li=document.createElement('li');li.textContent=p.name;return li}));$('savedEmpty').hidden=chosen.size>0;}
$('category').onchange=render;$('available').onchange=render;$('reset').onclick=()=>{$('category').value='all';$('available').checked=false;render()};$('review').onclick=()=>{$('notice').textContent=chosen.size?`Shortlist ready: ${chosen.size} provider${chosen.size===1?'':'s'}. No contact request has been sent.`:'Save at least one provider first.'};render();
</script></body></html>

Kod referansı

  • index.html olarak kaydedin. Yerel Thumbprint bileşen çalışma zamanı kullanılmaz.
04

Thumbtack Thumbprint Tasarım Sistemi Ajan Kurulumu

Uygulamaya Başlangıç Noktası

Paket veya API kimlik bilgisi gerekmez. Örnek, yerel bir uygulama incelemesidir.

sh
# Save the complete HTML example as index.html
python3 -m http.server 8080
# Open http://localhost:8080

Projeniz İçin Bir İstem

Ajan İstemi
Bu kılavuzdaki Thumbprint v2 değerlerini kullanarak bir hizmet karşılaştırma ekranı oluşturun. Filtreler boyunca yerel kısa listeyi koruyun, boş sonuçtan kurtarma durumu ekleyin ve inceleme geri bildirimini seçimle eşzamanlı tutun. Kurgusal kayıtlar ve anlamsal yerel HTML öğeleri kullanın; ancak doğrulanmış bir Thumbprint React paketi açıkça seçilmişse bu paketi kullanabilirsiniz. v1 bileşen varsayımlarını v2 belirteç adlarıyla karıştırmayın.
05

Thumbtack Thumbprint Tasarım Sistemi Kaynakları ve Kapsamı

Thumbprint için hazırlanmış bir OpenDesign uygulama kılavuzu. Çalışma örneği, seçili v2 değerlerini kullanan özgün HTML öğelerinden oluşur; yerel Thumbtack React kitaplığı değildir. Herkese açık tipografi kılavuzu daha eski bir ölçeği açıklar; bu sayfa, bu ölçeği v2 belirteç referansından ayrı tutar. Tüm sağlayıcılar kurgusaldır.