4.0.2 • Published 1 year ago
@jrmoynihan/svelte-fa v4.0.2
svelte-fa
Tiny FontAwesome component for Svelte.
- FontAwesome version 5 and 6
- FontAwesome svg icons
- Tree-shakable, only import used icons
- No CSS file required
- FontAwesome layering
- FontAwesome duotone icons
Installation
npm install svelte-faInstall FontAwesome icons via official packages, for example:
npm install @fortawesome/free-solid-svg-icons
npm install @fortawesome/free-brands-svg-iconsIcons gallery: FontAwesome icons
Work with Sapper
You may need to install the component as a devDependency:
npm install svelte-fa -DWork with SvelteKit/Vite
You may need to import the component explicitly as below:
import Fa from 'svelte-fa/src/fa.svelte'
import { faCaretDown, faCaretUp } from '@fortawesome/free-solid-svg-icons/index.es'When using typescript with SvelteKit/Vite, you may also needed to add type definitions that redirect to the non-index.es export:
// app.d.ts
declare module '@fortawesome/pro-solid-svg-icons/index.es' {
export * from '@fortawesome/pro-solid-svg-icons';
}Usage
<script>
import Fa from 'svelte-fa'
import { faFlag } from '@fortawesome/free-solid-svg-icons'
import { faGithub } from '@fortawesome/free-brands-svg-icons';
</script>
<Fa icon={faFlag} />
<Fa icon={faGithub} />Fa Properties
<Fa
icon={faFlag}
size="2x"
color="#ff0000"
fw
pull="left"
scale={1.2}
translateX={0.2}
translateY={0.2}
rotate={90}
flip="horizontal"
spin
pulse
/>icon: icon from FontAwesome packages, for example:@fortawesome/free-solid-svg-icons, icons gallery: FontAwesome iconssize:stringvaluesxs,sm,lgor2x,3x,4x, ...,${number}xcolor:stringicon color, defaultcurrentColorfw:booleanfixed widthpull:stringvaluesleft,rightscale:number | stringtransform scale, unit isem, default1translateX:number | stringtransform position X, unit isem, default0translateY:number | stringtransform position Y, unit isem, default0flip:stringvalueshorizontal,vertical,bothrotate:number | stringvalues90,180,270,30,-30...spin:booleanspin iconspulse:booleanpulse spin icons
Layering & Text
import Fa, {
FaLayers,
FaLayersText,
} from 'svelte-fa';<FaLayers
size="4x"
pull="left"
>
<Fa icon={faCertificate} />
<FaLayersText
scale={0.25}
rotate={-30}
color="white"
style="font-weight: 900"
>
NEW
</FaLayersText>
</FaLayers>FaLayers Properties
size:stringvaluesxs,sm,lgor2x,3x,4x, ...,${number}xpull:stringvaluesleft,right
FaLayersText Properties
size:stringvaluesxs,sm,lgor2x,3x,4x, ...,${number}xcolor:stringicon color, defaultcurrentColorscale:number | stringtransform scale, unit isem, default1translateX:number | stringtransform position X, unit isem, default0translateY:number | stringtransform position Y, unit isem, default0flip:stringvalueshorizontal,vertical,bothrotate:number | stringvalues90,180,270,30,-30...
Duotone Icons
<script>
import Fa from 'svelte-fa'
import { faFlag } from '@fortawesome/pro-duotone-svg-icons'
</script>
<Fa
icon={faFlag}
primaryColor="red"
secondaryColor="#000000"
primaryOpacity={0.8}
secondaryOpacity={0.6}
swapOpacity
/>Duotone Icons Theme
<script>
import Fa from 'svelte-fa'
import { faFlag } from '@fortawesome/pro-duotone-svg-icons'
const theme = {
primaryColor: 'red',
secondaryColor: '#000000',
primaryOpacity: 0.8,
secondaryOpacity: 0.6,
}
</script>
<Fa
icon={faFlag}
{...theme}
/>