+++ title = "Image Shortcodes" description = "Images can be embedded directly using markdown `![Ferris](ferris.svg)`, but using a shortcode prevents CLS by explicitly setting the width and height." date = 2021-05-19 draft = false [taxonomies] categories = ["Features"] tags = ["shortcodes","images"] [extra] toc = true keywords = "Image, Markdown, Shortcodes, Swap" thumbnail = "ferris-gesture.png" +++ This post covers the **imgswap and img shortcodes**. Images can also be embedded directly using markdown `![Ferris](ferris.svg)`, but it is better to use a shortcode so you can explicitly set the width and height, this will help prevent content layout shift which improves user experience and the google lighthouse score. # img Shortcode - src is the path and filename of the image. (mandatory) - class sets a class for the image. (optional) - alt sets the alt note for the image. (recommended for google lighthouse) - w is the width of the image. (recommended for google lighthouse) - h is the height of the image. (recommended for google lighthouse) ## Usage (same path) ```rs {{/* img(src="ferris-happy.svg" alt="Ferris is Happy" w=600 h=400) */}} ``` **Output** ```html {{ img(src="ferris-happy.svg" alt="Ferris is Happy" w=600 h=400) }} ``` {{ img(src="ferris-happy.svg" alt="Ferris is Happy" w=600 h=400) }} ## Usage (relative path ./) ```rs {{/* img(src="./img/ferris-gesture.svg" alt="Ferris says Hello" w=600 h=400) */}} ``` **Output** ```html {{ img(src="./img/ferris-gesture.svg" alt="Ferris says Hello" w=600 h=400) }} ``` {{ img(src="./img/ferris-gesture.svg" alt="Ferris says Hello" w=600 h=400) }} ## Usage (root path /) ```rs {{/* img(src="/overview-rich-content/ferris.svg" alt="Ferris the Rustacean" w=600 h=400) */}} ``` **Output** ```html {{ img(src="/overview-rich-content/ferris.svg" alt="Ferris the Rustacean" w=600 h=400) }} ``` {{ img(src="/overview-rich-content/ferris.svg" alt="Ferris the Rustacean" w=600 h=400) }} # SVG image directly in code: ```html ``` # imgswap Shortcode By default main_src is the image displayed, swap_src is displayed on mouse hover. When you hover your mouse over the image it will display the image to compare. - main_src is the path and filename for the default image. (mandatory) - swap_src is the path and filename for the swap image. (mandatory) - w is the width of the image. - h is the height of the image. ## Usage (same path) ```rs {{/* imgswap(main_src="ferris.svg" swap_src="ferris-happy.svg" w=600 h=400) */}} ``` **Output** ```html {{ imgswap(main_src="ferris.svg" swap_src="ferris-happy.svg" w=600 h=400) }} ``` {{ imgswap(main_src="ferris.svg" swap_src="ferris-happy.svg" w=600 h=400) }} ## Usage (relative path ./) ```rs {{/* imgswap(main_src="./img/ferris.svg" swap_src="./img/ferris-gesture.svg" w=600 h=400) */}} ``` **Output** ```html {{ imgswap(main_src="./img/ferris.svg" swap_src="./img/ferris-gesture.svg" w=600 h=400) }} ``` {{ imgswap(main_src="./img/ferris.svg" swap_src="./img/ferris-gesture.svg" w=600 h=400) }} ## Usage (root path /) ```rs {{/* imgswap(main_src="/overview-rich-content/ferris.svg" swap_src="/overview-rich-content/ferris-gesture.svg" w=600 h=400) */}} ``` **Output** ```html {{ imgswap(main_src="/overview-rich-content/ferris.svg" swap_src="/overview-rich-content/ferris-gesture.svg" w=600 h=400) }} ``` {{ imgswap(main_src="/overview-rich-content/ferris.svg" swap_src="/overview-rich-content/ferris-gesture.svg" w=600 h=400) }}