├── .eslintrc.cjs ├── .gitignore ├── CLAUDE.md ├── README.md ├── docs └── claude-development │ ├── ARCHITECTURE.md │ ├── CHANGELOG.md │ └── README.md ├── index.html ├── package.json ├── postcss.config.js ├── public └── vite.svg ├── src ├── App.jsx ├── assets │ ├── Logo.png │ ├── og-image.png │ └── projects │ │ ├── apeUniFibExtractor.webp │ │ ├── biomech-analysis.webp │ │ ├── careerChatbot.webp │ │ ├── ecommerce.webp │ │ ├── expense-tracker.webp │ │ ├── game-hub.webp │ │ ├── google-next.webp │ │ ├── melbUniUltimate.webp │ │ ├── mern-blog.webp │ │ ├── mern-chat.webp │ │ ├── mern-chinese-poetry.webp │ │ ├── mern-ecommerce.webp │ │ ├── mern-estate.webp │ │ ├── mern-netflix-clone.webp │ │ ├── next-blog.webp │ │ ├── next-code-craft.webp │ │ ├── next-stripe-starter.webp │ │ ├── nextRemoteInterviewPlatform.webp │ │ ├── portfolio.webp │ │ ├── ts-poker-game.webp │ │ └── twitter-clone.webp ├── components │ ├── index.js │ ├── layout │ │ ├── FloatingNavigation │ │ │ ├── FloatingNavigation.jsx │ │ │ └── index.jsx │ │ └── Navbar │ │ │ ├── Navbar.jsx │ │ │ └── index.jsx │ ├── sections │ │ ├── Blog │ │ │ ├── BlogCard.jsx │ │ │ └── index.jsx │ │ ├── CareerChatbot │ │ │ ├── CareerChatbot.jsx │ │ │ └── index.jsx │ │ ├── Chatbot │ │ │ ├── Chatbot.jsx │ │ │ └── index.jsx │ │ ├── Contact │ │ │ ├── Contact.jsx │ │ │ ├── ProfessionalContactForm.jsx │ │ │ └── index.jsx │ │ ├── Experience │ │ │ ├── Experience.jsx │ │ │ └── index.jsx │ │ ├── GitHubActivity │ │ │ ├── GitHubActivity.jsx │ │ │ └── index.jsx │ │ ├── Hero │ │ │ ├── Hero.jsx │ │ │ └── animations.js │ │ ├── PersonalBranding │ │ │ ├── PersonalBranding.jsx │ │ │ └── index.jsx │ │ ├── Projects │ │ │ ├── AlternativePreview.jsx │ │ │ ├── LiveDemoPreview.jsx │ │ │ ├── ProjectCard.jsx │ │ │ ├── ProjectModal.jsx │ │ │ ├── ProjectPreviewDetector.js │ │ │ ├── animations.js │ │ │ └── index.jsx │ │ ├── References │ │ │ ├── ReferenceCard.jsx │ │ │ ├── ReferenceSection.jsx │ │ │ └── index.jsx │ │ └── Skills │ │ │ ├── LighthouseScoreCard.jsx │ │ │ ├── SkillsVisualization.jsx │ │ │ └── index.jsx │ └── ui │ │ ├── animations │ │ └── ScrollAnimations │ │ │ └── ScrollEffects.jsx │ │ └── common │ │ ├── Button.jsx │ │ ├── Card.jsx │ │ ├── ErrorBoundary.jsx │ │ ├── Modal.jsx │ │ ├── OptimizedImage.jsx │ │ ├── QuoteText.jsx │ │ ├── SectionHeading.jsx │ │ ├── Skeleton.jsx │ │ ├── ThemeSwitcherButton.jsx │ │ └── Toast.jsx ├── constants │ ├── assets.js │ ├── blog.js │ ├── constants.js │ ├── experiences.js │ ├── github.js │ ├── index.js │ ├── lighthouseScores.js │ ├── projects.js │ ├── references.js │ ├── skills.js │ └── technologies.js ├── contexts │ ├── ThemeContext.jsx │ └── UIContext.jsx ├── hooks │ ├── index.js │ ├── useBlogPosts.js │ ├── useCV.js │ ├── useKeyboardShortcuts.js │ ├── useLighthouseScoreAnimation.js │ ├── useMobile.js │ ├── useScrollAnimation.js │ ├── useTypingAnimation.js │ └── useUI.js ├── index.css ├── main.jsx └── utils │ ├── accessibility.js │ ├── api.js │ ├── index.js │ └── typography.js ├── tailwind.config.js └── vite.config.js /.eslintrc.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/.eslintrc.cjs -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/.gitignore -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/README.md -------------------------------------------------------------------------------- /docs/claude-development/ARCHITECTURE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/docs/claude-development/ARCHITECTURE.md -------------------------------------------------------------------------------- /docs/claude-development/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/docs/claude-development/CHANGELOG.md -------------------------------------------------------------------------------- /docs/claude-development/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/docs/claude-development/README.md -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/index.html -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/postcss.config.js -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/public/vite.svg -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/App.jsx -------------------------------------------------------------------------------- /src/assets/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/Logo.png -------------------------------------------------------------------------------- /src/assets/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/og-image.png -------------------------------------------------------------------------------- /src/assets/projects/apeUniFibExtractor.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/apeUniFibExtractor.webp -------------------------------------------------------------------------------- /src/assets/projects/biomech-analysis.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/biomech-analysis.webp -------------------------------------------------------------------------------- /src/assets/projects/careerChatbot.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/careerChatbot.webp -------------------------------------------------------------------------------- /src/assets/projects/ecommerce.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/ecommerce.webp -------------------------------------------------------------------------------- /src/assets/projects/expense-tracker.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/expense-tracker.webp -------------------------------------------------------------------------------- /src/assets/projects/game-hub.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/game-hub.webp -------------------------------------------------------------------------------- /src/assets/projects/google-next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/google-next.webp -------------------------------------------------------------------------------- /src/assets/projects/melbUniUltimate.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/melbUniUltimate.webp -------------------------------------------------------------------------------- /src/assets/projects/mern-blog.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/mern-blog.webp -------------------------------------------------------------------------------- /src/assets/projects/mern-chat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/mern-chat.webp -------------------------------------------------------------------------------- /src/assets/projects/mern-chinese-poetry.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/mern-chinese-poetry.webp -------------------------------------------------------------------------------- /src/assets/projects/mern-ecommerce.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/mern-ecommerce.webp -------------------------------------------------------------------------------- /src/assets/projects/mern-estate.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/mern-estate.webp -------------------------------------------------------------------------------- /src/assets/projects/mern-netflix-clone.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/mern-netflix-clone.webp -------------------------------------------------------------------------------- /src/assets/projects/next-blog.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/next-blog.webp -------------------------------------------------------------------------------- /src/assets/projects/next-code-craft.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/next-code-craft.webp -------------------------------------------------------------------------------- /src/assets/projects/next-stripe-starter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/next-stripe-starter.webp -------------------------------------------------------------------------------- /src/assets/projects/nextRemoteInterviewPlatform.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/nextRemoteInterviewPlatform.webp -------------------------------------------------------------------------------- /src/assets/projects/portfolio.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/portfolio.webp -------------------------------------------------------------------------------- /src/assets/projects/ts-poker-game.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/ts-poker-game.webp -------------------------------------------------------------------------------- /src/assets/projects/twitter-clone.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/assets/projects/twitter-clone.webp -------------------------------------------------------------------------------- /src/components/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/index.js -------------------------------------------------------------------------------- /src/components/layout/FloatingNavigation/FloatingNavigation.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/layout/FloatingNavigation/FloatingNavigation.jsx -------------------------------------------------------------------------------- /src/components/layout/FloatingNavigation/index.jsx: -------------------------------------------------------------------------------- 1 | export { default } from './FloatingNavigation'; -------------------------------------------------------------------------------- /src/components/layout/Navbar/Navbar.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/layout/Navbar/Navbar.jsx -------------------------------------------------------------------------------- /src/components/layout/Navbar/index.jsx: -------------------------------------------------------------------------------- 1 | export { default } from './Navbar'; -------------------------------------------------------------------------------- /src/components/sections/Blog/BlogCard.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Blog/BlogCard.jsx -------------------------------------------------------------------------------- /src/components/sections/Blog/index.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Blog/index.jsx -------------------------------------------------------------------------------- /src/components/sections/CareerChatbot/CareerChatbot.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/CareerChatbot/CareerChatbot.jsx -------------------------------------------------------------------------------- /src/components/sections/CareerChatbot/index.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/CareerChatbot/index.jsx -------------------------------------------------------------------------------- /src/components/sections/Chatbot/Chatbot.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Chatbot/Chatbot.jsx -------------------------------------------------------------------------------- /src/components/sections/Chatbot/index.jsx: -------------------------------------------------------------------------------- 1 | export { default } from './Chatbot'; -------------------------------------------------------------------------------- /src/components/sections/Contact/Contact.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Contact/Contact.jsx -------------------------------------------------------------------------------- /src/components/sections/Contact/ProfessionalContactForm.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Contact/ProfessionalContactForm.jsx -------------------------------------------------------------------------------- /src/components/sections/Contact/index.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Contact/index.jsx -------------------------------------------------------------------------------- /src/components/sections/Experience/Experience.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Experience/Experience.jsx -------------------------------------------------------------------------------- /src/components/sections/Experience/index.jsx: -------------------------------------------------------------------------------- 1 | export { default } from './Experience'; -------------------------------------------------------------------------------- /src/components/sections/GitHubActivity/GitHubActivity.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/GitHubActivity/GitHubActivity.jsx -------------------------------------------------------------------------------- /src/components/sections/GitHubActivity/index.jsx: -------------------------------------------------------------------------------- 1 | export { default } from './GitHubActivity'; -------------------------------------------------------------------------------- /src/components/sections/Hero/Hero.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Hero/Hero.jsx -------------------------------------------------------------------------------- /src/components/sections/Hero/animations.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Hero/animations.js -------------------------------------------------------------------------------- /src/components/sections/PersonalBranding/PersonalBranding.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/PersonalBranding/PersonalBranding.jsx -------------------------------------------------------------------------------- /src/components/sections/PersonalBranding/index.jsx: -------------------------------------------------------------------------------- 1 | export { default } from './PersonalBranding'; -------------------------------------------------------------------------------- /src/components/sections/Projects/AlternativePreview.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Projects/AlternativePreview.jsx -------------------------------------------------------------------------------- /src/components/sections/Projects/LiveDemoPreview.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Projects/LiveDemoPreview.jsx -------------------------------------------------------------------------------- /src/components/sections/Projects/ProjectCard.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Projects/ProjectCard.jsx -------------------------------------------------------------------------------- /src/components/sections/Projects/ProjectModal.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Projects/ProjectModal.jsx -------------------------------------------------------------------------------- /src/components/sections/Projects/ProjectPreviewDetector.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Projects/ProjectPreviewDetector.js -------------------------------------------------------------------------------- /src/components/sections/Projects/animations.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Projects/animations.js -------------------------------------------------------------------------------- /src/components/sections/Projects/index.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Projects/index.jsx -------------------------------------------------------------------------------- /src/components/sections/References/ReferenceCard.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/References/ReferenceCard.jsx -------------------------------------------------------------------------------- /src/components/sections/References/ReferenceSection.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/References/ReferenceSection.jsx -------------------------------------------------------------------------------- /src/components/sections/References/index.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/References/index.jsx -------------------------------------------------------------------------------- /src/components/sections/Skills/LighthouseScoreCard.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Skills/LighthouseScoreCard.jsx -------------------------------------------------------------------------------- /src/components/sections/Skills/SkillsVisualization.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/sections/Skills/SkillsVisualization.jsx -------------------------------------------------------------------------------- /src/components/sections/Skills/index.jsx: -------------------------------------------------------------------------------- 1 | export { default } from './SkillsVisualization'; -------------------------------------------------------------------------------- /src/components/ui/animations/ScrollAnimations/ScrollEffects.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/animations/ScrollAnimations/ScrollEffects.jsx -------------------------------------------------------------------------------- /src/components/ui/common/Button.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/Button.jsx -------------------------------------------------------------------------------- /src/components/ui/common/Card.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/Card.jsx -------------------------------------------------------------------------------- /src/components/ui/common/ErrorBoundary.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/ErrorBoundary.jsx -------------------------------------------------------------------------------- /src/components/ui/common/Modal.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/Modal.jsx -------------------------------------------------------------------------------- /src/components/ui/common/OptimizedImage.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/OptimizedImage.jsx -------------------------------------------------------------------------------- /src/components/ui/common/QuoteText.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/QuoteText.jsx -------------------------------------------------------------------------------- /src/components/ui/common/SectionHeading.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/SectionHeading.jsx -------------------------------------------------------------------------------- /src/components/ui/common/Skeleton.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/Skeleton.jsx -------------------------------------------------------------------------------- /src/components/ui/common/ThemeSwitcherButton.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/ThemeSwitcherButton.jsx -------------------------------------------------------------------------------- /src/components/ui/common/Toast.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/components/ui/common/Toast.jsx -------------------------------------------------------------------------------- /src/constants/assets.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/assets.js -------------------------------------------------------------------------------- /src/constants/blog.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/blog.js -------------------------------------------------------------------------------- /src/constants/constants.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/constants.js -------------------------------------------------------------------------------- /src/constants/experiences.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/experiences.js -------------------------------------------------------------------------------- /src/constants/github.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/github.js -------------------------------------------------------------------------------- /src/constants/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/index.js -------------------------------------------------------------------------------- /src/constants/lighthouseScores.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/lighthouseScores.js -------------------------------------------------------------------------------- /src/constants/projects.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/projects.js -------------------------------------------------------------------------------- /src/constants/references.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/references.js -------------------------------------------------------------------------------- /src/constants/skills.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/skills.js -------------------------------------------------------------------------------- /src/constants/technologies.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/constants/technologies.js -------------------------------------------------------------------------------- /src/contexts/ThemeContext.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/contexts/ThemeContext.jsx -------------------------------------------------------------------------------- /src/contexts/UIContext.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/contexts/UIContext.jsx -------------------------------------------------------------------------------- /src/hooks/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/index.js -------------------------------------------------------------------------------- /src/hooks/useBlogPosts.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/useBlogPosts.js -------------------------------------------------------------------------------- /src/hooks/useCV.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/useCV.js -------------------------------------------------------------------------------- /src/hooks/useKeyboardShortcuts.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/useKeyboardShortcuts.js -------------------------------------------------------------------------------- /src/hooks/useLighthouseScoreAnimation.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/useLighthouseScoreAnimation.js -------------------------------------------------------------------------------- /src/hooks/useMobile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/useMobile.js -------------------------------------------------------------------------------- /src/hooks/useScrollAnimation.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/useScrollAnimation.js -------------------------------------------------------------------------------- /src/hooks/useTypingAnimation.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/useTypingAnimation.js -------------------------------------------------------------------------------- /src/hooks/useUI.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/hooks/useUI.js -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/index.css -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/main.jsx -------------------------------------------------------------------------------- /src/utils/accessibility.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/utils/accessibility.js -------------------------------------------------------------------------------- /src/utils/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/utils/api.js -------------------------------------------------------------------------------- /src/utils/index.js: -------------------------------------------------------------------------------- 1 | // API utilities 2 | export * from './api'; -------------------------------------------------------------------------------- /src/utils/typography.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/src/utils/typography.js -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/tailwind.config.js -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuyuelintop/react-portfolio/HEAD/vite.config.js --------------------------------------------------------------------------------