Kurumsal bileşen sistemi · Yeni kaynak

Naive UI Tasarım Sistemi.

Doğrulanmış tema nesnesi değerleri, satır seçimi, genişletme, sıralama, sayfalama ve yerel bir toplu inceleme işlemi içeren yerel bir Naive UI veri tablosu çalışma alanı.

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

Naive UI Tasarım Sistemi Arayüz Önizlemesi

Kayıtları arayın, inceleme bağlamını genişletin, sayfalar arasında satır seçin ve yerel bir toplu işlemi incelendi olarak işaretleyin.

Referans inceleme kuyruğuÖrneğin Tamamını Aç
Vue 3 ve NConfigProvider tema geçersiz kılmalarıyla yerel Naive UI 2.45.3. · Uygulama başvurusu
02

Naive UI Tasarım Sistemi Tasarım Referansı

Yüklü paketten incelenen Naive UI 2.45.3 varsayılan common açık tema nesnesi. Bu camelCase özellikler tema geçersiz kılmalarıdır; genel kullanıma açık bir --token CSS değişken adlandırma düzeni değildir. Önizlemede kullanılan özel common geçersiz kılmaları ayrıca listelenmiştir.

Varsayılan common renkleri

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
primaryColor#18a058 Varsayılan birincil yeşil.
primaryColorHover#36ad6a Üzerine gelme varyantı.
primaryColorPressed#0c7a43 Basılma varyantı.
primaryColorSuppl#36ad6a Tamamlayıcı birincil renk.
infoColor#2080f0 Bilgi rolü.
successColor#18a058 Başarı rolü.
warningColor#f0a020 Uyarı rolü.
errorColor#d03050 Hata rolü.
textColor1rgb(31, 34, 37)Kalın metin.
textColor2rgb(51, 54, 57)Normal metin.
textColor3rgb(118, 124, 130)İkincil metin.
borderColorrgb(224, 224, 230)Varsayılan sınır.
dividerColorrgb(239, 239, 245)Belirsiz ayırıcılar.
tableHeaderColorrgb(250, 250, 252)Tablo başlığı arka planı.

Yazı tipi ve denetim geometrisi

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
fontFamilyv-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"Tercih edilen arayüz yazı tipi yığını; v-sans otomatik olarak indirilmez.
fontSize14pxVarsayılan 14px yazı boyutu.
fontSizeMini12pxMini yazı boyutu.
fontSizeSmall14pxKüçük denetim metni.
fontSizeMedium14pxOrta denetim metni.
fontSizeLarge15pxBüyük denetim metni.
fontSizeHuge16pxÇok büyük denetim metni.
lineHeight1.6Varsayılan metin ritmi.
heightTiny22pxÇok küçük denetim yüksekliği.
heightSmall28pxKüçük kontrol yüksekliği.
heightMedium34pxOrta denetim yüksekliği.
heightLarge40pxBüyük kontrol yüksekliği.
heightHuge46pxÇok büyük denetim yüksekliği.
borderRadius3pxVarsayılan 3px köşe yarıçapı.
borderRadiusSmall2pxVarsayılan 2px küçük köşe yarıçapı.

Önizlemede kullanılan gerçek tema geçersiz kılmaları

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
common.primaryColor#176b57 Özgün, daha koyu yeşil birincil eylem.
common.primaryColorHover#238a71 Özgün, uyumlu üzerine gelme değeri.
common.primaryColorPressed#115340 Özgün, uyumlu basılma değeri.
common.borderRadius6pxÖzgün köşe yarıçapı geçersiz kılması; varsayılan değer 3px'tir.
Layout spacing32px outer / 24px section gaps / 16px toolbar gapÖzgün sayfa aralığı; Naive için genel bir aralık ölçeği olduğu iddia edilmemektedir.
03

Naive UI 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-naive-ui.md

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

Kılavuzu İndir

Naive UI Tasarım Sistemi: Sass İşleme Hattı Değil, Bir JavaScript Tema Nesnesi

Sass İşleme Hattı Değil, Bir JavaScript Tema Nesnesi

Naive UI, tema özelleştirmesini bir JavaScript nesnesiyle tanımlayan bir Vue 3 bileşen kitaplığıdır. İnceleme kuyruğu, themeOverrides değerini NConfigProvider'a iletir. common bölümü primaryColor, primaryColorHover, primaryColorPressed ve borderRadius değerlerini geçersiz kılarken diğer bileşen varsayılanları sağlayıcı üzerinden kullanılabilir durumda kalır.

Bu OpenDesign kılavuzundan

Referans tablosunda, yüklü paketin 2.45.3 sürümündeki common açık temasının gerçek değerleri yer alır. Bu camelCase anahtarlardan uydurma CSS değişken adları türetilmez. Varsayılan birincil renk #18a058, varsayılan köşe yarıçapı ise üç pikseldir; bu örnekte kullanılan daha koyu yeşil ve altı piksellik yarıçap açıkça özgün geçersiz kılmalardır.

Destekleyici belirtimi okuyun

Naive UI Tasarım Sistemi: Sıkı Arayüzlerde Yazı ve Denetim Yükseklikleri

Sıkı Arayüzlerde Yazı ve Denetim Yükseklikleri

Ortak tema, 1.6 satır yüksekliğiyle on dört piksel metin kullanır. Küçük ve orta boy metinlerin ikisi de on dört pikseldir, ancak kontrol bileşenlerinin yükseklikleri farklıdır. heightSmall yirmi sekiz piksel, heightMedium ise otuz dört pikseldir; bu nedenle boyut adları yalnızca yazı tipi boyutundaki ilerlemeyi değil, bileşen geometrisini tanımlar.

Tercih edilen yazı tipi yığını v-sans ile başlar; ancak kitaplık bu örneğin görüntülenmesi için söz konusu yazı tipinin indirilmesini gerektirmez. Çevreleyen sayfada system-ui, 34px başlık ve 18px destekleyici bölüm başlıkları kullanılır. Bu sayfa stilleri özgündür. Kitaplığı uygulayan bir tasarımcı, temanın denetim ölçeğini bir açılış sayfasındaki daha büyük editoryal hiyerarşiden ayrı değerlendirmelidir.

Destekleyici belirtimi okuyun

Naive UI Tasarım Sistemi: Sütun Tanımları Davranışları Belirler

Sütun Tanımları Davranışları Belirler

NDataTable, bir columns dizisi ve bir records dizisi alır. Örnek, önce bir seçim sütunu, ardından bir genişletme sütunu ve son olarak adlandırılmış veri sütunlarıyla başlar. Reference sütununda belirgin bir ad ve daha küçük, değişmeyen bir kimlik gösterilir. Entries sayısal bir karşılaştırıcı kullanırken ad sütunu varsayılan sıralayıcıyı kullanır. Review, kaydın durumuna göre yerel bir NTag görüntüler.

Bu yapılandırma, dekoratif tablo başlıklarının bulunduğu bir ekran görüntüsünden ibaret değildir; gerçek davranışı tanımlar. Entries sütunu sıralanırken biçimlendirilmiş dizeler değil, sayısal değerler karşılaştırılır. Genişletilen içerik, her kayda özgü inceleme sorusunu gösterir. Veri tablosu satırların görüntülenmesini yönetirken kayıtların anlamından uygulama sorumludur.

Destekleyici belirtimi okuyun

Naive UI Tasarım Sistemi: Seçim, Sıralama Değişikliklerinden Etkilenmemeli

Seçim, Sıralama Değişikliklerinden Etkilenmemeli

row-key işlevi her kaydın değişmeyen kimliğini döndürür. checked-row-keys ve update:checked-row-keys, seçimi Vue durumunda denetimli tutar. Sıralama veya sayfalama, bir kaydın görüntülendiği yeri değiştirebilir; ancak toplu işlemde kullanılan kimliği değiştirmez. Bunun yerine dizi indisleri kullanmak, satır sırası değiştiğinde bu ilişkiyi kırılgan hâle getirir.

Seçim sütunu, Archived durumundaki kayıtları devre dışı bırakır. Bu kayıtlar geçmiş bağlamı sağlamak için görünür kalır ancak inceleme grubuna eklenemez. Uygulama, görünen kısıtlamayla veri değişikliğinin tutarlı olması için işlemi uygularken durumu da kontrol eder. Gerçek bir sistemde yetkilendirmeyi yine sunucu uygulamalıdır; devre dışı bırakılmış bir onay kutusu yetki sınırı değildir.

  1. İlk sayfada incelenebilir bir kayıt seçin.
  2. Sonraki sayfaya geçin ve seçimin korunduğunu gösteren sayıyı kontrol edin.
  3. Toplu işlemi uygulayın ve arşivlenmiş kayda dokunmadan seçili kaydın durumunun değiştiğini doğrulayın.

Destekleyici belirtimi okuyun

Naive UI Tasarım Sistemi: Toplu Karar Vermeden Önce Satırları Genişletin

Toplu Karar Vermeden Önce Satırları Genişletin

Genişletilebilir her satır, gezinme sırasında klavyeyle hareketi kontrol etmek veya farklı boş durumların anlamlarını karşılaştırmak gibi somut bir görev içerir. Böylece genişletilmiş alan, aynı genel açıklamanın yinelenmesi yerine inceleme kararı için yararlı kanıtlar sunar. Genişletme sütunu, ilgili kaydın altında sıradan içerik oluşturan renderExpand işlevini kullanır.

Tablo, dar ekranlarda sütun yapısını korur ve scroll-x=640 değerini alır. Böylece sayfa görüntü alanının sınırları içinde kalırken yerel tablo bölgesi yatay olarak kaydırılabilir. Araç çubuğu mobil cihazlarda alt alta sıralanır; ancak ekran görüntüsü daha derli toplu görünsün diye veriler sessizce kaldırılmaz.

Destekleyici belirtimi okuyun

Naive UI Tasarım Sistemi: Toplu İnceleme, Yerel Bir Veri Dönüşümüdür

Toplu İnceleme, Yerel Bir Veri Dönüşümüdür

Denetimli anahtar dizisi boşken Seçilenleri incelendi olarak işaretle düğmesi devre dışıdır. Etkinleştirildiğinde kayıtlar üzerinde yineleme yapar ve yalnızca seçili, arşivlenmemiş öğeleri Reviewed olarak değiştirir. Ardından seçim temizlenir ve yerel işlem hakkında tam bilgi veren yerel bir başarı uyarısı gösterilir. Kart başlığındaki incelenen kayıt sayısı bağımsız olarak artırılmaz; kayıtlardan hesaplanır.

Herhangi bir depo, inceleme hizmeti veya harici belge değiştirilmez. Gerçek bir eş zamansız uygulamada yükleme, ret ve kısmi hata durumları ele alınmalıdır. Hangi güncellemelerin başarılı olduğunu bilmeden seçim temizlenmemelidir. Bu örnekte işlem eşzamanlı ve açıkça yereldir; böylece başarı mesajı kodla tutarlı kalır.

  • Toplu işlem düğmesi, seçili anahtar bulunup bulunmamasına göre etkinleşir.
  • İncelenen kayıt sayısı, tabloda gösterilen kayıtların aynısından hesaplanır.
  • Sonuç bildirimi hiçbir deponun değiştirilmediğini belirtir.

Destekleyici belirtimi okuyun

Naive UI Tasarım Sistemi: Zorunlu CSS İçe Aktarımı Gerektirmeyen Bir Vue Bileşeni

Zorunlu CSS İçe Aktarımı Gerektirmeyen Bir Vue Bileşeni

Vue 3 projesine [email protected] sürümünü yükleyin ve App.vue içinde kullanılan bileşenleri içe aktarın. Naive UI, bileşen stillerini çalışma zamanında sağlar; önce CSS içe aktarılmasını gerektiren birçok kitaplıktan farklı olarak bu bileşenler için genel bir paket stil sayfasını içe aktarmayı zorunlu kılmaz. Sağlanan style.css dosyası yalnızca özgün çalışma alanı düzenini içerir.

NConfigProvider, İngilizce bileşen ve tarih yerellerinin yanı sıra ortak tema geçersiz kılmasını alır. SFC'nin tamamı standart Vite Vue eklentisiyle derlenebilir. Bağımsız örnek, derlenmiş bileşeni paketleyerek yerel bileşenleri ve uygulama davranışını ağ isteği olmadan kullanılabilir tutar.

Destekleyici belirtimi okuyun

Naive UI Tasarım Sistemi Tema ve Veri Sınırları İncelenebilir Kalıyor

Tema ve Veri Sınırları İncelenebilir Olmalı

Çalışma tezgâhı, metrikleri uydurulmuş genel bir yönetim panosu değil, küçük bir referans kitaplığıdır. Her satır örnek içeriktir, her durumun açık bir anlamı vardır ve genişletme metni kaydı incelemek için somut bir gerekçe sunar. Tema tablosu ve tam SFC, hem biçimlendirmeyi hem de davranışı yeniden üretilebilir kılar.

Naive UI öğesini daha büyük bir sisteme alırken genel ortak geçersiz kılmaların bileşen düzeyindeki geçersiz kılmalarla uyumlu olmasını sağlayın. Varsayılan, üzerine gelme ve basılı durumlar için birincil renkler birlikte incelenmelidir. Sağlayıcının desteklenen bir tema yüzeyi sunduğu durumlarda, özelleştirmeye önce oluşturulan iç öğeleri biçimlendirerek başlamaktan kaçının.

Destekleyici belirtimi okuyun

Naive UI Tasarım Sistemi Bileşen Örnekleri

Vue inceleme kuyruğunu tamamla

DataTable sütun yapılandırması, kararlı satır anahtarları, seçim, genişletme ve denetimli sayfalama.

vue
<script setup>
import {ref,computed,h} from 'vue';
import {NConfigProvider,NDataTable,NButton,NInput,NTag,NAlert,NCard,NSpace,enUS,dateEnUS} from 'naive-ui';
const themeOverrides={common:{primaryColor:'#176b57',primaryColorHover:'#238a71',primaryColorPressed:'#115340',borderRadius:'6px'}};
const rows=ref([{id:'DS-101',name:'Navigation patterns',owner:'Maya',items:18,status:'Needs review',note:'Check keyboard movement between primary and overflow navigation.'},{id:'DS-102',name:'Empty-state copy',owner:'Alex',items:9,status:'Needs review',note:'Compare first-use guidance with filtered-empty and permission-empty states.'},{id:'DS-103',name:'Color role mapping',owner:'Jules',items:24,status:'Reviewed',note:'Semantic aliases were compared in light and dark appearances.'},{id:'DS-104',name:'Form error summary',owner:'Sam',items:12,status:'Needs review',note:'Verify error links focus the corresponding input.'},{id:'DS-105',name:'Legacy icon export',owner:'Maya',items:36,status:'Archived',note:'Historical export retained for reference; batch review is disabled.'},{id:'DS-106',name:'Density variants',owner:'Alex',items:15,status:'Needs review',note:'Check compact controls with long translated labels.'}]);
const query=ref(''),checked=ref([]),page=ref(1),notice=ref('');const filtered=computed(()=>rows.value.filter(r=>(r.name+' '+r.owner).toLowerCase().includes(query.value.toLowerCase())));
const columns=[{type:'selection',disabled:r=>r.status==='Archived'},{type:'expand',renderExpand:r=>h('div',{class:'row-note'},r.note)},{title:'Reference',key:'name',sorter:'default',width:240,render:r=>h('div',[h('strong',r.name),h('div',{class:'row-id'},r.id)])},{title:'Owner',key:'owner',width:100},{title:'Entries',key:'items',sorter:(a,b)=>a.items-b.items,width:95},{title:'Review',key:'status',width:140,render:r=>h(NTag,{type:r.status==='Reviewed'?'success':r.status==='Archived'?'default':'warning',bordered:false},{default:()=>r.status})}];
const pagination=computed(()=>({page:page.value,pageSize:4,onChange:p=>page.value=p}));function apply(){rows.value=rows.value.map(r=>checked.value.includes(r.id)&&r.status!=='Archived'?{...r,status:'Reviewed'}:r);notice.value=`Marked ${checked.value.length} selected references reviewed in this preview. No repository was changed.`;checked.value=[];}
</script>
<template><NConfigProvider :locale="enUS" :date-locale="dateEnUS" :theme-overrides="themeOverrides"><main class="review-desk"><header><p class="eyebrow">NAIVE UI / REFERENCE REVIEW</p><h1>A review queue with context.</h1><p>Search, expand a row, compare entry counts, and apply a local batch action.</p></header><NCard title="Reference library"><template #header-extra><NTag :bordered="false" type="success">{{rows.filter(r=>r.status==='Reviewed').length}} reviewed</NTag></template><div class="toolbar"><NInput v-model:value="query" placeholder="Search reference or owner" clearable aria-label="Search reference or owner" @update:value="page=1"/><NButton type="primary" :disabled="!checked.length" @click="apply">Mark selected reviewed</NButton></div><p class="selection-note">{{checked.length}} selected · Selection uses stable IDs and can span pages.</p><NDataTable :columns="columns" :data="filtered" :row-key="r=>r.id" :checked-row-keys="checked" @update:checked-row-keys="keys=>checked=keys" :pagination="pagination" :scroll-x="640" :single-line="false"/><NAlert v-if="notice" type="success" class="notice">{{notice}}</NAlert></NCard><div class="notes"><section><h2>Expand before judging</h2><p>The expand control reveals a concrete review question for each reference. A title alone is not enough context for a meaningful batch decision.</p></section><section><h2>Archived is a separate state</h2><p>Archived records stay visible but cannot join the batch selection. Search and pagination never change the underlying review data.</p></section></div><footer>Native Naive UI 2.45.3 DataTable, Input, Button, Tag, Card and Alert. All records and mutations are local examples.</footer></main></NConfigProvider></template>

Kod referansı

  • Seçim, kararlı referans kimliklerine göre yapılır.
  • Arşivlenmiş satırlar, seçim sütunu koşulu tarafından devre dışı bırakılır.
  • Ortak tema geçersiz kılması NConfigProvider aracılığıyla sağlanır.

Özgün çalışma tezgâhı düzeni

Yerel veri tablosunu çevreleyen sayfa tipografisi ve duyarlı boşluklar.

css
*{box-sizing:border-box}body{margin:0;background:#f5f7f6;color:#1f2225;font-family:system-ui,sans-serif;font-size:14px;line-height:1.6}.review-desk{max-width:1120px;margin:auto;padding:32px}header{max-width:720px;margin-bottom:28px}h1{font-size:34px;line-height:1.2;letter-spacing:-.03em;margin:10px 0 16px}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:700;color:#426258}.toolbar{display:flex;align-items:center;gap:16px}.toolbar .n-input{max-width:360px}.selection-note,.row-id{font-size:12px;color:#767c82}.row-id{margin-top:4px}.row-note{padding:12px 16px;max-width:65ch;color:#335547}.notice{margin-top:20px}.notes{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.notes section{border-top:2px solid #c8d7cf;padding:18px 0}.notes h2{font-size:18px;margin:0 0 10px}.notes p{margin:0}footer{font-size:12px;color:#767c82;margin-top:20px}@media(max-width:700px){.review-desk{padding:20px 16px}h1{font-size:28px}.toolbar{align-items:stretch;flex-direction:column}.toolbar .n-input{max-width:none}.notes{grid-template-columns:1fr}.n-card>.n-card__content{padding:16px!important}}

Kod referansı

  • Naive UI bileşen stillerini ekler; bu stil sayfası yalnızca uygulama düzenini içerir.
04

Naive UI Tasarım Sistemi Ajanı Kurulumu

Uygulamaya Başlangıç Noktası

Vue 3 ve Naive UI 2.45.3 ile doğrulandı. Standart SFC derlemesini kullanır. Tüm referans kayıtları yereldir.

JavaScript
// Create the project first:
// npm create vite@latest naive-ui-specimen -- --template vue
// cd naive-ui-specimen && npm install
// In a Vite Vue 3 project:
// npm install [email protected]
// Save the complete component above as App.vue and layout as style.css.
import {createApp} from 'vue';
import App from './App.vue';
import './style.css';
createApp(App).mount('#app');
// index.html contains <div id="app"></div>.
// NConfigProvider, locales, themeOverrides and component imports are in App.vue.
// No Naive UI global CSS import is required for these components.
// Keep the template index.html and replace its entry with the code above.
// npm run dev

Projeniz İçin Bir İstem

Ajan İstemi
NConfigProvider ve yerel NDataTable sütunları, genişletme, sıralama, sayfalama ve seçim özellikleriyle Naive UI 2.45.3 referans inceleme kuyruğunu kullanın. Filtreleme veya sayfa değiştirme sırasında kararlı referans anahtarlarını koruyun ve toplu işlemin yalnızca görünür satırlara değil, seçili kayıtlara uygulanmasını sağlayın. Boş durumları ve devre dışı eylemleri gerçek koleksiyona bağlı tutun. Sağlanan themeOverrides değerlerini, özgün düzenin tamamını koruyarak, paket varsayılanlarından ayrı uygulama geçersiz kılmaları olarak tutun. Kuyruk, yerel referans incelemesi içindir; veri kümesi içe aktarma hizmeti değildir.
05

Naive UI Tasarım Sistemi Kaynakları ve Kapsamı

Naive UI 2.45.3. Tema varsayılanları ve özgün geçersiz kılmalar ayrı ayrı belirtilmiştir. İnceleme kayıtları ve toplu değişiklikler yerel kalır.