work@hossein-assar.devReply within 24 hoursفارسی
Hossein AssarHossein AssarDesign & development
Back to projects
Web · Single-file SPA

ATK website — mobility aid equipment manufacturer

A complete 7-page B2B site prototype, compiled into one self-contained HTML file requiring no hosting

HTML/CSS/JS · Single-file SPA
ATK website — mobility aid equipment manufacturer

About the client

ATK is an Iranian manufacturer and wholesale supplier of mobility aid equipment — folding walkers, adjustable canes, commode chairs, shower chairs, toilet safety frames, and underarm crutches — founded in 2008. It sells to pharmacies and distributors nationwide, positioning itself on in-house manufacturing and quality control rather than pure resale.

Project scope & my role

Designed and built a full 7-page B2B site prototype — Homepage, About, Contact, Product Catalog, and an individual detail page for each of the 7 products — then compiled everything into a single self-contained HTML file so it could be reviewed without any hosting or deployment step.

Key features

01Custom brand identity: a teal/sage color palette, a Vazirmatn (Farsi) + Archivo Black (Latin wordmark) type system, and an original cane-silhouette motif woven into the logo and UI details
02Full RTL (right-to-left) Persian layout throughout
03Interactive product galleries with click-to-zoom lightboxes, swappable thumbnails, and hover-zoom
04Scroll-triggered reveal animations, animated count-up statistics, sticky nav with scroll shadow, and subtle hero parallax — all respecting prefers-reduced-motion
05Real product data sourced from manufacturer spec sheets/photos (paraphrased, not scraped), with clear "unconfirmed" disclaimers where data was incomplete

Key challenges

RTL-specific CSS bugs

justify-content: flex-end behaves opposite to visual expectation in RTL flex containers — had to debug and correct alignment issues that don't show up in typical LTR-first dev workflows.

Merging 11 independent pages into one file

Required building a lightweight client-side router (hash/filename-based navigation) that shows and hides sections instead of doing real page loads.

Duplicate-ID conflicts from merging

Multiple pages independently used the same element IDs (e.g. mainProductImg, rfq). Solved by rewriting the JS to scope all DOM queries to the currently active page section instead of relying on global getElementById calls.

A structural bug from merging

A hero wrapper <div> that opened before the nav bar and closed after it caused an orphaned closing tag once the nav was extracted out as shared markup — content silently leaked outside its intended page container. Diagnosed with a custom div-balance/nesting verification script, not just visual inspection.

Fully offline, zero-dependency delivery

All fonts and photos were base64-embedded directly into the HTML (no external requests), so the file works standalone in any browser with no server.

Outcome

A complete, presentable prototype reviewable without any hosting or infrastructure, which became the basis for ATK's decisions on the final site design.

Project screenshots

ATK website homepage
01 — Homepage
ATK product catalog
02 — Product catalog
ATK product detail page
03 — Product detail page