Kamu Yönetimi ve Kamu Hizmetleri · Yeni Kaynak

Codex Tasarım Sistemi.

Codex’ın gerçek SearchInput anatomisini, eylem hiyerarşisini ve okumaya yönelik belirteçlerini kullanın. Yerel makale dizininde arama yapın, bir sonucu inceleyin ve aynı okuma konumuna geri dönün.

OpenDesign Kılavuzu8 Bölüm14 Referans KaydıÖzgün Uygulama Kılavuzu
01

Codex Tasarım Sistemi Arayüz Önizlemesi

Özgün üç örnekte arama yapın, bir sonucu inceleyin, kapatın veya eşleşmeyen bir sorgu deneyin.

Bilgi dizini aramasıÖrneğin Tamamını Aç
Codex 2.7.0 yerel CSS-yalnızca SearchInput/düğmeleri; özgün yerel filtreleme ve okuma paneli mantığıyla. · Uygulama başvurusu
02

Codex Tasarım Sistemi Tasarım Başvurusu

@wikimedia/codex 2.7.0, yerel CSS ve güncel resmî token/bileşen başvurusu. Bağımsız önizleme, belgelenmiş yalnızca CSS kullanan rotayı kullanır; içerik genişliği ve sonuç panelinin düzeni uygulamaya özgü tercihlerdir.

Yazı tipi rolleri

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
font-family-basesans-serifBelge ve kontroller için temel rol.
font-family-heading-mainLinux Libertine, Georgia, Times, Source Serif 4, serifYerel yedekleri olan özel ilk başlık rolü.
font-size-small / medium / large0.875rem / 1rem / 1.125remDestekleyici metin, varsayılan metin ve daha büyük metin.
line-height-medium1.625remBileşen/özellik satır yüksekliği token’ı.
line-height-content1.625Kullanıcı tarafından oluşturulan içerik için birimsiz rol.

Boşluklar

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
spacing-25 / 50 / 754px / 8px / 12pxSıkı aralıklar.
spacing-100 / 150 / 20016px / 24px / 32pxStandart düzen ritmi.
spacing-305pxVarsayılan kontrollerin dikey dolgusu için belgelenmiş istisna.
spacing-horizontal-button12px − 1pxDüğme kenarlığını hesaba katar.

Görünüm alanı ve kontroller

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
Mobile / tablet minima320px / 640pxGörünüm alanı sınırları.
Desktop / desktop-wide minima1120px / 1680pxDaha büyük görünüm alanı sınırları.
Button small / medium / large24px / 32px / 44px minimumDokunmatik kullanım bağlamı gerektiriyorsa large kullanın; boyutlar Button belgelerinden alınmıştır.

Derlenmiş varsayılan renk yedekleri

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
color-base#202122 Varsayılan, okunabilir metin.
color-progressive#36cAşamalı eylem rengi; her kayıt için durum belirtmez.
03

Codex 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-wikimedia-codex.md

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

Kılavuzu İndir

Codex Tasarım Sistemi: Yalnızca CSS ve Vue rotaları

İhtiyacınıza uygun uygulamayı seçin

Codex, Vue bileşenleri ve belgelenmiş, yalnızca CSS kullanan bileşen yapıları sunar. Canlı örnek, ikincisini kullanır: arama denetiminde Codex tarafından belgelenen tam sarmalayıcı, metin alanı ve uç düğme sınıfları bulunur; yerel bir uygulama betiği de özgün üç makale özetini filtreler. Ayrı Vue örneğinde eşdeğer paket içe aktarımları gösterilir.

Bu OpenDesign kılavuzundan

Yalnızca CSS kullanan bir arama, sırf benzer görünüyor diye tahminli bir birleşik kutuya dönüşmez. Bu örnek bir sorgu gönderir ve sonuç listesi görüntüler. ARIA liste kutusu desenini kullanmaz ve TypeaheadSearch uyguladığını iddia etmez.

Destekleyici belirtimi okuyun

Codex Tasarım Sistemi: Okuma için tipografi

İçerik ve kontrol rollerini birbirinden ayırın

font-family-base token’ı sans-serif olarak çözümlenir; kullanılabilir system-sans yığını ayrı bir roldür. Codex ayrıca Linux Libertine temelli, Georgia, Times ve diğer yedekleri içeren serif heading-main rolü sunar. Önizlemede yazı tipi indirmeden serif makale başlığı ve sans-serif kontroller kullanılır.

Aşağıdaki başvuruda 1rem olan font-size-medium ile 1.625rem olan line-height-medium birbirinden ayrı gösterilir. Birimsiz line-height-content değeri, kullanıcı tarafından oluşturulan içerik için tasarlanmıştır; her bileşenin kendi satır yüksekliğini değiştirmeye yönelik genel bir talimat değildir. Yerel input ve button CSS bileşenlerinin kendi kontrol ölçülerini korumasını sağlayın.

Destekleyici belirtimi okuyun

Codex Tasarım Sistemi: Aralıklar ve kesme noktaları

Adlandırılmış ölçeği ve istisnalarını kullanın

Codex spacing-100 değeri 16px, spacing-150 değeri 24px ve spacing-200 değeri 32px’tir. Ölçekte açıkça belirtilmiş istisnalar da vardır: spacing-30 değeri 5px’tir ve varsayılan 32px kontrol yüksekliği için dikey kontrol dolgusunu destekler. Her aralığı 8px’lik bir ızgaraya yuvarlamak, belgelenmiş bir bileşen kararını ortadan kaldırır.

Örnek, belgelenmiş tablet sınırını kullanarak 640px’in altında sonuç listesini tam genişliğe çıkarır. Okuma genişliğinin uygulama tarafından belirlenen üst sınırı 56rem’dir. Masaüstü kesme noktası 1120px, geniş masaüstü kesme noktası ise 1680px’tir; bu eşikler, her uygulamaya otomatik olarak sağlanan bir ızgarayı değil, görünüm alanı kategorilerini tanımlar.

Destekleyici belirtimi okuyun

Codex Tasarım Sistemi: Renk ve eylem rolleri

Progressive, genel bir mavi süsleme değildir

Codex, eylem türünü düğmenin görsel ağırlığından ayırır. Progressive bir eylem süreci ilerletirken primary ağırlığı, o görünümdeki ana eylemi belirtir. Bu yerel dizinde arama yapmak için nötr normal düğme uygundur; düşük vurgulu bir kontrol ise sonuçlarla rekabet etmeden aramayı temizleyebilir.

Derlenmiş CSS, base text #202122 ve progressive #36c dâhil, özel özellikleri için yedek renkler içerir. Önizleme bu durumlarda yerel bileşen CSS kullanır. Sonuç panelinin açık renkli arka planı uygulama düzenine aittir; yeni bir Codex durum token’ı olarak tanımlanmamıştır.

Destekleyici belirtimi okuyun

Codex Tasarım Sistemi: Sonuçlar ve ayrıntılı okuma

Okurun bulunduğu yeri koruyun

Her sonuçta adlandırılmış bir başlık, özgün kısa bir açıklama ve yerel okuma panelini açan bir düğme bulunur. Panel uygulama tarafından oluşturulmuştur; Codex Dialog değildir: belge akışında kalır, modal arka planı yoktur ve odağı hapsetmez.

Bir örneği açtığınızda odak panel başlığına taşınır. Paneli kapattığınızda odak, paneli açan düğmeye döner. Yeniden arama yapıldığında önceki ayrıntı kapatılır ve sonuç sayısı yeniden hesaplanır; böylece eski bir makale yeni sorgunun sonucuymuş gibi görünmez. Eşleşme bulunmayan bir sorguda açıklayıcı metin ve açık bir temizleme eylemi gösterilir.

Destekleyici belirtimi okuyun

Codex Tasarım Sistemi: Yön ve giriş davranışı

İngilizce dışındaki dilleri de hesaba katın

Bileşen belgelerinde soldan sağa ve sağdan sola örnekler bulunur. Codex çok dilli bir bilgi ekosisteminde kullanıldığından uygulama düzeninde, tüm simgelerin ve okuma eylemlerinin solda olduğunu varsaymak yerine mantıksal inline/block aralıkları kullanılmalıdır. Örneğin özel düzeninde, yönün önemli olduğu yerlerde margin-inline ve padding-inline kullanılır.

Buradaki arama yalnızca gönderildiğinde çalışır. Böylece IME ile oluşturulmakta olan metnin tamamlanmış bir sorgu gibi ele alınması önlenir. Üretim ortamında kullanılacak bir otomatik tamamlama özelliğinde, metin bileşimi sırasında girişin doğru işlenmesi, asenkron isteklerin iptali ve doğru bir menü etkileşim modeli gerekir; yalnızca CSS kullanan yerel örnek bunların hiçbirini sunduğunu iddia etmez.

Destekleyici belirtimi okuyun

Codex Tasarım Sistemini Entegre Etme ve Genişletme

Kitaplığın sürümünü sabitleyin, sonuç mantığını siz yönetin

Doğrulanmış paket @wikimedia/codex 2.7.0’dır ve stil girişi olarak dist/codex.style.css dosyasını sunar. Yalnızca CSS kullanan demo, tüm kontrolleri yerel HTML bileşenleri olduğundan ve küçük yerel betik filtreleme ile okuma paneli durumunu yönettiğinden Vue çalışma zamanına ihtiyaç duymaz. Vue varyantı, uygulama durumu çerçeve tarafından yönetildiğinde CdxSearchInput ve CdxButton bileşenlerini içe aktarır.

Kod paketi GPL-2.0-or-later lisanslıdır ve lisans dosyası yerel varlıklarla birlikte sunulur. Örnekler Wikipedia’nın kimliğini veya makale içeriğini kopyalamaz. Gerçek bir arama uç noktasına bağlanmadan önce yerel eşleşme yok durumu etiketini değiştirmekle yetinmeyin; ağ hatalarını, yüklenme durumunu ve güncelliğini yitirmiş yanıtları ayrıca ele alın.

  1. Sabitlenmiş paketi yükleyin veya lisansı ile birlikte stil dosyasını kopyalayın.
  2. Belgelenmiş, yalnızca CSS kullanan yapıyı oluşturun veya dışa aktarılan Vue bileşenlerini kullanın.
  3. Sorgu ve sonuç mantığını uygulamaya ekleyin; arama anlamını koruyun.
  4. Klavye odağını ve dar ekran düzenlerini çevrilmiş gerçek içerikle doğrulayın.

Destekleyici belirtimi okuyun

Codex Tasarım Sistemi Bileşen Örnekleri

Görünür etiketli, yalnızca CSS kullanan arama

Belgelenmiş sarmalayıcı yapısı ve yerel form gönderimi.

html
<form id="article-search" role="search">
  <label for="query">Find an example article</label>
  <div class="cdx-search-input cdx-search-input--has-end-button">
    <div class="cdx-search-input__input-wrapper">
      <div class="cdx-text-input cdx-text-input--has-start-icon">
        <input id="query" class="cdx-text-input__input" type="search">
        <span class="cdx-text-input__icon cdx-text-input__start-icon" aria-hidden="true"></span>
      </div>
    </div>
    <button type="submit" class="cdx-button cdx-search-input__end-button">Search</button>
  </div>
</form>
<p id="result-count" role="status"></p>

Kod referansı

Vue arama bileşimi

Gerçek Codex içe aktarımları ve Vue durumu; gönderilen sorgunun yerel çıktısı entegrasyon sınırını gösterir.

vue
<script setup>
import { ref } from 'vue';
import { CdxSearchInput, CdxButton } from '@wikimedia/codex';
import '@wikimedia/codex/dist/codex.style.css';
const query = ref('');
const submitted = ref('');
function search() { submitted.value = String(query.value).trim(); }
</script>
<template>
  <form role="search" @submit.prevent="search">
    <CdxSearchInput v-model="query" aria-label="Find an example article" />
    <CdxButton action="progressive" weight="primary" type="submit">Search</CdxButton>
  </form>
  <p role="status">Submitted query: {{ submitted || 'All examples' }}</p>
</template>

Kod referansı

Eksiksiz bağımsız örnek

Belgenin tamamı düzeni, denetimleri ve başlatma kodunu içerir. Tam göreli vendor varlıklarını almak için bağlantılı örnek arşivini çıkarın ve HTTP üzerinden sunun.

html
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Codex knowledge search</title><link rel="stylesheet" href="vendor/codex-2.7.0/codex.style.css"><style>*{box-sizing:border-box}body{font:16px/1.625 sans-serif;color:#202122;margin:0}main{max-width:56rem;margin:auto;padding:32px 24px}h1{font:normal 32px/1.3 Georgia,serif;border-bottom:1px solid #a2a9b1;padding-bottom:12px}h2{font-size:20px;margin:0 0 8px}label{display:block;font-weight:700;margin-bottom:8px}.top{font-size:14px;color:#54595d}.result{padding:24px 0;border-bottom:1px solid #c8ccd1}.result p{margin:8px 0 16px}.tools{display:flex;align-items:center;gap:16px;justify-content:space-between}.reading{padding:24px;background:#f8f9fa;border:1px solid #a2a9b1;margin-block:24px}.reading h2:focus{outline:2px solid #36c;outline-offset:4px}small{display:block;margin-top:32px;color:#54595d;font-size:14px}[hidden]{display:none!important}@media(max-width:639px){main{padding:24px 16px}.tools{align-items:stretch;flex-direction:column}.result .cdx-button{width:100%}}
</style><main><p class="top">Independent knowledge index · Codex CSS-only</p><h1>Explore the example collection</h1><p>Find an original topic summary and open its reading panel. This small index runs entirely in your browser.</p><form id="article-search" role="search">
  <label for="query">Find an example article</label>
  <div class="cdx-search-input cdx-search-input--has-end-button">
    <div class="cdx-search-input__input-wrapper">
      <div class="cdx-text-input cdx-text-input--has-start-icon">
        <input id="query" class="cdx-text-input__input" type="search">
        <span class="cdx-text-input__icon cdx-text-input__start-icon" aria-hidden="true"></span>
      </div>
    </div>
    <button type="submit" class="cdx-button cdx-search-input__end-button">Search</button>
  </div>
</form>
<p id="result-count" role="status"></p><div class="tools"><p id="empty" hidden>No matching topics. Try “river” or clear the search.</p><button type="button" class="cdx-button cdx-button--weight-quiet" id="clear">Clear search</button></div><div id="results"></div><section class="reading" id="reading" hidden><h2 id="reading-title" tabindex="-1"></h2><p id="reading-text"></p><button type="button" class="cdx-button" id="close">Close reading panel</button></section><small>Original example content. Wikimedia Codex 2.7.0 controls; application-owned results and inline panel. No external search request.</small></main><script>
const data=[{title:'River observation notes',text:'A field notebook can record water level, weather and observation time together. Repeated observations from the same location help readers compare conditions without confusing a new measurement with a changed method.',summary:'Organising repeated observations at a river station.'},{title:'Community archive descriptions',text:'An archive description records what an item is, when it was created and how it relates to other items. A clear description distinguishes an original document from a later copy and identifies uncertain dates without hiding that uncertainty.',summary:'Describing original documents and their context.'},{title:'Garden seed collection',text:'A seed record can distinguish the plant name, collection date and storage method. Keeping those attributes separate makes it easier to compare batches, while a free-text note preserves observations that do not fit a controlled field.',summary:'Keeping plant, date and storage information readable.'}];let opener;const results=document.querySelector('#results'),query=document.querySelector('#query'),reading=document.querySelector('#reading'),count=document.querySelector('#result-count');function render(){reading.hidden=true;results.replaceChildren();const found=data.filter(d=>(d.title+' '+d.summary).toLowerCase().includes(query.value.trim().toLowerCase()));count.textContent=found.length+' example topics';document.querySelector('#empty').hidden=found.length>0;for(const d of found){let a=document.createElement('article');a.className='result';let h=document.createElement('h2');h.textContent=d.title;let p=document.createElement('p');p.textContent=d.summary;let b=document.createElement('button');b.type='button';b.className='cdx-button';b.textContent='Read '+d.title;b.onclick=()=>{opener=b;document.querySelector('#reading-title').textContent=d.title;document.querySelector('#reading-text').textContent=d.text;reading.hidden=false;document.querySelector('#reading-title').focus()};a.append(h,p,b);results.append(a)}}document.querySelector('form').onsubmit=e=>{e.preventDefault();render()};document.querySelector('#clear').onclick=()=>{query.value='';render();query.focus()};document.querySelector('#close').onclick=()=>{reading.hidden=true;opener?.focus()};render();
</script></html>

Kod referansı

  • Eksiksiz örneği Kaynaklar bölümünden indirin. README dosyasında tam yerel başlatma komutu bulunur.
  • Vendor yollarını bu belgeye göreli tutun; arşiv, bu önizlemenin kullandığı tüm varlıkları içerir.
04

Codex Tasarım Sistemi: Yapay Zekâ Ajanı Kurulumu

Uygulamaya Başlangıç Noktası

Yerel stil sayfası bağımsız önizlemede doğrulanmıştır. Vue kodu, bu önizlemenin çalışma zamanı değil, ayrı bir entegrasyon örneğidir. Kaynaklar bölümündeki eksiksiz çalışan örnek ZIP dosyası, önizlemenin tam bağımlılıklarını ve eksiksiz belgeyi de içerir. Dosyayı ayıklayın, ilgili dizinde python3 -m http.server 8080 komutunu çalıştırın ve ardından http://localhost:8080/wikimedia-codex.html adresini açın. Modül tabanlı örnekleri file:// üzerinden açmayın.

bash
npm install @wikimedia/[email protected]
# CSS-aware entry for CSS-only HTML:
# import '@wikimedia/codex/dist/codex.style.css';
# For the Vue example, add Vue to the existing Vue application:
# import { CdxSearchInput, CdxButton } from '@wikimedia/codex';

Projeniz İçin Bir İstem

Ajan İstemi
Codex 2.7.0 ve yalnızca CSS kullanan SearchInput ile düğmelerle yerel bir bilgi dizini oluşturun. Belgelenmiş uç düğme sarmalayıcılarını, açık bir arama etiketini ve yerel form gönderimini koruyun. Sonuç sayısını, eşleşme bulunmadığında gösterilecek mesajı ve temizleme eylemini görüntüleyin. Sonuç ayrıntılarını satır içinde açın, odağı başlıklarına taşıyın ve kapatıldıklarında odağı işlemi başlatan düğmeye döndürün. TypeaheadSearch veya modal davranış sunduğunuzu iddia etmeyin. Resmî yazı tipi ve aralık rollerini kullanın; içerik genişliğinin uygulamaya özgü bir tercih olduğunu belirtin.
05

Codex Tasarım Sistemi: Kaynaklar ve Kapsam

Özgün özetler içeren bağımsız bir OpenDesign örneği. Wikipedia içeriği veya kimliği kopyalanmamıştır. Yalnızca CSS kullanan kontroller yerel Codex bileşenleridir; arama filtreleme ve satır içi okuma paneli ise uygulama kodudur.