1
resposta

[Bug] Projeto com CSS desconfigurado

Comecei usando o vite por estar mais acostumado a usar no dia a dia, entretanto agora estou tendo dificuldade de deixar o layout igual ao do curso, acredito que seja a configuração App.css ou index.css na raiz da pasta que vieram juntos ao iniciar o app. Comentando o app.css parece que melhorou mas ainda nao está igual ao do curso nos tamanhos e cores das fontes, sendo que os css estão iguais os da aula. Alguém sabe como corrigir?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

index.css:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --azul-escuro: #041833;
  --azul-medio: #1875E8;
  --cor-fonte-principal: #041833;
  --cor-fonte-post: #444444;
  --branco: #FFF;
  --fonte-principal: 'Raleway', sans-serif;
  --fonte-secundaria: 'Playfair Display', sans-serif;

  font-family: var(--fonte-principal);
}

#root {
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-columns: minmax(0, 1fr);
  min-height: 100vh;
}

a, button, input, textarea {
  font: inherit;
  color: inherit;
}

button {
  background-color: transparent;
}

a {
  text-decoration: none;
}

li {
  list-style: none;
}

h1, h2, h3 {
  font-weight: 700;
  line-height: 5rem;
}

main.jsx

import React from 'react'
import ReactDOM from 'react-dom/client'
import AppRoutes from './routes'
import './index.css'

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <AppRoutes />
  </React.StrictMode>
)

App.css (comentado porque descomentado desconfigura mais o padding e etc)

#root {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem;
  text-align: center;
}

.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.react:hover {
  filter: drop-shadow(0 0 2em #61dafbaa);
}

@keyframes logo-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: no-preference) {
  a:nth-of-type(2) .logo {
    animation: logo-spin infinite 20s linear;
  }
}

.card {
  padding: 2em;
}

.read-the-docs {
  color: #888;
} */
1 resposta

Oi Gregory, tudo bem?

Primeiramente, parabéns por estar trabalhando no desenvolvimento de projetos com React Router. É normal ter dificuldades e encontrar bugs durante o processo de desenvolvimento, e é muito bom que você tenha buscado ajuda para resolver essa questão de desconfiguração do layout.

Pelo código que você compartilhou, é possível notar que você está utilizando o arquivo index.css para definir algumas variáveis globais do seu projeto, como as cores e fontes utilizadas. Além disso, você está importando esse arquivo no index.jsx do seu projeto.

O arquivo App.css, que você comentou, é utilizado para definir o estilo específico do seu componente App. O que pode estar acontecendo é que as classes definidas nesse arquivo estão conflitando com as classes definidas no arquivo index.css.

Para resolver essa questão, é importante que você entenda a cascata de estilos do CSS. Isso significa que, quando duas ou mais regras CSS se aplicam ao mesmo elemento, a regra mais específica tem prioridade sobre a regra mais genérica. Além disso, as regras definidas mais abaixo no arquivo de estilos sobrescrevem as regras definidas acima.

No seu caso, se você comentou o arquivo App.css e as coisas melhoraram, pode ser que as regras definidas nesse arquivo estejam interferindo no layout. Tente identificar quais as classes ou estilos específicos estão causando o problema e ajuste-os de forma mais específica, evitando conflitos com as classes globais definidas no index.css.

Uma dica para evitar conflitos é utilizar a metodologia BEM (Block, Element, Modifier) para nomear suas classes. Com ela, você evita que duas classes com nomes iguais acabem causando conflito, já que cada classe é nomeada de forma única e clara.

Aqui está um exemplo de como aplicar a metodologia BEM em um componente:

<div class="card card--featured">
  <h2 class="card__title">Título do Card</h2>
  <p class="card__text">Texto do Card</p>
</div>

Nesse exemplo, a classe card é o nome do bloco, card__title e card__text são nomes dos elementos e card--featured é um nome de modificador. Dessa forma, cada classe é única e específica, evitando conflitos com outras classes definidas no projeto.

Espero que essas dicas tenham te ajudado a entender melhor o que pode estar causando o problema de desconfiguração no seu projeto. Lembre-se sempre de ser paciente e persistente na busca por soluções, e nunca hesite em pedir ajuda quando necessário.

Espero que tenha te ajudado, bons estudos!