{icon} writes an icon from PAD's own set (tags/_lib/icon.php): 79 interface symbols drawn on a 24 by 24 grid as lines, circles and rectangles, written as inline SVG - no icon font, no sprite file, no request. The icon is drawn with stroke="currentColor", round caps and joins and no fill, so it takes the colour of the text around it and scales with size.

Without label the icon is decoration - aria-hidden="true" and focusable="false" - right for an icon beside the text it goes with, like {icon 'trash'} Delete. An icon that stands alone in a button or a link needs label: it then becomes role="img" with that name, so a screen reader says what the button does.

Each icon has the classes pad-icon pad-icon-<name> for styling; stroke makes the lines lighter or heavier. No name, or a name not in the set, is an error under the strict check that names the icons close to it (did you mean arrow-left?). padIconNames () answers the whole list to PHP. For a picture character in text see {emoji}.