Importar styled componentes globais igual ao styled de uma página? #2129
Replies: 3 comments 8 replies
-
No Styled Components tem um carinha que se chama GlobalStyles
Ai você importa ele como um componente mesmo, dentro de App
Pode ver um repositório se quiser Mas no seu caso, se é um botão acho que deveria ser um componente mesmo, não faz mal que só tenha estilos, talvez no futuro tenha outras coisas por exemplo:
|
Beta Was this translation helpful? Give feedback.
-
Eu não conhecia esse padrão, acho que vou usar no meu projeto. Eu uso o |
Beta Was this translation helpful? Give feedback.
-
Mas o ideal de se usar styled-components (método de estilização, não a lib) é você escopar e compor componentes, e evitar criar "globais" pois ao criar estilos globais você pode estar gerando side effects para sua aplicação. A idéia dos frameworks atuais é trabalhar com Componentização e Composição. Por exemplo, você quer um botão que será utilizado por toda a aplicação, então faça apenas um botão que é chamado para toda a aplicação.
Composição. Crie um Botão que será genérico e base e comece a extender/compor código a partir dele. Isso pode ser feito de três maneiras:
const ButtonBase = styled.button`
/* estilos básicos, alguns até configuráveis por props ou por tema */
`
const MyDesignerMadeMeDoThat = styled(ButtonBase)`
/* css que vai sobrescrever o estilo do botão base */
` Só precisa sempre ficar atento é sempre tentar abstrair e evitar ou até mesmo brigar com o teu designer para que tenha componentes que sejam reutilizáveis, evitar criar muitos componentes fora do padrão senão tua codebase só vai aumentar e vai ficar difícil de gerenciar e dar manutenção. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Eu gosto da idéia de todos os estilos de uma página serem importados como
import * as S from './styles'
Isso realmente faz ficar mais claro o que é um componente, e o que é um estilo.
<S.Card>Ola</S.Card>
Mas sobre estilos globais? aquele botão que é o mesmo para toda aplicação, porém é só um estilo.
Algum padrão bom? Eu fico incomodado em chama-lo igual a outros componentes.
Beta Was this translation helpful? Give feedback.
All reactions