Estilizando os Componentes
Os componentes estão funcionais mas sem nenhum CSS. Crie um arquivo
src/App.css com os estilos da aplicação e importe-o no main.tsx:
body {
font-family: system-ui, sans-serif;
background: #f7fafc;
color: #1a202c;
max-width: 800px;
margin: 0 auto;
padding: 2rem 1rem;
}
.event-list {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.event-card {
background: #fff;
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 1.5rem;
flex: 1 1 320px;
}
.event-card h2 {
margin: 0 0 0.5rem;
font-size: 1.3rem;
}
.event-card h2 a {
color: #2b6cb0;
text-decoration: none;
}
.event-card h2 a:hover {
text-decoration: underline;
}
.event-card time {
display: block;
color: #718096;
font-size: 0.9rem;
margin-bottom: 0.75rem;
}
.event-card p {
margin: 0.25rem 0;
font-size: 0.95rem;
}
Código 7-10: Estilos globais da aplicação.
E no EventList, envolva os cards num contêiner com a classe:
<div className="event-list">
{events.map((ev) => (
<EventCard key={ev.id} event={ev} />
))}
</div>
Repare no className em vez de class. Em JSX, class é uma palavra
reservada do JavaScript, então o React usa className para o atributo CSS. É
uma das poucas diferenças entre JSX e HTML.