BroFox86
9/18/2017 - 11:53 AM

[Responsive image] html5 responsive image mixin #pug #mixin #html5

[Responsive image mixin] #HTML5 responsive image #mixin through #Pug

///////////////////////////////////////////////////////////////////////////////////////
// Mixin
///////////////////////////////////////////////////////////////////////////////////////

mixin respImage

    - var src1 = src + " " + size + "w"
    - var src2 = src.replace(/(\.[\w\d_-]+)$/i, "@large$1") + " " + size * 1.5 + "w"
    - var src3 = src.replace(/(\.[\w\d_-]+)$/i, "@huge$1") + " " + size * 2 + "w"

    img(class  = imgClass
        srcset = src1 + ", " + src2 + ", " + src3
        sizes  = sizes
        src    = src
        alt    = alt)

///////////////////////////////////////////////////////////////////////////////////////
// Call
///////////////////////////////////////////////////////////////////////////////////////

- imgClass = "section__image"
- src      = "images/picture.png"
- size     = 300
- sizes    = size / 16 + "em"
- alt      = "Image description"

+respImage

///////////////////////////////////////////////////////////////////////////////////////
// Output
///////////////////////////////////////////////////////////////////////////////////////

<img class="section__image" srcset="images/picture.png 300w, images/picture@large.png 450w, images/picture@huge.png 600w" sizes="18.75em" src="images/picture.png" alt="Image description"/>