דילוג לתוכן
uiify

Fieldset

קבוצה סמנטית של פקדי טופס קשורים, ששמה נקבע באמצעות מקרא.

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

מגרש ניסויים

קבוצת שדות / כותרת

ברירת מחדל

העדפות יצירת קשר
Contact preferences
import { Checkbox, Fieldset, FieldsetLegend } from "@gunkin/uiify";

export default function Example() {
  return (
    <Fieldset className="">
      <FieldsetLegend className="">Contact preferences</FieldsetLegend>
      <Checkbox
        className=""
        id="contact-email"
        label="Email"
        name="contact"
        value="email"
        slotProps={{ input: { className: "" } }}
      />
      <Checkbox
        className=""
        id="contact-sms"
        label="Text message"
        name="contact"
        value="sms"
        slotProps={{ input: { className: "" } }}
      />
    </Fieldset>
  );
}
@layer components {
  [data-uiify-fieldset][data-part="root"] {
    display: grid;
    gap: var(--space-md);
    min-inline-size: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }

  [data-uiify-fieldset] > [data-part="legend"] {
    padding: 0;
    color: var(--foreground);
    font-weight: var(--weight-medium);
  }
}
import { Checkbox, Fieldset, FieldsetLegend } from "@gunkin/uiify";

export default function Example() {
  return (
    <Fieldset className="grid gap-md [min-inline-size:0] m-0 p-0 border-0 border-current border-none">
      <FieldsetLegend className="p-0 text-foreground font-[number:var(--weight-medium)]">
        Contact preferences
      </FieldsetLegend>
      <Checkbox
        className="
          inline-flex items-center gap-sm cursor-pointer select-none text-foreground text-sm
          [line-height:var(--leading-normal)] [&:has(>input:disabled)]:opacity-50
          [&:has(>input:disabled)]:cursor-not-allowed
        "
        id="contact-email"
        label="Email"
        name="contact"
        value="email"
        slotProps={{
          input: {
            className:
              "appearance-none [inline-size:1.25rem] [block-size:1.25rem] m-0 " +
              "border-[length:var(--border-width)] border-solid border-input bg-card " +
              "inline-grid place-content-center cursor-pointer " +
              "[transition:var(--transition-colors)] rounded-xs focus-visible:[outline:none] " +
              "focus-visible:[box-shadow:0_0_0_var(--ring-width)_color-mix(in_oklch,_var(--ring)_20%,_transparent)] " +
              "checked:border-primary checked:bg-primary data-[state=checked]:border-primary " +
              "data-[state=checked]:bg-primary before:content-[''] before:[inline-size:1rem] " +
              "before:[block-size:1rem] before:[transform:scale(0)] " +
              "before:[transition:transform_var(--duration-fast)_var(--ease-out)] " +
              "before:bg-primary-foreground " +
              "before:[clip-path:polygon(28.4%_46.4%,20%_59%,42.8%_80%,80%_33.2%,70.4%_23.6%,42.8%_60.8%)] " +
              "checked:before:[transform:scale(1)] " +
              "data-[state=checked]:before:[transform:scale(1)] indeterminate:border-primary " +
              "indeterminate:bg-primary data-[state=indeterminate]:border-primary " +
              "data-[state=indeterminate]:bg-primary indeterminate:before:[transform:scale(1)] " +
              "indeterminate:before:[clip-path:inset(42%_12%_42%_12%)] " +
              "data-[state=indeterminate]:before:[transform:scale(1)] " +
              "data-[state=indeterminate]:before:[clip-path:inset(42%_12%_42%_12%)] " +
              "disabled:opacity-50 disabled:cursor-not-allowed data-[disabled]:opacity-50 " +
              "data-[disabled]:cursor-not-allowed",
          },
        }}
      />
      <Checkbox
        className="
          inline-flex items-center gap-sm cursor-pointer select-none text-foreground text-sm
          [line-height:var(--leading-normal)] [&:has(>input:disabled)]:opacity-50
          [&:has(>input:disabled)]:cursor-not-allowed
        "
        id="contact-sms"
        label="Text message"
        name="contact"
        value="sms"
        slotProps={{
          input: {
            className:
              "appearance-none [inline-size:1.25rem] [block-size:1.25rem] m-0 " +
              "border-[length:var(--border-width)] border-solid border-input bg-card " +
              "inline-grid place-content-center cursor-pointer " +
              "[transition:var(--transition-colors)] rounded-xs focus-visible:[outline:none] " +
              "focus-visible:[box-shadow:0_0_0_var(--ring-width)_color-mix(in_oklch,_var(--ring)_20%,_transparent)] " +
              "checked:border-primary checked:bg-primary data-[state=checked]:border-primary " +
              "data-[state=checked]:bg-primary before:content-[''] before:[inline-size:1rem] " +
              "before:[block-size:1rem] before:[transform:scale(0)] " +
              "before:[transition:transform_var(--duration-fast)_var(--ease-out)] " +
              "before:bg-primary-foreground " +
              "before:[clip-path:polygon(28.4%_46.4%,20%_59%,42.8%_80%,80%_33.2%,70.4%_23.6%,42.8%_60.8%)] " +
              "checked:before:[transform:scale(1)] " +
              "data-[state=checked]:before:[transform:scale(1)] indeterminate:border-primary " +
              "indeterminate:bg-primary data-[state=indeterminate]:border-primary " +
              "data-[state=indeterminate]:bg-primary indeterminate:before:[transform:scale(1)] " +
              "indeterminate:before:[clip-path:inset(42%_12%_42%_12%)] " +
              "data-[state=indeterminate]:before:[transform:scale(1)] " +
              "data-[state=indeterminate]:before:[clip-path:inset(42%_12%_42%_12%)] " +
              "disabled:opacity-50 disabled:cursor-not-allowed data-[disabled]:opacity-50 " +
              "data-[disabled]:cursor-not-allowed",
          },
        }}
      />
    </Fieldset>
  );
}

API

Fieldset

מאפייןטיפוסברירת מחדלתיאור
childrenReactNode—פקדים מקובצים ו-FieldsetLegend כילד ראשון.
className / style / ref / native fieldset propsnative fieldset props—המאפיינים, הסגנונות, האירועים וה-ref של ה-fieldset המובנה מועברים הלאה.
renderReactElement | ((props, state) => ReactElement)—החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות.

FieldsetLegend

מאפייןטיפוסברירת מחדלתיאור
childrenReactNode—שם קבוצה גלוי המוצג כ-legend המובנה.
renderReactElement | ((props, state) => ReactElement)—החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות.

מקלדת

מקשפעולה

נגישות

Fieldset ו-Legend מרנדרים אלמנטי fieldset ו-legend מובנים. הציבו את FieldsetLegend ראשון כדי לתת שם לקבוצה; כל פקד שבתוכה עדיין זקוק לתווית משלו. לא מתווספים תפקיד קבוצה מלאכותי או מקרא מוסתר.

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

data-uiify-fieldsetdata-part="root|legend"
דף זה תורגם אוטומטית וטרם נבדק.