Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CSS] Boas práticas para nomear suas variáveis #19

Open
dielduarte opened this issue Jan 20, 2015 · 7 comments
Open

[CSS] Boas práticas para nomear suas variáveis #19

dielduarte opened this issue Jan 20, 2015 · 7 comments
Labels

Comments

@dielduarte
Copy link

A ideia seria um post explicando como você costuma organizar suas variáveis.
Por exemplo : variáveis de cor, você nomeia com o nome da cor ou com o status que ela representa ?
Você separa seus arquivos de variáveis ? como costuma organizar ?
Enfim.. da pra tirar umas dicas bacanas desse assunto buscando uma melhor organização.

@felipefialho
Copy link
Member

Maneiro!

@hugooliveirad
Copy link
Collaborator

Nesse guia tem algumas referências de como nomear e utilizar variáveis: https://github.com/mktvirtual/guides/tree/master/estilo/CSS

Boa pauta!

@willianjusten
Copy link
Member

Existe um post no 24ways, http://24ways.org/2014/naming-things/
que é bastante legal e eu já vinha pensando em escrever algo baseado nesse post e em outras coisas minhas, vou pegar esse assunto o mais rápido possível.

@fdaciuk
Copy link
Collaborator

fdaciuk commented Jan 21, 2015

Boaaa!!

@kurybr
Copy link

kurybr commented Jan 25, 2015

Maneiro de mais o tema !

@williamroger
Copy link

Estava iniciando um novo projeto e passei quase 10 minutos pensando em que nome daria para variável com a primeira cor do site, foi quando vi que precisava de ajuda e corri pra cá! ;)

@bernardodiasc
Copy link
Contributor

A ultima vez que preparei um esquema de tema pra um app que usa CSS in JS, ficou mais ou menos assim:

/**
 * Using named colors from http://chir.ag/projects/name-that-color/
 * Treat color hex values as constants and use theme colors with purpose
 */
const palette = {
  white: '#FFF',
  haiti: '#130E2E',
  fern: '#5CB85C',
  radicalRed: '#F63954',
  alto: '#D8D8D8',
  nobel: '#B3B3B3',
  tuna: '#34323B',
  scarpaFlow: '#5A5665',
  manatee: '#918CA0',
  athensGray: '#F0F1F4',
  athensGrayAlt: '#E6E6ED',
  mercury: '#E4E4E4',
  porcelain: '#E9EDEE',
  brickRed: '#D32F3B',
  wePeep: '#F7D9DC'
}

export default {
  baseBrighter: palette.white,
  baseDarker: palette.haiti,
  baseRed: palette.radicalRed,
  baseGreen: palette.fern,
  baseSilver: palette.alto,
  baseHighlight: palette.mercury,

  typoHeading: palette.tuna,
  typoSubheading: palette.radicalRed,
  typoParagraph: palette.scarpaFlow,
  typoHighlight: palette.haiti,

  formPlaceholder: palette.manatee,
  formText: palette.scarpaFlow,
  formBorder: palette.athensGrayAlt,
  formError: palette.brickRed,
  formErrorShadow: palette.wePeep,

  lineRed: palette.radicalRed,
  lineSilver1: palette.mercury,
  lineSilver2: palette.porcelain,
  lineSilver3: palette.athensGray,
  lineSilver4: palette.athensGrayAlt,

  iconRed: palette.radicalRed,
  iconBright: palette.white,
  iconDark: palette.tuna,

  logoGray: palette.nobel
}

O app é feito em React, o que me permitiu criar um componente chamado ColorPalette, que carrega todas as cores do tema e no Styleguidist mostra assim:

screen shot 2018-01-19 at 10 02 19 am


Note que há cores repetidas mas que possuem nomes diferentes. A ideia é ter uma base de constantes para os hex das cores e atribuir em variáveis com propósitos diferentes. Os propósitos vão da necessidade, exemplificando, há uma cor vermelha principal, essa cor é usada para tipografia vermelha e para linhas vermelhas. Se por algum motivo o tom de vermelho da tipografia alterar, posso fazer isso de modo seguro sabendo que as linhas e bordas não serão afetadas. Essas abstrações de propósitos não são generalizadas, mas estudadas de acordo com o material de design fornecido. O designer que criou o site pensou muito nos detalhes e o código reflete tais abstrações.

Vale mencionar, se não estiver ficado claro, que para manutenção, as vezes precisamos fazer um search&replace em batch, ou seja, procurar por muitas referencias de uma só vez e substituir os resultados por outra coisa. Mesmo casos bobos, como aconteceu no meu tema, havia um erro de digitação no nome de uma variável, foi fácil resolver. Se eu usar a mesma variável para todos os vermelhos do site, certas ações de manutenção podem ser extremamente difíceis (ou chatas e demoradas).

Note tambem que no CSS as cores de tipografia vão estar praticamente sempre na propriedade color, já cores de bordas vão estar praticamente sempre em border, e por aí vai, isso é uma boa referência também para fazer abstrações dos nomes das variáveis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants