Başsız bileşen sistemi · Yeni Kaynak

Ariakit Tasarım Sistemi.

Ariakit, açıkça tanımlanmış ortak duruma ve birleştirilebilir erişilebilir parçalara sahip, stilsiz React bileşenleri sunar. Combobox, yazılan metni onaylanmış seçimden ayırdığı için arama tabanlı seçicilerde kullanışlıdır; aşağıdaki referans bulucu, gruplandırılmış ve kullanılamayan sonuçlarla bu farkı gösterir.

OpenDesign Kılavuzu9 Bölüm29 Referans KaydıÖzgün Uygulama Kılavuzu
01

Ariakit Tasarım Sistemi Arayüz Önizlemesi

Gruplandırılmış referansları filtreleyin, Aşağı Ok/Enter ile seçim yapın, sonucu inceleyin ve yerel okuma listesine ekleyin.

Erişilebilir referans bulucuÖrneğin Tamamını Aç
Yerel @ariakit/react 0.4.40 ve React 19. Tüm görsel belirteçler ve örnek referans içeriği özgündür. · Uygulama başvurusu
02

Ariakit Tasarım Sistemi Tasarım Referansı

Ariakit React 0.4.40, stilsiz bir erişilebilirlik araç setidir. Aşağıda belirtilen sayfa paletini, yazı tipi ölçeğini veya aralıkları yerleşik bir tasarım teması olarak sunmaz. Tüm --app-* değerleri, çalıştırılabilir bu örnek için açıkça tanımlanmış özgün bir yapılandırmadır; bileşen adları ve durum nitelikleri Ariakit API’leridir.

Özgün anlamsal renk yapılandırması

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
--app-canvas#f5f3ee Sayfa arka planı.
--app-surface#fffCombobox açılır penceresi ve referans kartı.
--app-text#292e29 Ana metin.
--app-muted#657064 İkincil etiketler ve ipuçları.
--app-border#d8ddd4 Girdi ve kart kenarlıkları.
--app-action#285f48 Birincil eylem ve odak halkası.
--app-on-action#fffBirincil eylem üzerindeki metin.
--app-active#e3eee4 Etkin seçenek ve seçili eylem yüzeyi.

Özgün geometri ve aralıklar

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
--app-radius10pxGirdi, açılır pencere ve referans kartı köşe yarıçapı.
--app-space-18pxTanımlanmış özgün aralık ölçeği.
--app-space-216pxTanımlanmış özgün aralık ölçeği.
--app-space-324pxTanımlanmış özgün aralık ölçeği.
--app-space-432pxTanımlanmış özgün aralık ölçeği.
Combobox padding13px 48px 13px 14pxAçıklama kontrolü için yer bırakır.
Popover maximum height340pxUzun sonuç listeleri için yerel kaydırma.
Popover gutter8pxGirdi ile önerileri ayıran gerçek gutter prop’u.

Özgün tipografi

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
Font familysystem-ui, sans-serifYazı tipi indirmek veya Ariakit’a özel bir yazı tipi kullanmak gerekmez.
Page heading36px / 1.1; 30px mobileÖzgün sayfa hiyerarşisi.
Input text15pxÖzgün combobox metin boyutu.
Option text14pxÖzgün sonuç etiketi boyutu.
Group label11px, uppercase, 700Özgün görünür gruplandırma stili.
Supporting hint12px / 1.7Klavye talimatları arasındaki ritim.

Yerel bileşim ve durum

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
ComboboxProvider.inputValueControlled query stringGeçerli 0.4.40 API girdi durumu; setInputValue filtrelemeyi günceller.
ComboboxProvider.selectedValueControlled reference nameOnaylanmış seçim, sorgudan bağımsızdır.
ComboboxGroup / ComboboxGroupLabelFoundations / ComponentsYerel etiketli seçenek grupları.
ComboboxPopover.sameWidthtrueBağlantı noktasının genişliğini izler.
ComboboxItem.disabledtrue for Experimental gridKullanılamayan kayıt seçilemez.
[data-active-item]CSS state selectorKlavye ile etkinleştirilen seçeneği, seçim durumundan bağımsız olarak biçimlendirir.
Combobox autoSelectNot enabled in this specimenAşağı tuşu listeye geçiş yapar; Enter bir seçenek belirler.
03

Ariakit Tasarım Sistemi Eksiksiz Kılavuzu

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

DESIGN-ariakit.md

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

Kılavuzu İndir

Ariakit Tasarım Sistemi: Combobox Durum Modeliyle Başlayın

Combobox Durum Modeliyle Başlayın

Ariakit ComboboxProvider bileşeni etiketi, düzenlenebilir girdiyi, açılır pencere kontrolünü, açılır pencereyi ve seçenekleri birbirine bağlar. Sağlayıcı, bileşenlerin her biri yapının kendi bölümünü sunarken ortak etkileşim durumunu yönetir. Böylece arama alanı ve seçili ayrıntı paneli, her tuş vuruşu yeni bir seçimmiş gibi ele alınmadan birbirinden bağımsız düzenlenebilir.

Bu OpenDesign kılavuzundan

Referans bulucu, adı belirtilmiş iki grupta altı kayıt gösterir. Filtreleme uygulamanın kayıt koleksiyonuna, gezinme ve seçenek belirleme ise yerel combobox’a aittir. Statik kayıtları başka bir veri kaynağıyla değiştirirken bu sınırı açıkça korumak yararlıdır: filtrelenmiş sonuç kümesiyle o anda onaylanmış öğe her zaman aynı değildir.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi: Arama Metni ile Onaylanmış Seçim Farklı Durumlardır

Arama Metni ve Onaylanmış Seçim Farklı Durumlardır

Örnek, yazılan metin için inputValue ve setInputValue’ı; seçilen referans içinse selectedValue ve setSelectedValue’ı denetler. Doğrulanan 0.4.40 API sürümünde inputValue, girdi durumunun güncel adıdır; eski örneklerde kullanımdan kaldırılmış value/setValue takma adları görülebilir. Eksiksiz kodda güncel adlar kullanılır.

“color” yazmak önerileri daraltır ancak görüntülenen ayrıntı kartını hemen değiştirmez. Color roles seçildiğinde bu öğe onaylanır ve panel güncellenir. Aramayı temizlemek de son seçili referansı olduğu gibi bırakır. Her kısmi sorguyu onaylanmış bir değer gibi ele almak, ayrıntı görünümünün geçersiz veya mevcut olmayan kayıtlara atlamasına neden olur.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi: Etiketi, Girdiyi, Açılır Pencere Kontrolünü ve Açılır Pencereyi Bağlayın

Etiket, Girdi, Açılır Alan ve Popover'ı Bağlayın

ComboboxProvider, ortak durumu ComboboxLabel, Combobox, ComboboxDisclosure ve ComboboxPopover bileşenlerine sağlar. Görünür etiket girdiyi tanımlar. Açılır pencere kontrolü, erişilebilir adı açıkça belirtilmiş ayrı bir düğmedir; açılır pencere ise bağlantı noktasıyla hizalı kalmak için sameWidth ve sekiz piksellik bir gutter kullanır.

Her sonuç, kararlı bir value değerine sahip ComboboxItem bileşenidir. Foundations ve Components bölümleri, ComboboxGroupLabel başlıkları içeren yerel ComboboxGroup bölümleridir. Yapılandırılmamış bir listeye görsel olarak kalın bir başlık eklemek aynı gruplama ilişkisini ifade etmez; yerel bileşen yapısı bu ilişkiyi klavye modeliyle birlikte tanımlar.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi: Yerel Öğeleri Görüntülemeden Önce Verileri Filtreleyin

Yerel Öğeleri Görüntülemeden Önce Verileri Filtreleyin

Örnek koleksiyonda kullanılabilir beş referans ve özellikle kullanılamaz olarak işaretlenmiş Experimental grid bulunur. Filtreleme, uygulama düzeyinde her referans adına büyük/küçük harf duyarsız alt dize eşleşmesi uygular. İki grup yalnızca eşleşen kayıt içerdiğinde görüntülenir; böylece sonuçlar arasında boş başlıklar oluşmaz.

Hiç sonuç vermeyen bir sorgu, aramayı temizlemeyi veya “color” denemeyi öneren özel bir ileti gösterir. Bu ileti seçilebilir bir seçeneğe dönüştürülmez. Devre dışı kayıt, eşleştiğinde görünür kalır ve Unavailable etiketi taşır; yerel disabled prop’u ise bu kaydın onaylanmış seçim olmasını engeller.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi: Gerçek Aşağı ve Enter Akışını Doğrulayın

Aşağı Ok ve Enter ile Gerçek Akışı Doğrulayın

Örnekte autoSelect kapalıdır. Bir sorgu yazdıktan sonra Aşağı tuşu öneri listesine geçer, Enter ise etkin öğeyi seçer. Escape açılır pencereyi kapatır. Bu davranış, yalnızca bir açılır listenin görünüp görünmediğine göre değil, seçili ayrıntı başlığı denetlenerek doğrulanmıştır.

Otomatik vurgulama başka bir üründe uygun olabilir ancak ok tuşlarıyla gezinmenin başlangıç noktasını değiştirir. Önceden etkinleştirilmiş tek bir sonuç varsa Aşağı tuşuna bir kez daha basmak odağı girdiye geri taşıyabilir. Örnek, bu uyumsuzluğu önler ve etkin öğeyi data-active-item aracılığıyla biçimlendirerek klavyedeki konumu kayıtlı okuma listesi üyeliğinden ayrı tutar.

  1. “color” yazın ve eşleşen seçeneğin görünmesini bekleyin.
  2. Aşağı tuşuna, ardından Enter’a basın ve Color roles ayrıntı panelini inceleyin.
  3. Kullanılamayan veya mevcut olmayan bir referansı arayın ve yanlışlıkla seçim yapılmadığını doğrulayın.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi: Etkin Seçenek, Odak Halkası ve Kayıtlı Durum İçin Farklı İşaretler Kullanın

Etkin Seçenek, Odak Halkası ve Kaydedilmiş Durum Farklı İpuçları Kullanır

Girdi ve açılır pencere kontrolü görünür odak çerçeveleri kullanır. Etkin seçenek, yerel data-active-item niteliğiyle açık yeşil bir arka plan ve bir piksellik iç çerçeve alır. Devre dışı seçeneklerin vurgusu azaltılır ve açık metin etiketleri korunur. Bu stiller yalnızca üzerine gelme durumuna dayanmaz.

Seçili referans okuma listesine eklendiğinde Ekle düğmesi devre dışı kalır ve metni değişir. Bu kayıtlı durum uygulamaya aittir ve combobox’ta o anda etkin olan sonuçtan ayrıdır. Açık yeşil kayıtlı eylem yüzeyi, devre dışı bir eylemin başka bir etkin birincil düğme gibi görünmesini önler.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi: Okuma Listesi Geçerli Referansın Yerini Almaz

Okuma Listesi Geçerli Referansın Yerini Tutmaz

Bir referansın eklenmesi, adını yerel bir diziye yalnızca bir kez ekler; kullanıcı notlarını inceleyebilsin diye geçerli referans görünür kalır. Okuma listesindeki her satırın adı açıkça belirtilmiş bir Kaldır düğmesi vardır. Bir öğe kaldırıldığında ve ilgili referans hâlâ seçiliyse Ekle yeniden etkinleşir. Öğe sayısı dizinin uzunluğundan hesaplanır.

Örnek ayrıntı içeriği, bulucuyu keşfetmeyi kolaylaştırmak için tipografi, aralıklar ve bileşenlerle ilgili yönergeler içerir. Değerlerin özgün örnek içerik olduğu açıkça belirtilmiştir. Okuyucu, Type scale kaydındaki “Display 36px” değerini Ariakit tipografi belirteci sanmamalıdır; Ariakit bu tasarım dilini sağlamaz.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi: Açılır Pencereye, Tüm Sayfayı Yeniden Boyutlandırmadan Yer Açın

Açılır Pencereye, Tüm Sayfayı Yeniden Boyutlandırmadan Yer Açın

Açılır pencere girdi genişliğini izler ve kendi yüksekliğini en fazla 340px ile sınırlar. Sonuç koleksiyonu büyüdüğünde seçili ayrıntı kartı normal belge içeriği olarak kalırken bu sınırın içindeki liste kaydırılır. Ayrıntı kartı başka bir sütuna taşınsa bile girdi, açılır pencere kontrolü ve seçenek açılır penceresini birbirine bağlı tutun; bir öğe onaylandığında aynı seçili kayıt güncellenmelidir.

Bulucu ve ayrıntı kartı, özgün 700px kesme noktasında alt alta yerleşir. Arama kontrolleri, klavye ipucu ve okuma listesi belge sıralamasında seçili karttan önce kalır. Dekoratif referans görseli yardımcı teknolojilere gizlenir; çünkü asıl anlamı başlık ve notlar aktarır.

  • Uzun bir seçenek listesini yerel olarak sınırlandırırken öğeler arasındaki okunabilir aralıkları koruyun.
  • Onaylanmış ayrıntı panelini geçici açılır pencerenin dışında tutun.
  • Mobilde görünür girdi etiketlerini ve klavye ipuçlarını koruyun.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi: Sağlayıcıyı, Koleksiyonu ve Stil Sayfasını Birleştirin

Sağlayıcıyı, Koleksiyonu ve Stil Sayfasını Birleştirin

@ariakit/react 0.4.40 paketini React projesine yükleyin ve App.jsx dosyasındaki sağlayıcı/bileşen bileşimini eksiksiz koruyun. Güncel örnek, inputValue/setInputValue ve selectedValue/setSelectedValue çiftlerini birbirinden ayrı ve denetimli olarak kullanır. Geçerli girdi sorgusu açılır penceredeki sonuçları filtrelese bile seçili kaydı erişilebilir tutun.

Sağlanan style.css dosyasını bileşenin yanında içe aktarın. data-active-item kuralı combobox’ın klavye konumunu, kayıtlı liste stilleri ise uygulama durumunu izler. Sonuçları eş zamansız yüklenen verilerle değiştirirken bu iki durum kanalını ve grup/seçenek ilişkilerini koruyun; onaylanmış ayrıntı panelini ara sorgu metniyle değiştirmeyin.

Destekleyici belirtimi okuyun

Ariakit Tasarım Sistemi Bileşen Örnekleri

Denetimli eksiksiz referans bulucu

Sağlayıcı, etiket, girdi, açılır pencere kontrolü, gruplandırılmış açılır pencere öğeleri ve yerel okuma listesi eylemleri.

jsx
import React,{useState} from 'react';
import * as Ariakit from '@ariakit/react';
const resources=[{name:'Type scale',group:'Foundations',code:'Aa',description:'A compact editorial hierarchy for headings, supporting text and labels.',notes:['Display · 36px / 1.1','Section · 24px / 1.25','Body · 16px / 1.6'],color:'#f0dbc3'},{name:'Color roles',group:'Foundations',code:'◐',description:'Separate surface, text, boundary and action roles before naming brand colors.',notes:['Canvas and raised surface','Primary and muted text','Action and on-action pair'],color:'#d6e5d8'},{name:'Spacing rhythm',group:'Foundations',code:'▥',description:'Use a small set of intervals to show relationships between content groups.',notes:['8px within a compact group','16px between related controls','32px between sections'],color:'#d6dfee'},{name:'Form field',group:'Components',code:'⌑',description:'Keep the label, hint, input and error message in one understandable group.',notes:['Persistent visible label','Hint before an error exists','Error connected to the input'],color:'#e9d8de'},{name:'Navigation menu',group:'Components',code:'☷',description:'A small set of destinations with a visible current location and keyboard access.',notes:['Destination labels describe content','Current item has a text/state cue','Collapsed layout keeps names'],color:'#e7e0c5'},{name:'Experimental grid',group:'Components',code:'▦',description:'Unavailable in this sample collection.',notes:[],color:'#e3e3e3',disabled:true}];
export default function App(){const[query,setQuery]=useState(''),[chosen,setChosen]=useState('Type scale'),[saved,setSaved]=useState([]);const selected=resources.find(x=>x.name===chosen)||resources[0],matches=resources.filter(x=>x.name.toLowerCase().includes(query.toLowerCase()));return <main className="resource-finder"><header><p className="eyebrow">ARIAKIT · ACCESSIBLE PRIMITIVES</p><h1>A reference, within reach.</h1><p>Search a small collection with the keyboard, inspect the result and keep a local reading list.</p></header><div className="finder-grid"><section className="search-area"><Ariakit.ComboboxProvider inputValue={query} setInputValue={setQuery} selectedValue={chosen} setSelectedValue={setChosen}><Ariakit.ComboboxLabel className="label">Find a reference</Ariakit.ComboboxLabel><div className="input-row"><Ariakit.Combobox className="combobox" placeholder="Try type, color or form" /><Ariakit.ComboboxDisclosure className="disclosure" aria-label="Show reference suggestions">⌄</Ariakit.ComboboxDisclosure></div><Ariakit.ComboboxPopover gutter={8} sameWidth className="popover">{['Foundations','Components'].map(group=>{const items=matches.filter(x=>x.group===group);return items.length?<Ariakit.ComboboxGroup key={group}><Ariakit.ComboboxGroupLabel className="group-label">{group}</Ariakit.ComboboxGroupLabel>{items.map(x=><Ariakit.ComboboxItem key={x.name} value={x.name} disabled={x.disabled} className="combo-item"><span>{x.name}</span><small>{x.disabled?'Unavailable':x.group==='Foundations'?'Guide':'Pattern'}</small></Ariakit.ComboboxItem>)}</Ariakit.ComboboxGroup>:null})}{!matches.length&&<p className="empty" role="status">No matching reference. Try “color” or clear the search.</p>}</Ariakit.ComboboxPopover></Ariakit.ComboboxProvider><p className="hint">Type to filter. Use ↓ and ↑ to browse, Enter to choose, Escape to close.</p><div className="collection-note"><span>06</span><div><strong>Sample references</strong><p>Five available, one deliberately disabled to show an unavailable item.</p></div></div><section className="reading-list"><h2>Your reading list <small>{saved.length}</small></h2>{saved.length?<ul>{saved.map(name=><li key={name}><span>{name}</span><Ariakit.Button className="remove" onClick={()=>setSaved(saved.filter(x=>x!==name))} aria-label={`Remove ${name}`}>Remove</Ariakit.Button></li>)}</ul>:<p className="muted">Choose a reference, then add it here.</p>}<p className="local-note">This list stays in memory and clears on reload.</p></section></section><section className="reference-card" aria-label="Selected reference"><div className="reference-art" style={{background:selected.color}} aria-hidden="true"><span>{selected.code}</span><i></i></div><div className="reference-body"><p className="eyebrow">{selected.group} · SAMPLE CONTENT</p><h2>{selected.name}</h2><p>{selected.description}</p><ul className="note-list">{selected.notes.map(note=><li key={note}>{note}</li>)}</ul><Ariakit.Button className="primary" disabled={saved.includes(selected.name)} onClick={()=>setSaved([...saved,selected.name])}>{saved.includes(selected.name)?'Added to reading list':'Add to reading list'}</Ariakit.Button><p className="scope-note">These sample reference values are original content, not Ariakit design tokens.</p></div></section></div><p className="selection-status" role="status">Selected reference: {selected.name}</p></main>}

Kod referansı

  • inputValue arama metnini, selectedValue ise onaylanmış referansı tutar.
  • Devre dışı öğeler, sorguyla eşleştiğinde görünür kalır.
  • Özgün örnek tipografi ve aralık değerleri Ariakit varsayılanları değildir.

Eksiksiz özgün görsel yapılandırma

Anlamsal uygulama değişkenleri, odak halkaları, etkin seçenek stilleri ve duyarlı düzen.

css
:root{--app-canvas:#f5f3ee;--app-surface:#fff;--app-text:#292e29;--app-muted:#657064;--app-border:#d8ddd4;--app-action:#285f48;--app-on-action:#fff;--app-active:#e3eee4;--app-radius:10px;--app-space-1:8px;--app-space-2:16px;--app-space-3:24px;--app-space-4:32px;font-family:system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--app-canvas);color:var(--app-text)}button,input{font:inherit}.resource-finder{max-width:1080px;padding:32px;margin:auto}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.13em;color:var(--app-muted)}h1{font-size:36px;line-height:1.1;margin:16px 0}header>p:last-child{font-size:15px;line-height:1.7;max-width:620px;color:var(--app-muted)}.finder-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;margin-top:32px}.label{display:block;font-size:14px;font-weight:650;margin-bottom:10px}.input-row{position:relative;display:flex}.combobox{width:100%;padding:13px 48px 13px 14px;border:1px solid var(--app-border);border-radius:var(--app-radius);background:var(--app-surface);color:var(--app-text);font-size:15px}.disclosure{position:absolute;right:4px;top:4px;bottom:4px;width:36px;border:0;background:transparent;border-radius:6px;cursor:pointer}.combobox:focus,.disclosure:focus-visible,button:focus-visible{outline:3px solid var(--app-action);outline-offset:3px}.popover{z-index:50;max-height:340px;overflow:auto;background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:0 8px 28px #243c2420;padding:8px}.group-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--app-muted);padding:10px}.combo-item{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 10px;border-radius:6px;cursor:default;font-size:14px;scroll-margin:8px}.combo-item small{font-size:11px;color:var(--app-muted)}.combo-item[data-active-item]{background:var(--app-active);outline:1px solid var(--app-action);outline-offset:-1px}.combo-item[aria-disabled=true]{opacity:.45}.empty{padding:12px;font-size:14px;line-height:1.6}.hint{font-size:12px;line-height:1.7;color:var(--app-muted);margin-top:12px}.collection-note{display:flex;gap:16px;align-items:flex-start;border-block:1px solid var(--app-border);padding:24px 0;margin:28px 0}.collection-note>span{font-size:40px;line-height:1;color:var(--app-action)}.collection-note strong{font-size:14px}.collection-note p{font-size:13px;line-height:1.6;color:var(--app-muted);margin:8px 0 0}.reading-list h2{font-size:17px;display:flex;justify-content:space-between}.reading-list h2 small{background:var(--app-active);border-radius:30px;padding:3px 8px}.reading-list ul{padding:0;list-style:none}.reading-list li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--app-border);font-size:14px}.remove{background:none;border:0;text-decoration:underline;color:var(--app-action);font-size:12px;cursor:pointer}.muted,.local-note,.scope-note{color:var(--app-muted);font-size:12px;line-height:1.7}.reference-card{border:1px solid var(--app-border);border-radius:var(--app-radius);overflow:hidden;background:var(--app-surface)}.reference-art{height:160px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.reference-art span{font-size:96px;font-family:Georgia,serif;line-height:1;position:relative;z-index:1}.reference-art i{position:absolute;width:190px;height:190px;border:1px solid currentColor;opacity:.2;border-radius:50%;left:50%;top:35%}.reference-body{padding:24px}.reference-body h2{font-size:28px;margin:12px 0}.reference-body>p{line-height:1.65;font-size:14px}.note-list{list-style:none;padding:0;margin:24px 0}.note-list li{padding:10px 0;border-bottom:1px solid var(--app-border);font-size:13px}.primary{padding:12px 18px;border:1px solid var(--app-action);background:var(--app-action);color:var(--app-on-action);border-radius:6px;cursor:pointer;font-weight:600;font-size:14px}.primary:disabled{background:var(--app-active);color:var(--app-action);cursor:default}.scope-note{margin-top:16px}.selection-status{font-size:12px;color:var(--app-muted);margin-top:24px}@media(max-width:700px){.resource-finder{padding:24px 16px}h1{font-size:30px}.finder-grid{grid-template-columns:1fr;gap:28px}.reference-art{height:135px}}

Kod referansı

  • Ariakit davranış ve anlambilim sağlar; bu renk veya aralık sistemini değil.
  • Etkin sonuç, data-active-item aracılığıyla biçimlendirilir.
  • Açılır pencerenin kendine ait bir maksimum yüksekliği ve kaydırma alanı vardır.
04

Ariakit Tasarım Sistemi Ajanı Kurulumu

Uygulamaya Başlangıç Noktası

@ariakit/react 0.4.40 ve React 19 ile doğrulanmıştır. Güncel inputValue/setInputValue adlarını ve denetimli bir selectedValue değerini kullanır.

jsx
// Create the project first:
// npm create vite@latest ariakit-specimen -- --template react
// cd ariakit-specimen && npm install
// In a Vite React project:
// npm install @ariakit/[email protected] react@19 react-dom@19
// Save the complete component as App.jsx and the visual configuration as style.css.
import React from 'react';
import {createRoot} from 'react-dom/client';
import App from './App.jsx';
import './style.css';
createRoot(document.getElementById('root')).render(<App />);
// index.html contains <div id="root"></div>.
// No Ariakit theme stylesheet is required; style.css is this example's original theme.
// Keep the template index.html and replace its entry with the code above.
// npm run dev

Projeniz İçin Bir İstem

Ajan İstemi
React içindeki sağlanan Ariakit 0.4.40 başvuru bulucusunu kullanın. ComboboxProvider inputValue/setInputValue değerlerini selectedValue/setSelectedValue değerlerinden bağımsız tutun; yerel etiketli grupları ve devre dışı Experimental grid seçeneğini koruyun, öğeleri oluşturmadan önce verileri filtreleyin. autoSelect kapalıyken doğrulanmış Aşağı ok ardından Enter yolunu koruyun ve data-active-item durumunu kayıtlı öğe üyeliğinden ayrı biçimlendirin. Yinelenen kayıt içermeyen yerel okuma listesine eklenen başvuruyu ekleyin ve geçerli ayrıntıyı kaybetmeden kaldırılmasına izin verin. Özgün stil sayfasının tamamını ekleyin.
05

Ariakit Tasarım Sistemi Kaynakları ve Kapsamı

Ariakit React 0.4.40. Tüm görsel belirteçler, çizimler ve örnek başvuru değerleri özgün yapılandırmadır; resmî bir Ariakit paleti veya tipografi ölçeği olduğu iddia edilmez. Okuma listesi durumu yereldir.