رفتن به محتوای اصلی

وضعیت پذیرش طراحی

این صفحه تنها ماتریس دستیِ پذیرش طراحی است: فاصلهٔ هدفِ normative تا آن‌چه واقعاً در کد اجرا می‌شود. مقادیر فقط این چهار تا هستند — هیچ درصدی نوشته نمی‌شود:

مقدارمعنا
completeبا هدف منطبق است
partialهست، اما با هدف اختلافِ مشخص دارد
not-startedهیچ پیاده‌سازی‌ای وجود ندارد
not-applicableاین پلتفرم فعلاً سطحِ مربوطه را ندارد

ستون «شاهد» مسیر مخزن است که ادعا را می‌توان در آن دید. ستون «مرز بعدی» کوچک‌ترین قدمی است که ردیف را به هدف نزدیک می‌کند.

مبانی

موضوعهدفوباندرویدپروتوتایپشاهدمرز بعدی
رنگ برندآبی واحد #2563EB (تاریک #8FB4FF) — فقط اکشن و حالت فعالpartial — توکن‌ها از seed #2563EB تولید شده اما primary روشن #004AC6 است و #2563EB در primary-container نشستهpartial — اسکیمای MD3 تولیدشده از seed (GeneratedLightScheme.kt)؛ primary روشن مثل وب #004AC6 است، نه #2563EB هدفcompletepackages/design-tokens/tokens.json؛ apps/calendar-web/src/styles/tokens.css؛ apps/mobile/.../theme/color/schemes/GeneratedLightScheme.kt؛ خروجی اسکیما؛ prototypes/design-system-foundations.html#f-colorتصویب مقیاس نهایی؛ سپس هم‌ترازی primary وب و موبایل با توکن برند
پالت رویداد (۸ رنگ مقوله‌ای)۸ رنگ هدف: آبی، سبز، فیروزه‌ای، کهربایی، قرمز، صورتی، بنفش، قهوه‌ای (--ev-1..8)partial — ۸ رنگ هست اما مقادیر متفاوت‌اند (نارنجی/بنفش/تیل/کهربایی به‌جای فیروزه‌ای/کهربایی/قهوه‌ای هدف)not-applicable — هنوز UI رویداد نداردcompletetokens.css (--event-1..8prototypes/design-system-foundations.html#f-colorانتخاب پالت نهایی پیش از مهاجرت؛ سپس بازتولید --event-* وب
تایپوگرافیDana تک‌خانواده، مقیاس ۹پلهٔ هدف تا وزن ۸۰۰، ارقام فارسیpartial — Dana خودمیزبانِ ۴۰۰–۷۰۰ و مقیاس عددیِ ساده‌شده؛ وزن ۸۰۰ عنوان‌ها و FaNum پروتوتایپ‌ها با آن نیستpartial — مقیاس FaTypographies کامل اما فونت Dana نیستcompleteapps/calendar-web/src/index.css و src/styles/tokens.css؛ apps/mobile/.../theme/typography/؛ prototypes/design-system-foundations.html#f-typeگسترش باندل فونت وب به وزن ۸۰۰ هنگام پیاده‌سازی عنوان‌های هدف
سطوحنردبان ۵پلهٔ سطح با جداسازیِ خط، سایه فقط لایه‌های شناورpartial — نردبان surface-container MD3 هست؛ قاعدهٔ «خط نه سایه» به‌صورت قرارداد نوشته‌شده اجرا نمی‌شودpartial — surfaceContainer کامل؛ همین وضعیتcompletetokens.css؛ DefaultLightScheme.ktبازبینی کارت‌های درون‌صفحهٔ وب و حذف سایه‌های غیرضرور
شکل و شعاع8/10/12/16/24/99 با قاعدهٔ حداکثر سه شعاع در نماpartial — مقیاس MD3 (4–28 + کامل) با مقادیر متفاوت از هدفpartial — FaShapeKeyTokens موجود، مقادیر خودشcompletetokens.css (--md-sys-shape-*apps/mobile/.../theme/FaShapeKeyTokens.ktهم‌ترازی مقیاس شعاع وب/موبایل با اعداد هدف
حرکتمنحنی واحد cubic-bezier(.2,0,0,1)، بازه‌های 80–240ms، فقط transform/opacitypartial — توکن‌های easing/duration MD3 تعریف شده؛ رعایتِ «فقط transform/opacity» همه‌جا بررسی نشدهpartial — انیمیشن‌های Compose با مقادیر خودشانcompletetokens.css (--md-sys-motion-*prototypes/design-system-foundations.html#f-motionممیزی ترنزیشن‌های عرض/ارتفاع‌دار در وب
حالت تاریکتعویض توکن؛ برند تاریک #8FB4FF، تعطیلات #FF8A80، اسکریم تا ۵۸٪partial — مکانیک کامل: کلاس .dark + darkMode: 'selector' و ماندگاری در localStorage با کلید darkMode؛ مقادیر و کلید با هدف فرق دارد (پروتوتایپ tvm-theme است)complete — دو اسکیمای روشن/تاریک با FaTheme سوییچ می‌شوندcompleteapps/calendar-web/src/contexts/DarkModeContext.tsx و tailwind.config.js؛ apps/mobile/.../schemes/DefaultDarkScheme.ktهم‌ترازی مقادیر تاریک برند پس از تصویب

پوسته و نماها

موضوعهدفوباندرویدپروتوتایپشاهدمرز بعدی
پوستهٔ واکنش‌گراcompact نوار پایین · medium ریل ۸۰ · expanded سایدبار دائمی؛ لبهٔ expanded در production 1024pxcomplete — BottomNav/Fab زیر 600، NavigationRail در 600–1023، CalendarSidebar از 1024 (Tailwind lg و useIsMobile هم‌راستا)not-applicable — اپ بومیِ موبایل؛ کلاس پنجره نداردpartial — همان رفتار اما لبهٔ expanded در 840 (تجربی)apps/calendar-web/src/components/calendar-app/ (استوری‌های BottomNav/NavigationRail در استوری‌بوک)؛ tailwind.config.js؛ src/hooks/useIsMobile.ts؛ prototypes/design-system-patterns.html#p-windowبه‌روزرسانی پروتوتایپ‌ها به 1024 پس از تثبیت
مودال/دیالوگیک کامپوننت: برگهٔ پایین موبایل / دیالوگ مرکزی دسکتاپ + Esc/تلهٔ فوکوس/قفل اسکرولpartial — Modal.tsx همین دو چیدمان را با Esc، focus trap، restore و scroll lock دارد؛ نشانه‌های بصری با .dialog هدف یکسان نیستpartial — ModalBottomSheet و Dialog در core/design موجودcompleteapps/calendar-web/src/components/calendar-app/Modal.tsx؛ apps/mobile/.../component/ModalBottomSheet.ktهم‌ترازی توکن‌های بصری (شعاع/اسکریم) با هدف
نواهای تقویمماه/هفته/روز/برنامه با چیپ کامل در دسکتاپ و نقطه+شمارش در موبایلcomplete — هر چهار نما + بخش وظایف؛ روی موبایل نقطه و «+N»not-applicable — نمای تقویم نداردcompleteMonthView.tsx، WeekView.tsx، DayView.tsx، AgendaView.tsx، TasksPageهم‌ترازی چیپ رویداد با توکن‌های هدف
فرم رویدادترتیب فیلدها از مهم به جزئی، اعتبارسنجی زندهٔ بی‌سروصدا، CTA قفل تا اعتبارpartial — EventModal فرم کامل ایجاد/ویرایش دارد؛ جزئیات اعتبارسنجی و ترتیب با هدف یک‌دست نیستnot-applicablecompleteapps/calendar-web/src/components/calendar-app/EventModal.tsx؛ prototypes/design-system-patterns.html#p-formsبازبینی ترتیب فیلدها و پیام‌های خطا بر قالب هدف
پیش‌نمایش سپس ویرایشکلیک = دیالوگ فقط‌خواندنی؛ «ویرایش» فرم را باز می‌کندnot-started — کلیک روی رویداد مستقیم فرم ویرایش را باز می‌کندnot-applicablecompleteEventModal.tsx؛ prototypes/design-system-patterns.html#p-vieweditافزودن حالت view به EventModal پیش از فرم
OTPشش خانهٔ جدا با ارقام فارسیpartial — ورود دومرحله‌ای فعال است اما با ورودیِ تکی otp؛ شش‌خانه‌ای فقط پروتوتایپ استnot-startedcompleteapps/calendar-web/src/features/auth/؛ prototypes/design-system-components.html#c-otp-specپیاده‌سازی .otp-boxes هنگام بازطراحی ورود
جستجونتایج زنده زیر جعبهٔ نوار بالا، پرش به روز + پیش‌نمایشnot-started — جعبهٔ جستجوی CalendarHeader بی‌عمل است (بدون handler)not-applicablecompleteapps/calendar-web/src/components/calendar-app/CalendarHeader.tsx؛ prototypes/design-system-patterns.html#p-searchنخست: موتور جستجوی محلی روی Dexie

برند

موضوعهدفوباندرویدپروتوتایپشاهدمرز بعدی
نشان «نقطهٔ امروز»نماد رسمی محصول + قواعد کاربردnot-started — فاوآیکون/نشان سفارشی نداردnot-started — آیکون اپ ساخته نشدهcompletedocs/static/img/logo.svg (فقط docs)؛ prototypes/brand-identity.htmlفاوآیکون وب از logo.svg؛ سپس آیکون اپ ۱۰۲۴
رنگ‌های موبایلهم‌راستا با توکن‌های هدف (برند #2563EB، تعطیلات، معنایی)partial — اسکیمای تولیدشده از seed + TokenColors (تعطیلات/پالت رویداد) از tokens.json؛ primary روشن #004AC6 با هدف فرق داردapps/mobile/.../theme/color/schemes/؛ خروجی اسکیماتصویب مقیاس نهایی؛ سپس هم‌ترازی primary
تایپوگرافی موبایلDana با مقیاس هدفpartial — FaTypographies و EleTypeScaleTokens کامل؛ فونت Dana نیستapps/mobile/.../theme/typography/افزودن فونت Dana به باندل موبایل
شکل موبایلمقیاس شعاع هدف (8–24/99)partial — FaShapeKeyTokens موجود با مقادیر خودشapps/mobile/.../theme/FaShapeKeyTokens.ktهم‌ترازی مقادیر با هدف

تضادهای شناخته‌شده

این تفاوت‌ها عمداً ثبت شده‌اند تا کسی آن‌ها را «باگ» نسنجد؛ مسیر حل هرکدام از ستون «مرز بعدی» همان ردیف می‌گذرد:

  • لبهٔ expanded ناوبری: production (CSS و JS وب) روی 1024px است؛ پروتوتایپ‌ها 840px را نشان می‌دهند و تا به‌روزرسانی، تجربی شمرده می‌شوند.
  • مکانیک حالت تاریک: وب .dark + darkMode: 'selector' با کلید darkMode؛ پروتوتایپ data-theme با کلید tvm-theme.
  • دو آبی موازی (حل‌شده): موبایل به اسکیمای seed-محور وب مهاجرت کرد (Generated*Scheme.kt از packages/design-tokens). مانده: primary روشن #004AC6 در هر دو پلتفرم در برابر #2563EB هدف — منتظر تصویب مقیاس نهایی.
  • دو پالت رویداد: وب --event-1..8 با پالت هدف فرق دارد.
  • توکن‌های تایپ ساده‌شدهٔ وب: مقیاس عددی MD3، نه پله‌های هدف تا ۸۰۰.
  • پیش‌نمایش-سپس-ویرایش و جستجو: هنوز not-started — در هیچ پلتفرمی ادعای پیاده‌سازی نمی‌شوند.

نگهداری

این ماتریس دستی است و باید با هر تغییرِ پذیرش به‌روز شود. دو سطح شاهدِ زنده هم در کنار مسیر مخزن وجود دارند: استوری‌بوک وب (apps/calendar-web) و گالری خروجی‌های اندروید؛ حداقل هنگام عوض‌کردنِ last_reviewed در صفحات طراحی. منبع ادعا همیشه کد است — ستون «شاهد» را بدون بازبینیِ مسیر عوض نکنید.