-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 32f486b
Showing
466 changed files
with
1,903 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
.idea | ||
vendor | ||
composer.lock |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
# PHP Heroicons | ||
|
||
A package to render [Heroicons](https://github.com/tailwindlabs/heroicons) in your PHP application. | ||
|
||
Preview the icons at [heroicons.com](https://heroicons.com), developed by [Steve Schoger](https://twitter.com/steveschoger) and [Adam Wathan](https://twitter.com/adamwathan). | ||
|
||
## Installation | ||
|
||
### Composer (recommended) | ||
|
||
```shell | ||
composer require roelmagdaleno/php-heroicons | ||
``` | ||
|
||
### Manual | ||
|
||
[Download](https://github.com/roelmagdaleno/php-heroicons/zipball/master) this repo, or the [latest release](https://github.com/roelmagdaleno/php-heroicons/releases), and put it somewhere in your project. Then do: | ||
|
||
```php | ||
require_once __DIR__ . '/vendor/autoload.php'; | ||
``` | ||
|
||
## Usage | ||
|
||
You can render a Heroicon using multiple ways: | ||
|
||
### Helper | ||
|
||
Return the SVG by using the `heroicon()` helper function: | ||
|
||
```php | ||
$text = heroicon('check-circle', ['width' => 60]); | ||
echo "<p>My icon is: $text</p>"; | ||
``` | ||
|
||
Print the SVG directly: | ||
|
||
```php | ||
echo heroicon('check-circle', ['width' => 60]); | ||
``` | ||
|
||
### Constructor | ||
|
||
Instantiate an `Icon` class with parameters and print it directly: | ||
|
||
```php | ||
use PHPHeroIcons\Icon; | ||
|
||
echo new Icon('check-circle', ['width' => 60]); | ||
``` | ||
|
||
Instantiate an `Icon` class with parameters and call the `render()` method. | ||
|
||
```php | ||
use PHPHeroIcons\Icon; | ||
|
||
$icon = new Icon('academic-cap', ['width' => 60]); | ||
$icon->render(); | ||
``` | ||
|
||
Instantiate an `Icon` class with parameters and call the `return()` method. | ||
|
||
```php | ||
use PHPHeroIcons\Icon; | ||
|
||
$icon = new Icon('academic-cap', ['width' => 60]); | ||
$text = $icon->return(); | ||
|
||
echo "<p>My icon is: $text</p>"; | ||
``` | ||
|
||
### Render Method | ||
|
||
If you want to render multiples icons and only use one `Icon` instance: | ||
|
||
```php | ||
use PHPHeroIcons\Icon; | ||
|
||
$icon = new Icon(); | ||
|
||
$icon->render('check-circle', ['width' => 60]); | ||
$icon->render('academic-cap', ['width' => 60]); | ||
$icon->render('library', ['width' => 60]); | ||
``` | ||
|
||
### Return Method | ||
|
||
If you want to return multiples icons and only use one `Icon` instance: | ||
|
||
```php | ||
use PHPHeroIcons\Icon; | ||
|
||
$icon = new Icon(); | ||
|
||
$first = $icon->return('check-circle', ['width' => 60]); | ||
$second = $icon->return('academic-cap', ['width' => 60]); | ||
$third = $icon->return('library', ['width' => 60]); | ||
|
||
echo "My first icon is: $first then use the $second and $third"; | ||
``` | ||
|
||
## Parameters | ||
|
||
The `Icon` constructor, `heroicon()`, `render()` and `return()` methods accepts these attributes in this order: | ||
|
||
- $icon | ||
- $attributes | ||
- $type | ||
|
||
Example: | ||
|
||
```php | ||
heroicon($icon, $attributes, $type); | ||
``` | ||
|
||
The `$icon` accepts any [Heroicon](https://heroicons.com) slug and if you insert an icon that doesn't exist it won't return anything. | ||
|
||
For `$attributes` (optional) you can pass only these attributes as array key/value format: | ||
|
||
- `width` | ||
- `height` | ||
- `class` | ||
- `id` | ||
|
||
If you pass an attribute that is not listed previously it won't be attached to the SVG HTML. | ||
|
||
And last, but not least, you can specify the Heroicon `$type`: | ||
|
||
- `solid` | ||
- `outline` | ||
|
||
By default the icons will be printed in `solid` type. | ||
|
||
Example: | ||
|
||
```php | ||
heroicon( | ||
'library', | ||
[ | ||
'width' => 60, | ||
'height' => 60, | ||
'class' => 'my-custom-css-class', | ||
'id' => 'my-custom-id', | ||
] | ||
); // Print solid icon with multiple attributes. | ||
|
||
heroicon( | ||
'check-circle', | ||
[ | ||
'width' => 60, | ||
'height' => 60, | ||
'class' => 'my-custom-css-class', | ||
'id' => 'my-custom-id', | ||
], | ||
'outline' | ||
); // Print outline icon with multiple attributes. | ||
``` | ||
|
||
## Examples | ||
|
||
For more usage examples visit the `examples/index.php` file. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"name": "roelmagdaleno/php-heroicons", | ||
"description": "Render Heroicons from PHP.", | ||
"keywords": ["Icons", "Heroicons", "PHP"], | ||
"version": "1.0.0", | ||
"license": "MIT", | ||
"authors": [ | ||
{ | ||
"name": "Roel Magdaleno", | ||
"homepage": "https://roelmagdaleno.com", | ||
"email": "roelmagdaleno@gmail.com" | ||
} | ||
], | ||
"require": { | ||
"php": "^7.2", | ||
"meyfa/php-svg": "^0.11.2" | ||
}, | ||
"autoload": { | ||
"psr-4": { | ||
"PHPHeroIcons\\": "src/" | ||
}, | ||
"files": [ | ||
"src/Helpers.php" | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
<?php | ||
|
||
require_once '../vendor/autoload.php'; | ||
|
||
use PHPHeroIcons\Icon; | ||
|
||
$icon = new Icon(); | ||
|
||
echo '<h2>Solid Icons</h2>'; | ||
|
||
$icon->render('check-circle', ['width' => 60]); | ||
$icon->render('academic-cap', ['width' => 60]); | ||
$icon->render('library', [ | ||
'width' => 60, | ||
'height' => 60, | ||
'class' => 'my-custom-css-class', | ||
'id' => 'my-custom-id', | ||
]); | ||
|
||
echo '<br>'; | ||
echo '<h2>Outline Icons</h2>'; | ||
|
||
$icon->render('check-circle', ['width' => 60], 'outline'); | ||
$icon->render('academic-cap', ['width' => 60], 'outline'); | ||
$icon->render('library', ['width' => 60], 'outline'); | ||
|
||
echo '<br>'; | ||
echo '<h2>Render using helper function</h2>'; | ||
|
||
echo heroicon('check-circle', ['width' => 60]); | ||
echo heroicon('academic-cap', ['width' => 60]); | ||
echo heroicon('library', ['width' => 60]); | ||
|
||
echo '<br>'; | ||
echo '<h2>Render icon from constructor</h2>'; | ||
|
||
echo new Icon('check-circle', ['width' => 60]); | ||
|
||
$new_icon = new Icon('academic-cap', ['width' => 60]); | ||
$new_icon->render(); | ||
|
||
$new_icon_two = new Icon('library', ['width' => 60]); | ||
echo $new_icon_two->return(); | ||
|
||
echo '<br>'; | ||
echo '<h2>Render icon from return method</h2>'; | ||
|
||
$icon = new Icon(); | ||
|
||
$first = $icon->return('check-circle', ['width' => 60]); | ||
$second = $icon->return('academic-cap', ['width' => 60]); | ||
$third = $icon->return('library', ['width' => 60]); | ||
|
||
echo "My first icon is: $first then use the $second and $third"; |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.