Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Minha versão de estilização

Olá, podem me falar oq acharam da forma que fiz ? Agradeço


import styled from 'styled-components';
import tags from './tags.json';
import { useState } from 'react';

const AgrupaTudo = styled.div`
    display: flex;
    align-items: center;
    gap: 20px;
`
const AgrupaBotao = styled.div`
    display: flex;
    gap: 10px;
`
const BotaoEstilizado = styled.button`
    background-color: rgba(217,217,217,0.3);
    border-radius: 10px;
    padding: 10px 8px;  
    font-size: 20px;
    color: #fff;
    box-shadow: none;
    outline: none;
    border-color: ${props => props.$ativo ? '#C98CF1' : 'transparent'};
`
const Tags = () => {

    const[Botao, setBotao] = useState(null)

    const trocarCorBorda = (id) => {
        setBotao(id)
    }
    return(
        <AgrupaTudo>
            <p style={{fontSize:'20px', color:'#fff'}}>Busque por tags:</p>
            <AgrupaBotao>
            {tags.map(tag => <BotaoEstilizado $ativo={tag.id === Botao} key={tag.id} onClick={() => trocarCorBorda(tag.id)}>{tag.titulo}</BotaoEstilizado>)}
            </AgrupaBotao>
        </AgrupaTudo>
    )
}

export default Tags;
1 resposta
solução!

Oi, dev! Tudo bem

É muito bom ver o seu envolvimento e a maneira como você aplicou os conceitos aprendidos nas aulas, parabéns!

Podemos notar um bom uso do Styled Components para estilizar os seus componentes React, a forma como foi utilizado o estado para controlar a cor da borda do botão também está correta.

Um pequeno ponto de melhoria seria apenas evitar o uso de estilos inline, como em <p style={{fontSize:'20px', color:'#fff'}}>Busque por tags:</p>. Em vez disso, podemos criar um componente estilizado para o parágrafo, assim como fez com o AgrupaTudo, AgrupaBotao e BotaoEstilizado.

Isso torna o seu código mais consistente e fácil de manter, já que todos os estilos estão definidos nos componentes estilizados.

Espero ter ajudado!

Um forte abraço e bons estudos!