Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

Arquivo: web/src/App.css
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.