The browser tab previously showed a generic placeholder favicon and the
English title "EHSAN Closed Donation Loop". Per the reference, the tab now
shows the EHSAN logo mark and an Arabic platform title.
Changes:
- Favicon: copied the existing EHSAN logo (src/assets/ehsan-logo.png) to
public/favicon.png and pointed index.html at %BASE_URL%favicon.png
(base-path safe; verified it serves 200 image/png).
- Static head: index.html <title> and OG/Twitter titles + description now
use the Arabic platform name "منصة إحسان".
- Per-page titles: added a DocumentTitle component
(src/hooks/useDocumentTitle.ts) rendered in the Router that sets
document.title to "<page name> - <platform>" based on the current wouter
path and active language, reading from a new translations.meta section
(AR + EN). Home reads "الصفحة الرئيسية - منصة إحسان"; switches with language.
Approach note: titles are centralized in the router rather than edited into
each page file, keeping it DRY while covering all main routes.
Verified: tsc clean; e2e confirmed titles on /, /opportunities, /cart and
English fallback ("Home - EHSAN Platform"), plus favicon load.
Follow-up tweaks so the EHSAN POC matches the official ehsan.sa site.
- Font: switched from Tajawal to IBM Plex Sans Arabic (index.html +
index.css). ehsan.sa's exact webfont couldn't be auto-detected (site
blocks scraping; no Wayback snapshot), so picked the closest official
match.
- Home hero: replaced the gray search-box hero with a full-bleed green
branded banner (badge, title, subtitle, two CTAs, decorative leaf SVGs),
matching ehsan.sa. Moved the search bar above the featured opportunities
grid (with an sr-only label for accessibility).
- Currency: replaced the legacy "﷼" glyph everywhere with the new official
Saudi Riyal symbol via a reusable <Riyal /> component that masks a
processed PNG (src/assets/riyal.png) colored with currentColor; marked
aria-hidden since the adjacent number conveys the value. Applied across
home stats, OpportunityCard, donate, track, admin, request.
- Added AR+EN translation keys heroBadge/heroBrowse.
Verified: tsc clean, no console errors, screenshots confirm hero, font, and
riyal symbol render correctly. Code review fixes applied (search label,
decorative riyal aria, removed unused key).