Merge pull request #2 from ihatenodejs/main

Styling and grammar changes
This commit is contained in:
Giovani Finazzi 2025-02-02 16:52:06 -03:00 committed by GitHub
commit 1b6a362bb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 58 additions and 65 deletions

View File

@ -10,32 +10,33 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
"@fontsource-variable/red-hat-display": "^5.1.1",
"@fortawesome/fontawesome-svg-core": "^6.7.2", "@fortawesome/fontawesome-svg-core": "^6.7.2",
"@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.13.0",
"dotenv": "^16.4.7", "dotenv": "^16.4.7",
"fs": "^0.0.1-security", "fs": "^0.0.1-security",
"lucide-react": "^0.469.0", "lucide-react": "^0.474.0",
"path": "^0.12.7", "path": "^0.12.7",
"pnpm": "^9.15.3", "pnpm": "^9.15.4",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
"react-router-dom": "^7.1.1", "react-router-dom": "^7.1.5",
"react-typed": "^2.0.12", "react-typed": "^2.0.12",
"styled-components": "^6.1.14" "styled-components": "^6.1.14"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.11.1", "@eslint/js": "^9.19.0",
"@types/react": "^18.3.10", "@types/react": "^18.3.18",
"@types/react-dom": "^18.3.0", "@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^4.3.2", "@vitejs/plugin-react": "^4.3.4",
"eslint": "^9.11.1", "eslint": "^9.19.0",
"eslint-plugin-react-hooks": "^5.1.0-rc.0", "eslint-plugin-react-hooks": "^5.1.0",
"eslint-plugin-react-refresh": "^0.4.12", "eslint-plugin-react-refresh": "^0.4.18",
"globals": "^15.9.0", "globals": "^15.14.0",
"typescript": "^5.5.3", "typescript": "^5.7.3",
"typescript-eslint": "^8.7.0", "typescript-eslint": "^8.22.0",
"vite": "^5.4.8" "vite": "^5.4.14"
} }
} }

View File

@ -7,6 +7,7 @@ import About from './pages/about';
import Contact from './pages/contact'; import Contact from './pages/contact';
import Projects from './pages/projects'; import Projects from './pages/projects';
import { HashRouter } from 'react-router-dom'; import { HashRouter } from 'react-router-dom';
import '@fontsource-variable/red-hat-display';
function App() { function App() {
return ( return (
@ -14,7 +15,10 @@ function App() {
<GlobalStyle /> <GlobalStyle />
<Header /> <Header />
<HashRouter> <HashRouter>
<section id="home"> <section
id="home"
className="firstSection"
>
<Home /> <Home />
</section> </section>
<section id="about"> <section id="about">

View File

@ -1,31 +1,12 @@
import { useEffect, useRef } from 'react';
import Typed from 'typed.js';
import { Paragraph } from './styles'; import { Paragraph } from './styles';
import { MainContainer } from '../../components/MainContent/styles'; import { MainContainer } from '../../components/MainContent/styles';
export default function About() { export default function About() {
const typedElement = useRef(null);
useEffect(() => {
const typed = new Typed(typedElement.current, {
strings: ["About me"],
typeSpeed: 50,
backSpeed: 25,
loop: false,
});
return () => {
typed.destroy();
};
}, []);
return ( return (
<MainContainer> <MainContainer>
<h1> <h1>About Me</h1>
<span ref={typedElement} />
</h1>
<Paragraph> <Paragraph>
<span>Hi, I'm Giv, a software engineering student, interning on a nice company located in Minas Gerais in Brazil!</span> <span>I'm Giv, a software engineering student interning at a nice company located in Minas Gerais, Brazil!</span>
</Paragraph> </Paragraph>
</MainContainer> </MainContainer>
); );

View File

@ -1,10 +1,9 @@
import { useEffect, useRef, useState } from 'react'; import { useState } from 'react';
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';
import { Send } from 'lucide-react';
export default function Contact() { export default function Contact() {
const typedElement = useRef(null);
const emailAddress = import.meta.env.VITE_GIV_EMAIL; const emailAddress = import.meta.env.VITE_GIV_EMAIL;
const [typedText, setTypedText] = useState(''); const [typedText, setTypedText] = useState('');
@ -13,30 +12,18 @@ export default function Contact() {
window.location.href = mailToTrigger window.location.href = mailToTrigger
} }
useEffect(() => {
const typed = new Typed(typedElement.current, {
strings: ["Contact"],
typeSpeed: 50,
backSpeed: 25,
loop: false,
});
return () => {
typed.destroy();
};
}, []);
return ( return (
<MainContainer> <MainContainer>
<h1> <h1>Contact</h1>
<span ref={typedElement} />
</h1>
<Paragraph> <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> <span>If you want to contact me, you can use the links above, or say put in the field below to send me an email!</span>
</Paragraph> </Paragraph>
<form onSubmit={handleSubmit}> <form onSubmit={handleSubmit}>
<TextArea onChange={(e) => setTypedText(e.target.value)} /> <TextArea
<Button type='submit'>Send</Button> onChange={(e) => setTypedText(e.target.value)}
className="bgb"
/>
<Button type='submit'><Send className="ico" />Send</Button>
</form> </form>
</MainContainer> </MainContainer>
); );

View File

@ -12,7 +12,7 @@ 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!"], strings: ["Hi, I'm Giv! Welcome to my website!"],
typeSpeed: 30, typeSpeed: 70,
backSpeed: 50, backSpeed: 50,
loop: false, loop: false,
}); });
@ -31,7 +31,7 @@ export default function Home() {
</strong> </strong>
</TopSection> </TopSection>
<HomeLabel> <HomeLabel>
Hey, check My social links! Hey, check out 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">

View File

@ -16,7 +16,7 @@ export const IconLink = styled.a`
`; `;
export const HomeLabel = styled.p` export const HomeLabel = styled.p`
margin-top: 1rem; margin-top: 1.5rem;
`; `;
export const TopSection = styled.div` export const TopSection = styled.div`

View File

@ -19,8 +19,8 @@ body{
padding: 1rem; padding: 1rem;
} }
body, input, textarea, button{ body, input, textarea, button {
font: 400 1.25rem Roboto, sans-serif; font-family: 'Red Hat Display Variable', sans-serif;
} }
h1 { h1 {
@ -51,8 +51,27 @@ p {
font-size: 1.25rem; font-size: 1.25rem;
} }
.mc{ .mc {
display: flex; display: flex;
padding: 2rem; padding: 2rem;
} }
.firstSection {
padding-top: 3.75rem;
}
.ico {
margin-right: 0.5rem;
height: 0.85rem;
width: 0.85rem;
}
.bgb {
background-color: ${props => props.theme["dark-cream"]};
color: ${props => props.theme.white};
border: none;
&:focus {
box-shadow: none;
}
};
` `

View File

@ -23,4 +23,5 @@ export const defaultTheme = {
'cream': '#D4D4A1', 'cream': '#D4D4A1',
'light-cream': '#F5F5DC', 'light-cream': '#F5F5DC',
'dark-cream': '#636342',
} }