Webfont distribution for Material Design Icons providing CSS and SCSS integration for thousands of icons.
npx @tessl/cli install tessl/npm-mdi--font@7.4.0Material Design Icons Font (@mdi/font) is a comprehensive webfont distribution containing 7,448 Material Design icons from both Stock and Community collections. It provides both CSS and SCSS integration for web applications, offering icons through CSS classes with support for themes, sizing, transformations, and animations.
npm install @mdi/font@import url('~@mdi/font/css/materialdesignicons.css');Or via HTML link:
<link rel="stylesheet" href="node_modules/@mdi/font/css/materialdesignicons.css">@import '~@mdi/font/scss/materialdesignicons';With custom configuration:
$mdi-font-path: './assets/fonts';
$mdi-css-prefix: icon;
@import '~@mdi/font/scss/materialdesignicons';<!-- Basic icon usage -->
<i class="mdi mdi-account"></i>
<i class="mdi mdi-home"></i>
<i class="mdi mdi-settings"></i>
<!-- Sized icons -->
<i class="mdi mdi-account mdi-18px"></i>
<i class="mdi mdi-home mdi-24px"></i>
<i class="mdi mdi-settings mdi-36px"></i>
<!-- Themed icons -->
<i class="mdi mdi-account mdi-dark"></i>
<i class="mdi mdi-home mdi-light"></i>
<!-- Transformed icons -->
<i class="mdi mdi-account mdi-rotate-90"></i>
<i class="mdi mdi-refresh mdi-spin"></i>Material Design Icons Font is built around several key components:
.mdi-{icon-name} patternDirect CSS class-based icon integration for HTML elements. Provides immediate access to all Material Design icons through predefined CSS classes.
/* Base icon class required for all icons */
.mdi {
display: inline-block;
font-family: "Material Design Icons";
font-size: 24px;
/* Additional font smoothing and rendering properties */
}
/* Individual icon classes (7,448 available) */
.mdi-account::before { content: "\\F0004"; }
.mdi-home::before { content: "\\F02DC"; }
.mdi-settings::before { content: "\\F0493"; }
/* ... thousands more icons */SCSS variables, functions, and mixins for programmatic icon usage and customization. Enables build-time configuration and dynamic icon generation.
// Configuration variables
$mdi-font-path: "../fonts" !default;
$mdi-font-size-base: 24px !default;
$mdi-css-prefix: mdi !default;
// Icon lookup function
@function mdi($name: string) : string;
// Icon definitions map (7,448 entries)
$mdi-icons: (
"account": F0004,
"home": F02DC,
"settings": F0493,
// ... thousands more
) !default;Built-in utility classes for styling, sizing, rotating, flipping, and animating icons. Provides consistent theming and visual effects across all icons.
/* Size classes */
.mdi-18px, .mdi-24px, .mdi-36px, .mdi-48px { /* size styling */ }
/* Theme classes */
.mdi-dark { color: rgba(0, 0, 0, 0.54); }
.mdi-light { color: rgba(255, 255, 255, 1); }
/* Rotation classes */
.mdi-rotate-45, .mdi-rotate-90, .mdi-rotate-135, .mdi-rotate-180,
.mdi-rotate-225, .mdi-rotate-270, .mdi-rotate-315 { /* rotation transforms */ }
/* Flip classes */
.mdi-flip-h, .mdi-flip-v { /* flip transforms */ }
/* Animation classes */
.mdi-spin { /* 2s infinite rotation animation */ }// SCSS Variable Types (for TypeScript projects using SCSS)
type MDIIconName = string; // Any of 7,448 icon names like "account", "home", etc.
type MDISize = "18px" | "24px" | "36px" | "48px";
type MDIRotation = "45" | "90" | "135" | "180" | "225" | "270" | "315";
type MDITheme = "dark" | "light";
type MDITransform = "flip-h" | "flip-v";
type MDIAnimation = "spin";
// SCSS Configuration Interface
interface MDIConfig {
fontPath?: string; // Path to font files, default: "../fonts"
fontSize?: string; // Base font size, default: "24px"
cssPrefix?: string; // CSS class prefix, default: "mdi"
version?: string; // Package version, default: "7.4.47"
}