Skip to content
/ icons Public

Icons loader for web-apps.

License

Notifications You must be signed in to change notification settings

inteve/icons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inteve\Icons

Build Status Downloads this Month Latest Stable Version License

Icons loader for web-apps.

Donate

Installation

Download a latest package or use Composer:

composer require inteve/icons

Inteve\Icons requires PHP 8.0 or later.

Usage

This library is implementation of PHIG's HtmlIcons interface.

InlineSvgIcons

$icons = new \Inteve\Icons\InlineSvgIcons($iconsDirectory);
echo $icons->get('my-icon'); // finds file "$iconsDirectory/my-icon.svg", prints <svg ...>...</svg>

ImgIcons

$icons = new \Inteve\Icons\ImgIcons($publicUrlPath, $fileExtension, $htmlClass = 'icon');
echo $icons->get('my-icon'); // prints <img src="/path/to/my-icon.ext" class="icon" alt="">
echo $icons->get('my-icon@small'); // prints <img src="/path/to/my-icon.ext" class="icon icon--small" alt="">

InlineStyleIcons

$icons = new \Inteve\Icons\InlineStyleIcons($publicUrlPath, $fileExtension, $htmlClass = 'icon', $tagName = 'i');
echo $icons->get('my-icon'); // prints <i class="icon" style="background-image:url(/path/to/my-icon.ext)"></i>
echo $icons->get('my-icon@small'); // prints <i class="icon icon--small" style="background-image:url(/path/to/my-icon.ext)"></i>

WrappedIcons

$svgIcons = new \Inteve\Icons\InlineSvgIcons($iconsDirectory);
$icons = new \Inteve\Icons\WrappedIcons($svgIcons, $className = 'icon', $tagName = 'i');
echo $icons->get('my-icon'); // prints <i class="icon"><svg ...>...</svg></i>
echo $icons->get('my-icon@small'); // prints <i class="icon icon-small"><svg ...>...</svg></i>

PrefixedIcons

$icons = new \Inteve\Icons\PrefixedIcons(
	icons: [
		'legacy' => new ImgIcons($publicUrlPath, $fileExtension),
		'bootstrap' => new \Inteve\Icons\InlineSvgIcons($bootstrapIconsDirectory),
	],
	defaultIcons: new \Inteve\Icons\InlineSvgIcons($iconsDirectory)
);
echo $icons->get('my-icon'); // prints <svg ...>...</svg>
echo $icons->get('legacy/my-icon'); // prints <img src="/path/to/my-icon.ext" class="icon" alt="">
echo $icons->get('bootstrap/my-icon'); // prints <svg ...>...</svg>

License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/

About

Icons loader for web-apps.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project