Skip to content

Commit 3a87f45

Browse files
committed
2-DR1.TP3.14
1 parent 3f526f6 commit 3a87f45

File tree

3 files changed

+162
-0
lines changed

3 files changed

+162
-0
lines changed

2-desenvolvimento-front-end/DR1-mobile-first-ui/DR1-TP3.11~3.16/src/App.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import './global.css';
22
import './styles.css';
33
import './App.css';
44
import Menu from './components/Menu/Menu';
5+
import Hero from './components/Hero/Hero';
56

67
function App() {
78
return (
@@ -15,6 +16,8 @@ function App() {
1516

1617
<Menu />
1718

19+
<Hero />
20+
1821
<main className="app-main">
1922
<div className="container">
2023
<section id="sobre" className="app-section">
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import './hero.css';
2+
3+
function Hero() {
4+
return (
5+
<section className="hero">
6+
<div className="hero-container">
7+
<div className="hero-content">
8+
<h1 className="hero-title">Bem-vindo ao Futuro do Desenvolvimento</h1>
9+
<p className="hero-subtitle">
10+
Construa aplicações modernas com React, CSS e as melhores práticas
11+
de desenvolvimento web. Responsive, elegante e profissional.
12+
</p>
13+
<div className="hero-actions">
14+
<button className="primary">Começar Agora</button>
15+
<button>Saiba Mais</button>
16+
</div>
17+
</div>
18+
<div className="hero-image">
19+
<picture>
20+
<source
21+
media="(min-width: 992px)"
22+
srcSet="https://images.unsplash.com/photo-1498050108023-c5249f4df085?w=800&h=600&fit=crop"
23+
/>
24+
<source
25+
media="(min-width: 576px)"
26+
srcSet="https://images.unsplash.com/photo-1498050108023-c5249f4df085?w=600&h=450&fit=crop"
27+
/>
28+
<img
29+
src="https://images.unsplash.com/photo-1498050108023-c5249f4df085?w=400&h=300&fit=crop"
30+
alt="Desenvolvedor trabalhando em código"
31+
className="hero-img"
32+
/>
33+
</picture>
34+
</div>
35+
</div>
36+
</section>
37+
);
38+
}
39+
40+
export default Hero;
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
/* Estilos do componente Hero - Mobile First */
2+
3+
.hero {
4+
background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);
5+
border-bottom: 1px solid var(--border-color);
6+
padding: 40px 0;
7+
}
8+
9+
.hero-container {
10+
max-width: 1128px;
11+
margin: 0 auto;
12+
padding: 0 24px;
13+
display: flex;
14+
flex-direction: column;
15+
gap: 32px;
16+
}
17+
18+
.hero-content {
19+
display: flex;
20+
flex-direction: column;
21+
gap: 20px;
22+
text-align: center;
23+
}
24+
25+
.hero-title {
26+
font-size: 2rem;
27+
font-weight: 700;
28+
color: var(--text-primary);
29+
line-height: 1.2;
30+
margin: 0;
31+
letter-spacing: -0.5px;
32+
}
33+
34+
.hero-subtitle {
35+
font-size: 1.1rem;
36+
color: var(--text-secondary);
37+
line-height: 1.6;
38+
margin: 0;
39+
}
40+
41+
.hero-actions {
42+
display: flex;
43+
gap: 12px;
44+
justify-content: center;
45+
flex-wrap: wrap;
46+
}
47+
48+
.hero-image {
49+
width: 100%;
50+
display: flex;
51+
justify-content: center;
52+
align-items: center;
53+
}
54+
55+
.hero-img {
56+
width: 100%;
57+
max-width: 400px;
58+
height: auto;
59+
border-radius: 12px;
60+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
61+
border: 1px solid var(--border-color);
62+
}
63+
64+
/* Tablets - 576px até 992px */
65+
@media (min-width: 576px) and (max-width: 992px) {
66+
.hero {
67+
padding: 60px 0;
68+
}
69+
70+
.hero-title {
71+
font-size: 2.5rem;
72+
}
73+
74+
.hero-subtitle {
75+
font-size: 1.2rem;
76+
}
77+
78+
.hero-img {
79+
max-width: 600px;
80+
}
81+
}
82+
83+
/* Desktop - acima de 992px */
84+
@media (min-width: 992px) {
85+
.hero {
86+
padding: 80px 0;
87+
}
88+
89+
.hero-container {
90+
flex-direction: row;
91+
align-items: center;
92+
gap: 60px;
93+
}
94+
95+
.hero-content {
96+
flex: 1;
97+
text-align: left;
98+
}
99+
100+
.hero-title {
101+
font-size: 3rem;
102+
}
103+
104+
.hero-subtitle {
105+
font-size: 1.25rem;
106+
}
107+
108+
.hero-actions {
109+
justify-content: flex-start;
110+
}
111+
112+
.hero-image {
113+
flex: 1;
114+
}
115+
116+
.hero-img {
117+
max-width: 100%;
118+
}
119+
}

0 commit comments

Comments
 (0)