feat: optimize Material Symbols

This commit is contained in:
Michael Zetterberg
2025-04-06 05:41:34 +02:00
parent 1239f0c662
commit f31b374370
13 changed files with 343 additions and 22 deletions

View File

@@ -8,29 +8,17 @@ import { iconVariants } from '../variants'
import type { VariantProps } from 'class-variance-authority'
export interface MaterialIconProps
extends Omit<MaterialSymbolProps, 'color' | 'fill'>,
extends Pick<MaterialSymbolProps, 'size' | 'icon' | 'className' | 'style'>,
VariantProps<typeof iconVariants> {
isFilled?: boolean
}
export type MaterialIconSetIconProps = Omit<MaterialIconProps, 'icon'>
export function MaterialIcon({
icon,
color,
size = 24,
isFilled = false,
className,
isFilled = false,
...props
}: MaterialIconProps) {
const classNames = iconVariants({ className, color })
return (
<MaterialSymbol
icon={icon}
size={size}
className={classNames}
fill={isFilled}
{...props}
/>
)
return <MaterialSymbol className={classNames} {...props} fill={isFilled} />
}

View File

@@ -263,3 +263,32 @@
src: url(/_static/fonts/canela-deck/CanelaDeck-ThinItalic.otf)
format('opentype');
}
@font-face {
font-family: 'Material Symbols Rounded';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(/_static/fonts/material-symbols/rounded-eaec15a9.woff2)
format('woff2');
}
.material-symbols {
font-family: 'Material Symbols Rounded';
font-weight: normal;
font-style: normal;
font-size: inherit;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
user-select: none;
font-feature-settings: 'liga';
-webkit-font-feature-settings: 'liga';
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
-moz-osx-font-smoothing: grayscale;
}