Freelance UX Researchers in Islamabad Capital TerritoryFreelance UX Researchers in Islamabad Capital Territory
UI/UX Designer | Branding Expert | UX Strategy
5.0
Rating
UI/UX Designer | Branding Expert | UX Strategy
UI/UX Designer Helping Startups Grow with Design
17
Followers
UI/UX Designer Helping Startups Grow with Design
Web Developer | UI/UX| 3D Product Animation |
8
Followers
Web Developer | UI/UX| 3D Product Animation |
Cover image for 🎤 Encore — Your Sound,
🎤 Encore — Your Sound, Verified A concept demo built for the artist/fan/venue platform brief 📌 What This Is Encore is a front-end concept demo — a single-page, mobile-first web experience designed to show how the platform described in the brief could feel to use. It's not just a mockup of screens; it's a working, interactive build: real animation, real 3D motion, real responsive layout, all in the browser. The goal wasn't to illustrate "a music app." It was to design around the actual problem stated in the brief: AI and infinite streaming have flooded the market, and the one thing that can't be faked is a room full of real people who showed up for one specific artist. Every design decision traces back to that idea. 🎯 The Core Idea (Signature Concept) The centerpiece of the whole design is a simple visual metaphor: Noise → Signature On page load, the hero section shows a waveform made of random, chaotic bars — representing the flood of AI-generated tracks. Over about 2 seconds, it smoothly resolves into a clean, deliberate waveform shape — representing a real artist's identity emerging from the noise. This one animation is the pitch: your sound survives the flood because it's yours. That same idea — human signal standing out against synthetic noise — is echoed quietly throughout: in the copy, in the "verified" badges, and in the rotating light-ray silhouette behind the hero text. 🎨 Design System Color palette (named, not generic defaults): #0E0B12 Stage — near-black background, like a dim venue #161019 Stage 2 — slightly lifted panel background #1F1826 Card — surface color for cards/passes #FFB84D Amber — warm spotlight accent #B24BF3 Violet — electric stage-light accent #F5F0EB Paper — main text color #6EE7A8 Green — small "verified/confirmed" indicator only Typography (three roles, chosen for character, not defaults): Fraunces (serif) → headlines. Warm, a little vintage, feels human rather than corporate Inter (sans) → body copy. Clean, highly readable at small sizes IBM Plex Mono → tags, roles, timestamps, eyebrows. Gives a "verified/technical" feel to labels like CONFIRMED · MOBILE Layout logic: every section either shows the brief's real content (roles, event lifecycle) or reinforces the noise→signature theme. Nothing decorative was added just to fill space. 🧩 Section-by-Section Breakdown 🧭 Nav — sticky, blurred glass background, quick links + waitlist CTA 🎙️ Hero — the noise→signature waveform animation, headline built directly from the brief's own stat (750k tracks/day, 400k AI-made), rotating light-ray performer silhouette as ambient background 📉 The Problem — three animated counting stats (53%, 750k, ~1%) pulled straight from the brief's numbers, plus one closing line of copy 🎫 Who's In (Roles) — three "backstage pass" style cards for Fan (guest → registered → confirmed), Artist (approved, Stripe-connected — marked as the core role), and Local Business (approved, Stripe-connected). Each tilts in 3D toward the cursor 🕒 Before / During / After — the real event lifecycle from the brief, shown as a genuine numbered sequence (this is the one place numbering is justified, since order actually matters here) 🌟 Real People, Real Rooms — a horizontally scrollable roster of fictional artist cards (unique gradient avatars, genre, city) — social proof without using anyone's real photo or name 📱 The App — a tilting phone mockup showing what a confirmed fan actually sees: artist card, live "audio bars," setlist voting, check-in button 🖋️ Footer — simple sign-off 🛠️ What's Actually Used (Tech Stack) HTML5 — semantic structure, no frameworks CSS3 — custom properties (CSS variables) for the whole color system, Flexbox layout, clamp() for fluid type scaling, CSS mask-image for the fading carousel edges, keyframe animations Vanilla JavaScript — no libraries, no build step: <canvas> + requestAnimationFrame for the waveform animation IntersectionObserver for scroll-triggered stat counters and section reveals Mouse-position math for the 3D tilt effect on cards and the phone Inline SVG — the hero performer silhouette and light rays, hand-built, no external image files Google Fonts — Fraunces, Inter, IBM Plex Mono No dependencies, no npm install, no server required — it's three files (index.html, style.css, script.js) that run with a static file server like VS Code's Live Server. ✨ Motion & Interaction Details 🌊 Hero waveform: chaos → order animation on load, then idles with a gentle breathing motion 🔢 Stats count up from 0 the moment they scroll into view 🃏 Role cards & artist cards tilt in 3D toward the cursor, and lift slightly on hover 📲 Phone mockup tilts in full 3D based on cursor position — sells the "real device" feeling 🎇 Background light rays rotate slowly and continuously — ambient, not distracting 🪄 Sections fade/slide in as you scroll, instead of appearing all at once You can check out my project live here: https://encore-demo-saifullah.netlify.app (https://encore-demo-saifullah.netlify.app/) It is mobile and web-based.
0
81
Cover image for 🖤 Velaro — Technical Architecture
🔗
🖤 Velaro — Technical Architecture 🔗 Live Website https://saif-velaro-clothing-brand.netlify.app 📌 Overview Velaro is a single-page application (SPA) for a fashion/clothing brand, built with React + TypeScript, bundled by Vite, and styled with Tailwind CSS. The entire UI renders on one HTML page and updates dynamically as the user scrolls, searches, or interacts with the cart — no full page reloads. The architecture follows a standard modern frontend pattern: a single entry point boots the app, a root App component composes independent section components, and a global context manages shared state (the shopping cart) across all of them. ⚙️ Build & Tooling Layer These files configure how the project compiles, lints, and runs — they aren't part of the visible website, but control everything behind it. vite.config.ts — Configures Vite, the build tool/dev server. Defines how .tsx/.ts files are compiled, how the dev server runs (npm run dev), and how the production bundle is generated (npm run build). tsconfig.json — Root TypeScript config — points to the two more specific configs below via project references. tsconfig.app (http://tsconfig.app).json — TypeScript rules specifically for the application code in src/ (JSX handling, module resolution, strictness, the @/ path alias). tsconfig.node.json — TypeScript rules for Node-context files (like vite.config.ts itself), since those run outside the browser. tailwind.config.js — Configures Tailwind CSS — defines the design system (colors, spacing, fonts) and which files Tailwind scans to generate only the CSS classes actually used. postcss.config.js — Configures PostCSS, the tool that processes Tailwind's output and applies vendor prefixing/optimization during build. eslint.config.js — Defines linting rules — catches code-quality issues, unused variables, and React/TypeScript best-practice violations during development. package.json — Lists all dependencies (React, Vite, Tailwind, etc.) and defines the npm scripts (dev, build, preview). package-lock.json — Locks exact dependency versions so the build is reproducible across machines. .gitignore — Tells Git which files/folders to exclude from version control (e.g. node_modules, dist). index.html — The single real HTML file. Contains a root <div> that React mounts into — everything else is injected by JavaScript. dist/ — Auto-generated production build output (plain HTML/CSS/JS) created by npm run build. This is the folder actually deployed to Netlify. node_modules/ — Auto-generated folder holding all installed dependencies (created by npm install, never edited manually). 🚪 Application Entry & Root src/main.tsx — The true entry point of the app. Imports React, imports App.tsx, and mounts it into the <div> inside index.html. This is the first application code that runs. src/App.tsx — The root component. Doesn't contain page content itself — instead it imports and arranges every section component (Navbar, Hero, About, etc.) in order, and wraps everything in the CartProvider so cart state is available app-wide. src/index.css — Global stylesheet — imports Tailwind's base/utility layers, applied once at the root so every component can use Tailwind classes. src/vite-env.d.ts — TypeScript type declarations for Vite-specific features (like importing images/CSS as modules) — lets TypeScript understand syntax that isn't standard JavaScript. 🛒 State Management src/cart.tsx — Implements the CartProvider, a React Context that holds global cart state (items, quantities, totals) and exposes functions to add/remove items. Any component wrapped inside it (via App.tsx) can read or update the cart without prop-drilling. src/data.ts — Static data module — likely product listings, collection info, or other content consumed by components like FeaturedCollection and Showcase, kept separate from UI logic. 🧱 Component Layer (src/components/) Each file is a self-contained, single-responsibility UI section. App.tsx stacks them vertically to form the full page. Navbar.tsx — Persistent top navigation — branding, menu links, and likely triggers for search/cart. Hero.tsx — The primary landing banner — headline, tagline, and call-to-action (e.g. "Shop Collection"). HeroCanvas.tsx — A visual/animated layer paired with Hero.tsx — likely a canvas-based or decorative background effect behind the hero text. FeaturedCollection.tsx — Renders a curated set of products, pulling structured data from data.ts. About.tsx — Brand-story section — static content describing the label's identity. Lookbook.tsx — A style/editorial gallery — visually presents outfits or campaign imagery. Showcase.tsx — An additional highlight section, likely for a specific collection, drop, or promotional content. Testimonials.tsx — Displays customer reviews/social proof. Newsletter.tsx — Email capture form/section for marketing signups. SearchOverlay.tsx — A modal/overlay component for in-site product search, toggled from the Navbar. CartDrawer.tsx — A slide-out panel UI that reads from the CartProvider (cart.tsx) to display current cart items and totals. Footer.tsx — Bottom-of-page section — links, contact details, social icons. 🔄 How It All Connects (Data Flow) The browser loads index.html, which pulls in the compiled JS bundle. main.tsx runs first and mounts App.tsx into the page. App.tsx wraps all sections in CartProvider, so cart state is shared without passing props down manually through every component. Each section component renders independently — some are purely static/presentational (About, Footer), while others are interactive and tied into shared state (CartDrawer, SearchOverlay). Tailwind classes used throughout every component are compiled once into index.css based on what's scanned via tailwind.config.js. On npm run build, Vite compiles and bundles all of this into optimized static files inside dist/ — which is what gets deployed to Netlify and served to visitors. 🧠 Why This Structure Works Separation of concerns — each component owns one visual section; layout composition happens only in App.tsx. Centralized state — cart logic lives in one file (cart.tsx) instead of being duplicated across components. Data/UI separation — data.ts keeps content separate from rendering logic, making it easy to update products without touching component code. Type safety — TypeScript configs enforce consistent typing across the whole src/ folder, catching errors before runtime. Optimized output — the dev-only tooling (Vite, Tailwind, ESLint, TS configs) never ships to production; only the final compiled dist/ bundle is deployed.
0
55
Cover image for StreamPro — Brand Website for
StreamPro — Brand Website for a Live Event Broadcasting Studio Live Website: saif-stream-pro-website.netlify.app (http://saif-stream-pro-website.netlify.app) What I built😍 A fully responsive, mobile and web based single-page marketing website for StreamPro, a Brisbane-based live-streaming production studio that broadcasts memorial services, weddings, sports events, and community occasions. The site was designed and developed from scratch to establish a premium, trustworthy brand presence and convert visitors into booking inquiries — working seamlessly whether accessed from a phone, tablet, or desktop. What it does🙌 The website guides visitors through a structured narrative — introducing the brand, building credibility, showcasing services, explaining the booking process, displaying social proof, and closing with a direct contact/quote form. It's built to load fast, adapt fluidly across mobile and web based environments, and feel as polished and reliable as the broadcast service it's selling. Core concepts & techniques applied💯 Semantic document structure — content organized into meaningful, accessible sections rather than generic divs, improving both SEO and screen-reader usability. Design system / design tokens — a centralized set of reusable variables (colors, gradients, typography, spacing) so the entire visual identity stays consistent and can be updated globally from one place. Responsive, mobile-first layout design — fluid grids and breakpoints so the layout adapts smoothly across mobile and web based screens without needing separate versions. Scroll-based interactivity — dynamic navbar states, scrollspy navigation (highlighting the active section as the user scrolls), and progressive scroll-reveal animations for content. DOM manipulation & event handling — mobile menu toggling, animated statistic counters, and form interaction logic, all built with vanilla JavaScript (no frameworks). Accessibility considerations — visible focus states, reduced-motion support for users sensitive to animation, and descriptive alt text on all imagery. Brand identity integration — a custom 3D gradient logo mark and supporting visual graphics applied consistently across the navigation, hero section, and footer to reinforce brand recognition. Conversion-focused UX — strategic placement of trust signals (stats, testimonials, direct phone contact) and a structured lead-capture form to turn visitors into inquiries. Outcome🚀 A performant, framework-free static website that's lightweight, cheap to host, easy to maintain, fully mobile and web based responsive, and built entirely around fundamental web development principles — structure, styling systems, interactivity, accessibility, and conversion design.
0
86
A Product Designer that gets the job done.
$1k+
Earned
2
Followers
A Product Designer that gets the job done.
UI/UX designer with 5+ years of experience
UI/UX designer with 5+ years of experience
UI/UX Designer, Framer Creator & Lottie Animator
UI/UX Designer, Framer Creator & Lottie Animator