Jacobs63/vue3-tabs-component

Is it possible to show FontAwesome icons in tab titles?

Closed this issue · 2 comments

I tried <tab name="Kitchen" prefix="<font-awesome-icon icon='fa-duotone fa-cauldron' />"> but that did nothing (FontAwesome as such is installed and works at other places in the body)

Hello,

I've been giving this quite a bit of thought - the v-html directive, which is used for rendering the title, does not support rendering components.

The only way this is possible is to pass a native HTML element to the prefix or postfix, in this case perhaps an SVG as a prop:

<Tabs>
  <Tab name="Kitchen" prefix="<svg class='svg-inline--fa fa-house' aria-hidden='true' focusable='false' data-prefix='fas' data-icon='house' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'><path class='' fill='currentColor' d='M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z'></path></svg> ">
  </Tab>
</Tabs>

I understand this solution might not be ideal, however as far as I am aware, Vue 3 does not support rendering components programatically.

Thanks - that's at least a way forward which makes it achievable (with a bit of hacking) 👍