דילוג לתוכן
uiify

Avatar

תמונה עם שם, או ראשי תיבות כחלופה לייצוג אדם.

דפדפנים
Chrome 123+Firefox 121+Safari 17.5+
שכבה
0
גודל חבילה דחוסה
296 B
מגבלת פריסה כפויה
0 ms
מגבלת Axe
0
תואם SSR
כן
חוזה מפורסם
סביבת בדיקות

מגרש ניסויים

עדה לאבלייס
Ada Lovelace
import { Avatar } from "@gunkin/uiify";

export default function Example() {
  return (
    <>
      <Avatar
        aria-hidden="true"
        className=""
        fallback="AL"
        name="Ada Lovelace"
        size="md"
        slotProps={{ image: { className: "" } }}
      />
      <span>Ada Lovelace</span>
    </>
  );
}
@layer components {
  [data-uiify-avatar] {
    display: inline-grid;
    place-items: center;
    overflow: clip;
    border-radius: var(--radius-full);
    background: var(--muted);
    color: var(--muted-foreground);
    font-weight: var(--weight-medium);
    line-height: 1;
    vertical-align: middle;
  }

  [data-uiify-avatar][data-size="sm"] {
    inline-size: 2rem;
    block-size: 2rem;
    font-size: var(--text-xs);
  }

  [data-uiify-avatar]:is(:not([data-size]), [data-size="md"]) {
    inline-size: 2.5rem;
    block-size: 2.5rem;
    font-size: var(--text-sm);
  }

  [data-uiify-avatar][data-size="lg"] {
    inline-size: 3rem;
    block-size: 3rem;
    font-size: var(--text-base);
  }

  [data-uiify-avatar] > [data-part="image"] {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
  }
}
import { Avatar } from "@gunkin/uiify";

export default function Example() {
  return (
    <>
      <Avatar
        aria-hidden="true"
        className="
          inline-grid place-items-center overflow-clip rounded-[var(--radius-full)] bg-muted text-muted-foreground
          font-[number:var(--weight-medium)] leading-none [vertical-align:middle] data-[size=sm]:[inline-size:2rem]
          data-[size=sm]:[block-size:2rem] data-[size=sm]:text-xs
          [&:is(:not([data-size]),[data-size=md])]:[inline-size:2.5rem]
          [&:is(:not([data-size]),[data-size=md])]:[block-size:2.5rem] [&:is(:not([data-size]),[data-size=md])]:text-sm
          data-[size=lg]:[inline-size:3rem] data-[size=lg]:[block-size:3rem] data-[size=lg]:text-base
        "
        fallback="AL"
        name="Ada Lovelace"
        size="md"
        slotProps={{ image: { className: "block [inline-size:100%] [block-size:100%] object-cover" } }}
      />
      <span>Ada Lovelace</span>
    </>
  );
}

API

Avatar

מאפייןטיפוסברירת מחדלתיאור
name*string—שם נגיש לאדם שתמונת המשתמש מייצגת.
fallback*string—הטקסט המוצג כש-src מושמט; יש לספק ראשי תיבות בעלי משמעות או שם קצר.
srcstring—כתובת URL של התמונה; התמונה מוצגת רק כשמסופקת כתובת.
slotPropsAvatarSlotProps—מאפיינים מובנים לתמונה או לחלופה שנוצרת.
size"sm" | "md" | "lg"—הגודל החזותי הנכתב ל-data-size; מושמט כשלא הוגדר.
aria-hidden"true"—הסתרת תמונת המשתמש מטכנולוגיות מסייעות כשטקסט גלוי סמוך כבר מציין את שם האדם.
classNamestring—המחלקה המוחלת על אלמנט השורש.
styleCSSProperties—סגנונות אלמנט השורש המובנה.
refRef<HTMLElement>—ה-ref המועבר לאלמנט השורש המוצג.
renderReactElement | ((props, state) => ReactElement)—החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות.

מקלדת

מקשפעולה

נגישות

השורש מקבל שם כתמונה, והחלופה מוסתרת מטכנולוגיה מסייעת. השאירו שם גלוי ליד אווטרים דקורטיביים והגדירו aria-hidden כאשר הטקסט הזה כבר מזהה את האדם. src שסופק מרנדר תמונה; כשל בטעינת התמונה אינו מפעיל חלופה במקומה.

נקודות חיבור לעיצוב

data-uiify-avatardata-partdata-size
דף זה תורגם אוטומטית וטרם נבדק.