1.0.1 • Published 1 year ago

@luego/nunjucks-luego-image-extension v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

Luego Image {% img %}

É um auxílio para criar <img>, a partir de uma imagem de origem, é possível convertê-la em qualidade, tamanho, proporção e formato.

Instalação

Caso esteja usando um boilerplate mais antigo, é possível adicionar essa funcionalidade usando o comando: \ PS: Na versão mais atual já consta essa funcionalidade

# NPM
npm i nunjucks-luego-image-extension

# Yarn
yarn add nunjucks-luego-image-extension

Como usar

PS: A pasta root das imagens continua sendo /assets/images/ *

# Versão abreviada
{% img 'imagem.jpg' %}

# Versão completa
{% img src='imagem.jpg' %}

Resultado

<picture class="wrap-img-imagem-G4352">
    <img
      src="assets/images/exported/placeholder/imagem-G4352.svg"
      alt=""
      class="img-imagem-G4352"
      data-src="assets/images/exported/imagem-G4352.webp"
      loading="lazy"
      height="1280"
      width="1920"
      style="">
</picture>

Observações importantes

  • Imagens acima de 1920px de largura serão exportadas para 1920px caso queira uma imagem maior, informe com o atributo width.
  • Recomendamos fortemente o atributo alt SEMPRE.
  • A extensão padrão de expotação é webp
  • A partir da imagem original é criado um svg como placeholder

Atributos

AtributoTipoDefaultDescription
srcstring- Obrigatório informar -Primeiro parâmetro, src= é opcional
widthnumberTamanho original (max 1920px)Somente width mantém o aspect ratio
heightnumberTamanho original (max 1080px)Somente height mantém o aspect ratio
fitstringcoverOpções: cover / contain / fill / inside / outside
ratiostringproporção originalProporção width/height
qualitynumber85De 1 - 100
formatstringwebpOpções: jpg / webp / png / gif
loadingstringlazyOpções: lazy / eager
classstring'img-' + uniqueId + nome do arquivo-
sourceobjectnullAtributos abaixo:
Width
# Sem o height, manterá o aspect ratio original
{% img 'imagem.jpg', width=500 %}
Height
# Sem o width, manterá o aspect ratio original
{% img 'imagem.jpg', height=500 %}

# Caso seja passado ambos os atributos, será considerado o atributo FIT (defaut: cover)
{% img 'imagem.jpg', height=500, width=500 %}
Fit
# Opções: cover / contain / fill / inside / outside
{% img 'imagem.jpg', height=500, width=400, fit='contain' %}
Ratio
# Para portrait o valor tem que ser menor que 1 Ex:
{% img 'imagem.jpg', ratio=0.7 %}

# Para landscape o valor tem que ser maior que 1 Ex:
{% img 'imagem.jpg', ratio=1.5 %}
Quality
# de 1 a 100 PS: em webp a compressão é muito eficiente
{% img 'imagem.jpg', quality=80 %}
Format
# Opções: jpg / webp / png / gif
{% img 'imagem.jpg', format='png' %}
Loading
# Opções: Opções: lazy / eager (carregamento natural)
{% img 'imagem.jpg', loading='eager' %}
Class
# Substitui a classe da img e o picture
{% img 'imagem.jpg', class='hero-item' %}
Source (saiba mais)

Uma imagem com a função de substituir a imagem "padrão", ela pode ser configurada como os media queries que já são utilizados em css, por exemplo, min-width, ou max-width.

Atributos Source

AtributoTipoDefaultDescription
breakpointstring(max-width: 768px)Media queries
widthnumber500Somente width mantém o aspect ratio
heightnumbermantém a proporção originalSomente height mantém o aspect ratio
# O padrão é (max-width: 768px) ou seja, mobile, mas pode ser alterado
{% img 'imagem.jpg', source={breakpoint: '(max-width: 1024px)', width: 500, height: 500} %}