chore: change some styles and improve too much animation
This commit is contained in:
parent
32d39b9159
commit
0393d2c3b2
4
.gitignore
vendored
4
.gitignore
vendored
@ -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
12
package-lock.json
generated
@ -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",
|
||||||
|
@ -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",
|
||||||
|
@ -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>
|
||||||
);
|
);
|
||||||
|
@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
@ -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;
|
||||||
|
@ -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">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user