Skip to content

ptcs-icon

Overview

A ptcs-icon displays an icon. The icon can either be part of an SVG icon set or a separate icon file.

Using property size you have 4 predefined icon sizes available, with the size set via theming: | name | size (height and width are equal)| |-------|----| |small|icon size 18px + 8px padding on all sides = 34px | |medium|icon size 22px + 8px padding on all sides = 38px | |large|icon size 60px + 8px padding on all sides = 76px | |xlarge|icon size 80px + 8px padding on all sides = 96px |

The default size is small.

The value custom has no padding in theming with CSS height and width set to 100%.

As an alternative to using property size, the size can be controlled directly via CSS styling.

Usage Examples

Icon in a separate file

<ptcs-icon icon="icon.svg"></ptcs-icon>

Icon referenced via url

<ptcs-icon
  icon="https://upload.wikimedia.org/wikipedia/commons/3/3a/Tux_Mono.svg"
  size="xlarge"
></ptcs-icon>

Icon with 'small' size

<ptcs-image size="small" icon="icon.svg"></ptcs-image>

Three icons, from the same icon set, with screen reader labels

<ptcs-image icon-set="my-icons.svg" icon="play" alt="start video"></ptcs-image>
<ptcs-image icon-set="my-icons.svg" icon="pause" alt="pause video"></ptcs-image>
<ptcs-image
  icon-set="my-icons.svg"
  icon="next"
  alt="skip to next video"
></ptcs-image>

Icons do not respond to user interaction, they are non-interactive.

Inline SVG icons (such as from an icon set) can by styled via CSS, so by applying a fill color one could e.g. grey out a disabled icon.

ptcs-icon[disabled] { /* ONLY inline SVG can be styled */ fill: #adb5bd; }

SVG icons referenced as a file / url cannot have their styling overridden in same way as the SVG is not inline.

Component API

Properties

Property Type Description
alt String A descriptive text of the icon, intended for screen readers / assistive technologies
icon String If iconSet is unspecified, icon specifies a separate icon file. If iconSet is specified, icon specifies an icon in that icon set
iconSet String A URL to an icon set from which icon selects an icon (see below for details about the icon set format)
size String The size of the image: small | medium | large | xlarge | custom
preventCaching Boolean Appends a timestamp suffix to the icon url to prevent the browser from caching the icon, forcing a fresh reload
placeholder Boolean If icon is empty a placeholder image will use used instead when placeholder is set to true
iconWidth String Sets a fixed width for the icon
iconHeight String Sets a fixed height for the icon

Events

No events

Methods

No methods

Icon set file format

The icon set is based on SVG with each icon identified via id attribute. This is a common format that many SVG sprite tools generate natively.

Example icon set:

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <g id="add-location"><path d="M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm4 8h-3v3h-2v-3H8V8h3V5h2v3h3v2z"></path></g>
    <g id="beenhere"><path d="M19 1H5c-1.1 0-1.99.9-1.99 2L3 15.93c0 .69.35 1.3.88 1.66L12 23l8.11-5.41c.53-.36.88-.97.88-1.66L21 3c0-1.1-.9-2-2-2zm-9 15l-5-5 1.41-1.41L10 13.17l7.59-7.59L19 7l-9 9z"></path></g>
    <g id="directions"><path d="M21.71 11.29l-9-9c-.39-.39-1.02-.39-1.41 0l-9 9c-.39.39-.39 1.02 0 1.41l9 9c.39.39 1.02.39 1.41 0l9-9c.39-.38.39-1.01 0-1.41zM14 14.5V12h-4v3H8v-4c0-.55.45-1 1-1h5V7.5l3.5 3.5-3.5 3.5z"></path></g>
   ...
  </defs>
</svg>

Styling

Parts

Part Description
image The icon container

State attributes

Attribute Description Part
prevent-caching Should the icon always be reloaded afresh? :host
placeholder Use a default icon when the icon property is unassigned? :host