6 Commits
0.1.1 ... main

Author SHA1 Message Date
f3ec9c7d4b Update README.md 2024-08-05 15:26:14 +00:00
c1ac0faf78 Update readme 2023-06-27 11:41:57 +01:00
1d91b50c32 Set is_safe html to true 2023-06-27 11:33:38 +01:00
9248b51908 Try explicitly loading arguments 2023-06-27 11:30:19 +01:00
0e2ee19f8f Adjust config 2023-06-27 11:13:29 +01:00
6e357ee8b7 Adjust config 2023-06-27 10:56:06 +01:00
4 changed files with 22 additions and 22 deletions

View File

@@ -1,3 +1,5 @@
# DEPRECATED in favour of Symfony UX Icon
# PCM Icon Bundle
Use icons inside of Twig templates with ease! Project must be using Tailwind for the colours to work properly.
@@ -33,11 +35,12 @@ pcm_icon:
fill-group-hover: 'group-hover:fill-red-800'
stroke-group-hover: 'group-hover:stroke-red-800'
```
# @TODO default options
`default` - Override the default options provided to the bundle.
`directories` - Which directories to look in for icons.
`colours` - Custom colours to use when colouring icons. Because this extension relies on Tailwind classes for colouring we must specify all the classes. This is a bit awkward, but you can just copy this template replacing COLOUR as appropriate:
`colours` - Custom colours to use when colouring icons. Because this extension relies on Tailwind classes for colouring we **must** explicitly list all the classes required for Tailwind to render them properly. You can just copy this template replacing COLOUR as appropriate:
```yaml
COLOUR:
@@ -51,22 +54,13 @@ COLOUR:
## Options
`icon (string)` **(REQUIRED)** Icon to use, without the `.svg` extension
`icon (string)` **(REQUIRED)** Icon to use, without the `.svg` extension.
`title (string)` Optional text to show on hover
`title (string)` Optional text to show on hover. This can be null, but not an empty string.
`size (int)` Size of the icon in pixels
`size (int)` Size of the icon in pixels.
`colour (string)` Name of the colour to use. Defaults to `primary` as it assumes you have a Tailwind colour set up called `primary`. If however you are not using `primary` to set a Tailwind primary colour in your project, you can instead set the default colour of the icon by changing what colour classes the primary colour uses. EG:
```yaml
primary:
fill: 'fill-purple-700'
stroke: 'stroke-purple-700'
fill-hover: 'hover:fill-purple-700'
stroke-hover: 'hover:stroke-purple-700'
fill-group-hover: 'group-hover:fill-purple-700'
stroke-group-hover: 'group-hover:stroke-purple-700'
```
`colour (string)` Name of the colour to use. Defaults to `primary` as it assumes you have a Tailwind colour set up called `primary`. If you are not using `primary` to set a Tailwind primary colour in your project you can change the default colour in the `pcm_icon.yaml` file.
`hover (string)` Name of the colour to use when the icon is hovered over

View File

@@ -7,6 +7,14 @@ services:
public: true
class: Pcm\IconBundle\Twig\Extension\IconExtension
Pcm\IconBundle\Twig\Functions\IconExtension:
Pcm\IconBundle\Twig\Extension\IconExtension:
public: false
alias: pcm_icon.icon_extension
Pcm\IconBundle\Twig\Runtime\IconRuntime:
tags:
- { name: twig.runtime }
arguments:
$defaultOptions: '%pcm.icon_bundle.default_options%'
$directories: '%pcm.icon_bundle.directories%'
$colours: '%pcm.icon_bundle.colours%'

View File

@@ -23,10 +23,8 @@ class PcmIconExtension extends Extension
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$definition = $container->getDefinition('pcm_icon.icon_extension');
$definition->addArgument($config['default']);
$definition->addArgument($config['directories']);
$definition->addArgument($config['colours']);
$container->setParameter('pcm.icon_bundle.default_options', $config['default']);
$container->setParameter('pcm.icon_bundle.directories', $config['directories']);
$container->setParameter('pcm.icon_bundle.colours', $config['colours']);
}
}

View File

@@ -16,7 +16,7 @@ final class IconExtension extends AbstractExtension
public function getFunctions(): array
{
return [
new TwigFunction('pcm_icon', [IconRuntime::class, 'renderIcon'])
new TwigFunction('pcm_icon', [IconRuntime::class, 'renderIcon'], ['is_safe' => ['html']])
];
}
}