[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73714":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},73714,"portfolio","adrianhajdin\u002Fportfolio","adrianhajdin","Modern & Minimal JS Mastery Portfolio","https:\u002F\u002Fminimal-portfolio-swart.vercel.app",null,"TypeScript",3658,799,14,45,0,9,58.61,false,"main",true,[23,24],"aceternity","nextjs","2026-06-12 04:01:10","\u003Cdiv align=\"center\">\n  \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FFTH6Dn3AyIQ\" target=\"_blank\">\n      \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fadrianhajdin\u002Fportfolio\u002Fassets\u002F151519281\u002Fc6ca3c03-6cb7-4f67-a9b9-a73da5bfa0d8\" alt=\"Project Banner\">\n    \u003C\u002Fa>\n  \u003Cbr \u002F>\n\n  \u003Cdiv>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-Next_JS-black?style=for-the-badge&logoColor=white&logo=nextdotjs&color=000000\" alt=\"nextdotjs\" \u002F>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-Framer-black?style=for-the-badge&logoColor=white&logo=framer&color=0055FF\" alt=\"framer\" \u002F>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-Three_JS-black?style=for-the-badge&logoColor=white&logo=threedotjs&color=000000\" alt=\"three.js\" \u002F>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-Tailwind_CSS-black?style=for-the-badge&logoColor=white&logo=tailwindcss&color=06B6D4\" alt=\"tailwindcss\" \u002F>\n  \u003C\u002Fdiv>\n\n  \u003Ch3 align=\"center\">A Modern Next.js Portfolio\u003C\u002Fh3>\n\n   \u003Cdiv align=\"center\">\n     Build this project step by step with our detailed tutorial on \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@javascriptmastery\u002Fvideos\" target=\"_blank\">\u003Cb>JavaScript Mastery\u003C\u002Fb>\u003C\u002Fa> YouTube. Join the JSM family!\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n## 📋 \u003Ca name=\"table\">Table of Contents\u003C\u002Fa>\n\n1. 🤖 [Introduction](#introduction)\n2. ⚙️ [Tech Stack](#tech-stack)\n3. 🔋 [Features](#features)\n4. 🤸 [Quick Start](#quick-start)\n5. 🕸️ [Code to Copy](#snippets)\n6. 🔗 [Assets](#links)\n7. 🚀 [More](#more)\n\n## 🚨 Tutorial\n\nThis repository contains the code corresponding to an in-depth tutorial available on our YouTube channel, \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@javascriptmastery\u002Fvideos\" target=\"_blank\">\u003Cb>JavaScript Mastery\u003C\u002Fb>\u003C\u002Fa>. \n\nIf you prefer visual learning, this is the perfect resource for you. Follow our tutorial to learn how to build projects like these step-by-step in a beginner-friendly manner!\n\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FFTH6Dn3AyIQ\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fsujatagunale\u002FEasyRead\u002Fassets\u002F151519281\u002F1736fca5-a031-4854-8c09-bc110e3bc16d\" \u002F>\u003C\u002Fa>\n\n## \u003Ca name=\"introduction\">🤖 Introduction\u003C\u002Fa>\n\nBuilt with Next.js for handling the user interface, Three.js for rendering 3D elements, Framer motion for beautiful animations, and styled with TailwindCSS, this portfolio demonstrates the developer's skills in a unique manner that creates a lasting impact.\n\nIf you're getting started and need assistance or face any bugs, join our active Discord community with over **34k+** members. It's a place where people help each other out.\n\n\u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002Fn6EdbFJ\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fsujatagunale\u002FEasyRead\u002Fassets\u002F151519281\u002F618f4872-1e10-42da-8213-1d69e486d02e\" \u002F>\u003C\u002Fa>\n\n## \u003Ca name=\"tech-stack\">⚙️ Tech Stack\u003C\u002Fa>\n\n- Next.js\n- Three.js\n- Framer Motion\n- Tailwind CSS\n\n## \u003Ca name=\"features\">🔋 Features\u003C\u002Fa>\n\n👉 **Hero**: Captivating introduction featuring a spotlight effect and dynamic background.\n\n👉 **Bento Grid**: Modern layout presenting personal information using cutting-edge CSS design techniques.\n\n👉 **3D Elements**:  Interactive 3D design elements, such as a GitHub-style globe and card hover effects, adding depth and engagement.\n\n👉 **Testimonials**: Dynamic testimonials area with scrolling or animated content for enhanced engagement.\n\n👉 **Work Experience**: Prominent display of professional background for emphasis and credibility.\n\n👉 **Canvas Effect**: Innovative use of HTML5 canvas to create visually striking effects in the \"approaches\" section.\n\n👉 **Responsiveness**: Seamless adaptability across all devices, ensuring optimal viewing experience for every user.\n\nand many more, including code architecture and reusability \n\n## \u003Ca name=\"quick-start\">🤸 Quick Start\u003C\u002Fa>\n\nFollow these steps to set up the project locally on your machine.\n\n**Prerequisites**\n\nMake sure you have the following installed on your machine:\n\n- [Git](https:\u002F\u002Fgit-scm.com\u002F)\n- [Node.js](https:\u002F\u002Fnodejs.org\u002Fen)\n- [npm](https:\u002F\u002Fwww.npmjs.com\u002F) (Node Package Manager)\n\n**Cloning the Repository**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fadrianhajdin\u002Fportfolio.git\ncd portfolio\n```\n\n**Installation**\n\nInstall the project dependencies using npm:\n\n```bash\nnpm install\n```\n\n**Running the Project**\n\n```bash\nnpm run dev\n```\n\nOpen [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000) in your browser to view the project.\n\n## \u003Ca name=\"snippets\">🕸️ Snippets\u003C\u002Fa>\n\n\u003Cdetails>\n\u003Csummary>\u003Ccode>data\u002Findex.ts\u003C\u002Fcode>\u003C\u002Fsummary>\n\n```typescript\nexport const navItems = [\n  { name: \"About\", link: \"#about\" },\n  { name: \"Projects\", link: \"#projects\" },\n  { name: \"Testimonials\", link: \"#testimonials\" },\n  { name: \"Contact\", link: \"#contact\" },\n];\n\nexport const gridItems = [\n  {\n    id: 1,\n    title: \"I prioritize client collaboration, fostering open communication \",\n    description: \"\",\n    className: \"lg:col-span-3 md:col-span-6 md:row-span-4 lg:min-h-[60vh]\",\n    imgClassName: \"w-full h-full\",\n    titleClassName: \"justify-end\",\n    img: \"\u002Fb1.svg\",\n    spareImg: \"\",\n  },\n  {\n    id: 2,\n    title: \"I'm very flexible with time zone communications\",\n    description: \"\",\n    className: \"lg:col-span-2 md:col-span-3 md:row-span-2\",\n    imgClassName: \"\",\n    titleClassName: \"justify-start\",\n    img: \"\",\n    spareImg: \"\",\n  },\n  {\n    id: 3,\n    title: \"My tech stack\",\n    description: \"I constantly try to improve\",\n    className: \"lg:col-span-2 md:col-span-3 md:row-span-2\",\n    imgClassName: \"\",\n    titleClassName: \"justify-center\",\n    img: \"\",\n    spareImg: \"\",\n  },\n  {\n    id: 4,\n    title: \"Tech enthusiast with a passion for development.\",\n    description: \"\",\n    className: \"lg:col-span-2 md:col-span-3 md:row-span-1\",\n    imgClassName: \"\",\n    titleClassName: \"justify-start\",\n    img: \"\u002Fgrid.svg\",\n    spareImg: \"\u002Fb4.svg\",\n  },\n\n  {\n    id: 5,\n    title: \"Currently building a JS Animation library\",\n    description: \"The Inside Scoop\",\n    className: \"md:col-span-3 md:row-span-2\",\n    imgClassName: \"absolute right-0 bottom-0 md:w-96 w-60\",\n    titleClassName: \"justify-center md:justify-start lg:justify-center\",\n    img: \"\u002Fb5.svg\",\n    spareImg: \"\u002Fgrid.svg\",\n  },\n  {\n    id: 6,\n    title: \"Do you want to start a project together?\",\n    description: \"\",\n    className: \"lg:col-span-2 md:col-span-3 md:row-span-1\",\n    imgClassName: \"\",\n    titleClassName: \"justify-center md:max-w-full max-w-60 text-center\",\n    img: \"\",\n    spareImg: \"\",\n  },\n];\n\nexport const projects = [\n  {\n    id: 1,\n    title: \"3D Solar System Planets to Explore\",\n    des: \"Explore the wonders of our solar system with this captivating 3D simulation of the planets using Three.js.\",\n    img: \"\u002Fp1.svg\",\n    iconLists: [\"\u002Fre.svg\", \"\u002Ftail.svg\", \"\u002Fts.svg\", \"\u002Fthree.svg\", \"\u002Ffm.svg\"],\n    link: \"https:\u002F\u002Fgithub.com\u002Fadrianhajdin?tab=repositories\",\n  },\n  {\n    id: 2,\n    title: \"Yoom - Video Conferencing App\",\n    des: \"Simplify your video conferencing experience with Yoom. Seamlessly connect with colleagues and friends.\",\n    img: \"\u002Fp2.svg\",\n    iconLists: [\"\u002Fnext.svg\", \"\u002Ftail.svg\", \"\u002Fts.svg\", \"\u002Fstream.svg\", \"\u002Fc.svg\"],\n    link: \"https:\u002F\u002Fgithub.com\u002Fadrianhajdin\u002Fzoom-clone\",\n  },\n  {\n    id: 3,\n    title: \"AI Image SaaS - Canva Application\",\n    des: \"A REAL Software-as-a-Service app with AI features and a payments and credits system using the latest tech stack.\",\n    img: \"\u002Fp3.svg\",\n    iconLists: [\"\u002Fre.svg\", \"\u002Ftail.svg\", \"\u002Fts.svg\", \"\u002Fthree.svg\", \"\u002Fc.svg\"],\n    link: \"https:\u002F\u002Fgithub.com\u002Fadrianhajdin\u002Fai_saas_app\",\n  },\n  {\n    id: 4,\n    title: \"Animated Apple Iphone 3D Website\",\n    des: \"Recreated the Apple iPhone 15 Pro website, combining GSAP animations and Three.js 3D effects..\",\n    img: \"\u002Fp4.svg\",\n    iconLists: [\"\u002Fnext.svg\", \"\u002Ftail.svg\", \"\u002Fts.svg\", \"\u002Fthree.svg\", \"\u002Fgsap.svg\"],\n    link: \"https:\u002F\u002Fgithub.com\u002Fadrianhajdin\u002Fiphone\",\n  },\n];\n\nexport const testimonials = [\n  {\n    quote:\n      \"Collaborating with Adrian was an absolute pleasure. His professionalism, promptness, and dedication to delivering exceptional results were evident throughout our project. Adrian's enthusiasm for every facet of development truly stands out. If you're seeking to elevate your website and elevate your brand, Adrian is the ideal partner.\",\n    name: \"Michael Johnson\",\n    title: \"Director of AlphaStream Technologies\",\n  },\n  {\n    quote:\n      \"Collaborating with Adrian was an absolute pleasure. His professionalism, promptness, and dedication to delivering exceptional results were evident throughout our project. Adrian's enthusiasm for every facet of development truly stands out. If you're seeking to elevate your website and elevate your brand, Adrian is the ideal partner.\",\n    name: \"Michael Johnson\",\n    title: \"Director of AlphaStream Technologies\",\n  },\n  {\n    quote:\n      \"Collaborating with Adrian was an absolute pleasure. His professionalism, promptness, and dedication to delivering exceptional results were evident throughout our project. Adrian's enthusiasm for every facet of development truly stands out. If you're seeking to elevate your website and elevate your brand, Adrian is the ideal partner.\",\n    name: \"Michael Johnson\",\n    title: \"Director of AlphaStream Technologies\",\n  },\n  {\n    quote:\n      \"Collaborating with Adrian was an absolute pleasure. His professionalism, promptness, and dedication to delivering exceptional results were evident throughout our project. Adrian's enthusiasm for every facet of development truly stands out. If you're seeking to elevate your website and elevate your brand, Adrian is the ideal partner.\",\n    name: \"Michael Johnson\",\n    title: \"Director of AlphaStream Technologies\",\n  },\n  {\n    quote:\n      \"Collaborating with Adrian was an absolute pleasure. His professionalism, promptness, and dedication to delivering exceptional results were evident throughout our project. Adrian's enthusiasm for every facet of development truly stands out. If you're seeking to elevate your website and elevate your brand, Adrian is the ideal partner.\",\n    name: \"Michael Johnson\",\n    title: \"Director of AlphaStream Technologies\",\n  },\n];\n\nexport const companies = [\n  {\n    id: 1,\n    name: \"cloudinary\",\n    img: \"\u002Fcloud.svg\",\n    nameImg: \"\u002FcloudName.svg\",\n  },\n  {\n    id: 2,\n    name: \"appwrite\",\n    img: \"\u002Fapp.svg\",\n    nameImg: \"\u002FappName.svg\",\n  },\n  {\n    id: 3,\n    name: \"HOSTINGER\",\n    img: \"\u002Fhost.svg\",\n    nameImg: \"\u002FhostName.svg\",\n  },\n  {\n    id: 4,\n    name: \"stream\",\n    img: \"\u002Fs.svg\",\n    nameImg: \"\u002FstreamName.svg\",\n  },\n  {\n    id: 5,\n    name: \"docker.\",\n    img: \"\u002Fdock.svg\",\n    nameImg: \"\u002FdockerName.svg\",\n  },\n];\n\nexport const workExperience = [\n  {\n    id: 1,\n    title: \"Frontend Engineer Intern\",\n    desc: \"Assisted in the development of a web-based platform using React.js, enhancing interactivity.\",\n    className: \"md:col-span-2\",\n    thumbnail: \"\u002Fexp1.svg\",\n  },\n  {\n    id: 2,\n    title: \"Mobile App Dev - JSM Tech\",\n    desc: \"Designed and developed mobile app for both iOS & Android platforms using React Native.\",\n    className: \"md:col-span-2\", \u002F\u002F change to md:col-span-2\n    thumbnail: \"\u002Fexp2.svg\",\n  },\n  {\n    id: 3,\n    title: \"Freelance App Dev Project\",\n    desc: \"Led the dev of a mobile app for a client, from initial concept to deployment on app stores.\",\n    className: \"md:col-span-2\", \u002F\u002F change to md:col-span-2\n    thumbnail: \"\u002Fexp3.svg\",\n  },\n  {\n    id: 4,\n    title: \"Lead Frontend Developer\",\n    desc: \"Developed and maintained user-facing features using modern frontend technologies.\",\n    className: \"md:col-span-2\",\n    thumbnail: \"\u002Fexp4.svg\",\n  },\n];\n\nexport const socialMedia = [\n  {\n    id: 1,\n    img: \"\u002Fgit.svg\",\n  },\n  {\n    id: 2,\n    img: \"\u002Ftwit.svg\",\n  },\n  {\n    id: 3,\n    img: \"\u002Flink.svg\",\n  },\n];\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Ccode>tailwind.config.ts\u003C\u002Fcode>\u003C\u002Fsummary>\n\n```ts\nimport type { Config } from \"tailwindcss\";\n\nconst svgToDataUri = require(\"mini-svg-data-uri\");\n\nconst colors = require(\"tailwindcss\u002Fcolors\");\nconst {\n  default: flattenColorPalette,\n} = require(\"tailwindcss\u002Flib\u002Futil\u002FflattenColorPalette\");\n\nconst config = {\n  darkMode: [\"class\"],\n  content: [\n    \".\u002Fpages\u002F**\u002F*.{ts,tsx}\",\n    \".\u002Fcomponents\u002F**\u002F*.{ts,tsx}\",\n    \".\u002Fapp\u002F**\u002F*.{ts,tsx}\",\n    \".\u002Fsrc\u002F**\u002F*.{ts,tsx}\",\n    \".\u002Fdata\u002F**\u002F*.{ts,tsx}\",\n  ],\n  prefix: \"\",\n  theme: {\n    container: {\n      center: true,\n      padding: \"2rem\",\n      screens: {\n        \"2xl\": \"1400px\",\n      },\n    },\n    extend: {\n      colors: {\n        black: {\n          DEFAULT: \"#000\",\n          100: \"#000319\",\n          200: \"rgba(17, 25, 40, 0.75)\",\n          300: \"rgba(255, 255, 255, 0.125)\",\n        },\n        white: {\n          DEFAULT: \"#FFF\",\n          100: \"#BEC1DD\",\n          200: \"#C1C2D3\",\n        },\n        blue: {\n          \"100\": \"#E4ECFF\",\n        },\n        purple: \"#CBACF9\",\n        border: \"hsl(var(--border))\",\n        input: \"hsl(var(--input))\",\n        ring: \"hsl(var(--ring))\",\n        background: \"hsl(var(--background))\",\n        foreground: \"hsl(var(--foreground))\",\n        primary: {\n          DEFAULT: \"hsl(var(--primary))\",\n          foreground: \"hsl(var(--primary-foreground))\",\n        },\n        secondary: {\n          DEFAULT: \"hsl(var(--secondary))\",\n          foreground: \"hsl(var(--secondary-foreground))\",\n        },\n        destructive: {\n          DEFAULT: \"hsl(var(--destructive))\",\n          foreground: \"hsl(var(--destructive-foreground))\",\n        },\n        muted: {\n          DEFAULT: \"hsl(var(--muted))\",\n          foreground: \"hsl(var(--muted-foreground))\",\n        },\n        accent: {\n          DEFAULT: \"hsl(var(--accent))\",\n          foreground: \"hsl(var(--accent-foreground))\",\n        },\n        popover: {\n          DEFAULT: \"hsl(var(--popover))\",\n          foreground: \"hsl(var(--popover-foreground))\",\n        },\n        card: {\n          DEFAULT: \"hsl(var(--card))\",\n          foreground: \"hsl(var(--card-foreground))\",\n        },\n      },\n      borderRadius: {\n        lg: \"var(--radius)\",\n        md: \"calc(var(--radius) - 2px)\",\n        sm: \"calc(var(--radius) - 4px)\",\n      },\n      keyframes: {\n        \"accordion-down\": {\n          from: { height: \"0\" },\n          to: { height: \"var(--radix-accordion-content-height)\" },\n        },\n        \"accordion-up\": {\n          from: { height: \"var(--radix-accordion-content-height)\" },\n          to: { height: \"0\" },\n        },\n        spotlight: {\n          \"0%\": {\n            opacity: \"0\",\n            transform: \"translate(-72%, -62%) scale(0.5)\",\n          },\n          \"100%\": {\n            opacity: \"1\",\n            transform: \"translate(-50%,-40%) scale(1)\",\n          },\n        },\n        shimmer: {\n          from: {\n            backgroundPosition: \"0 0\",\n          },\n          to: {\n            backgroundPosition: \"-200% 0\",\n          },\n        },\n        moveHorizontal: {\n          \"0%\": {\n            transform: \"translateX(-50%) translateY(-10%)\",\n          },\n          \"50%\": {\n            transform: \"translateX(50%) translateY(10%)\",\n          },\n          \"100%\": {\n            transform: \"translateX(-50%) translateY(-10%)\",\n          },\n        },\n        moveInCircle: {\n          \"0%\": {\n            transform: \"rotate(0deg)\",\n          },\n          \"50%\": {\n            transform: \"rotate(180deg)\",\n          },\n          \"100%\": {\n            transform: \"rotate(360deg)\",\n          },\n        },\n        moveVertical: {\n          \"0%\": {\n            transform: \"translateY(-50%)\",\n          },\n          \"50%\": {\n            transform: \"translateY(50%)\",\n          },\n          \"100%\": {\n            transform: \"translateY(-50%)\",\n          },\n        },\n        scroll: {\n          to: {\n            transform: \"translate(calc(-50% - 0.5rem))\",\n          },\n        },\n      },\n      animation: {\n        \"accordion-down\": \"accordion-down 0.2s ease-out\",\n        \"accordion-up\": \"accordion-up 0.2s ease-out\",\n        spotlight: \"spotlight 2s ease .75s 1 forwards\",\n        shimmer: \"shimmer 2s linear infinite\",\n        first: \"moveVertical 30s ease infinite\",\n        second: \"moveInCircle 20s reverse infinite\",\n        third: \"moveInCircle 40s linear infinite\",\n        fourth: \"moveHorizontal 40s ease infinite\",\n        fifth: \"moveInCircle 20s ease infinite\",\n        scroll:\n          \"scroll var(--animation-duration, 40s) var(--animation-direction, forwards) linear infinite\",\n      },\n    },\n  },\n  plugins: [\n    require(\"tailwindcss-animate\"),\n    addVariablesForColors,\n    function ({ matchUtilities, theme }: any) {\n      matchUtilities(\n        {\n          \"bg-grid\": (value: any) => ({\n            backgroundImage: `url(\"${svgToDataUri(\n              `\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 32 32\" width=\"100\" height=\"100\" fill=\"none\" stroke=\"${value}\">\u003Cpath d=\"M0 .5H31.5V32\"\u002F>\u003C\u002Fsvg>`\n            )}\")`,\n          }),\n          \"bg-grid-small\": (value: any) => ({\n            backgroundImage: `url(\"${svgToDataUri(\n              `\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 32 32\" width=\"8\" height=\"8\" fill=\"none\" stroke=\"${value}\">\u003Cpath d=\"M0 .5H31.5V32\"\u002F>\u003C\u002Fsvg>`\n            )}\")`,\n          }),\n          \"bg-dot\": (value: any) => ({\n            backgroundImage: `url(\"${svgToDataUri(\n              `\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 32 32\" width=\"16\" height=\"16\" fill=\"none\">\u003Ccircle fill=\"${value}\" id=\"pattern-circle\" cx=\"10\" cy=\"10\" r=\"1.6257413380501518\">\u003C\u002Fcircle>\u003C\u002Fsvg>`\n            )}\")`,\n          }),\n        },\n        { values: flattenColorPalette(theme(\"backgroundColor\")), type: \"color\" }\n      );\n    },\n  ],\n} satisfies Config;\n\nfunction addVariablesForColors({ addBase, theme }: any) {\n  let allColors = flattenColorPalette(theme(\"colors\"));\n  let newVars = Object.fromEntries(\n    Object.entries(allColors).map(([key, val]) => [`--${key}`, val])\n  );\n\n  addBase({\n    \":root\": newVars,\n  });\n}\n\nexport default config;\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Ccode>globals.css\u003C\u002Fcode>\u003C\u002Fsummary>\n\n```css\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n  :root {\n    --background: 0 0% 100%;\n    --foreground: 240 10% 3.9%;\n\n    --card: 0 0% 100%;\n    --card-foreground: 240 10% 3.9%;\n\n    --popover: 0 0% 100%;\n    --popover-foreground: 240 10% 3.9%;\n\n    --primary: 240 5.9% 10%;\n    --primary-foreground: 0 0% 98%;\n\n    --secondary: 240 4.8% 95.9%;\n    --secondary-foreground: 240 5.9% 10%;\n\n    --muted: 240 4.8% 95.9%;\n    --muted-foreground: 240 3.8% 46.1%;\n\n    --accent: 240 4.8% 95.9%;\n    --accent-foreground: 240 5.9% 10%;\n\n    --destructive: 0 84.2% 60.2%;\n    --destructive-foreground: 0 0% 98%;\n\n    --border: 240 5.9% 90%;\n    --input: 240 5.9% 90%;\n    --ring: 240 10% 3.9%;\n\n    --radius: 0.5rem;\n  }\n\n  .dark {\n    --background: 240 10% 3.9%;\n    --foreground: 0 0% 98%;\n\n    --card: 240 10% 3.9%;\n    --card-foreground: 0 0% 98%;\n\n    --popover: 240 10% 3.9%;\n    --popover-foreground: 0 0% 98%;\n\n    --primary: 0 0% 98%;\n    --primary-foreground: 240 5.9% 10%;\n\n    --secondary: 240 3.7% 15.9%;\n    --secondary-foreground: 0 0% 98%;\n\n    --muted: 240 3.7% 15.9%;\n    --muted-foreground: 240 5% 64.9%;\n\n    --accent: 240 3.7% 15.9%;\n    --accent-foreground: 0 0% 98%;\n\n    --destructive: 0 62.8% 30.6%;\n    --destructive-foreground: 0 0% 98%;\n\n    --border: 240 3.7% 15.9%;\n    --input: 240 3.7% 15.9%;\n    --ring: 240 4.9% 83.9%;\n  }\n}\n\n@layer base {\n  * {\n    @apply border-border !scroll-smooth;\n  }\n  body {\n    @apply bg-background text-foreground;\n  }\n  button {\n    @apply active:outline-none;\n  }\n}\n\n@layer utilities {\n  .heading {\n    @apply font-bold text-4xl md:text-5xl text-center;\n  }\n\n  .black-gradient {\n    background: linear-gradient(90deg, #161a31 0%, #06091f 100%);\n  }\n}\n```\n\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary>\u003Ccode>Linear Gradient\u003C\u002Fcode>\u003C\u002Fsummary>\n\n```js\nstyle={{\n        \u002F\u002F   add these two\n        \u002F\u002F   you can generate the color from here https:\u002F\u002Fcssgradient.io\u002F\n        background: \"rgb(4,7,29)\",\n        backgroundColor:\n          \"linear-gradient(90deg, rgba(4,7,29,1) 0%, rgba(12,14,35,1) 100%)\",\n      }}\n```\n\u003C\u002Fdetails>\n\n\n## \u003Ca name=\"links\">🔗 Assets\u003C\u002Fa>\n\nAssets used in the project can be found [here](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ZmtiMilUYTp1wkiXWMFX6AUk-msE981-\u002Fview?usp=sharing)\n\n## \u003Ca name=\"more\">🚀 More\u003C\u002Fa>\n**Advance your skills with Next.js Pro Course**\n\nEnjoyed creating this project? Dive deeper into our PRO courses for a richer learning experience. They're packed with detailed explanations, cool features, and exercises to boost your skills. Give it a go!\n\n\u003Ca href=\"https:\u002F\u002Fwww.jsmastery.pro\u002Fultimate-next-course\" target=\"_blank\">\n\u003Cimg src=\"https:\u002F\u002Fi.ibb.co\u002F804sPK6\u002FImage-720.png\" alt=\"Project Banner\">\n\u003C\u002Fa>\n","这是一个现代化且极简风格的个人作品集项目，使用TypeScript开发。项目基于Next.js构建用户界面，利用Three.js渲染3D元素，Framer Motion实现流畅动画，并采用Tailwind CSS进行样式设计，从而展示开发者技能的独特方式。核心功能包括引人注目的英雄区介绍、具有现代感的个人信息网格布局以及互动性强的3D设计元素。该项目非常适合希望以创新视觉效果展现自己项目的前端开发者或设计师使用。此外，它还提供了详细的YouTube教程，适合初学者跟随学习。",2,"2026-06-11 03:47:04","high_star"]