Reinício
Reboot, uma coleção de mudanças CSS específicas de elementos em um único arquivo, kickstart Bootstrap para fornecer uma linha de base elegante, consistente e simples para construir.
Abordagem
Reboot baseia-se no Normalize, fornecendo muitos elementos HTML com estilos um tanto opinativos usando apenas seletores de elementos. O estilo adicional é feito apenas com classes. Por exemplo, reiniciamos alguns <table>
estilos para uma linha de base mais simples e, posteriormente, fornecemos .table
, .table-bordered
, e muito mais.
Aqui estão nossas diretrizes e razões para escolher o que substituir na reinicialização:
- Atualize alguns valores padrão do navegador para usar
rem
s em vez deem
s para espaçamento de componentes escaláveis. - Evite
margin-top
. As margens verticais podem entrar em colapso, produzindo resultados inesperados. Mais importante, porém, uma única direção demargin
é um modelo mental mais simples. - Para facilitar o dimensionamento entre os tamanhos dos dispositivos, os elementos de bloco devem usar
rem
s paramargin
s. - Mantenha as declarações de
font
propriedades relacionadas ao mínimo, usandoinherit
sempre que possível.
Padrões de página
Os elementos <html>
e <body>
são atualizados para fornecer melhores padrões em toda a página. Mais especificamente:
- O
box-sizing
é globalmente definido em todos os elementos, incluindo*::before
and*::after
, toborder-box
. Isso garante que a largura declarada do elemento nunca seja excedida devido ao preenchimento ou borda. - Nenhuma base
font-size
é declarada no<html>
, mas16px
é assumida (o padrão do navegador).font-size: 1rem
é aplicado<body>
para facilitar o dimensionamento de tipo responsivo por meio de consultas de mídia, respeitando as preferências do usuário e garantindo uma abordagem mais acessível. - O
<body>
também define um globalfont-family
,line-height
, andtext-align
. Isso é herdado posteriormente por alguns elementos de formulário para evitar inconsistências de fonte. - Por segurança, o
<body>
tem um declaradobackground-color
, o padrão é#fff
.
Pilha de fontes nativas
As fontes da web padrão (Helvetica Neue, Helvetica e Arial) foram descartadas no Bootstrap 4 e substituídas por uma “pilha de fontes nativas” para renderização de texto ideal em todos os dispositivos e sistemas operacionais. Leia mais sobre pilhas de fontes nativas neste artigo da Smashing Magazine .
$font-family-sans-serif:
// Safari for macOS and iOS (San Francisco)
-apple-system,
// Chrome < 56 for macOS (San Francisco)
BlinkMacSystemFont,
// Windows
"Segoe UI",
// Android
Roboto,
// Basic web fallback
"Helvetica Neue", Arial,
// Linux
"Noto Sans",
"Liberation Sans",
// Sans serif fallback
sans-serif,
// Emoji fonts
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
Observe que, como a pilha de fontes inclui fontes emoji, muitos caracteres Unicode de símbolo/dingbat comuns serão renderizados como pictogramas multicoloridos. A aparência deles varia, dependendo do estilo usado na fonte emoji nativa do navegador/plataforma, e eles não serão afetados por nenhum color
estilo CSS.
Isso font-family
é aplicado ao <body>
e automaticamente herdado globalmente em todo o Bootstrap. Para alternar o global font-family
, atualize $font-family-base
e recompile o Bootstrap.
Títulos e parágrafos
Todos os elementos de título — por exemplo, <h1>
— e <p>
são redefinidos para serem margin-top
removidos. Os títulos margin-bottom: .5rem
e parágrafos foram adicionados margin-bottom: 1rem
para facilitar o espaçamento.
Cabeçalho | Exemplo |
---|---|
<h1></h1> |
h1. Título de inicialização |
<h2></h2> |
h2. Título de inicialização |
<h3></h3> |
h3. Título de inicialização |
<h4></h4> |
h4. Título de inicialização |
<h5></h5> |
h5. Título de inicialização |
<h6></h6> |
h6. Título de inicialização |
Listas
Todas as listas <ul>
— <ol>
, e <dl>
— são margin-top
removidas e um margin-bottom: 1rem
. As listas aninhadas não têm margin-bottom
.
- Todas as listas têm sua margem superior removida
- E sua margem inferior normalizada
- As listas aninhadas não têm margem inferior
- Assim ficam com uma aparência mais uniforme
- Particularmente quando seguido por mais itens de lista
- O preenchimento esquerdo também foi redefinido
- Aqui está uma lista ordenada
- Com alguns itens de lista
- Tem a mesma aparência geral
- Como a lista não ordenada anterior
Para um estilo mais simples, hierarquia clara e melhor espaçamento, as listas de descrição atualizaram margin
s. <dd>
s redefinir margin-left
para 0
e adicionar margin-bottom: .5rem
. <dt>
s estão em negrito .
- Listas de descrição
- Uma lista de descrição é perfeita para definir termos.
- Prazo
- Definição para o termo.
- Uma segunda definição para o mesmo termo.
- Outro termo
- Definição para este outro termo.
Texto pré-formatado
O <pre>
elemento é redefinido para remover margin-top
e usar rem
unidades para seu margin-bottom
.
.example-element { margem inferior: 1rem; }
Tabelas
As tabelas são ligeiramente ajustadas ao estilo <caption>
s, retraem bordas e garantem consistência text-align
por toda parte. Alterações adicionais para bordas, preenchimento e muito mais vêm com a .table
classe .
Título da tabela | Título da tabela | Título da tabela | Título da tabela |
---|---|---|---|
Célula da tabela | Célula da tabela | Célula da tabela | Célula da tabela |
Célula da tabela | Célula da tabela | Célula da tabela | Célula da tabela |
Célula da tabela | Célula da tabela | Célula da tabela | Célula da tabela |
Formulários
Vários elementos de formulário foram reiniciados para estilos básicos mais simples. Aqui estão algumas das mudanças mais notáveis:
<fieldset>
s não têm bordas, preenchimentos ou margens para que possam ser facilmente usados como wrappers para entradas individuais ou grupos de entradas.<legend>
s, como fieldsets, também foram reestilizados para serem exibidos como um tipo de cabeçalho.<label>
s são definidos paradisplay: inline-block
permitirmargin
a aplicação.<input>
s,<select>
s,<textarea>
s e<button>
s são endereçados principalmente por Normalize, mas Reboot remove seusmargin
e setsline-height: inherit
também.<textarea>
s são modificados para serem redimensionáveis apenas verticalmente, pois o redimensionamento horizontal geralmente “quebra” o layout da página.<button>
s e<input>
elementos de botão têmcursor: pointer
quando:not(:disabled)
.
Essas mudanças, e mais, são demonstradas abaixo.
Ponteiros nos botões
A reinicialização inclui um aprimoramento para role="button"
alterar o cursor padrão para pointer
. Adicione este atributo aos elementos para ajudar a indicar que os elementos são interativos. Essa função não é necessária para <button>
elementos, que recebem sua própria cursor
alteração.
<span role="button" tabindex="0">Non-button element button</span>
Elementos diversos
Endereço
O <address>
elemento é atualizado para redefinir o padrão do navegador font-style
de italic
para normal
. line-height
agora também é herdado e margin-bottom: 1rem
foi adicionado. <address>
s são para apresentar informações de contato para o antepassado mais próximo (ou um corpo inteiro de trabalho). Preserve a formatação terminando as linhas com <br>
.
1355 Market St, Suite 900
San Francisco, CA 94103
P: (123) 456-7890 Nome completo
[email protected]
Bloco de citação
O padrão margin
em blockquotes é 1em 40px
, então redefinimos 0 0 1rem
para algo mais consistente com outros elementos.
Uma citação bem conhecida, contida em um elemento blockquote.
Elementos embutidos
O <abbr>
elemento recebe um estilo básico para se destacar entre o texto do parágrafo.
Resumo
O padrão cursor
em resumo é text
, então redefinimos isso pointer
para transmitir que o elemento pode ser interagido clicando nele.
Alguns detalhes
Mais informações sobre os detalhes.
Ainda mais detalhes
Aqui estão ainda mais detalhes sobre os detalhes.
[hidden]
Atributo HTML5
HTML5 adds a new global attribute named [hidden]
, which is styled as display: none
by default. Borrowing an idea from PureCSS, we improve upon this default by making [hidden] { display: none !important; }
to help prevent its display
from getting accidentally overridden. While [hidden]
isn’t natively supported by IE10, the explicit declaration in our CSS gets around that problem.
<input type="text" hidden>
jQuery incompatibility
[hidden]
is not compatible with jQuery’s $(...).hide()
and $(...).show()
methods. Therefore, we don’t currently especially endorse [hidden]
over other techniques for managing the display
of elements.
To merely toggle the visibility of an element, meaning its display
is not modified and the element can still affect the flow of the document, use the .invisible
class instead.