کتابخانه کامپوننت
۱۶ کامپوننت آماده که کل رابط تقویمم از آنها ساخته شده است. همه نمونههای این صفحه با همان کلاسهای واقعی assets/app.css رندر شدهاند — نه بازطراحیای برای مستندات. نمونهها زندهاند: سوییچ و چکباکس را بزنید، چیپ و تب را عوض کنید. با تغییر پوسته از نوار بالا، همه را در هر دو تم ببینید.
۲دکمه آیکونی
اکشنی که آیکونش خودگویاست؛ دایرهای، دو اندازه، همیشه با aria-label.
هاور: پسزمینه سطح ۲ + متن به رنگ اصلی. فقط جایی که معنی آیکون قطعی است؛ در غیر این صورت دکمه متنی.
<button class="icon-btn" aria-label="بستن"> <svg viewBox="0 0 24 24" width="20" height="20" …></svg> </button>
۳دکمه شناور (FAB)
میانبر «ایجاد» در کلاسهای compact و medium که سایدبار دائمی ندارند. رفتارش با زمینه عوض میشود: در نمای وظایف «ایجاد وظیفه»، در بقیه نماها «ایجاد رویداد».
| ویژگی | مقدار |
|---|---|
| جایگاه | گوشه پایین—ابتدا (inset-inline-start در RTL) · ۲۰px از لبهها، بالای ناوبری پایین |
| هاور | سایه ۳ + ۲px بالا؛ فشردن: مقیاس ۰٫۹۶ |
| کلید میانبر | N — همان عملکرد FAB |
۴فیلد ورودی
خانواده سهتایی ورودی متن، انتخابی و چندخطی — با لیبل بالای فیلد و خطای زیر آن.
| قاعده | مقدار |
|---|---|
| ارتفاع کنترل | ۴۲px (textarea حداقل ۸۸) |
| لیبل | ۱۳px / ۶۰۰ / --muted — همیشه بیرون فیلد |
| فوکوس | خط برند + هاله ۳px با ۱۴٪ شفافیت |
| خطا | کلاس .invalid روی field + متن .err — هرگز فقط رنگ قرمز بدون متن |
| ورودی عددی چپچین | .input.ltr برای شمارههمراه و کدها — جهت LTR، ارقام همعرض |
| placeholder | مثال واقعی، نه دستور («مثلاً: جلسه تیم فنی») |
جعبههای OTP
ورودی کد یکبارمصرف: شش خانه جدا با یک input نامرئی روی همه؛ ارقام فارسی، جهت چپبهراست.
استیتها: .fill پر · .cur فعلی (هاله برند) · .bad کد غلط (قرمز + لرزش .shake)
<div class="otp-boxes"> <span class="box fill">۳</span> <!-- … ۶ خانه --> <input class="otp-input" inputmode="numeric" maxlength="6"> </div>
۵انتخابگر تاریخ و ساعت
یک کنترل پیوسته بهجای چهار جعبه جدا: سِگمنت تاریخ (بازکردن تقویم جلالی) + خط جداکننده + سِگمنت ساعت با دو سلکت بیخطِ «ساعت : دقیقه». در یک سطر جا میشود حتی در ۳۲۰px.
| استیت / جزء | رفتار |
|---|---|
| .open / فوکوس | کل قرص هاله برند میگیرد — حتی وقتی فوکوس روی سلکت ساعت است |
| .time-off | با فعالکردن «تمامروز» سِگمنت ساعت محو-نیمهشفاف و غیرکلیکشدنی میشود |
| .field.invalid | کل قرص قرمز تعطیلات + متن خطا زیر آن |
| سِگمنت تاریخ | آیکون تقویم + «روز ماه» فارسی؛ کلیک = پاپآور تقویم (§انتخاب تاریخ جلالی) |
| سِگمنت ساعت | دو سلکت ۴۶px بیخط و بیچورون، ارقام فارسی، وسطچین |
<div class="dt-field"> <button class="dt-date" data-dp="start">…۹ شهریور</button> <span class="dt-sep"></span> <div class="dt-time"><select class="dt-t">…</select><span class="dt-colon">:</span><select class="dt-t">…</select></div> </div>
۶چکباکس گرد
امضای بصری وظایف تقویمم: دایرهای و رنگپذیر — از رنگ تقویمِ والد رنگ میگیرد.
۲۲px · تیک با انیمیشن مقیاس ۰٫۵→۱ · عنوان وظیفه انجامشده خطمیخورد و کمرنگ میشود.
<button class="ccheck" style="--c: var(--ev-4)" role="checkbox" aria-checked="true"><svg…/></button>
۷سوییچ
تنظیم بیدرنگِ وضعیتها — بدون دکمه تأیید. جابهجایی دستگیره با inset-inline-start انیمیت میشود تا در RTL درست حرکت کند.
۴۴×۲۶ · دستگیره ۱۸px · کاربرد: «تمامروز»، دید/پنهانکردن تقویمها، تنظیمات اعلان.
۸چیپ
فیلتر و انتخاب از میان گزینههای کمشمار: فیلترهای نما، انتخاب نوع رویداد، انتخاب رنگ تقویم.
انتخابشده = ظرف برند با متن پررنگ؛ نه پرشدن کامل با برند (اکشن نیست). توضیح کامل الگوی فیلتر در الگوها.
۹تب قرصی
سوئیچ بین زیرمجموعههای همسطح — نمای وظایف («همه / امروز / این هفته / انجامشده») — با شمارنده زنده.
شمارنده با پسزمینه ۱۸٪ برند و رنگ لینک — نه پر برند (نشان ناوبری است، نه اعلان). ارتفاع ۳۶px.
۱۰نشان
شمارندههای ناوبری: تعداد وظایف باز روی ریل، سایدبار و نوار پایین.
حداقل ۲۰px · ۱۱px/۷۰۰ · ارقام فارسی · فقط ناوبری و شمارش — هرگز برای «جدید!» یا برچسب تبلیغ.
۱۱دیالوگ و برگه پایین
یک کامپوننت، دو چیدمان: در دسکتاپ وسط صفحه با شعاع ۱۶، در موبایل (<۷۲۰px) برگه پایین با دستگیره و شعاع ۲۴ بالایی. جریان استاندارد: پیشنمایش فقطخواندنی ← دکمه «ویرایش» ← فرم.
جلسه تیم فنی
| قاعده | جزئیات |
|---|---|
| باز/بسته | اسکریم ۴۵٪ + بلور ۳px · ورود: جابهجایی ۱۴px + محو ۲۲۰ms · خروج معکوس |
| بستن | Esc، کلیک روی اسکریم، دکمه × — به همین ترتیب اولویت |
| قفل صفحه | اسکرول بدنه هنگام باز بودن قفل میشود؛ فوکوس در دیالوگ محبوس است |
| پاورقی | حداکثر یک دکمه اصلی؛ مخرب در سمت مقابل؛ بین «ذخیره/ویرایش» و «انصراف» فاصله ۸px |
| موبایل | عرض کامل، ارتفاع حداکثر ۹۲dvh، دستگیره ۳۶×۴ در بالا — کشیدن به پایین برای بستن |
<div class="dialog-backdrop open"> <div class="dialog" role="dialog" aria-modal="true"> <div class="dialog-head">…</div> <div class="dialog-body">…</div> <div class="dialog-foot">…</div> </div> </div>
۱۴توست
تأیید کوتاه عملهای پسزمینه — حداکثر یک اکشن، بدون استک پشتهای طولانی.
میانچین پایین · معکوسرنگ (تیره در تم روشن و برعکس) · ورود ۲۴۰ms از پایین · بعد از ~۴ ثانیه محو · اکشن با رنگ برندِ روشنشده.
<div class="toast">رویداد حذف شد<span class="act">بازگردانی</span></div>
۱۵شبکه ماه جلالی
قلب محصول، در سه اندازه استفاده میشود: مینیماهِ سایدبار، پاپآور انتخاب تاریخ و نمای سال (۱۲ عدد پشتسرهم).
| استیت | نشانه |
|---|---|
| .today | دایره پر برند + عدد سفید پررنگ — تنها استفاده پر برند در گرید |
| .sel | حلقه داخلی ۲px برند (انتخاب پاپآور) |
| .hol | جمعه/تعطیل — عدد با رنگ تعطیلات |
| .out | روزهای ماه مجاور — ۴۵٪ شفاف |
| .dot | نقطه ۴px پایین روز با رنگ تقویمِ دارای رویداد (--dc) |
هفته شنبهشروع (ش ی د س چ پ ج) · نسبت ۱:۱ · گپ ۲px · هاور سطح ۲. جزئیات رفتار در الگوی انتخاب تاریخ.
۱۶چیپ رویداد و ردیف وظیفه
دو واحد نمایش داده تقویممحور — رنگ هر دو از تقویمِ والد میآید (--c).
| جزء | مشخصات |
|---|---|
| چیپ رویداد (سلول ماه) | پسزمینه ۱۳٪ رنگ تقویم + نوار ۳px ابتدای سطر؛ ساعت با ۱۰px کمرنگ؛ عنوان با بیضی کوتاه میشود؛ تمامروز بدون ساعت |
| ردیف وظیفه .task | چکباکس گرد رنگ تقویم + عنوان ۱۴٫۵px + یادداشت یکخطی بیضیشونده + نقطه اولویت .pri + موعد در .task-side؛ انجامشده: خطخورد و کمرنگ؛ موعد گذشته: رنگ تعطیلات + «موعد گذشته» |
| نقاط اولویت | ۷px · بالا --ev-5 · متوسط --ev-4 · پایین --ev-3 |
کلیک روی هر دو ← دیالوگ پیشنمایش (نه ویرایش مستقیم) — الگوی کامل در بخش بعدی.