-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
134 lines (130 loc) · 4.25 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import styles from '../styles.module.css'
import Image from 'next/image'
import Link from 'next/link'
import ViewSource from '../components/view-source'
import vercel from '../public/vercel.png'
const Code = (p) => <code className={styles.inlineCode} {...p} />
const Index = () => (
<div className={styles.container}>
<ViewSource pathname="pages/index.js" />
<div className={styles.card}>
<h1>Componente Image com Next.js</h1>
<p>
Esta página demonstra o uso do componente{' '}
<a href="https://nextjs.org/docs/api-reference/next/image">
next/image
</a>{' '}
com exemplos ao vivo.
</p>
<p>
Este componente é projetado para{' '}
<a href="https://nextjs.org/docs/basic-features/image-optimization">
otimizar automaticamente
</a>{' '}
as imagens sob demanda conforme o navegador as solicita.
</p>
<hr className={styles.hr} />
<h2 id="layout">Layout</h2>
<p>
A propriedade <Code>layout</Code> diz à imagem para responder de forma diferente dependendo do tamanho do dispositivo ou do tamanho do container.
</p>
<p>
Selecione um layout abaixo e tente redimensionar a janela ou girar seu dispositivo para ver como a imagem reage.
</p>
<ul>
<li>
<Link href="/layout-intrinsic">
<a>layout="intrinsic"</a>
</Link>
</li>
<li>
<Link href="/layout-responsive">
<a>layout="responsive"</a>
</Link>
</li>
<li>
<Link href="/layout-fixed">
<a>layout="fixed"</a>
</Link>
</li>
<li>
<Link href="/layout-fill">
<a>layout="fill"</a>
</Link>
</li>
<li>
<Link href="/background">
<a>background demo</a>
</Link>
</li>
</ul>
<hr className={styles.hr} />
<h2 id="placeholder">Placeholder</h2>
<p>
A propriedade <Code>placeholder</Code> informa à imagem o que fazer durante o carregamento.
</p>
<p>
Opcionalmente, você pode ativar um placeholder desfocado enquanto a imagem de alta resolução é carregada.
</p>
<p>
Experimente abaixo (talvez seja necessário desabilitar o cache nas ferramentas de desenvolvimento para ver o efeito caso você ja visite o link):
</p>
<ul>
<li>
<Link href="/placeholder">
<a>placeholder="blur"</a>
</Link>
</li>
<li>
<Link href="/shimmer">
<a>placeholder="blur" com brilho animado blurDataURL</a>
</Link>
</li>
<li>
<Link href="/color">
<a>placeholder="blur" com cor sólida blurDataURL</a>
</Link>
</li>
</ul>
<hr className={styles.hr} />
<h2 id="internal">Imagem interna</h2>
<p>
Veja a seguir um exemplo de referência a uma imagem interna do diretório{' '}
<Code>public</Code>.
</p>
<p>
Esta imagem é intencionalmente grande, então você precisa rolar para baixo até a próxima imagem.
</p>
<Image alt="Vercel logo" src={vercel} width={1000} height={1000} />
<hr className={styles.hr} />
<h2 id="external">Imagem externa</h2>
<p>
Veja a seguir um exemplo de referência a uma imagem externa disponível em{' '}
<Code>assets.vercel.com</Code>.
</p>
<p>
Os domínios externos devem ser configurados no arquivo <Code>next.config.js</Code> utilizando
a propriedade <Code>domains</Code>.
</p>
<Image
alt="Next.js logo"
src="https://assets.vercel.com/image/upload/v1538361091/repositories/next-js/next-js-bg.png"
width={1200}
height={400}
/>
<hr className={styles.hr} />
<h2 id="more">Saiba mais</h2>
<p>
Opcionalmente, você pode configurar um provedor de nuvem, tamanhos de dispositivos e muito mais!
</p>
<p>
Confira a {' '}
<a href="https://nextjs.org/docs/basic-features/image-optimization">
documentação oficial do componente Image
</a>{' '}
para aprender mais.
</p>
</div>
</div>
)
export default Index