You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/guide/transitions-overview.md
+39-41Lines changed: 39 additions & 41 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,39 +2,39 @@
2
2
3
3
Vue oferece algumas abstrações que podem lhe ajudar a trabalhar com transições e animações, particularmente em resposta à mudança de algo. Algumas dessas abstrações incluem:
4
4
5
-
-Hooks para componentes entrando e saindo do DOM, em CSS e JS, usando o componente interno `<transition>`.
5
+
-Gatilhos para componentes entrando e saindo do DOM, em CSS e JS, usando o componente interno `<transition>`.
6
6
- Modos de Transição para que você possa orquestrar a ordenação durante a transição.
7
-
-Hooks para quando múltiplos elementos estão atualizando em posiçãocom técnicas FLIP aplicadas secundariamente para aumentar a performance, usando o componente `<transition-group>`.
7
+
-Gatilhos para quando múltiplos elementos estão atualizando em posição, com técnicas FLIP aplicadas em seu interior para aumentar a performance, usando o componente `<transition-group>`.
8
8
- Transição de diferentes estados em uma aplicação, com `watchers`.
9
9
10
-
Vamos cobrir todos esses e mais nas próximas seções deste guia. Contudo, além dessas ofertas úteis de API, é importante mencionar que as declarações de classe e estilo mencionadas antes podem também ser usadas para aplicar animações e transições, para casos de uso simplificados.
10
+
Vamos cobrir todos esses e mais nas próximas seções deste guia. Contudo, além dessas ofertas úteis de API, é importante mencionar que as declarações de classe e estilo mencionadas antes podem também ser usadas para aplicar animações e transições, para casos de uso simplificados.
11
11
12
-
Na próxima seção, vamos passar por conceitos básicos de transições e animações web, assim como oferecer links para alguns destes recursos para exploração posterior. Se você já estiver familiarizado com animação web e como estes princípios podem funcionar com algumas das directivas do Vue, sinta-se livre para pular a próxima seção. Para quem estiver buscando aprender mais sobre os básicos de animação web, continue a leitura.
12
+
Na próxima seção, vamos passar por conceitos básicos de transições e animações web, assim como oferecer links para alguns destes recursos para exploração posterior. Se você já estiver familiarizado com animação web e como estes princípios podem funcionar com algumas das directivas do Vue, sinta-se livre para pular a próxima seção. Para quem estiver buscando aprender mais sobre os básicos de animação web, continue a leitura.
13
13
14
-
## Animações & Transições baseadas em classes
14
+
## Animações & Transições Baseadas em Classes
15
15
16
16
Ainda que o componente `<transition>` pode ser maravilhoso para componentes que entram e saem, você também pode ativar uma animação sem montar um componente, adicionando uma classe condicional.
17
17
18
18
```html
19
19
<divid="demo">
20
20
Aperte este botão para fazer algo que você não deveria estar fazendo:<br />
<pclass="codepen"data-height="300"data-theme-id="39028"data-default-tab="css,result"data-user="Vue"data-slug-hash="ff45b91caf7a98c8c9077ad8ab539260"style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2pxsolid; margin: 1em0; padding: 1em;"data-pen-title="Criar a animação por meio de uma classe">
74
-
<span>See the Pen <ahref="https://codepen.io/team/Vue/pen/ff45b91caf7a98c8c9077ad8ab539260">
74
+
<span>Veja o exemplo <ahref="https://codepen.io/team/Vue/pen/ff45b91caf7a98c8c9077ad8ab539260">
75
75
Criar a animação por meio de uma classe</a> por Vue (<ahref="https://codepen.io/Vue">@Vue</a>)
76
76
no <ahref="https://codepen.io">CodePen</a>.</span>
Alguns efeitos de transições podem ser aplicados pela interpolação de valores, por exemplo, por ligar um estilo com um elemento enquanto ocorre uma interação.
83
-
Veja o seguinte exemplo:
82
+
Alguns efeitos de transições podem ser aplicados pela interpolação de valores, por exemplo, ao ligar um estilo com um elemento enquanto ocorre uma interação. Veja o seguinte exemplo:
Neste exemplo, estamos criando uma animação por meio do uso de interpolação, adjunto ao movimento do mouse. A transição CSS é aplicada para o elemento também, permitindo que o elemento saiba que tipo de atenuação é usada ao se atualizar.
127
+
Neste exemplo, estamos criando uma animação por meio do uso de interpolação, adjunto ao movimento do mouse. A transição CSS é aplicada ao elemento também, permitindo que o elemento saiba que tipo de atenuação é usada ao se atualizar.
129
128
130
129
## Performance
131
130
132
131
Você pode perceber que as animações mostradas acima estão usando coisas como `transforms`, e aplicando propriedades estranhas como `perspective` - por que foram construídos assim em vez de simplesmente usar `margin` e `top`, etc?
133
132
134
-
Podemos criar animações extremamente lisas para a web estando cientes da performance. Queremos que o hardware acelere elementos quando pudermos, e que use as propriedades que não disparem a repintura dos mesmos. Vamos ver como podemos fazer isso.
133
+
Podemos criar animações extremamente suaves para a web estando cientes da performance. Queremos que o hardware acelere elementos quando pudermos, e que use as propriedades que não disparem a repintura dos mesmos. Vamos ver como podemos fazer isso.
135
134
136
-
### Transform e Opacidade
135
+
### Transformações e Opacidade
137
136
138
-
Podemos verificar recursos como [Gatilhos CSS](https://csstriggers.com) para vermos quais propriedades vão desencadear repinturas se nós a animarmos. Aqui, caso você olhe a parte de `transform`, você verá:
137
+
Podemos verificar recursos como [Gatilhos CSS](https://csstriggers.com) para vermos quais propriedades vão desencadear repinturas se nós a animarmos. Aqui, caso você olhe a parte de `transform`, você verá:
139
138
140
-
> As mudanças do transform não desencadeiam em mudanças geométricas ou de pintura, o que é muito bom. Isso significa que a operação pode provavelmente ser realizada por pela thread de composição com o auxílio da GPU.
139
+
> As mudanças do `transform` não desencadeiam mudanças geométricas ou de pintura, o que é muito bom. Isso significa que a operação provavelmente será realizada pela _thread_ de composição com o auxílio da GPU.
141
140
142
141
A opacidade se comporta de maneira similar. Assim, são candidatos ideais para movimentos na web.
143
142
144
143
### Aceleração de Hardware
145
144
146
-
Propriedades como `perspective`, `backface-visibility`, e `transform: translateZ(x)` vão permitir ao browser saber quando se necessite de aceleração de hardware.
145
+
Propriedades como `perspective`, `backface-visibility`, e `transform: translateZ(x)` vão permitir ao browser saber quando se necessita de aceleração de hardware.
147
146
148
147
Se você gostaria de acelerar o hardware de um elemento, você pode aplicar qualquer uma dessas propriedades (não necessariamente só uma):
149
148
150
-
151
149
```css
152
150
perspective: 1000px;
153
151
backface-visibility: hidden;
154
152
transform: translateZ(0);
155
153
```
156
-
Muitas bibliotecas JS como GreenSock vão assumir que você quer aceleração de hardware e as vão aplicar por padrão, assim você não precisa configurá-las manualmente.
157
154
155
+
Muitas bibliotecas JS como GreenSock vão assumir que você quer aceleração de hardware e as vão aplicar por padrão, assim você não precisa configurá-las manualmente.
158
156
159
157
## Tempo de Animação
160
158
161
-
Para transições de UI simples, de um estado para outro sem estados intermediários, é comum usar tempos entre 0.1s e 0.4s, e muitas pessoas acham que _0.25s_ tende a ser o ponto certo. Você pode usar este tempo para tudo? Não necessariamente. Se você tem algo que precisa se mover uma distância maior ou que tenha mais passos ou mudanças de estado, 0.25s não vai funcionar tão bem e você terá que ser muito mais intencional, e o tempo terá a necessidade de ser mais único. O que não significa que você pode ter ótimos padrões que você repete dentro da sua aplicação.
159
+
Para transições de UI simples, de um estado para outro sem estados intermediários, é comum usar tempos entre 0.1s e 0.4s, e muitas pessoas acham que _0.25s_ tende a ser o ponto certo. Você pode usar este tempo para tudo? Não necessariamente. Se você tem algo que precisa se mover uma distância maior ou que tenha mais passos ou mudanças de estado, 0.25s não vai funcionar tão bem e você terá que ser muito mais intencional, e o tempo terá a necessidade de ser mais único. O que não significa que você não possa ter ótimos padrões que você repete dentro da sua aplicação.
162
160
163
161
Você também pode se dar conta de que entradas têm uma aparência melhor com um pouco mais de tempo que uma saída. O usuário tipicamente está sendo guiado durante uma entrada e é um pouco menos paciente na saída, por que querem seguir seu caminho.
164
162
165
-
166
163
## Atenuação
167
164
168
-
A atenuação é um modo importante de transmitir profundidade em uma animação. Um dos erros mais comuns que novatos em animação é usar `ease-in` para entradas, e `ease-out` para saídas. Quando, na verdade, você vai precisar do oposto.
165
+
A atenuação é um modo importante de transmitir profundidade em uma animação. Um dos erros mais comuns que novatos em animação é usar `ease-in` para entradas, e `ease-out` para saídas. Quando, na verdade, você vai precisar do oposto.
169
166
170
167
Se tivéssemos que aplicar estes estados a uma transição, ela ficaria algo assim:
171
168
172
169
```css
173
170
.button {
174
171
background: #1b8f5a;
175
-
/* aplicada ao estado inicial, assim esta transição será aplicada para o estado de retorno */
172
+
/* aplicada ao estado inicial, assim esta transição será aplicada ao estado de retorno */
176
173
transition: background0.25sease-in;
177
174
}
178
175
@@ -184,13 +181,13 @@ Se tivéssemos que aplicar estes estados a uma transição, ela ficaria algo ass
A atenuação pode inclusive transmitir a qualidade do material sendo animado. Olhe este pen, por exemplo, qual bola você acha que é rígida e qual é macia?
190
+
A atenuação pode inclusive transmitir a qualidade do material sendo animado. Olhe este pen, por exemplo, qual bola você acha que é rígida e qual é macia?
194
191
195
192
<pclass="codepen"data-height="500"data-theme-id="39028"data-default-tab="result"data-user="sdras"data-slug-hash="zxJWBJ"data-preview="true"style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2pxsolid; margin: 1em0; padding: 1em;"data-pen-title="Demo de bola quicando">
196
193
<span>Veja o Pen <ahref="https://codepen.io/sdras/pen/zxJWBJ">
@@ -199,18 +196,18 @@ A atenuação pode inclusive transmitir a qualidade do material sendo animado. O
Você pode obter muitos efeitos únicos e fazer sua animação bem estilosa ajustando sua acentuação. O CSS lhe permite modificar isso ajustando uma propriedade bezier cúbica, [este playground](https://cubic-bezier.com/#.17,.67,.83,.67) por Lea Verou é muito útil para explorar isso.
199
+
Você pode obter muitos efeitos únicos e fazer sua animação bem estilosa ajustando sua atenuação. O CSS lhe permite modificar isso ajustando uma propriedade bezier cúbica, [este playground](https://cubic-bezier.com/#.17,.67,.83,.67) por Lea Verou é muito útil para explorar isso.
203
200
204
-
Apesar de que você possa alcançar grandes efeitos de animações simples com os dois handles que a acentuação por bezier-cúbico oferece, Javascript permite múltiples handles, e portanto, permite muito mais variação.
201
+
Apesar de que você possa alcançar grandes efeitos para animações simples com as duas alças que a acentuação por bezier-cúbico oferece, Javascript permite múltiplas alças, e portanto, permite muito mais variação.
205
202
206
203

207
204
208
-
Tomemos um efeito de salto, por exemplo. Em CSS temos que declarar cada keyframe, para cima e para baixo. Em JavaScript, podemos expressar todo o movimento dentro da acentuação declarando `bounce` na [API GreenSock (GSAP)](https://greensock.com/)(outras bibliotecas JS têm outros tipos de padrões de acentuação).
205
+
Tomemos um efeito de salto, por exemplo. Em CSS temos que declarar cada keyframe, para cima e para baixo. Em JavaScript, podemos expressar todo o movimento dentro da acentuação declarando `bounce` na [API GreenSock (GSAP)](https://greensock.com/)(outras bibliotecas JS têm outros tipos de padrões de acentuação).
209
206
210
207
Aqui está o código usado para o salto em CSS (exemplo de animate.css):
211
208
212
209
```css
213
-
@keyframessaltoParaBaixo {
210
+
@keyframesbounceInDown {
214
211
from,
215
212
60%,
216
213
75%,
@@ -242,19 +239,20 @@ Aqui está o código usado para o salto em CSS (exemplo de animate.css):
Vamos usar o GreenSock para alguns dos exemplos nas seções seguintes. Eles têm um ótimo [visualizador de atenuação](https://greensock.com/ease-visualizer) que vai lhe permitir construir atenuações bem trabalhadas.
253
+
Vamos usar o GreenSock para alguns dos exemplos nas seções seguintes. Eles têm um ótimo [visualizador de atenuação](https://greensock.com/ease-visualizer) que vai lhe permitir construir atenuações bem trabalhadas.
256
254
257
-
## Leituras adicionais
255
+
## Leituras Adicionais
258
256
259
257
-[Designing Interface Animation: Improving the User Experience Through Animation by Val Head](https://www.amazon.com.br/dp/B01J4NKSZA)
260
258
-[Animation at Work by Rachel Nabors](https://abookapart.com/products/animation-at-work)
0 commit comments