Files
angular-challenges/docs/src/components/MyIcon.astro

32 lines
639 B
Plaintext

---
import { Icons } from './icons';
interface Props {
name: keyof typeof Icons;
label?: string;
color?: string;
size?: string;
class?: string;
}
const { name, label, size = '1em', color } = Astro.props;
const a11yAttrs = label ? ({ 'aria-label': label } as const) : ({ 'aria-hidden': 'true' } as const);
---
<svg height="1em" viewBox="0 0 512 512"
{...a11yAttrs}
class={Astro.props.class}
fill="currentColor"
set:html={Icons[name]}
/>
<style define:vars={{ 'sl-icon-color': color, 'sl-icon-size': size }}>
svg {
color: var(--sl-icon-color);
font-size: var(--sl-icon-size, 1em);
width: 1em;
height: 1em;
}
</style>