Skip to content

Latest commit

 

History

History
191 lines (161 loc) · 4.6 KB

adding_style.md

File metadata and controls

191 lines (161 loc) · 4.6 KB

Adicionando estilo

Com o Angular, podemos dar estilo aos componentes, de uma forma que não afetará o resto da aplicação. É uma boa prática encapsular o estilo relacionado aos componentes desta forma.

Também podemos indicar regras de estilo geral para serem usadas em toda a aplicação. Isso é bom para criar o mesmo look-and-feel para todos os nossos componentes. Por exemplo, podemos decidir qual paleta de cores será usada como o tema do nosso aplicativo. Então, se quisermos mudar as cores ou oferecer diferentes temas, podemos mudá-lo em um só lugar, em vez de em cada componente.

Angular nos dá diferentes métodos de encapsulamento de estilo, mas nos seguiremos com o padrão.

Angular-CLI gerou um estilo geral no src/style.css. Cole o código a seguir no arquivo de estilo:

html, body, div, span,
h1, p, ul, li {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

body {
  line-height: 1;
  background: #f1f1f1;
  font-size: 16px;
  line-height: 22px;
  color: #404040;
  font-family: 'Lucida Grande', Verdana, sans-serif;
}

ol, ul {
  list-style: none;
}

.btn {
  background: lightseagreen;
  color: #fff;
  padding: 3px 10px;
  margin: 0 0 0 3px;
  border: none;
  border-radius: 5px;
  font-size: 12px;
  line-height: 24px;
  cursor: pointer;
  vertical-align: bottom;
}

.btn:hover {
  background: lightslategrey;
}

Como o projeto irá acessar este arquivo? No arquivo de configuração Angular-CLI .angular-cli.json em apps[0].styles você pode indicar os arquivos para a ferramenta de compilação para levar e adicionar ao projeto. Você pode abrir as ferramentas de desenvolvimento do navegador e ver o estilo dentro do elemento:

<html>
  ...
  <head>
    ...
    <style type="text/css">
    ...Your style is here
    </style>
    ...
  </head>
  ...
</html> 

Agora, vamos adicionar um estilo específico para o componente list-manager.

Abra o arquivo list-manager.component.css e cole o estilo abaixo:

.todo-app {
  position: relative;
  width: 400px;
  padding: 30px 30px 15px;
  background: white;
  border: 1px solid;
  border-color: #dfdcdc #d9d6d6 #ccc;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  margin: 20px auto;
}

.todo-app:before, .todo-app:after {
  content: '';
  position: absolute;
  z-index: -1;
  height: 4px;
  background: white;
  border: 1px solid #ccc;
  border-radius: 2px;
}

.todo-app:after {
  bottom: -3px;
  left: 0;
  right: 0;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.todo-app:before {
  bottom: -5px;
  left: 2px;
  right: 2px;
  border-color: #c4c4c4;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.todo-app h1 {
  font-size: 52px;
  line-height: 52px;
  margin-bottom: 30px;
  font-weight: bold;
  text-align: center;
  letter-spacing: -0.8px;
}

.todo-add {
  margin-bottom: 20px;
}

Como essa folha de estilo é anexada ao componente list-manager? Olhe o arquivo list-manager.component.ts. Uma das propriedades no objeto passado para o decorator @Component é styleUrls. É uma lista de folhas de estilo a serem usadas pelo Angular, que encapsula o estilo dentro do componente.

Adicione o seguinte estilo a input.component.css:

.todo-input {
  padding: 4px 10px 4px;
  font-size: 16px;
  font-family: 'Lucida Grande', Verdana, sans-serif;
  line-height: 20px;
  border: solid 1px #dddddd;
  border-radius: 5px;
  flex-grow: 1;
}

:host(:not([hidden])) {
  display: flex;
  justify-content: space-between;
  flex-grow: 1;
}

Adicione o seguinte estilo a item.component.css:

.todo-item {
  padding: 10px 0;
  border-top: solid 1px #ddd;
  min-height: 30px;
  line-height: 30px;
  display: flex;
  justify-content: space-between;
}

.todo-checkbox {
  flex-shrink: 0;
  margin: auto 1ex auto 0;
}

.todo-title {
  flex-grow: 1;
  padding-left: 11px;
}

.btn-red {
  background: red;
}

.btn-red:hover {
  background: darkred;
}

Observe: Não se esqueça de colocar as classes CSS no template de código do seu componente, como o exemplo abaixo:

 @Component({
    ...
    template: `
          <button class="btn btn-red" (click)="removeItem()">
          `,

Você pode mudar o estilo como você quiser - o tamanho dos elementos, as cores - tudo o que você quiser!

Observe: você pode usar arquivos SCSS no projeto, que é uma maneira mais agradável de escrever estilo e possui excelentes recursos que ajudam o desenvolvedor. Os arquivos SCSS são compilados para o css quando o projeto é criado.