Bootstrap

Aula 1 - Introdução

Bootstrap é um Framework CSS para o desenvolvimento e prototipação de aplicações Web. Inclui uma gama de elementos já prontos além de um sistema de gird que permite trabalhar com layouts de maneira simplificada.
Download do framework

Aula 2 - Configurando Bootstrap

Para esta aula utilizaremos o Bootstrap v4. No momento do curso o Bootstrap estava na versão 5, assim no site do framework procurar pela versão anterior para evitar problemas de compatibilidade.
Primeiramente configuramos o Bootstrap no projeto via link externo (CDN?), copiando os links do CSS e JS para a página do projeto.
Em seguida fizemos o download do Bootstrap na versão local. No curso foi feito o dowload das bibliotecas do jQuery Download jQuery e do Pooper Download do Pooper. Não localizei os arquivos do Popper para download como na aula. Analisando a documentação do Bootstrap percebi que o arquivo bootstrap.bundle.min.js inclui o Popper, mas não o jQuery, portanto não há a necessidade de incluir o Popper separadamente.

Aula 3 - Primeiros componentes navbar

Aplicando diversas classes para a criação de uma navbar. Não há nenhuma explicação do porque utilizar cada classe. Para entender o melhor é pesquisar no próprio site do Bootstrap.
Classes utilizadas nesta parte:
navbar navbar-expand-lg nav-light bg-light
navbar-brand
class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
navbar-toggler-icon
id="navbar" class="collapse navbar-collapse" A 'id' aplicada aqui faz referencia ao data-target='#navbar' utilizada na tag <button>
navbar-nav ml-auto O ml-auto diz respeito a marginleft-auto
nav-item
nav-link

Aula 4 - Primeiros componentes navbar e dropdown

Para criar um menu do tipo dropdown utilizamos algumas classes que funcionam graças ao complemento popper.
Esse menu foi criado como um item da <li> do menu navbar.
As classes utilizadas para esse menu são:
nav-item dropdown
class="nav-link dropdown-toggle" data-toggle="dropdown"
dropdown-menu
dropdown-item

Aula 5 - Entendendo e trabalhando com grid

O sistema de grids no Bootstrap é modulado da seguinte forma: Inicialmente criamos uma classe container. Dentro desse container inserimos um elemento com a classe row. A partir dessa divisão começamos a definir as colunas que são divididas em 12 partes.
As quebras de tela horizontais são divididas com as seguintes nomenclaturas de acordo com o tamanho da tela do dispositivo:
Extra small: .col- Largura: 576px
Small: .col-sm Largura >=576px
Medium: .col-md Largura >=768px
Large: .col-lg Largura >=992px
Extra Large: .col-xl Largura >=1200px
A partir dessa informação podemos definir as classes conforme o tamanho de tela em que queremos redefinir o grid. Por exemplo se quisermos 4 colunas quando a tela estiver grande, 2 colunas quando estiver média e 1 coluna quando estiver pequena definimos as três opções na classe da seguinte forma:
class="col-sm-12 col-md-6 col-lg-3.
Assim teremos 12 partes no modo small, 6 partes no modo medium e 3 partes no modo large.
O breakpoints do Bootstrap funciona como o @media no CSS.
Quando não definimos os breakpoints nem o numero de colunas o Bootstrap irá considerar a classe row e dividir os elementos se possível em partes iguais independentemente do tamanho da tela.
Outra classe utilizada nessa aula foi a classe img-fluid que ajusta o tamanho de uma imagem de acordo com o espaço disponível, tornando-a responsiva.
Utilizamos ainda a classe m que se refere as margens (top: mt-valor, bottom: mb-valor, left: ml-valor, right: mr-valor).
Por padrão o Bootstrap aplica ainda um padding em cada coluna chamado gutter. Para remover esse padding devemos inserir na classe que define o row a classe no-gutters

Aula 6 - Posicionamento com grid

Podemos alinhar os elementos verticalmente utilizando tag que está definido o row a classe aligns-items-start para o topo, align-items-center para centro e align-items-end para o bottom.
Para aplicar esse alinhamento em cada item da coluna podemos utilizar nas tags de coluna a classe align-self-start / center / bottom.
O alinhamento horizontal é feito com as classes justify-content-start / center / end / between / around.
Podemos ainda fazer o posicionamento das colunas com as propriedades de offset, que movimentam as colunas através de margens. O offset pode ser ajustado com a classe offset-tamanho_de_dispositivo-valor

Aula 7 - Formulários

Para a diagramação de formulários utilizamos, além do container com row e col criamos a tag <form> e uma <div> com a classe form-group.
A classe que estiliza o campo do formulário é a form-control. Essa <div class:"form-group"> deve ser criada para cada elemento do formulário.
No exemplo utilizamos uma tag <small> com o texto de explicação do campo do formulário (helper text). PAra ele utilizamos as classes form-text text-muted sendo que a text-muted tem a função de converter a fonte para uma cor mais thin & clear.
Todos os demais campos do formulário podem ser estilizados da mesma forma.
Podemos por fim fazer a divisão de colunas utilizando as propriedades já estudadas.
Temos ainda classes especiais para entradas do tipo checkbox e radio. Para esses casos podemos utilizar a classe form-check, form-check-input e form-check-label.
Para redefinir o tamanho dos campos do formulário podemos utilizar no lugar da classe form-control as dimensões form-control-lg ou form-control-sm, sendo que a primeira (sem dimensão) é o padrão.

Aula 8 - Botões

Para os botões aplicamos primeiramente a classe btn. Em seguida para estilizarmos os botões utilizamos as classes btn-estilo, onde o estilo pode ser:
primary, secondary, warning, danger, success, info, light e dark. Temos ainda o btn-link.
Outro tipo de estilo de botões é o outline, que segue os mesmos padrões do btn- mas com a classe btn-outline-estilo.
O ajuste de tamanho é feito com a classe btn-lg / sm. Podemos também utilizar o btn-block que faz o botão ocupar toto o espaço do elemento pai.

Aula 9 - Cards e icones

A criação de cards é feita com as classes card, card-header, card-body e card-footer. As classes não são obrigatórias. Podemos aplicar estilos inline para remover as bordas padrão do Bootstrap e podemos utilizar a classe text-center para alinhar os textos.
O Bootstrap v4 não possui uma biblioteca de ícones interna, mas tem algumas recomendações como por exemplo o site Open Iconic. Esse site disponibiliza uma biblioteca de icones que deve ser baixada e incoporada ao CSS através do arquivo open-iconic.min.css e da pasta fonts que também deve ser incorporada ao projeto.
Com os icones instalados no projeto podemos consultar a página do Open Iconic e escolher os ícones a serem incorporados à página. Selecionado o ícone basta copiar o link do tipo de inserção que será utilizado.
Após isso podemos aplicar os estilos conforme desejado.

Aula 10 - Customizando página e tipografia

Aplicando uma série de ajustes de estilo, todos de modo inline.

Aula 11 - Listas

Criação de lista para o footer utilizando as classes list-group e list-group-item

Aula 12 - Popover modal e finalizando

Criação de outra lista no footer desta vez inline utilizando as classes list-inline e list-inline-item.
Criação de um quadro popover com as seguintes propriedades:
class="list-inline-item" style="color: white;" data-container="body" data-toggle="popover" data-placement="top" data-content="This is my popover" data-trigger="hover".
Para ativar esta implementação precisamos criar a seguinte função em Javascript que será incluida em uma tag <script> em seguida dos apontamentos de arquivos. <script> $(document).ready(function(){ $('[data-toggle="popover"]').popover() }) </script>
Perceba que nas propriedades inseridas na <li> foi utilizada a propriedade data-trigger='hover' ou seja o 'disparador' é o hover.
Em seguida fizemos a criação de um modal (tela do tipo popup).
Para criar esse modal primeiro criamos um <button> com as seguintes propriedades:
class="btn btn-secondary" data-toggle="modal" data-target="#modal"
Veja que o data-target chama o elemento com a id modal. Em seguida foi criada a estrutura do modal, que deve ficar fora do documento principal, entre a última tag do documento e as chamadas de script.
a estrutura para o modal é a seguinte:
<div id="modal" class="modal fade" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">This is my title</h4> </div> <div class="modal-body"> Modal body </div> <div class="modal-footer"> <button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button> </div> </div> </div> </div>
Desse código podemos verificar que o modal é construido utilizando as classes modal, modal-dialog, modal-content, modal-header, modal-title, modal-body e modal-footer.
Outra propriedade é a role (preciso sasber como essa propriedade funciona) e a data-dismiss que indica, no botão de 'Cancel' quem deve ser dispensado.