Giter VIP home page Giter VIP logo

frontend-styleguide's Introduction

Instituto Educar - (S)CSS Style Guide

Hierarquia de arquivos e pastas

Todo projeto deverá seguir esta estrutura de pastas abaixo.

├── resources/
    ├── js/
    ├── css/
        ├── main.scss
        ├── settings/
            ├── _variables.scss
            ├── _tools.scss
        ├── base/
            ├── _generic.scss
            ├── _base.scss
        ├── components/
            ├── _component-1.scss
            ├── _component-2.scss
            ├── _component-N.scss
    ├── fonts/
    ├── images/

####main.scss Este é o arquivo que vai importar todos os arquivos scss que iremos utilizar. Não pode conter estilização dentro do arquivo, apenas imports.

main.scss

  @import "settings/variables";
  @import "settings/tools";

  @import "base/generic";
  @import "base/base";

  @import "components/component-1";
  @import "components/component-2";

####settings/

Aqui devem estar as configurações e ferramentas utilizadas no projeto.

Exemplo:

_variables.scss

  //Em geral são as variáveis globais que vão definir cores, espaçamentos e outras configurações desejadas
  $default_bg: #BADA55;
  $menu-height: 120px;

_tools.scss

  //Aqui você vai declarar os mixins e funções necessários para o seu projeto.
  //Pode ser qualquer coisa, desde mixins de font-face, até mixins de animações, etc.
  @mixin font-brand() {
    font-family: "UI font", sans-serif;
    font-weigth: 400;
  }

####base/

Aqui deve estar a estilização generica e a base do projeto.

Exemplo:

_generic.scss

  //Aqui é onde devemos colocar a estilização para as propriedades mais genéricas
  //e com menor especificidade possível.
  * {
    box-sizing: border-box;
  }

_base.scss

  //Aqui vai ficar toda estilização base do seu projeto.
  @mixin font-brand() {
    font-family: "UI font", sans-serif;
    font-weigth: 400;
  }

####components/

Aqui vão ficar os componentes que serão reutilizados no projeto.

Lembre-se de adicionar o '_' (underline) como prefixo no arquivo

Nomeclatura de classes

  • O nome da classe deverá ser coerente com a função que o elemento exerce.
  • Evite criar classes com nome muito grande.
  • Pense de forma escalável e reutilizável
  • Ao criar um componente, evite definir propriedades do tipo position, top, left, float, margin

*Obs.: Alguns projetos podem não seguir por completo este guia. Porém, deve-se basear nele.

frontend-styleguide's People

Contributors

charleslcsantos avatar raphaelfruneaux avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.