Add local MapLibre glyph fonts under web and use them in OSM Liberty style.
CI / test (push) Successful in 4s

Commit bundled PBF font ranges in web/fonts and point the style glyph template to local files to avoid external glyph 404s.

Made-with: Cursor
This commit is contained in:
2026-03-02 22:08:01 +00:00
parent 26de435ff1
commit 2d1d93c455
4861 changed files with 75312 additions and 1 deletions
+3
View File
@@ -0,0 +1,3 @@
Disclaimer:
Hi there, thanks for contributing! Before anything else, please ensure you didn't mean to create an issue on the main MaterialDesign repo instead.
If this is intentional, just erase this message. Thanks!
+20
View File
@@ -0,0 +1,20 @@
Pictogrammers Free License
--------------------------
This icon collection is released as free, open source, and GPL friendly by
the [Pictogrammers](http://pictogrammers.com/) icon group. You may use it
for commercial projects, open source projects, or anything really.
# Icons: Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0)
Some of the icons are redistributed under the Apache 2.0 license. All other
icons are either redistributed under their respective licenses or are
distributed under the Apache 2.0 license.
# Fonts: Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0)
All web and desktop fonts are distributed under the Apache 2.0 license. Web
and desktop fonts contain some icons that are redistributed under the Apache
2.0 license. All other icons are either redistributed under their respective
licenses or are distributed under the Apache 2.0 license.
# Code: MIT (https://opensource.org/licenses/MIT)
The MIT license applies to all non-font and non-icon files.
+25
View File
@@ -0,0 +1,25 @@
> *Note:* Please use the main [MaterialDesign](https://github.com/Templarian/MaterialDesign/issues) repo to report issues. This repo is for distribution of the Webfont files only.
# Webfont - Material Design Icons
Webfont distribution for the [Material Design Icons](https://materialdesignicons.com).
```
npm install @mdi/font
```
> Package built with [@mdi/font-build](https://github.com/Templarian/MaterialDesign-Font-Build).
## Related Packages
[NPM @MDI Organization](https://npmjs.com/org/mdi)
- JavaScript/Typescript: [MaterialDesign-JS](https://github.com/Templarian/MaterialDesign-JS)
- SVG: [MaterialDesign-SVG](https://github.com/Templarian/MaterialDesign-SVG)
- Font-Build [MaterialDesign-Font-Build](https://github.com/Templarian/MaterialDesign-Font-Build)
- Desktop Font: [MaterialDesign-Font](https://github.com/Templarian/MaterialDesign-Font)
## Learn More
- [MaterialDesignIcons.com](https://materialdesignicons.com)
- https://github.com/Templarian/MaterialDesign
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+28
View File
@@ -0,0 +1,28 @@
{
"name": "@mdi/font",
"version": "5.9.55",
"description": "Dist for Material Design Webfont. This includes the Stock and Community icons in a single webfont collection.",
"style": "css/materialdesignicons.css",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/Templarian/MaterialDesign-Webfont.git"
},
"keywords": [
"material",
"design",
"icons",
"webfont"
],
"author": {
"name": "Austin Andrews",
"web": "http://twitter.com/templarian"
},
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/Templarian/MaterialDesign/issues"
},
"homepage": "https://materialdesignicons.com"
}
File diff suppressed because one or more lines are too long
+27
View File
@@ -0,0 +1,27 @@
// From Font Awesome
.#{$mdi-css-prefix}-spin:before {
-webkit-animation: #{$mdi-css-prefix}-spin 2s infinite linear;
animation: #{$mdi-css-prefix}-spin 2s infinite linear;
}
@-webkit-keyframes #{$mdi-css-prefix}-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes #{$mdi-css-prefix}-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
+10
View File
@@ -0,0 +1,10 @@
.#{$mdi-css-prefix}:before,
.#{$mdi-css-prefix}-set {
display: inline-block;
font: normal normal normal #{$mdi-font-size-base}/1 '#{$mdi-font-name}'; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
line-height: inherit;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
+65
View File
@@ -0,0 +1,65 @@
$mdi-sizes: 18 24 36 48 !default;
@each $mdi-size in $mdi-sizes {
.#{$mdi-css-prefix}-#{$mdi-size}px {
&.#{$mdi-css-prefix}-set,
&.#{$mdi-css-prefix}:before {
font-size: $mdi-size * 1px;
}
}
}
.#{$mdi-css-prefix}-dark {
&:before {
color: rgba(0, 0, 0, 0.54);
}
&.#{$mdi-css-prefix}-inactive:before {
color: rgba(0, 0, 0, 0.26);
}
}
.#{$mdi-css-prefix}-light {
&:before {
color: rgba(255, 255, 255, 1);
}
&.#{$mdi-css-prefix}-inactive:before {
color: rgba(255, 255, 255, 0.3);
}
}
$mdi-degrees: 45 90 135 180 225 270 315 !default;
@each $mdi-degree in $mdi-degrees {
.#{$mdi-css-prefix}-rotate-#{$mdi-degree}{
&:before {
-webkit-transform: rotate(#{$mdi-degree}deg);
-ms-transform: rotate(#{$mdi-degree}deg);
transform: rotate(#{$mdi-degree}deg);
}
/*
// Not included in production
&.#{$mdi-css-prefix}-flip-h:before {
-webkit-transform: scaleX(-1) rotate(#{$mdi-degree}deg);
transform: scaleX(-1) rotate(#{$mdi-degree}deg);
filter: FlipH;
-ms-filter: "FlipH";
}
&.#{$mdi-css-prefix}-flip-v:before {
-webkit-transform: scaleY(-1) rotate(#{$mdi-degree}deg);
-ms-transform: rotate(#{$mdi-degree}deg);
transform: scaleY(-1) rotate(#{$mdi-degree}deg);
filter: FlipV;
-ms-filter: "FlipV";
}
*/
}
}
.#{$mdi-css-prefix}-flip-h:before {
-webkit-transform: scaleX(-1);
transform: scaleX(-1);
filter: FlipH;
-ms-filter: "FlipH";
}
.#{$mdi-css-prefix}-flip-v:before {
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
filter: FlipV;
-ms-filter: "FlipV";
}
+20
View File
@@ -0,0 +1,20 @@
@function char($character-code) {
@if function-exists("selector-append") {
@return unquote("\"\\#{$character-code}\"");
}
@if "\\#{'x'}" == "\\x" {
@return str-slice("\x", 1, 1) + $character-code;
}
@else {
@return #{"\"\\"}#{$character-code + "\""};
}
}
@function mdi($name) {
@if map-has-key($mdi-icons, $name) == false {
@warn "Icon #{$name} not found.";
@return "";
}
@return char(map-get($mdi-icons, $name));
}
+10
View File
@@ -0,0 +1,10 @@
@each $key, $value in $mdi-icons {
.#{$mdi-css-prefix}-#{$key}::before {
content: char($value);
}
}
.#{$mdi-css-prefix}-blank::before {
content: "\F68C";
visibility: hidden;
}
+10
View File
@@ -0,0 +1,10 @@
@font-face {
font-family: '#{$mdi-font-name}';
src: url('#{$mdi-font-path}/#{$mdi-filename}-webfont.eot?v=#{$mdi-version}');
src: url('#{$mdi-font-path}/#{$mdi-filename}-webfont.eot?#iefix&v=#{$mdi-version}') format('embedded-opentype'),
url('#{$mdi-font-path}/#{$mdi-filename}-webfont.woff2?v=#{$mdi-version}') format('woff2'),
url('#{$mdi-font-path}/#{$mdi-filename}-webfont.woff?v=#{$mdi-version}') format('woff'),
url('#{$mdi-font-path}/#{$mdi-filename}-webfont.ttf?v=#{$mdi-version}') format('truetype');
font-weight: normal;
font-style: normal;
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
/* MaterialDesignIcons.com */
@import "variables";
@import "functions";
@import "path";
@import "core";
@import "icons";
@import "extras";
@import "animated";