My personal portfolio site. Built with React, Vite, Tailwind CSS, and shadcn/ui.
- Dark/light mode (saves your preference)
- English + Arabic with RTL support
- Scroll animations with Motion
- Mobile-friendly with a hamburger menu
- Contact form
- Docker support
React 19, Vite 6, Tailwind CSS v4, shadcn/ui, Motion, react-icons, Redux Toolkit
npm install
npm run devThen open http://localhost:5173.
docker build -t learnrjs .
docker run -d -p 8080:80 learnrjsOr with Docker Compose:
docker compose up -dOpen http://localhost:8080.
src/
components/
sections/ # Hero, About, Skills, Projects, Experience, Services, Contact
ui/ # shadcn components + motion stuff
lib/
translations.js # All the text (EN/AR)
store/ # Redux slices
App.jsx
main.jsx
- Colors:
src/index.css - Content: data arrays in
src/components/sections/*.jsx - Text:
src/lib/translations.js - Logo:
public/images/logo.png - Fonts: Google Fonts link in
index.html+ tokens insrc/index.css
Images from Unsplash (free for commercial use). Code is free to use.