docs(design): define typography and dark theme

This commit is contained in:
2026-08-20 17:40:08 +03:30
parent a723e272d4
commit 3fcbca8f8e
2 changed files with 48 additions and 11 deletions

View File

@@ -43,6 +43,9 @@ Give a non-technical merchant a fast, trustworthy Persian RTL view of payment pe
25. First dashboard access defaults to the latest complete Jalali month containing data. The comparison is the immediately previous equivalent complete month; if unavailable/empty, the UI explicitly says comparison is unavailable and does not silently substitute another baseline.
26. Overview KPI order is bank-paid amount, bank-paid session count, payment success rate, then verification completion. Retry, processing-time, and fee analysis follow below.
27. Read-only drill-downs are available for unverified-paid, failed, and retried sessions. They exclude payer tokens and peer-level data and may distinguish zero-attempt/reached-bank stages without inventing failure causes.
28. A deterministic insight is promoted into an actionable card only when at least 100 relevant sessions contribute and the comparison changes by at least 3 percentage points for a rate or 20 percent for an amount/count. Smaller changes remain available as metrics without an action claim.
29. All merchant-facing values use Persian digits and monetary values use Rial only. Technical identifiers remain canonical and are directionally isolated.
30. Light and dark modes are supported from the first release through the semantic token contract in `DESIGN.md`; system preference is the default and an explicit accessible user choice persists locally.
## Frontend architecture baseline
@@ -60,6 +63,9 @@ Give a non-technical merchant a fast, trustworthy Persian RTL view of payment pe
- Critical flows work at 360 px, 768 px, 1024 px, and a wide desktop viewport in RTL.
- Login, navigation drawer, filters, chart alternatives, and logout are keyboard complete and screen-reader understandable.
- Values visibly specify period and unit; missing/suppressed/zero states are distinct.
- Merchant-facing digits are Persian, money is labeled in Rial only, and technical identifiers remain uncorrupted in RTL layouts.
- Light and dark modes both meet the documented contrast, focus, chart, state, and reduced-motion requirements at all acceptance viewports, with no first-paint theme flash.
- Below-threshold comparisons never produce actionable insight language, while qualifying insight cards expose their numeric evidence and limitation.
- Success views include `Paid` plus `Verified`, verification-completion views separate them, and unverified paid sessions are never styled or described as failures.
- Paid volume and merchant fee values reconcile at session grain; fee totals remain unchanged when a session has additional attempts.
- Retry recovery includes eventual `Paid` or `Verified`, and timing percentiles never treat missing values as zero.
@@ -85,5 +91,5 @@ Give a non-technical merchant a fast, trustworthy Persian RTL view of payment pe
- Approved analytics interface contract for the metric catalogue and cohort policy
- Approved authentication/session API
- OpenAPI/interface contract and error format
- Decisions listed in `DESIGN.md`
- Delivery of the licensed Iran Yekan X Professional FaNum variable webfont
- Static adapter fallback/routing behavior under the final Nginx configuration