مودال
وضعیت: پیشنویس
انجام بدهعنوان پرسش روشن و دکمهای که همان کنش را نام میبرد. انجام ندهعنوان مبهم و دکمههای «بله» و «خیر».
<button class="hq-button hq-button--md" type="button" data-hq-open="#demo-modal">حذف پروژه</button>
<dialog class="hq-modal" id="demo-modal" aria-labelledby="demo-modal-title"> <div class="hq-modal__header"> <h2 class="hq-modal__title" id="demo-modal-title">این پروژه حذف شود؟</h2> <button class="hq-button hq-button--ghost hq-button--md hq-button--icon-only" type="button" aria-label="بستن" data-hq-close><svg class="hq-button__icon" viewBox="0 0 32 32" aria-hidden="true" focusable="false"><path d="M17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z"/></svg></button> </div> <div class="hq-modal__body"> <p>پروژه و همهٔ فایلهایش حذف میشود و برگشتی ندارد.</p> </div> <div class="hq-modal__footer"> <button class="hq-button hq-button--danger hq-button--md" type="button" data-hq-close>حذف پروژه</button> <button class="hq-button hq-button--secondary hq-button--md" type="button" data-hq-close>انصراف</button> </div></dialog>چه وقت استفاده کنیم
Section titled “چه وقت استفاده کنیم”- برای تصمیمی که کاربر باید پیش از ادامه بگیرد: تایید کنش برگشتناپذیر، یا پرکردن یک فرم کوتاه.
- محتوای کوتاه: یک عنوان، یک یا دو بند، و حداکثر دو دکمه.
چه وقت استفاده نکنیم
Section titled “چه وقت استفاده نکنیم”- برای پیامهایی که نیازی به تصمیم ندارند؛ از اعلان استفاده کنید.
- برای محتوای بلند یا فرم چندمرحلهای؛ صفحهٔ جدا بسازید.
- مودال روی مودال.
ساختار دکمهها
Section titled “ساختار دکمهها”- دکمهٔ اصلی اول میآید و در چیدمان راستبهچپ سمت راست است؛ دکمهٔ «انصراف» کنار آن.
- در تایید کنش برگشتناپذیر، دکمهٔ اصلی دکمهٔ خطر است و برچسبش همان کنش را میگوید («حذف پروژه»)، نه «بله».
این پروژه حذف شود؟
مطمئنید؟
آناتومی
Section titled “آناتومی”- پسزمینه (
::backdrop):brand-deepبا ۷۵٪ شفافیت. - کادر:
surface-raised، کادر موییborder، گوشهٔradius-md، بدون سایه. پهنا کمتر ازgrid-web-md-breakpointو از عرض صفحه منهایspace-4. - سرآیند: عنوان با
type-h3وink، و دکمهٔ بستن در انتها. - بدنه و پابرگ: فاصلهٔ
space-4در دو طرف.
توکنها
Section titled “توکنها”| بخش | توکن |
|---|---|
| کادر | surface-raised، border، radius-md |
| عنوان | ink، type-h3 |
| متن | text، type-body |
| پسزمینه | brand-deep |
مودال یک <dialog> بومی است و با showModal() باز میشود، پس مرورگر فوکوس را در آن نگه میدارد و با Escape میبندد. فایل components.js دکمههای data-hq-open و data-hq-close را وصل میکند.
<button class="hq-button hq-button--md" type="button" data-hq-open="#modal-1">حذف پروژه</button>
<dialog class="hq-modal" id="modal-1" aria-labelledby="modal-1-title"> <div class="hq-modal__header"> <h2 class="hq-modal__title" id="modal-1-title">این پروژه حذف شود؟</h2> <button class="hq-button hq-button--ghost hq-button--md hq-button--icon-only" type="button" aria-label="بستن" data-hq-close>…</button> </div> <div class="hq-modal__body"><p>…</p></div> <div class="hq-modal__footer"> <button class="hq-button hq-button--danger hq-button--md" type="button">حذف پروژه</button> <button class="hq-button hq-button--secondary hq-button--md" type="button" data-hq-close>انصراف</button> </div></dialog><script src="https://design.harmoniq.solutions/dist/components.js" defer></script>| کلاس | توضیح |
|---|---|
hq-modal |
خود <dialog> |
hq-modal__header، __title |
سرآیند و عنوان |
hq-modal__body |
بدنه |
hq-modal__footer |
دکمهها |
<dialog>باshowModal()بقیهٔ صفحه را غیرفعال میکند و فوکوس را داخل مودال نگه میدارد.aria-labelledbyبه عنوان اشاره میکند.- Escape مودال را میبندد؛ کلیک روی پسزمینه هم میبندد. وقتی مودال بسته میشود فوکوس به دکمهای برمیگردد که آن را باز کرد.
- دکمهٔ بستن
aria-label="بستن"دارد، چون فقط آیکن است. - برای کنش برگشتناپذیر، فوکوس اولیه را روی دکمهٔ «انصراف» بگذارید (
autofocus) تا Enter تصادفی کار خطرناک نکند.