Webfont distribution for Material Design Icons providing CSS and SCSS integration for thousands of icons.
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Direct CSS class-based icon integration for HTML elements, providing immediate access to all Material Design icons through predefined CSS classes.
The foundational class required for all Material Design icons, providing font family, sizing, and rendering optimizations.
/**
* Base class required for all Material Design icons
* Sets font family, display properties, and rendering optimizations
*/
.mdi {
display: inline-block;
font-family: "Material Design Icons";
font-size: 24px;
line-height: 1;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/**
* Alternative base class for icons within sets
*/
.mdi-set {
display: inline-block;
font-family: "Material Design Icons";
font-size: 24px;
line-height: 1;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}Usage Examples:
<!-- Basic icon structure -->
<i class="mdi mdi-account"></i>
<span class="mdi mdi-home"></span>
<!-- Icons within icon sets -->
<div class="mdi-set mdi-email"></div>Each of the 7,448 Material Design icons has its own CSS class that defines the Unicode character to display.
/**
* Individual icon classes following the pattern .mdi-{icon-name}
* Each class sets the content property to the icon's Unicode character
*/
.mdi-account::before { content: "\\F0004"; }
.mdi-home::before { content: "\\F02DC"; }
.mdi-settings::before { content: "\\F0493"; }
.mdi-email::before { content: "\\F01EE"; }
.mdi-phone::before { content: "\\F03F2"; }
.mdi-refresh::before { content: "\\F0450"; }
.mdi-loading::before { content: "\\F0772"; }
.mdi-check::before { content: "\\F012C"; }
.mdi-close::before { content: "\\F0156"; }
.mdi-menu::before { content: "\\F0349"; }
.mdi-search::before { content: "\\F049F"; }
.mdi-star::before { content: "\\F04CE"; }
.mdi-heart::before { content: "\\F02D1"; }
.mdi-download::before { content: "\\F01DA"; }
.mdi-upload::before { content: "\\F054C"; }
.mdi-delete::before { content: "\\F01B4"; }
.mdi-edit::before { content: "\\F03EB"; }
.mdi-copy::before { content: "\\F018F"; }
.mdi-folder::before { content: "\\F024B"; }
.mdi-file::before { content: "\\F0214"; }
/* ... 7,428 more icon classes available */Usage Examples:
<!-- Common icons -->
<i class="mdi mdi-account"></i>
<i class="mdi mdi-home"></i>
<i class="mdi mdi-settings"></i>
<!-- Action icons -->
<button><i class="mdi mdi-check"></i> Save</button>
<button><i class="mdi mdi-close"></i> Cancel</button>
<button><i class="mdi mdi-delete"></i> Delete</button>
<!-- Navigation icons -->
<nav>
<a href="/"><i class="mdi mdi-home"></i> Home</a>
<a href="/search"><i class="mdi mdi-search"></i> Search</a>
<a href="/menu"><i class="mdi mdi-menu"></i> Menu</a>
</nav>
<!-- File operation icons -->
<div class="file-actions">
<i class="mdi mdi-download"></i>
<i class="mdi mdi-upload"></i>
<i class="mdi mdi-copy"></i>
<i class="mdi mdi-edit"></i>
</div>The font-face declaration that loads the Material Design Icons webfont files in multiple formats for browser compatibility.
/**
* Font-face declaration loading Material Design Icons webfont
* Includes multiple formats for broad browser compatibility
*/
@font-face {
font-family: "Material Design Icons";
src: url("../fonts/materialdesignicons-webfont.eot?v=7.4.47");
src: url("../fonts/materialdesignicons-webfont.eot?#iefix&v=7.4.47") format("embedded-opentype"),
url("../fonts/materialdesignicons-webfont.woff2?v=7.4.47") format("woff2"),
url("../fonts/materialdesignicons-webfont.woff?v=7.4.47") format("woff"),
url("../fonts/materialdesignicons-webfont.ttf?v=7.4.47") format("truetype");
font-weight: normal;
font-style: normal;
}Browser Support:
Different ways to include the Material Design Icons CSS in your project.
/* Method 1: CSS @import */
@import url('path/to/materialdesignicons.css');
/* Method 2: CSS @import with node_modules */
@import url('~@mdi/font/css/materialdesignicons.css');
/* Method 3: CSS @import minified version */
@import url('~@mdi/font/css/materialdesignicons.min.css');HTML Link Method:
<!-- Development version -->
<link rel="stylesheet" href="node_modules/@mdi/font/css/materialdesignicons.css">
<!-- Production minified version -->
<link rel="stylesheet" href="node_modules/@mdi/font/css/materialdesignicons.min.css">
<!-- CDN usage (replace with actual CDN URL) -->
<link rel="stylesheet" href="https://cdn.example.com/@mdi/font@7.4.47/css/materialdesignicons.min.css">Usage Examples:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="node_modules/@mdi/font/css/materialdesignicons.css">
</head>
<body>
<h1><i class="mdi mdi-home"></i> Welcome</h1>
<p>Click <i class="mdi mdi-download"></i> to download files.</p>
<div class="toolbar">
<button><i class="mdi mdi-content-save"></i></button>
<button><i class="mdi mdi-content-copy"></i></button>
<button><i class="mdi mdi-delete"></i></button>
</div>
</body>
</html>// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.(woff|woff2|eot|ttf)$/,
use: {
loader: 'file-loader',
options: {
outputPath: 'fonts/',
},
},
},
],
},
};// vite.config.js
export default {
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "@mdi/font/scss/materialdesignicons.scss";`
}
}
}
};Parcel automatically handles font files and CSS imports:
/* In your CSS file */
@import "@mdi/font/css/materialdesignicons.css";