nili/ui
كل المكوّنات

Avatar

عرض شامل
٢٥ تصدير٢ محور تنويع٤٢ خاصيّة٩ ملف
import { Avatar, AvatarGroup, CompactAvatarGroup, FlatAvatar } from '@nili/ui';

هذه صفحة العرض الشامل الخاصة بالمكتبة، معروضة حيّة. غيّر اللغة أو السمة من الأعلى وسَتتبعك.

الأحجام

تسعة أحجام، من ٨٠ إلى ١٦ بكسل. وname مطلوب: فصورة رمزية بلا اسم إمّا صورة غير مسمّاة أو بقعة زخرفية، ولا يعرف أيّهما إلا موضع الاستدعاء. مرِّر سلسلة فارغة لجعلها زخرفية.

AL
3xl
AL
2xl
AL
xl
AL
lg
AL
md
AL
sm
A
xs
A
2xs
A
3xs
import { Avatar } from "@nili/ui"

export function Example() {
  return (
    <>
      <Avatar size="3xl" name="Ada Lovelace" />
      <Avatar size="xl" name="Ada Lovelace" />
      <Avatar size="md" name="Ada Lovelace" />
      <Avatar size="2xs" name="Ada Lovelace" />
    </>
  )
}

البدائل

بلا صورة، تُشتق الأحرف الأولى من name. تجاوزها بـinitials، أو استبدلها كليًا بـfallback، أو استخدم placeholder للظلّ — لحساب بلا صورة وبلا اسم يستحق الاختصار.

AL
م‌ر
🦊
import { Avatar } from "@nili/ui"

export function Example() {
  return (
    <>
      {/* initials from the name */}
      <Avatar name="Ada Lovelace" />

      {/* explicit initials */}
      <Avatar name="محمد رضایی" initials="م‌ر" />

      {/* an image, with initials behind it */}
      <Avatar name="Grace Hopper" src="/avatars/grace.png" />

      {/* the silhouette */}
      <Avatar name="" placeholder />
    </>
  )
}

الدرجات

لا يملك فيجما محور لون لـAvatar — فالدرجات إضافة، وهي موجودة للمجموعات: فكومة من ست دوائر رمادية متطابقة غير مقروءة، وتلوينها أرخص طريقة لتمييزها قبل تحميل الصور.

S
soft
Y
yellow
B
blue
G
green
P
pink
P
purple
R
red
import { Avatar } from "@nili/ui"

export function Example() {
  return (
    <>
      <Avatar name="Ada Lovelace" tone="soft" />
      <Avatar name="Grace Hopper" tone="blue" />
      <Avatar name="Radia Perlman" tone="pink" />
    </>
  )
}

الحالات

علامة في الأعلى وأخرى في الأسفل. امنحها statusLabel — فالنقطة الملوّنة بلا اسم وصفي. ولا تحتمل كل الأحجام علامة؛ فالطرف الصغير يُسقطها بدل رسم بقعة غير مقروءة.

الأسفل
AL
online
AL
offline
AL
busy
AL
away
AL
company
الأعلى
AL
verified
AL
pin
AL
favorite
AL
add
AL
remove
AL
notification
import { Avatar, Icon } from "@nili/ui"
import { RiBuilding2Line } from "@remixicon/react"

export function Example() {
  return (
    <>
      <Avatar name="Ada Lovelace" bottomStatus="online" statusLabel="Online" />
      <Avatar name="Ada Lovelace" bottomStatus="busy" statusLabel="Busy" />
      <Avatar name="Ada Lovelace" topStatus="verified" statusLabel="Verified" />
      <Avatar
        name="Apex Financial"
        bottomStatus="company"
        companyIcon={<Icon icon={RiBuilding2Line} />}
        statusLabel="Company account"
      />
    </>
  )
}

مجموعة الصور الرمزية

كومة مع شريحة «+N». يحدّ max عدد المرسوم، ويتجاوز overflowCount الباقي المحسوب حين تكون القائمة التي بين يديك صفحة من مجموعة أكبر.

الأحجام
AL
GH
KJ
RP
AL
GH
KJ
RP
AL
GH
KJ
RP
AL
GH
KJ
RP
AL
GH
KJ
RP
الفائض
AL
GH
KJ
+3
AL
GH
+24
import { AvatarGroup } from "@nili/ui"

const team = [
  { id: "a", name: "Ada Lovelace", tone: "blue" },
  { id: "b", name: "Grace Hopper", tone: "purple" },
  { id: "c", name: "Katherine Johnson", tone: "green" },
  { id: "d", name: "Radia Perlman", tone: "pink" },
]

export function Example() {
  return (
    <>
      <AvatarGroup items={team} label="Team members" />
      <AvatarGroup items={team} max={3} label="Team members" />
      <AvatarGroup items={team} max={2} overflowCount={24} label="Team" />
    </>
  )
}

مجموعة الصور الرمزية المدمجة

كومة أكثف داخل قرص — لصفوف الجداول وعناصر القوائم، حيث تكون مسافات Avatar Group سخيّة أكثر من اللازم. ثلاثة أحجام ومعالجتان.

default
AL
GH
KJ
A
G
K
A
G
K
stroke
AL
GH
KJ
A
G
K
A
G
K
import { CompactAvatarGroup } from "@nili/ui"

export function Example() {
  return (
    <>
      <CompactAvatarGroup items={team} max={3} label="Assignees" />
      <CompactAvatarGroup items={team} max={3} appearance="stroke" label="Assignees" />
    </>
  )
}

الصورة الرمزية المسطّحة

الصورة الرمزية المرسومة، مبنيّة من أجزاء فيجما القابلة للتبديل. وتلتف الفهارس، فأي رقم خيار صالح وحتمي — وهو مفيد لاشتقاق صورة ثابتة من معرّف المستخدم.

import { FlatAvatar } from "@nili/ui"

export function Example() {
  return (
    <>
      <FlatAvatar size="2xl" background={4} hair={2} outfit={1} label="" />

      {/* derived from an id — same user, same face, every time */}
      <FlatAvatar
        size="xl"
        background={userId % 8}
        hair={userId % 6}
        eye={userId % 4}
        label=""
      />
    </>
  )
}