chore: change some styles and improve too much animation

This commit is contained in:
GiovaniFZ 2025-01-20 21:56:43 -03:00
parent 32d39b9159
commit 0393d2c3b2
No known key found for this signature in database
GPG Key ID: 63DD92181B575322
7 changed files with 43 additions and 15 deletions

4
.gitignore vendored
View File

@ -28,4 +28,6 @@ bun.lockb
# ts build info # ts build info
tsconfig.app.tsbuildinfo tsconfig.app.tsbuildinfo
tsconfig.node.tsbuildinfo tsconfig.node.tsbuildinfo
.env

12
package-lock.json generated
View File

@ -12,6 +12,7 @@
"@fortawesome/free-brands-svg-icons": "^6.7.2", "@fortawesome/free-brands-svg-icons": "^6.7.2",
"@fortawesome/react-fontawesome": "^0.2.2", "@fortawesome/react-fontawesome": "^0.2.2",
"@types/node": "^22.10.5", "@types/node": "^22.10.5",
"dotenv": "^16.4.7",
"fs": "^0.0.1-security", "fs": "^0.0.1-security",
"lucide-react": "^0.469.0", "lucide-react": "^0.469.0",
"path": "^0.12.7", "path": "^0.12.7",
@ -1846,6 +1847,17 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true "dev": true
}, },
"node_modules/dotenv": {
"version": "16.4.7",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
"integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://dotenvx.com"
}
},
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.5.36", "version": "1.5.36",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz",

View File

@ -14,6 +14,7 @@
"@fortawesome/free-brands-svg-icons": "^6.7.2", "@fortawesome/free-brands-svg-icons": "^6.7.2",
"@fortawesome/react-fontawesome": "^0.2.2", "@fortawesome/react-fontawesome": "^0.2.2",
"@types/node": "^22.10.5", "@types/node": "^22.10.5",
"dotenv": "^16.4.7",
"fs": "^0.0.1-security", "fs": "^0.0.1-security",
"lucide-react": "^0.469.0", "lucide-react": "^0.469.0",
"path": "^0.12.7", "path": "^0.12.7",

View File

@ -8,10 +8,10 @@ export default function About() {
useEffect(() => { useEffect(() => {
const typed = new Typed(typedElement.current, { const typed = new Typed(typedElement.current, {
strings: ["Hi, I'm Giv, lemme tell you about me!", "So, I'm currently a software engineering student", "I'm also interning on a nice company located in Minas Gerais in Brazil", "And that's it!"], strings: ["About me"],
typeSpeed: 50, typeSpeed: 50,
backSpeed: 25, backSpeed: 25,
loop: true, loop: false,
}); });
return () => { return () => {
@ -21,9 +21,11 @@ export default function About() {
return ( return (
<MainContainer> <MainContainer>
<h1>About Me</h1> <h1>
<Paragraph>
<span ref={typedElement} /> <span ref={typedElement} />
</h1>
<Paragraph>
<span>Hi, I'm Giv, lemme tell you about me!, So, I'm currently a software engineering student, interning on a nice company located in Minas Gerais in Brazil, and that's it!</span>
</Paragraph> </Paragraph>
</MainContainer> </MainContainer>
); );

View File

@ -1,14 +1,21 @@
import { useEffect, useRef } from 'react'; import { useEffect, useRef, useState } from 'react';
import Typed from 'typed.js'; import Typed from 'typed.js';
import { Button, Paragraph, TextArea } from './styles'; import { Button, Paragraph, TextArea } from './styles';
import { MainContainer } from '../../components/MainContent/styles'; import { MainContainer } from '../../components/MainContent/styles';
export default function Contact() { export default function Contact() {
const typedElement = useRef(null); const typedElement = useRef(null);
const emailAddress = import.meta.env.VITE_GIV_EMAIL;
const [typedText, setTypedText] = useState('');
function handleSubmit() {
const mailToTrigger = 'mailto:' + emailAddress + '&subject=I visited your website!&body=' + typedText;
window.location.href = mailToTrigger
}
useEffect(() => { useEffect(() => {
const typed = new Typed(typedElement.current, { const typed = new Typed(typedElement.current, {
strings: ["If you want to contact me, you can use the links on Main section, or say something in the field below!"], strings: ["Contact"],
typeSpeed: 50, typeSpeed: 50,
backSpeed: 25, backSpeed: 25,
loop: false, loop: false,
@ -21,12 +28,16 @@ export default function Contact() {
return ( return (
<MainContainer> <MainContainer>
<h1>Contact</h1> <h1>
<Paragraph>
<span ref={typedElement} /> <span ref={typedElement} />
</h1>
<Paragraph>
<span>If you want to contact me, you can use the links on the Main section, or say something in the field below! (It will open your email client btw)</span>
</Paragraph> </Paragraph>
<TextArea /> <form onSubmit={handleSubmit}>
<Button>Send</Button> <TextArea onChange={(e) => setTypedText(e.target.value)} />
<Button type='submit'>Send</Button>
</form>
</MainContainer> </MainContainer>
); );
} }

View File

@ -12,7 +12,7 @@ export const TextArea = styled.textarea`
padding: 1rem; padding: 1rem;
border-radius: 8px; border-radius: 8px;
background: ${props => props.theme["gray-100"]}; background: ${props => props.theme["gray-100"]};
` `;
export const Button = styled.button` export const Button = styled.button`
all: unset; all: unset;

View File

@ -10,10 +10,10 @@ export default function Home() {
useEffect(() => { useEffect(() => {
const typed = new Typed(typedElement.current, { const typed = new Typed(typedElement.current, {
strings: ["Hi, I'm Giv! Welcome to my website!", "You can navigate through this website by checking out the sections!"], strings: ["Hi, I'm Giv! Welcome to my website!"],
typeSpeed: 30, typeSpeed: 30,
backSpeed: 50, backSpeed: 50,
loop: true, loop: false,
}); });
return () => { return () => {
@ -27,7 +27,7 @@ export default function Home() {
<span ref={typedElement} /> <span ref={typedElement} />
</h1> </h1>
<HomeLabel> <HomeLabel>
My social links Hey, check My social links!
</HomeLabel> </HomeLabel>
<IconContainer> <IconContainer>
<IconLink href="https://t.me/@givfnz2" target="_blank" rel="noopener noreferrer"> <IconLink href="https://t.me/@givfnz2" target="_blank" rel="noopener noreferrer">