xxxxxxxxxx
import { motion, useAnimation } from 'framer-motion';
import { useInView } from 'react-intersection-observer';
import { useEffect } from 'react';
const Animete = {
offScreen: { opacity: 0 },
onScreen: { opacity: 1 }
};
export default function Technology() {
const controls = useAnimation();
const [ref, inView] = useInView();
useEffect(() => {
if (inView) {
controls.start('onScreen');
} else {
controls.start('offScreen');
}
}, [controls, inView]);
return (
<div className='TECHNOLOGY-BODY'>
<div className="TECHNOLOGY-CONTAINER">
<motion.ul ref={ref}>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faReact}/> REACT
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faReact}/> ELECTRON
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faHtml5}/> HTML CSS
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faUnity}/> UNITY
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faPython}/> PYTHON
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faMicrochip}/> ARDUINO
</motion.h1>
</motion.ul>
</div>
</div>
);
}
xxxxxxxxxx
import { motion, useAnimation } from 'framer-motion';
import { useInView } from 'react-intersection-observer';
import { useEffect } from 'react';
const Animete = {
offScreen: { opacity: 0 },
onScreen: { opacity: 1 }
};
export default function Technology() {
const controls = useAnimation();
const [ref, inView] = useInView();
useEffect(() => {
if (inView) {
controls.start('onScreen');
} else {
controls.start('offScreen');
}
}, [controls, inView]);
return (
<div className='TECHNOLOGY-BODY'>
<div className="TECHNOLOGY-CONTAINER">
<motion.ul ref={ref}>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faReact}/> REACT
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faReact}/> ELECTRON
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faHtml5}/> HTML CSS
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faUnity}/> UNITY
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faPython}/> PYTHON
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faMicrochip}/> ARDUINO
</motion.h1>
</motion.ul>
</div>
</div>
);
}
xxxxxxxxxx
import { motion, useAnimation } from 'framer-motion';
import { useInView } from 'react-intersection-observer';
import { useEffect } from 'react';
const Animete = {
offScreen: { opacity: 0 },
onScreen: { opacity: 1 }
};
export default function Technology() {
const controls = useAnimation();
const [ref, inView] = useInView();
useEffect(() => {
if (inView) {
controls.start('onScreen');
} else {
controls.start('offScreen');
}
}, [controls, inView]);
return (
<div className='TECHNOLOGY-BODY'>
<div className="TECHNOLOGY-CONTAINER">
<motion.ul ref={ref}>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faReact}/> REACT
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faReact}/> ELECTRON
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faHtml5}/> HTML CSS
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faUnity}/> UNITY
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faPython}/> PYTHON
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faMicrochip}/> ARDUINO
</motion.h1>
</motion.ul>
</div>
</div>
);
}
xxxxxxxxxx
import { motion, useAnimation } from 'framer-motion';
import { useInView } from 'react-intersection-observer';
import { useEffect } from 'react';
const Animete = {
offScreen: { opacity: 0 },
onScreen: { opacity: 1 }
};
export default function Technology() {
const controls = useAnimation();
const [ref, inView] = useInView();
useEffect(() => {
if (inView) {
controls.start('onScreen');
} else {
controls.start('offScreen');
}
}, [controls, inView]);
return (
<div className='TECHNOLOGY-BODY'>
<div className="TECHNOLOGY-CONTAINER">
<motion.ul ref={ref}>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faReact}/> REACT
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faReact}/> ELECTRON
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faHtml5}/> HTML CSS
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faUnity}/> UNITY
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faPython}/> PYTHON
</motion.h1>
<motion.h1 initial="offScreen" animate={controls} variants={Animete}>
<FontAwesomeIcon className='TECH-ICON' icon={faMicrochip}/> ARDUINO
</motion.h1>
</motion.ul>
</div>
</div>
);
}