CodeCanvas is a modern, TypeScript-powered learning dashboard designed to showcase web development skills and best practices. This project demonstrates the power of TypeScript, modular architecture, and interactive UI components in a real-world application.
π― Purpose: A comprehensive learning environment that combines theory with practice, featuring dark mode, toast notifications, form validation, and smooth animations β all built with type-safe TypeScript.
| Feature | Description | Status |
|---|---|---|
| π Dark/Light Mode | Persistent theme switching with localStorage | β Complete |
| π’ Toast Notifications | Beautiful, auto-dismissing popup messages | β Complete |
| π Form Validation | Type-safe form handling with error messages | β Complete |
| β¨οΈ Keyboard Shortcuts | Alt+T, Alt+H for quick actions | β Complete |
| π Interactive Tables | Clickable rows with feedback | β Complete |
| π Expandable Sections | Collapsible details with animations | β Complete |
| π¨ Modern UI | Gradient backgrounds, shadows, hover effects | β Complete |
| π± Responsive Design | Mobile-first approach | β Complete |
| π Smooth Scrolling | Animated navigation links | β Complete |
| πΎ Local Storage | Persistent theme preferences | β Complete |
codecanvas-learning-lab/
βββ dist/
β βββ main.js
β βββ main.js.map
β βββ main.d.ts
β βββ main.d.ts.map
β βββ types/
β βββ utils/
β
βββ src/
β βββ index.html
β βββ main.ts
β βββ style.css
β β
β βββ types/
β β βββ interfaces.ts
β β
β βββ utils/
β βββ form.ts
β βββ theme.ts
β βββ toast.ts
β βββ scroll.ts
β
βββ package.json
βββ package-lock.json
βββ tsconfig.json
βββ .gitignore
Follow these steps to run the project locally:
# 1. Clone the repository
git clone https://github.com/yourusername/codecanvas.git
# 2. Navigate to project directory
cd codecanvas
# 3. Install dependencies
npm install
# 4. Compile TypeScript
npm run build
# 5. Watch mode (auto-compile on changes)
npm run watch
# 6. Open with live server
npx live-server src
| Script | Description |
|---|---|
| npm run build | Compiles TypeScript to JavaScript |
| npm run watch | Watches for changes and auto-compiles |
| npm run dev | Starts live server |
| npm run clean | Removes dist folder |
| Shortcut | Action |
|---|---|
| Alt + T | Toggle Dark/Light mode |
| Alt + H | Scroll to top |
| Esc | Close toast notification |
| Role | Light Mode | Dark Mode | |ββββ|ββββ|ββββ| | Primary | #007acc | #4aa3df | | Background| #f4f6f8 | #0f0f1a | | Card | #ffffff | #1e1e2e | | Success | #4CAF50 | #6fbf6f | | Error | #f44336 | #f6685e | | Warning | #ff9800 | #ffb74d | | Info | #2196F3 | #64b5f6 | βββ-
Contributions are welcome! Hereβs how you can help:
git commit -m βAdd amazing featureβ
git push origin feature/amazing-feature ```
If you found this project helpful, please give it a β on GitHub and share it with others!
Made with by Muhammad Yasir [](https://github.com/YasirAwan4831/codecanvas/stargazers) [](https://github.com/YasirAwan4831)