Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Adicionando Mural vazio - Memoteca

Olá segue minha resolução do desafio do mural vazio.

CSS:

.mural-vazio {
  display: none;
  text-align: center;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
  color: var(--Azul-Dark, #041832);
}

.mural-vazio p {
  font-family: "Poppins", sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 33px;
}

.mural-vazio img {
  max-width: 200px;
  margin-bottom: 20px;
}

.mural-vazio.visivel{
  display: flex;

HTML:

<h3>Meu Mural</h3>
        <div id="mural-vazio" class="mural-vazio">
          <p>Nada por aqui ainda, que tal compartilhar alguma ideia?</p>
          <img src="assets/imagens/lista-vazia.png" alt="Mural vazio" />
        </div>

JS -ui

 async renderizarPensamentos() {
    const listaPensamentos = document.querySelector("#lista-pensamentos");
    const muralVazio = document.querySelector("#mural-vazio");
    listaPensamentos.innerHTML = "";

    try {
      const pensamentos = await api.buscarPensamentos();
      if (pensamentos.length === 0) {
        muralVazio.classList.add("visivel");
      } else {
        muralVazio.classList.remove("visivel");
        pensamentos.forEach((pensamento) => {
          ui.adicionarPensamentos(pensamento);
        });
      }
      // pensamentos.forEach((pensamento) => {
      //   listaPensamentos.innerHTML += ` <li class="li-pensamento" data-id="${pensamento.id}">
      //     <img src="assets/imagens/aspas-azuis.png" alt="Aspas azuis" class="icone-aspas">
      //     <div class="pensamento-conteudo">${pensamento.conteudo}</div>
      //     <div class="pensamento-autoria">${pensamento.autoria}</div>
      //     </li>`;
    } catch {
      alert("Erro ao renderizar pensamentos");
    }
  },
1 resposta

Boa noite, Stephanie!

Gostei demais da sua resolução, continue assim!

Mandou muito bem ao estruturar o CSS para controlar a visibilidade do mural vazio, aplicar o HTML com mensagem e imagem de apoio e ainda complementar com o JavaScript para renderizar dinamicamente os pensamentos. Essa solução mostra domínio da integração entre front-end e lógica de negócio, além de reforçar boas práticas como separar responsabilidades entre estilo, marcação e comportamento.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Feedback visual: adicionar uma pequena animação ou transição quando o mural vazio aparece ou desaparece.
  • Tratamento de erros: além do alert, pensar em mensagens mais amigáveis ou logs para facilitar a manutenção.
  • Acessibilidade: garantir que a mensagem seja clara para leitores de tela e que a imagem tenha um alt descritivo.

Continue postando suas soluções! Além de ganhar pontos de XP na plataforma, você ajuda outros estudantes a entenderem como aplicar conceitos na prática.

Ah, uma provocação: você acha que seria mais interessante manter o mural vazio apenas como mensagem estática ou expandir para incluir sugestões interativas, como botões para criar o primeiro pensamento diretamente dali?

Abraço e parabéns pela solução!