-
-
Save adrianhajdin/7bc0603ee0b1bd2872b80a62c24b5e5f to your computer and use it in GitHub Desktop.
| @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&family=Work+Sans:wght@100;200;300;400;500;600;700;800;900&display=swap"); | |
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| :root { | |
| --blue-rgb: 237 245 255; | |
| --green-rgb: 125 161 35; | |
| } | |
| body { | |
| font-family: "Work Sans", sans-serif; | |
| } | |
| body:has(.card[data-color="blue"]:hover) { | |
| background-color: rgb(var(--blue-rgb) / 25%); | |
| } | |
| body:has(.card[data-color="green"]:hover) { | |
| background-color: rgb(var(--green-rgb) / 25%); | |
| } | |
| @layer utilities { | |
| .max-container { | |
| @apply max-w-5xl mx-auto sm:p-16 pb-12 !pt-[126px] px-8 min-h-[calc(100vh-80px)]; | |
| } | |
| .head-text { | |
| @apply sm:text-5xl text-3xl font-semibold sm:leading-snug font-poppins; | |
| } | |
| .subhead-text { | |
| @apply font-semibold sm:text-3xl text-xl relative font-poppins; | |
| } | |
| .blue-gradient_text { | |
| @apply bg-gradient-to-r from-[#00c6ff] to-[#0072ff] bg-clip-text text-transparent; | |
| } | |
| .input { | |
| @apply bg-white border border-gray-200 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 mt-2.5 font-normal shadow-card; | |
| } | |
| .textarea { | |
| @apply block p-2.5 w-full text-sm text-gray-900 bg-white rounded-lg border border-gray-200 focus:ring-blue-500 focus:border-blue-500 mt-2.5 font-normal shadow-card; | |
| } | |
| .btn { | |
| @apply text-white bg-gradient-to-r from-[#00c6ff] to-[#0072ff] focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm w-full sm:w-auto px-5 py-2.5 text-center; | |
| } | |
| .header { | |
| @apply flex justify-between items-center sm:px-16 px-8 py-4 max-w-5xl mx-auto absolute top-0 bg-transparent z-10 right-0 left-0; | |
| } | |
| .footer { | |
| @apply max-w-5xl mx-auto sm:px-16 pb-6 px-8 flex flex-col gap-7; | |
| } | |
| .footer-container { | |
| @apply flex flex-wrap gap-7 items-center justify-between; | |
| } | |
| .info-box { | |
| @apply mx-5 relative flex text-white flex-col gap-3 max-w-2xl neo-brutalism-blue pt-4 pb-12 px-8; | |
| } | |
| .neo-btn { | |
| @apply py-3 px-6 rounded-lg text-blue-500 text-center font-semibold sm:w-1/2 w-[90%] -bottom-5 absolute mx-auto right-0 left-0 flex justify-center items-center gap-3; | |
| } | |
| .cta { | |
| @apply w-full flex items-center md:flex-row flex-col sm:mt-16 mt-8 gap-7; | |
| } | |
| .cta-text { | |
| @apply text-black-500 font-extrabold flex-1 text-3xl max-md:text-center; | |
| } | |
| } | |
| .glassmorphism { | |
| background: rgba(8, 116, 239, 0.07); | |
| backdrop-filter: blur(10px); | |
| -webkit-backdrop-filter: blur(10px); | |
| border-radius: 10px; | |
| border: 1px solid rgba(255, 255, 255, 0.18); | |
| } | |
| .logo { | |
| border-radius: 8.889px; | |
| background: #fff; | |
| box-shadow: 0px 10px 35px -4px rgba(67, 83, 255, 0.15), | |
| 0px 1.5px 4px -1px rgba(67, 83, 255, 0.2); | |
| } | |
| .block-container { | |
| position: relative; | |
| transition: 250ms; | |
| perspective: 500px; | |
| } | |
| .block-container .btn-back { | |
| position: absolute; | |
| inset: 0; | |
| z-index: -1; | |
| width: inherit; | |
| height: inherit; | |
| transition: 250ms; | |
| transform-style: preserve-3d; | |
| transform-origin: bottom right; | |
| transform: rotateZ(15deg); | |
| will-change: transform; | |
| box-shadow: 16px 0 40px #e4e4e4; | |
| } | |
| .block-container .btn-back-red { | |
| background: linear-gradient(135deg, #ff4b1f -20%, #ff9068 120%); | |
| } | |
| .block-container .btn-back-green { | |
| background: linear-gradient(135deg, #adfda2 -20%, #11d3f3 120%); | |
| } | |
| .block-container .btn-back-yellow { | |
| background: linear-gradient(135deg, #f7971e -20%, #ffd200 120%); | |
| } | |
| .block-container .btn-back-blue { | |
| background: linear-gradient(135deg, #0061ff -20%, #60efff 120%); | |
| } | |
| .block-container .btn-back-orange { | |
| background: linear-gradient(135deg, #ff0f7b -20%, #f89b29 120%); | |
| } | |
| .block-container .btn-back-pink { | |
| background: linear-gradient(135deg, #e81cff -20%, #40c9ff 120%); | |
| } | |
| .block-container .btn-back-black { | |
| background: linear-gradient(135deg, #0a1647 -20%, #e4e7e4 120%); | |
| } | |
| .block-container .btn-front { | |
| position: absolute; | |
| inset: 0; | |
| z-index: 1; | |
| width: inherit; | |
| height: inherit; | |
| background-color: #ffffff33; | |
| -webkit-backdrop-filter: blur(20px); | |
| backdrop-filter: blur(20px); | |
| transition: 250ms; | |
| transform-style: preserve-3d; | |
| transform-origin: top left; | |
| overflow: hidden; | |
| } | |
| .block-container:hover > .btn-back { | |
| transform: translateZ(20px) rotateZ(15deg) rotateX(-20deg) rotateY(-20deg); | |
| } | |
| .block-container:hover > .btn-front { | |
| transform: translateZ(80px) translateY(-5px) rotateX(15deg) rotateY(15deg); | |
| } | |
| /* Neo Brutalism */ | |
| .neo-brutalism-blue { | |
| background: #2b77e7; | |
| position: relative; | |
| border-radius: 10px; | |
| border: #2b77e7; | |
| box-shadow: 0.6vmin 0.6vmin #336cc1, 1vmin 1vmin #0092db, 1vmin 1vmin #0092db, | |
| 0.65vmin 1vmin #0092db, 1vmin 0.65vmin #0092db; | |
| } | |
| .neo-brutalism-white { | |
| background: #fff; | |
| border: #fff; | |
| box-shadow: 0.6vmin 0.6vmin #fff, 1vmin 1vmin #d2e4ff, 1vmin 1vmin #d2e4ff, | |
| 0.65vmin 1vmin #d2e4ff, 1vmin 0.65vmin #d2e4ff; | |
| } |
| import { meta, shopify, starbucks, tesla } from "../assets/images"; | |
| import { | |
| car, | |
| contact, | |
| css, | |
| estate, | |
| express, | |
| git, | |
| github, | |
| html, | |
| javascript, | |
| linkedin, | |
| mongodb, | |
| motion, | |
| mui, | |
| nextjs, | |
| nodejs, | |
| pricewise, | |
| react, | |
| redux, | |
| sass, | |
| snapgram, | |
| summiz, | |
| tailwindcss, | |
| threads, | |
| typescript | |
| } from "../assets/icons"; | |
| export const skills = [ | |
| { | |
| imageUrl: css, | |
| name: "CSS", | |
| type: "Frontend", | |
| }, | |
| { | |
| imageUrl: express, | |
| name: "Express", | |
| type: "Backend", | |
| }, | |
| { | |
| imageUrl: git, | |
| name: "Git", | |
| type: "Version Control", | |
| }, | |
| { | |
| imageUrl: github, | |
| name: "GitHub", | |
| type: "Version Control", | |
| }, | |
| { | |
| imageUrl: html, | |
| name: "HTML", | |
| type: "Frontend", | |
| }, | |
| { | |
| imageUrl: javascript, | |
| name: "JavaScript", | |
| type: "Frontend", | |
| }, | |
| { | |
| imageUrl: mongodb, | |
| name: "MongoDB", | |
| type: "Database", | |
| }, | |
| { | |
| imageUrl: motion, | |
| name: "Motion", | |
| type: "Animation", | |
| }, | |
| { | |
| imageUrl: mui, | |
| name: "Material-UI", | |
| type: "Frontend", | |
| }, | |
| { | |
| imageUrl: nextjs, | |
| name: "Next.js", | |
| type: "Frontend", | |
| }, | |
| { | |
| imageUrl: nodejs, | |
| name: "Node.js", | |
| type: "Backend", | |
| }, | |
| { | |
| imageUrl: react, | |
| name: "React", | |
| type: "Frontend", | |
| }, | |
| { | |
| imageUrl: redux, | |
| name: "Redux", | |
| type: "State Management", | |
| }, | |
| { | |
| imageUrl: sass, | |
| name: "Sass", | |
| type: "Frontend", | |
| }, | |
| { | |
| imageUrl: tailwindcss, | |
| name: "Tailwind CSS", | |
| type: "Frontend", | |
| }, | |
| { | |
| imageUrl: typescript, | |
| name: "TypeScript", | |
| type: "Frontend", | |
| } | |
| ]; | |
| export const experiences = [ | |
| { | |
| title: "React.js Developer", | |
| company_name: "Starbucks", | |
| icon: starbucks, | |
| iconBg: "#accbe1", | |
| date: "March 2020 - April 2021", | |
| points: [ | |
| "Developing and maintaining web applications using React.js and other related technologies.", | |
| "Collaborating with cross-functional teams including designers, product managers, and other developers to create high-quality products.", | |
| "Implementing responsive design and ensuring cross-browser compatibility.", | |
| "Participating in code reviews and providing constructive feedback to other developers.", | |
| ], | |
| }, | |
| { | |
| title: "React Native Developer", | |
| company_name: "Tesla", | |
| icon: tesla, | |
| iconBg: "#fbc3bc", | |
| date: "Jan 2021 - Feb 2022", | |
| points: [ | |
| "Developing and maintaining web applications using React.js and other related technologies.", | |
| "Collaborating with cross-functional teams including designers, product managers, and other developers to create high-quality products.", | |
| "Implementing responsive design and ensuring cross-browser compatibility.", | |
| "Participating in code reviews and providing constructive feedback to other developers.", | |
| ], | |
| }, | |
| { | |
| title: "Web Developer", | |
| company_name: "Shopify", | |
| icon: shopify, | |
| iconBg: "#b7e4c7", | |
| date: "Jan 2022 - Jan 2023", | |
| points: [ | |
| "Developing and maintaining web applications using React.js and other related technologies.", | |
| "Collaborating with cross-functional teams including designers, product managers, and other developers to create high-quality products.", | |
| "Implementing responsive design and ensuring cross-browser compatibility.", | |
| "Participating in code reviews and providing constructive feedback to other developers.", | |
| ], | |
| }, | |
| { | |
| title: "Full stack Developer", | |
| company_name: "Meta", | |
| icon: meta, | |
| iconBg: "#a2d2ff", | |
| date: "Jan 2023 - Present", | |
| points: [ | |
| "Developing and maintaining web applications using React.js and other related technologies.", | |
| "Collaborating with cross-functional teams including designers, product managers, and other developers to create high-quality products.", | |
| "Implementing responsive design and ensuring cross-browser compatibility.", | |
| "Participating in code reviews and providing constructive feedback to other developers.", | |
| ], | |
| }, | |
| ]; | |
| export const socialLinks = [ | |
| { | |
| name: 'Contact', | |
| iconUrl: contact, | |
| link: '/contact', | |
| }, | |
| { | |
| name: 'GitHub', | |
| iconUrl: github, | |
| link: 'https://github.com/YourGitHubUsername', | |
| }, | |
| { | |
| name: 'LinkedIn', | |
| iconUrl: linkedin, | |
| link: 'https://www.linkedin.com/in/YourLinkedInUsername', | |
| } | |
| ]; | |
| export const projects = [ | |
| { | |
| iconUrl: pricewise, | |
| theme: 'btn-back-red', | |
| name: 'Amazon Price Tracker', | |
| description: 'Developed a web application that tracks and notifies users of price changes for products on Amazon, helping users find the best deals.', | |
| link: 'https://github.com/adrianhajdin/pricewise', | |
| }, | |
| { | |
| iconUrl: threads, | |
| theme: 'btn-back-green', | |
| name: 'Full Stack Threads Clone', | |
| description: 'Created a full-stack replica of the popular discussion platform "Threads," enabling users to post and engage in threaded conversations.', | |
| link: 'https://github.com/adrianhajdin/threads', | |
| }, | |
| { | |
| iconUrl: car, | |
| theme: 'btn-back-blue', | |
| name: 'Car Finding App', | |
| description: 'Designed and built a mobile app for finding and comparing cars on the market, streamlining the car-buying process.', | |
| link: 'https://github.com/adrianhajdin/project_next13_car_showcase', | |
| }, | |
| { | |
| iconUrl: snapgram, | |
| theme: 'btn-back-pink', | |
| name: 'Full Stack Instagram Clone', | |
| description: 'Built a complete clone of Instagram, allowing users to share photos and connect with friends in a familiar social media environment.', | |
| link: 'https://github.com/adrianhajdin/social_media_app', | |
| }, | |
| { | |
| iconUrl: estate, | |
| theme: 'btn-back-black', | |
| name: 'Real-Estate Application', | |
| description: 'Developed a web application for real estate listings, facilitating property searches and connecting buyers with sellers.', | |
| link: 'https://github.com/adrianhajdin/projects_realestate', | |
| }, | |
| { | |
| iconUrl: summiz, | |
| theme: 'btn-back-yellow', | |
| name: 'AI Summarizer Application', | |
| description: 'App that leverages AI to automatically generate concise & informative summaries from lengthy text content, or blogs.', | |
| link: 'https://github.com/adrianhajdin/project_ai_summarizer', | |
| } | |
| ]; |
| const normalizedRotation = | |
| ((rotation % (2 * Math.PI)) + 2 * Math.PI) % (2 * Math.PI); | |
| // Set the current stage based on the island's orientation | |
| switch (true) { | |
| case normalizedRotation >= 5.45 && normalizedRotation <= 5.85: | |
| setCurrentStage(4); | |
| break; | |
| case normalizedRotation >= 0.85 && normalizedRotation <= 1.3: | |
| setCurrentStage(3); | |
| break; | |
| case normalizedRotation >= 2.4 && normalizedRotation <= 2.6: | |
| setCurrentStage(2); | |
| break; | |
| case normalizedRotation >= 4.25 && normalizedRotation <= 4.75: | |
| setCurrentStage(1); | |
| break; | |
| default: | |
| setCurrentStage(null); | |
| } |
| /** @type {import('tailwindcss').Config} */ | |
| export default { | |
| content: [ | |
| "./index.html", | |
| "./src/**/*.{js,ts,jsx,tsx}", | |
| ], | |
| theme: { | |
| extend: { | |
| colors: { | |
| gray: { | |
| 200: "#D5DAE1" | |
| }, | |
| black: { | |
| DEFAULT: "#000", | |
| 500: "#1D2235" | |
| }, | |
| blue: { | |
| 500: "#2b77e7" | |
| } | |
| }, | |
| fontFamily: { | |
| worksans: ["Work Sans", "sans-serif"], | |
| poppins: ['Poppins', "sans-serif"] | |
| }, | |
| boxShadow: { | |
| card: '0px 1px 2px 0px rgba(0, 0, 0, 0.05)' | |
| } | |
| }, | |
| }, | |
| plugins: [], | |
| } |
Hello I am getting this error when I click on the 3D object to move it. As soon as I click and drag on the webpage it pops the error message of:
There is an error regarding a TypeError: Cannot read properties of undefined (reading 'rotation').
The specific lines of code that are not working are using the "current.rotation.y".
Any Help Would be Greatly Appreciated!!
Thank you
/*
Auto-generated by: https://github.com/pmndrs/gltfjsx
Author: nimzu (https://sketchfab.com/nimzuk)
License: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
Source: https://sketchfab.com/3d-models/foxs-islands-163b68e09fcc47618450150be7785907
Title: Fox's islands
*/
import {a} from '@react-spring/three';
import React, { useRef, useEffect } from 'react';
import { useGLTF } from '@react-three/drei';
import { useFrame, useThree } from '@react-three/fiber';
import islandScene from '../assets/3d/island.glb';
const Island = (props) => {
const isLandRef = useRef();
const { nodes, materials } = useGLTF(islandScene)
return (
<a.group ref={isLandRef}{...props} >
</a.group>
)
}
export default Island;
my 3d models not showing
hey! Can anyone please guide me on how to publish this project on github pages!
please can you help me the arrow does not appear and when i scroll on the screen, it is not appear the about , contectand projects page
import React from "react";
import { Link } from "react-router-dom";
import { arrow } from "../assets/icons";
// Functional component InfoBox to display information with a link and button
const InfoBox = ({ text, link, btnText }) => (
{/* Create a link with specified destination and button text */} {btnText} {/* Display an arrow image when hovered over */}
// Object containing different content to render based on currentStage
const renderContent = {
1: (
Hi, I am Muaz 👋
A Software Engineer from Eibtikar Tech
),
2: (
),
3: (
),
4: (
),
};
// Functional component HomeInfo to render content based on currentStage
const HomeInfo = ({ currentStage }) => {
return renderContent[currentStage] || null;
};
export default HomeInfo;