Five screens, twenty renders
A communication artefact for design review and client approval. Not production code. Open any screen live, or view the render. Arabic is the primary locale and was built first; English is derived from it. The strip at the top of each live screen is a prototype control, not product UI, and switches list and form states.
Live screens
العربية — الأساس
- 1 · الصفحة الرئيسية
- 2 · تصفح الوظائف (الحالات: فارغة · تحميل · خطأ)
- 3 · تفاصيل الوظيفة
- 4 · التقديم (مع فشل الإرسال)
- 5 · نشر وظيفة (مع فشل النشر)
- 6 · عرض العمل والتأكيد من الطرفين (تأكيد المباشرة · بعد الرفض · من جهة الشركة)
- 7 · مهمة قصيرة وتأكيد الحضور (تأكيد الحضور · ملغاة · من جهة الشركة)
- 8 · مسار المتقدمين (تحديد جماعي · لا طلبات بعد · خطأ)
- 9 · أدوات التشغيل — طلبات التوثيق (طلب مفتوح · لا طلبات)
- 10 · إنشاء حساب (شركة · رمز الهاتف · أخطاء)
- 11 · تسجيل الدخول (قادم من إعلان · موقوف مؤقتاً)
- 12 · ملف الباحث عن عمل (ملف جديد · بعد الحفظ)
- 13 · صفحة الشركة العامة (بعد فتح البيانات · غير موثّقة)
- 14 · تحرير ملف الشركة (بانتظار التوثيق · رُفض التوثيق)
English — derived
- 1 · Homepage
- 2 · Jobs browse (states: empty · loading · error)
- 3 · Job detail
- 4 · Apply flow (with submit failure)
- 5 · Post a job (with publish failure)
- 6 · Job offer and two-sided confirmation (confirm start · after declining · the company's side)
- 7 · Short task and attendance (confirm attendance · cancelled · the company's side)
- 8 · Applicant pipeline (bulk selection · no applications yet · error)
- 9 · Ops — verification queue (request open · empty queue)
- 10 · Create an account (company · phone code · errors)
- 11 · Log in (arrived from a posting · temporarily locked)
- 12 · Job seeker profile (new profile · after saving)
- 13 · Public company profile (after unlocking · not verified)
- 14 · Company profile editor (awaiting verification · verification rejected)
Renders
Full-page captures at 375×812 (2×) and 1280×800 (1×), produced by scripts/render.cjs after its checks pass. Click to open at full size.
Arabic
- home · mobile · desktop
- jobs · mobile · desktop
- job · mobile · desktop
- apply · mobile · desktop
- post-job · mobile · desktop
- offer · mobile · tablet · desktop
- task-day · mobile · tablet · desktop
- pipeline · mobile · tablet · desktop
- ops · mobile · tablet · desktop
- register · mobile · tablet · desktop
- signin · mobile · tablet · desktop
- profile-edit · mobile · tablet · desktop
- company · mobile · tablet · desktop
- company-edit · mobile · tablet · desktop
English
- home · mobile · desktop
- jobs · mobile · desktop
- job · mobile · desktop
- apply · mobile · desktop
- post-job · mobile · desktop
- offer · mobile · tablet · desktop
- task-day · mobile · tablet · desktop
- pipeline · mobile · tablet · desktop
- ops · mobile · tablet · desktop
- register · mobile · tablet · desktop
- signin · mobile · tablet · desktop
- profile-edit · mobile · tablet · desktop
- company · mobile · tablet · desktop
- company-edit · mobile · tablet · desktop
Read before reviewing
- Colour is decided — every value is a role from
COLOUR_SYSTEM.md. Amber appears as a fill on one action per screen and nowhere as text or a meaningful border. - The typeface is decided — Alan Sans (Arabic and Latin), the shipped subsets from
/root/majalmaster, commita4a975d. It replaced IBM Plex, the earlier placeholder, and the Beiruti/Fustat candidates weighed alongside it; seedesign-context/typography/README.mdon master for the F-56 write-up and the measured leading values applied here. - Every state is its own screen — the dark strip at the top of each page switches them, and every state listed there is rendered, measured for horizontal fit and axe-checked at all three viewports. Reviewing only the first state is not reviewing the screen.
- Screens 6 to 9 and 12 to 14 were drawn without reference images —
design-context/layout-references/dashboard/andcompany-profile/are empty, and the rule that says to stop and ask was suspended for one night by the client. Screens 10 and 11 are the exception —apply-and-forms/has five references and they were read first. Readdocs/OVERNIGHT_LOG.mdbefore reviewing them: it lists every decision that would otherwise have been a question. - Screen 8's stage lists come from the database — each row offers exactly the transitions migration 0023's matrix permits from that row's current stage, and a row at a terminal stage offers none. The screen never shows a move the database would refuse.
- The scale is being proposed — eight type sizes, nine spacing steps, four radii, three tonal elevation steps. Every size in the prototype is one of them;
scripts/check-scale.cjsfails on any other. Details inREADME.md. - Select lists: native is the floor — the control matches the inputs everywhere. The open list matches too on Chrome and Edge 135+ (a CSS-only enhancement); on Safari, Firefox and every phone it is the platform's own picker, kept on purpose for its target size and screen-reader behaviour. The area picker, where type-ahead matters, has a custom combobox. Not a defect; reasoning in
README.md. - No sign-in step is built between the public job page and the app-shell apply flow. It is a deliberate omission, stated in
README.md. - Company names are invented Kuwaiti trade names. No posting is attributed to a real company.