diff --git a/README.md b/README.md index 3a6c807..eff9a99 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ To run the project, you can follow these steps: 1. You can use 1. https://realfavicongenerator.net/ 2. https://www.pwabuilder.com/imageGenerator -3. Add/Remove icons in `src/Assets/icons` directory to suite your tech stack. Update their names and path in `src/Common/techIcons.ts` file. +3. Add/Remove logos in `public/logos` directory to suite your tech stack. Update their names in `src/Common/techLogos.ts` file. 1. You can use https://worldvectorlogo.com/ to get SVG icons. 4. Add/Remove **Themes** in `src/Common/styles.config.ts` file. 1. Default theme gets applied in `src/GlobalStyle.tsx` file. diff --git a/src/Assets/icons/amcharts.svg b/public/logos/amcharts.svg similarity index 100% rename from src/Assets/icons/amcharts.svg rename to public/logos/amcharts.svg diff --git a/src/Assets/icons/bootstrap.svg b/public/logos/bootstrap.svg similarity index 100% rename from src/Assets/icons/bootstrap.svg rename to public/logos/bootstrap.svg diff --git a/src/Assets/icons/css.svg b/public/logos/css.svg similarity index 100% rename from src/Assets/icons/css.svg rename to public/logos/css.svg diff --git a/src/Assets/icons/cypress.svg b/public/logos/cypress.svg similarity index 100% rename from src/Assets/icons/cypress.svg rename to public/logos/cypress.svg diff --git a/src/Assets/icons/d3.svg b/public/logos/d3.svg similarity index 100% rename from src/Assets/icons/d3.svg rename to public/logos/d3.svg diff --git a/src/Assets/icons/express.svg b/public/logos/express.svg similarity index 100% rename from src/Assets/icons/express.svg rename to public/logos/express.svg diff --git a/src/Assets/icons/git.svg b/public/logos/git.svg similarity index 100% rename from src/Assets/icons/git.svg rename to public/logos/git.svg diff --git a/src/Assets/icons/github.svg b/public/logos/github.svg similarity index 100% rename from src/Assets/icons/github.svg rename to public/logos/github.svg diff --git a/src/Assets/icons/html.svg b/public/logos/html.svg similarity index 100% rename from src/Assets/icons/html.svg rename to public/logos/html.svg diff --git a/src/Assets/icons/javascript.svg b/public/logos/javascript.svg similarity index 100% rename from src/Assets/icons/javascript.svg rename to public/logos/javascript.svg diff --git a/src/Assets/icons/jest.svg b/public/logos/jest.svg similarity index 100% rename from src/Assets/icons/jest.svg rename to public/logos/jest.svg diff --git a/src/Assets/icons/materialui.svg b/public/logos/materialui.svg similarity index 100% rename from src/Assets/icons/materialui.svg rename to public/logos/materialui.svg diff --git a/src/Assets/icons/mongodb.svg b/public/logos/mongodb.svg similarity index 100% rename from src/Assets/icons/mongodb.svg rename to public/logos/mongodb.svg diff --git a/src/Assets/icons/msw.svg b/public/logos/msw.svg similarity index 100% rename from src/Assets/icons/msw.svg rename to public/logos/msw.svg diff --git a/src/Assets/icons/nextjs.svg b/public/logos/nextjs.svg similarity index 100% rename from src/Assets/icons/nextjs.svg rename to public/logos/nextjs.svg diff --git a/src/Assets/icons/nodejs.svg b/public/logos/nodejs.svg similarity index 100% rename from src/Assets/icons/nodejs.svg rename to public/logos/nodejs.svg diff --git a/src/Assets/icons/playwright.svg b/public/logos/playwright.svg similarity index 100% rename from src/Assets/icons/playwright.svg rename to public/logos/playwright.svg diff --git a/src/Assets/icons/postman.svg b/public/logos/postman.svg similarity index 100% rename from src/Assets/icons/postman.svg rename to public/logos/postman.svg diff --git a/src/Assets/icons/pwa.svg b/public/logos/pwa.svg similarity index 100% rename from src/Assets/icons/pwa.svg rename to public/logos/pwa.svg diff --git a/src/Assets/icons/python.svg b/public/logos/python.svg similarity index 100% rename from src/Assets/icons/python.svg rename to public/logos/python.svg diff --git a/src/Assets/icons/react.svg b/public/logos/react.svg similarity index 100% rename from src/Assets/icons/react.svg rename to public/logos/react.svg diff --git a/src/Assets/icons/redux.svg b/public/logos/redux.svg similarity index 100% rename from src/Assets/icons/redux.svg rename to public/logos/redux.svg diff --git a/src/Assets/icons/sass.svg b/public/logos/sass.svg similarity index 100% rename from src/Assets/icons/sass.svg rename to public/logos/sass.svg diff --git a/src/Assets/icons/semantic-ui.svg b/public/logos/semanticui.svg similarity index 100% rename from src/Assets/icons/semantic-ui.svg rename to public/logos/semanticui.svg diff --git a/src/Assets/icons/socketio.svg b/public/logos/socketio.svg similarity index 100% rename from src/Assets/icons/socketio.svg rename to public/logos/socketio.svg diff --git a/src/Assets/icons/storybook.svg b/public/logos/storybook.svg similarity index 100% rename from src/Assets/icons/storybook.svg rename to public/logos/storybook.svg diff --git a/src/Assets/icons/styled-components.svg b/public/logos/styledcomponents.svg similarity index 100% rename from src/Assets/icons/styled-components.svg rename to public/logos/styledcomponents.svg diff --git a/src/Assets/icons/typescript.svg b/public/logos/typescript.svg similarity index 100% rename from src/Assets/icons/typescript.svg rename to public/logos/typescript.svg diff --git a/src/Assets/icons/vitejs.svg b/public/logos/vitejs.svg similarity index 100% rename from src/Assets/icons/vitejs.svg rename to public/logos/vitejs.svg diff --git a/src/Assets/icons/vue-js.svg b/public/logos/vuejs.svg similarity index 100% rename from src/Assets/icons/vue-js.svg rename to public/logos/vuejs.svg diff --git a/src/Assets/waving-hand-sign.svg b/public/wavinghandsign.svg similarity index 100% rename from src/Assets/waving-hand-sign.svg rename to public/wavinghandsign.svg diff --git a/src/Common/techIcons.ts b/src/Common/techIcons.ts deleted file mode 100644 index 95a300e..0000000 --- a/src/Common/techIcons.ts +++ /dev/null @@ -1,162 +0,0 @@ -import bootstrapSvg from "@/Assets/icons/bootstrap.svg"; -import cssSvg from "@/Assets/icons/css.svg"; -import cypressSvg from "@/Assets/icons/cypress.svg"; -import d3Svg from "@/Assets/icons/d3.svg"; -import expressSvg from "@/Assets/icons/express.svg"; -import gitSvg from "@/Assets/icons/git.svg"; -import githubSvg from "@/Assets/icons/github.svg"; -import htmlSvg from "@/Assets/icons/html.svg"; -import javascriptSvg from "@/Assets/icons/javascript.svg"; -import jestSvg from "@/Assets/icons/jest.svg"; -import materialuiSvg from "@/Assets/icons/materialui.svg"; -import mongodbSvg from "@/Assets/icons/mongodb.svg"; -import mswSvg from "@/Assets/icons/msw.svg"; -import nextjsSvg from "@/Assets/icons/nextjs.svg"; -import nodejsSvg from "@/Assets/icons/nodejs.svg"; -import playwrightSvg from "@/Assets/icons/playwright.svg"; -import postmanSvg from "@/Assets/icons/postman.svg"; -import pwaSvg from "@/Assets/icons/pwa.svg"; -import pythonSvg from "@/Assets/icons/python.svg"; -import reactSvg from "@/Assets/icons/react.svg"; -import reduxSvg from "@/Assets/icons/redux.svg"; -import sassSvg from "@/Assets/icons/sass.svg"; -import socketioSvg from "@/Assets/icons/socketio.svg"; -import storyblookSvg from "@/Assets/icons/storybook.svg"; -import styledComponentsSvg from "@/Assets/icons/styled-components.svg"; -import typescriptSvg from "@/Assets/icons/typescript.svg"; -import vitejsSvg from "@/Assets/icons/vitejs.svg"; -import vuejsSvg from "@/Assets/icons/vue-js.svg"; - -import amChartsSvg from "@/Assets/icons/amcharts.svg"; -import semanticUISvg from "@/Assets/icons/semantic-ui.svg"; - -export type TTechIcon = Record; - -export const techIcons = { - react: { - label: "React", - logo: reactSvg, - }, - html: { - label: "HTML", - logo: htmlSvg, - }, - pwa: { - label: "PWA", - logo: pwaSvg, - }, - css: { - label: "CSS", - logo: cssSvg, - }, - bootstrap: { - label: "Bootstrap", - logo: bootstrapSvg, - }, - - expressjs: { - label: "Express.js", - logo: expressSvg, - }, - git: { - label: "Git", - logo: gitSvg, - }, - github: { - label: "GitHub", - logo: githubSvg, - }, - materialui: { - label: "Material UI", - logo: materialuiSvg, - }, - mongodb: { - label: "MongoDB", - logo: mongodbSvg, - }, - - socketio: { - label: "Socket.io", - logo: socketioSvg, - }, - typescript: { - label: "TypeScript", - logo: typescriptSvg, - }, - - nodejs: { - label: "Node.js", - logo: nodejsSvg, - }, - javascript: { - label: "JavaScript", - logo: javascriptSvg, - }, - - redux: { - label: "Redux", - logo: reduxSvg, - }, - sass: { - label: "Sass", - logo: sassSvg, - }, - d3: { - label: "D3", - logo: d3Svg, - }, - vue: { - label: "Vue", - logo: vuejsSvg, - }, - styledComponents: { - label: "Styled-Components", - logo: styledComponentsSvg, - }, - postman: { - label: "Postman", - logo: postmanSvg, - }, - cypress: { - label: "Cypress", - logo: cypressSvg, - }, - jest: { - label: "Jest", - logo: jestSvg, - }, - msw: { - label: "MSW", - logo: mswSvg, - }, - nextjs: { - label: "Next.js", - logo: nextjsSvg, - }, - playwright: { - label: "Playwright", - logo: playwrightSvg, - }, - python: { - label: "Python", - logo: pythonSvg, - }, - storybook: { - label: "Storybook", - logo: storyblookSvg, - }, - vitejs: { - label: "Vite", - logo: vitejsSvg, - }, - amcharts: { - label: "AM Charts", - logo: amChartsSvg, - }, - semanticui: { - label: "Semantic UI", - logo: semanticUISvg, - }, -} as const; - -export type TTechIcons = typeof techIcons; diff --git a/src/Common/techlogos.ts b/src/Common/techlogos.ts new file mode 100644 index 0000000..90bb7f0 --- /dev/null +++ b/src/Common/techlogos.ts @@ -0,0 +1,44 @@ +export const techLogoNames = [ + "react", + "html", + "pwa", + "css", + "bootstrap", + "express", + "git", + "github", + "materialui", + "mongodb", + "socketio", + "typescript", + "nodejs", + "javascript", + "redux", + "sass", + "d3", + "vuejs", + "styledcomponents", + "postman", + "cypress", + "jest", + "msw", + "nextjs", + "playwright", + "python", + "storybook", + "vitejs", + "amcharts", + "semanticui", +] as const; + +type TTechLogoName = (typeof techLogoNames)[number]; + +export type TTechLogo = Record; + +export const techLogos = techLogoNames.reduce((acc, logoName) => { + acc[logoName] = { + label: logoName[0].toUpperCase() + logoName.slice(1), + src: `./logos/${logoName}.svg`, + }; + return acc; +}, {} as TTechLogo); diff --git a/src/Components/Particles/index.tsx b/src/Components/Particles/index.tsx index b330375..a23cdbf 100644 --- a/src/Components/Particles/index.tsx +++ b/src/Components/Particles/index.tsx @@ -22,18 +22,16 @@ export const ParticlesContainer = () => { const particles = useMemo(() => { if (init) { return ( -
- -
+ ); } return null; }, [init]); - return particles; + return
{particles}
; }; ParticlesContainer.displayName = "ParticlesContainer"; diff --git a/src/Components/Particles/particlesOptions.ts b/src/Components/Particles/particlesOptions.ts index a2d2d50..f5c46e9 100644 --- a/src/Components/Particles/particlesOptions.ts +++ b/src/Components/Particles/particlesOptions.ts @@ -1,4 +1,4 @@ -import { techIcons } from "@/Common/techIcons"; +import { techLogos } from "@/Common/techlogos"; import type { ISourceOptions } from "@tsparticles/engine"; @@ -13,7 +13,7 @@ const particlesOptions: ISourceOptions = { // no effect zIndex: -1, }, - fpsLimit: 120, + fpsLimit: 60, particles: { number: { density: { @@ -44,6 +44,7 @@ const particlesOptions: ISourceOptions = { value: 18, }, shape: { + // READ-MORE: https://particles.js.org/docs/interfaces/tsParticles_Engine.Options_Interfaces_Particles_Shape_IShape.IShape.html options: { image: [], }, @@ -55,16 +56,11 @@ const particlesOptions: ISourceOptions = { detectRetina: true, }; -const particleOptionsImage = Object.keys(techIcons).map((iconName) => ({ - name: iconName, -})); -const particleOptionsPreload = Object.keys(techIcons).map((iconName) => ({ - src: techIcons[iconName as keyof typeof techIcons].logo, - name: iconName, +const particleOptionsImage = Object.values(techLogos).map(({ src }) => ({ + src, })); // @ts-expect-error-next-line particlesOptions.particles.shape.options.image = particleOptionsImage; -particlesOptions.preload = particleOptionsPreload; export { particlesOptions }; diff --git a/src/Pages/About/AboutData.tsx b/src/Pages/About/AboutData.tsx index 258a036..189e402 100644 --- a/src/Pages/About/AboutData.tsx +++ b/src/Pages/About/AboutData.tsx @@ -1,4 +1,4 @@ -import { techIcons } from "@/Common/techIcons"; +import { techLogos } from "@/Common/techlogos"; import profileImg from "/profilePic.webp"; export const data = { @@ -8,6 +8,6 @@ export const data = { \n My experience as a self taught proficient web developer allows me to come up with smart solutions to technical challenges. \n I’m a coding enthusiast and passionate about learning and implementing web technologies. \n I enjoy travelling and playing sports, I also write articles about web on **[Coders League](https://codersleague.onrender.com/)**.`, - stack: [...Object.values(techIcons)], + stack: [...Object.values(techLogos)], githubUsername: "singhAmandeep007", }; diff --git a/src/Pages/About/index.tsx b/src/Pages/About/index.tsx index ff727be..8270ba0 100644 --- a/src/Pages/About/index.tsx +++ b/src/Pages/About/index.tsx @@ -45,7 +45,7 @@ export const AboutPage = () => { return (
  • {"stack diff --git a/src/Pages/Home/index.tsx b/src/Pages/Home/index.tsx index a43765b..379c7bb 100644 --- a/src/Pages/Home/index.tsx +++ b/src/Pages/Home/index.tsx @@ -5,8 +5,6 @@ import { ExternalLinkWithIcon, SectionContainer } from "@/Components/CommonEleme import { data } from "./HomeData"; import { Handwave, HomeSectionResume, HomeSectionTypography, HomeSectionWrapper } from "./HomeElements"; -import handwavesign from "@/Assets/waving-hand-sign.svg"; - export const HomePage = () => { return ( @@ -17,7 +15,7 @@ export const HomePage = () => { diff --git a/src/Pages/Projects/ProjectsData.ts b/src/Pages/Projects/ProjectsData.ts index 4bc5c8f..e6afd9e 100644 --- a/src/Pages/Projects/ProjectsData.ts +++ b/src/Pages/Projects/ProjectsData.ts @@ -1,6 +1,6 @@ import { v4 as uuidv4 } from "uuid"; -import { techIcons, TTechIcons } from "@/Common/techIcons"; +import { techLogos, TTechLogo } from "@/Common/techlogos"; import { TSlide } from "@/Components/Slider"; @@ -9,7 +9,7 @@ export type TData = { projectName: string; projectDescription: string; projectSlides?: TSlide[]; - projectStack: TTechIcons[keyof TTechIcons][]; + projectStack: TTechLogo[keyof TTechLogo][]; projectLinks: { live?: string; github?: string; @@ -74,13 +74,13 @@ export const data: TData = [ }, ], projectStack: [ - techIcons.react, - techIcons.redux, - techIcons.semanticui, - techIcons.mongodb, - techIcons.nodejs, - techIcons.expressjs, - techIcons.postman, + techLogos.react, + techLogos.redux, + techLogos.semanticui, + techLogos.mongodb, + techLogos.nodejs, + techLogos.express, + techLogos.postman, ], projectLinks: { live: "https://codersleague.onrender.com/", @@ -113,7 +113,7 @@ export const data: TData = [ type: "image", }, ], - projectStack: [techIcons.react, techIcons.styledComponents], + projectStack: [techLogos.react, techLogos.styledcomponents], projectLinks: { live: "https://singhamandeep007.github.io/eight-queens-problem-visualizer/", github: "https://github.com/singhAmandeep007/eight-queens-problem-visualizer", @@ -134,7 +134,7 @@ export const data: TData = [ type: "video", }, ], - projectStack: [techIcons.react, techIcons.typescript, techIcons.vitejs, techIcons.css], + projectStack: [techLogos.react, techLogos.typescript, techLogos.vitejs, techLogos.css], projectLinks: { live: "https://singhamandeep007.github.io/social-media-feed/", github: "https://github.com/singhAmandeep007/social-media-feed", @@ -184,7 +184,7 @@ export const data: TData = [ type: "image", }, ], - projectStack: [techIcons.react, techIcons.styledComponents, techIcons.amcharts, techIcons.semanticui], + projectStack: [techLogos.react, techLogos.styledcomponents, techLogos.amcharts, techLogos.semanticui], projectLinks: { live: "https://singhamandeep007.github.io/covid-tracker-india/", github: "https://github.com/singhAmandeep007/covid-tracker-india", @@ -203,7 +203,7 @@ export const data: TData = [ type: "video", }, ], - projectStack: [techIcons.expressjs, techIcons.nodejs, techIcons.jest], + projectStack: [techLogos.express, techLogos.nodejs, techLogos.jest], projectLinks: { github: "https://github.com/singhAmandeep007/rate-limited-fuzzy-search", }, @@ -238,7 +238,7 @@ export const data: TData = [ type: "image", }, ], - projectStack: [techIcons.react, techIcons.materialui, techIcons.css], + projectStack: [techLogos.react, techLogos.materialui, techLogos.css], projectLinks: { live: "https://singhamandeep007.github.io/covid-tracker-world", github: "https://github.com/singhAmandeep007/covid-tracker-world", @@ -267,7 +267,7 @@ export const data: TData = [ type: "image", }, ], - projectStack: [techIcons.javascript, techIcons.css, techIcons.html], + projectStack: [techLogos.javascript, techLogos.css, techLogos.html], projectLinks: { live: "https://singhamandeep007.github.io/movie-vs-movie", github: "https://github.com/singhAmandeep007/movie-vs-movie", diff --git a/src/Pages/Projects/index.tsx b/src/Pages/Projects/index.tsx index eb99d09..a54abaf 100644 --- a/src/Pages/Projects/index.tsx +++ b/src/Pages/Projects/index.tsx @@ -54,7 +54,7 @@ export const ProjectsPage = () => { {tech.label}