├── fonts ├── otf │ ├── Montserrat-Black.otf │ ├── Montserrat-Bold.otf │ ├── Montserrat-Light.otf │ ├── Montserrat-Thin.otf │ ├── Montserrat-Italic.otf │ ├── Montserrat-Medium.otf │ ├── Montserrat-Regular.otf │ ├── Montserrat-SemiBold.otf │ ├── Montserrat-BoldItalic.otf │ ├── Montserrat-ExtraBold.otf │ ├── Montserrat-ExtraLight.otf │ ├── Montserrat-ThinItalic.otf │ ├── Montserrat-BlackItalic.otf │ ├── Montserrat-LightItalic.otf │ ├── Montserrat-MediumItalic.otf │ ├── Montserrat-ExtraBoldItalic.otf │ ├── Montserrat-SemiBoldItalic.otf │ └── Montserrat-ExtraLightItalic.otf ├── ttf │ ├── Montserrat-Black.ttf │ ├── Montserrat-Bold.ttf │ ├── Montserrat-Light.ttf │ ├── Montserrat-Thin.ttf │ ├── Montserrat-Italic.ttf │ ├── Montserrat-Medium.ttf │ ├── Montserrat-Regular.ttf │ ├── Montserrat-SemiBold.ttf │ ├── Montserrat-BoldItalic.ttf │ ├── Montserrat-ExtraBold.ttf │ ├── Montserrat-ExtraLight.ttf │ ├── Montserrat-ThinItalic.ttf │ ├── Montserrat-BlackItalic.ttf │ ├── Montserrat-LightItalic.ttf │ ├── Montserrat-MediumItalic.ttf │ ├── Montserrat-ExtraBoldItalic.ttf │ ├── Montserrat-SemiBoldItalic.ttf │ └── Montserrat-ExtraLightItalic.ttf ├── variable │ ├── Montserrat[wght].ttf │ └── Montserrat-Italic[wght].ttf └── webfonts │ ├── Montserrat-Black.woff2 │ ├── Montserrat-Bold.woff2 │ ├── Montserrat-Italic.woff2 │ ├── Montserrat-Light.woff2 │ ├── Montserrat-Medium.woff2 │ ├── Montserrat-Thin.woff2 │ ├── Montserrat[wght].woff2 │ ├── Montserrat-Regular.woff2 │ ├── Montserrat-SemiBold.woff2 │ ├── Montserrat-BlackItalic.woff2 │ ├── Montserrat-BoldItalic.woff2 │ ├── Montserrat-ExtraBold.woff2 │ ├── Montserrat-ExtraLight.woff2 │ ├── Montserrat-LightItalic.woff2 │ ├── Montserrat-ThinItalic.woff2 │ ├── Montserrat-Italic[wght].woff2 │ ├── Montserrat-MediumItalic.woff2 │ ├── Montserrat-ExtraBoldItalic.woff2 │ ├── Montserrat-ExtraLightItalic.woff2 │ └── Montserrat-SemiBoldItalic.woff2 ├── documentation ├── MONTSERRAT_01.png ├── MONTSERRAT_02.png └── MONTSERRAT_03.png ├── sources ├── vtt │ ├── Montserrat[wght]-VTT.ttf │ ├── Montserrat-Italic[wght]-VTT.ttf │ └── hinting.py ├── config.yaml └── config-underline.yaml ├── fonts-underline ├── otf │ ├── MontserratUnderline-Bold.otf │ ├── MontserratUnderline-Thin.otf │ ├── MontserratUnderline-Black.otf │ ├── MontserratUnderline-Italic.otf │ ├── MontserratUnderline-Light.otf │ ├── MontserratUnderline-Medium.otf │ ├── MontserratUnderline-ExtraBold.otf │ ├── MontserratUnderline-Regular.otf │ ├── MontserratUnderline-SemiBold.otf │ ├── MontserratUnderline-BlackItalic.otf │ ├── MontserratUnderline-BoldItalic.otf │ ├── MontserratUnderline-ExtraLight.otf │ ├── MontserratUnderline-LightItalic.otf │ ├── MontserratUnderline-ThinItalic.otf │ ├── MontserratUnderline-MediumItalic.otf │ ├── MontserratUnderline-SemiBoldItalic.otf │ ├── MontserratUnderline-ExtraBoldItalic.otf │ └── MontserratUnderline-ExtraLightItalic.otf ├── ttf │ ├── MontserratUnderline-Bold.ttf │ ├── MontserratUnderline-Thin.ttf │ ├── MontserratUnderline-Black.ttf │ ├── MontserratUnderline-Italic.ttf │ ├── MontserratUnderline-Light.ttf │ ├── MontserratUnderline-Medium.ttf │ ├── MontserratUnderline-ExtraBold.ttf │ ├── MontserratUnderline-Regular.ttf │ ├── MontserratUnderline-SemiBold.ttf │ ├── MontserratUnderline-BlackItalic.ttf │ ├── MontserratUnderline-BoldItalic.ttf │ ├── MontserratUnderline-ExtraLight.ttf │ ├── MontserratUnderline-LightItalic.ttf │ ├── MontserratUnderline-ThinItalic.ttf │ ├── MontserratUnderline-MediumItalic.ttf │ ├── MontserratUnderline-SemiBoldItalic.ttf │ ├── MontserratUnderline-ExtraBoldItalic.ttf │ └── MontserratUnderline-ExtraLightItalic.ttf ├── variable │ ├── MontserratUnderline[wght].ttf │ └── MontserratUnderline-Italic[wght].ttf └── webfonts │ ├── MontserratUnderline-Bold.woff2 │ ├── MontserratUnderline-Thin.woff2 │ ├── MontserratUnderline-Black.woff2 │ ├── MontserratUnderline-Italic.woff2 │ ├── MontserratUnderline-Light.woff2 │ ├── MontserratUnderline-Medium.woff2 │ ├── MontserratUnderline-Regular.woff2 │ ├── MontserratUnderline[wght].woff2 │ ├── MontserratUnderline-ExtraBold.woff2 │ ├── MontserratUnderline-SemiBold.woff2 │ ├── MontserratUnderline-BlackItalic.woff2 │ ├── MontserratUnderline-BoldItalic.woff2 │ ├── MontserratUnderline-ExtraLight.woff2 │ ├── MontserratUnderline-Italic[wght].woff2 │ ├── MontserratUnderline-LightItalic.woff2 │ ├── MontserratUnderline-MediumItalic.woff2 │ ├── MontserratUnderline-ThinItalic.woff2 │ ├── MontserratUnderline-SemiBoldItalic.woff2 │ ├── MontserratUnderline-ExtraBoldItalic.woff2 │ └── MontserratUnderline-ExtraLightItalic.woff2 ├── fonts-alternates ├── otf │ ├── MontserratAlternates-Bold.otf │ ├── MontserratAlternates-Thin.otf │ ├── MontserratAlternates-Black.otf │ ├── MontserratAlternates-Italic.otf │ ├── MontserratAlternates-Light.otf │ ├── MontserratAlternates-Medium.otf │ ├── MontserratAlternates-Regular.otf │ ├── MontserratAlternates-ExtraBold.otf │ ├── MontserratAlternates-SemiBold.otf │ ├── MontserratAlternates-BlackItalic.otf │ ├── MontserratAlternates-BoldItalic.otf │ ├── MontserratAlternates-ExtraLight.otf │ ├── MontserratAlternates-LightItalic.otf │ ├── MontserratAlternates-MediumItalic.otf │ ├── MontserratAlternates-ThinItalic.otf │ ├── MontserratAlternates-SemiBoldItalic.otf │ ├── MontserratAlternates-ExtraBoldItalic.otf │ └── MontserratAlternates-ExtraLightItalic.otf ├── ttf │ ├── MontserratAlternates-Bold.ttf │ ├── MontserratAlternates-Thin.ttf │ ├── MontserratAlternates-Black.ttf │ ├── MontserratAlternates-Italic.ttf │ ├── MontserratAlternates-Light.ttf │ ├── MontserratAlternates-Medium.ttf │ ├── MontserratAlternates-Regular.ttf │ ├── MontserratAlternates-ExtraBold.ttf │ ├── MontserratAlternates-SemiBold.ttf │ ├── MontserratAlternates-BlackItalic.ttf │ ├── MontserratAlternates-BoldItalic.ttf │ ├── MontserratAlternates-ExtraLight.ttf │ ├── MontserratAlternates-LightItalic.ttf │ ├── MontserratAlternates-MediumItalic.ttf │ ├── MontserratAlternates-ThinItalic.ttf │ ├── MontserratAlternates-SemiBoldItalic.ttf │ ├── MontserratAlternates-ExtraBoldItalic.ttf │ └── MontserratAlternates-ExtraLightItalic.ttf ├── variable │ ├── MontserratAlternates[wght].ttf │ └── MontserratAlternates-Italic[wght].ttf └── webfonts │ ├── MontserratAlternates-Black.woff2 │ ├── MontserratAlternates-Bold.woff2 │ ├── MontserratAlternates-Light.woff2 │ ├── MontserratAlternates-Thin.woff2 │ ├── MontserratAlternates[wght].woff2 │ ├── MontserratAlternates-Italic.woff2 │ ├── MontserratAlternates-Medium.woff2 │ ├── MontserratAlternates-Regular.woff2 │ ├── MontserratAlternates-BoldItalic.woff2 │ ├── MontserratAlternates-ExtraBold.woff2 │ ├── MontserratAlternates-ExtraLight.woff2 │ ├── MontserratAlternates-SemiBold.woff2 │ ├── MontserratAlternates-ThinItalic.woff2 │ ├── MontserratAlternates-BlackItalic.woff2 │ ├── MontserratAlternates-Italic[wght].woff2 │ ├── MontserratAlternates-LightItalic.woff2 │ ├── MontserratAlternates-MediumItalic.woff2 │ ├── MontserratAlternates-ExtraBoldItalic.woff2 │ ├── MontserratAlternates-SemiBoldItalic.woff2 │ └── MontserratAlternates-ExtraLightItalic.woff2 ├── scripts ├── update-custom-filter.py ├── index.html ├── read-config.py ├── debug-merge.py └── customize.py ├── .gitignore ├── AUTHORS.txt ├── CONTRIBUTORS.txt ├── DESCRIPTION.en_us.html ├── alternates.sh ├── out └── badges │ ├── Universal.json │ ├── MetadataChecks.json │ ├── overall.json │ ├── ArticleChecks.json │ ├── FamilyChecks.json │ ├── FontFileChecks.json │ ├── GoogleFonts.json │ ├── OutlineChecks.json │ ├── ShapingChecks.json │ ├── GlyphsetChecks.json │ ├── Nametablechecks.json │ ├── DescriptionChecks.json │ ├── RepositoryChecks.json │ ├── SuperfamilyChecks.json │ ├── UniversalProfileChecks.json │ ├── OutlineCorrectnessChecks.json │ └── OpenTypeSpecificationChecks.json ├── Makefile ├── requirements.txt ├── OFL.txt ├── .github └── workflows │ └── build.yaml └── README.md /fonts/otf/Montserrat-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-Black.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-Bold.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-Light.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-Thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-Thin.otf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-Black.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-Light.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-Thin.ttf -------------------------------------------------------------------------------- /documentation/MONTSERRAT_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/documentation/MONTSERRAT_01.png -------------------------------------------------------------------------------- /documentation/MONTSERRAT_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/documentation/MONTSERRAT_02.png -------------------------------------------------------------------------------- /documentation/MONTSERRAT_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/documentation/MONTSERRAT_03.png -------------------------------------------------------------------------------- /fonts/otf/Montserrat-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-Italic.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-Medium.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-Regular.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-SemiBold.otf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-Italic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-BoldItalic.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-ExtraBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-ExtraBold.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-ExtraLight.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-ThinItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-ThinItalic.otf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-ExtraBold.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-ExtraLight.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-ThinItalic.ttf -------------------------------------------------------------------------------- /fonts/variable/Montserrat[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/variable/Montserrat[wght].ttf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-BlackItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-BlackItalic.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-LightItalic.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-MediumItalic.otf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-BlackItalic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-LightItalic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-Black.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-Bold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-Italic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-Light.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-Medium.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-Thin.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat[wght].woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat[wght].woff2 -------------------------------------------------------------------------------- /sources/vtt/Montserrat[wght]-VTT.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/sources/vtt/Montserrat[wght]-VTT.ttf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-ExtraBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-ExtraBoldItalic.otf -------------------------------------------------------------------------------- /fonts/otf/Montserrat-SemiBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-SemiBoldItalic.otf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-Regular.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-SemiBold.woff2 -------------------------------------------------------------------------------- /fonts/otf/Montserrat-ExtraLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/otf/Montserrat-ExtraLightItalic.otf -------------------------------------------------------------------------------- /fonts/ttf/Montserrat-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/ttf/Montserrat-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /fonts/variable/Montserrat-Italic[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/variable/Montserrat-Italic[wght].ttf -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-BlackItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-BoldItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-ExtraBold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-ExtraLight.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-ExtraLight.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-LightItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-ThinItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-ThinItalic.woff2 -------------------------------------------------------------------------------- /sources/vtt/Montserrat-Italic[wght]-VTT.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/sources/vtt/Montserrat-Italic[wght]-VTT.ttf -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-Italic[wght].woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-Italic[wght].woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-MediumItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-Bold.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-Thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-Thin.otf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-Bold.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-Thin.ttf -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-ExtraBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-ExtraBoldItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-ExtraLightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-ExtraLightItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Montserrat-SemiBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts/webfonts/Montserrat-SemiBoldItalic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-Bold.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-Thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-Thin.otf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-Bold.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-Thin.ttf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-Black.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-Italic.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-Light.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-Medium.otf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-Black.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-Italic.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-Light.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-Medium.ttf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-Black.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-Italic.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-Light.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-Medium.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-Regular.otf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-Black.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-Italic.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-Light.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-Medium.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-Regular.ttf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-ExtraBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-ExtraBold.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-Regular.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-SemiBold.otf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-ExtraBold.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-Regular.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-SemiBold.ttf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-ExtraBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-ExtraBold.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-SemiBold.otf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-ExtraBold.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-SemiBold.ttf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-BlackItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-BlackItalic.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-BoldItalic.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-ExtraLight.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-LightItalic.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-ThinItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-ThinItalic.otf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-BlackItalic.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-ExtraLight.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-LightItalic.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-ThinItalic.ttf -------------------------------------------------------------------------------- /fonts-underline/variable/MontserratUnderline[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/variable/MontserratUnderline[wght].ttf -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-Bold.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-Thin.woff2 -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-BlackItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-BlackItalic.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-BoldItalic.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-ExtraLight.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-LightItalic.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-MediumItalic.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-ThinItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-ThinItalic.otf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-BlackItalic.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-ExtraLight.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-LightItalic.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-MediumItalic.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-ThinItalic.ttf -------------------------------------------------------------------------------- /fonts-alternates/variable/MontserratAlternates[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/variable/MontserratAlternates[wght].ttf -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-Black.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-Bold.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-Light.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-Thin.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates[wght].woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates[wght].woff2 -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-MediumItalic.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-SemiBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-SemiBoldItalic.otf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-MediumItalic.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-Black.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-Italic.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-Light.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-Medium.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-Regular.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline[wght].woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline[wght].woff2 -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-SemiBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-SemiBoldItalic.otf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-Italic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-Medium.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-Regular.woff2 -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-ExtraBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-ExtraBoldItalic.otf -------------------------------------------------------------------------------- /fonts-underline/otf/MontserratUnderline-ExtraLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/otf/MontserratUnderline-ExtraLightItalic.otf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /fonts-underline/ttf/MontserratUnderline-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/ttf/MontserratUnderline-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-ExtraBold.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-SemiBold.woff2 -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-ExtraBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-ExtraBoldItalic.otf -------------------------------------------------------------------------------- /fonts-alternates/otf/MontserratAlternates-ExtraLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/otf/MontserratAlternates-ExtraLightItalic.otf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /fonts-alternates/ttf/MontserratAlternates-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/ttf/MontserratAlternates-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /fonts-alternates/variable/MontserratAlternates-Italic[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/variable/MontserratAlternates-Italic[wght].ttf -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-BoldItalic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-ExtraBold.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-ExtraLight.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-ExtraLight.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-SemiBold.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-ThinItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-ThinItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/variable/MontserratUnderline-Italic[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/variable/MontserratUnderline-Italic[wght].ttf -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-BlackItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-BoldItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-ExtraLight.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-ExtraLight.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-Italic[wght].woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-Italic[wght].woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-LightItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-MediumItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-ThinItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-ThinItalic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-BlackItalic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-Italic[wght].woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-Italic[wght].woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-LightItalic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-MediumItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-SemiBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-SemiBoldItalic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-ExtraBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-ExtraBoldItalic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-SemiBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-SemiBoldItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-ExtraBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-ExtraBoldItalic.woff2 -------------------------------------------------------------------------------- /fonts-underline/webfonts/MontserratUnderline-ExtraLightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-underline/webfonts/MontserratUnderline-ExtraLightItalic.woff2 -------------------------------------------------------------------------------- /fonts-alternates/webfonts/MontserratAlternates-ExtraLightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JulietaUla/Montserrat/HEAD/fonts-alternates/webfonts/MontserratAlternates-ExtraLightItalic.woff2 -------------------------------------------------------------------------------- /scripts/update-custom-filter.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | GF_Latin_All = "https://github.com/googlefonts/glyphsets/raw/main/GF_glyphsets/Latin/glyphs/CustomFilter_GF_Latin.plist" 4 | dest = "sources/CustomFilter_GF_Latin_All.plist" 5 | 6 | r = requests.get(GF_Latin_All) 7 | with open(dest, "wb") as f: 8 | f.write(r.content) 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | venv 3 | build.stamp 4 | proof 5 | 6 | # OS generated files # 7 | ###################### 8 | .DS_Store 9 | .DS_Store? 10 | ._* 11 | .Spotlight-V100 12 | .Trashes 13 | ehthumbs.db 14 | Thumbs.db 15 | 16 | *Autosaved*.glyphs 17 | 18 | out/fontbakery* 19 | out/badges-* 20 | fontbakery 21 | 22 | # This shouldn't be here but gftools builder leave this here 23 | sources/.ninja_log 24 | sources/build.ninja 25 | sources/instance_ufos/ 26 | -------------------------------------------------------------------------------- /AUTHORS.txt: -------------------------------------------------------------------------------- 1 | # This is the official list of project authors for copyright purposes. 2 | # This file is distinct from the CONTRIBUTORS.txt file. 3 | # See the latter for an explanation. 4 | # 5 | # Names should be added to this file as: 6 | # Name or Organization 7 | 8 | Julieta Ulanovsky 9 | Jacques Le Bailly 10 | Juan Pablo del Peral 11 | Sol Matas 12 | -------------------------------------------------------------------------------- /scripts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | My Font development 7 | 8 | 9 |

My Font testing pages

10 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /sources/vtt/hinting.py: -------------------------------------------------------------------------------- 1 | from fontTools.ttLib import TTFont 2 | import vttLib 3 | from gftools.scripts.transfer_vtt_hints import transfer_hints 4 | 5 | 6 | sources = { 7 | "sources/vtt/Montserrat[wght]-VTT.ttf": "fonts/variable/Montserrat[wght].ttf", 8 | "sources/vtt/Montserrat-Italic[wght]-VTT.ttf": "fonts/variable/Montserrat-Italic[wght].ttf", 9 | } 10 | 11 | print("INFO:Integrating hinting sources and compiling") 12 | 13 | for src, dst in sources.items(): 14 | src = TTFont(src) 15 | dst = TTFont(dst) 16 | transfer_hints(src, dst) 17 | vttLib.compile_instructions(dst, ship=True) 18 | dst["head"].flags |= 1 << 3 19 | dst.save(dst.reader.file.name) 20 | -------------------------------------------------------------------------------- /CONTRIBUTORS.txt: -------------------------------------------------------------------------------- 1 | # This is the list of people who have contributed to this project, 2 | # and includes those not listed in AUTHORS.txt because they are not 3 | # copyright authors. For example, company employees may be listed 4 | # here because their company holds the copyright and is listed there. 5 | # 6 | # When adding J Random Contributor's name to this file, either J's 7 | # name or J's organization's name should be added to AUTHORS.txt 8 | # 9 | # Names should be added to this file as: 10 | # Name 11 | 12 | Julieta Ulanovsky 13 | Carolina Giovagnoli 14 | Juan Pablo del Peral 15 | Lasse Fister 16 | Kalapi Gajjar-Bordawekar 17 | Denis Moyogo Jacquerye 18 | Michael Duggan 19 | Marc Foley 20 | Lasse Fister 21 | -------------------------------------------------------------------------------- /scripts/read-config.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Yes, this is a Bad YAML Parser, but at this stage we are not in the 3 | # venv and do not know what modules the user has available, so for 4 | # maximum compatibility, we are just assuming a plain Python distribution. 5 | import argparse 6 | import re 7 | import sys 8 | import os 9 | 10 | parser = argparse.ArgumentParser() 11 | group = parser.add_mutually_exclusive_group(required=True) 12 | group.add_argument("--sources", action="store_true") 13 | group.add_argument("--family", action="store_true") 14 | args = parser.parse_args() 15 | 16 | with open(os.path.join("sources", "config.yaml")) as config: 17 | data = config.read() 18 | 19 | if args.family: 20 | m = re.search(r"(?m)^familyName: (.*)", data) 21 | if m: 22 | print(m[1]) 23 | sys.exit(0) 24 | else: 25 | print("Could not determine family name from config file!") 26 | sys.exit(1) 27 | 28 | toggle = False 29 | sources = [] 30 | for line in data.splitlines(): 31 | if re.match("^sources:", line): 32 | toggle = True 33 | continue 34 | if toggle: 35 | m = re.match(r"^\s*-\s*(.*)", line) 36 | if m: 37 | sources.append("sources/" + m[1]) 38 | else: 39 | toggle = False 40 | if sources: 41 | print(" ".join(sources)) 42 | sys.exit(0) 43 | else: 44 | print("Could not determine sources from config file!") 45 | sys.exit(1) 46 | -------------------------------------------------------------------------------- /DESCRIPTION.en_us.html: -------------------------------------------------------------------------------- 1 |

2 | The old posters and signs in the traditional neighborhood of Buenos Aires 3 | called Montserrat inspired me to design a typeface that rescues the beauty of 4 | urban typography from the first half of the twentieth century. The goal is to 5 | rescue what is in Montserrat and set it free, under a free, libre and open 6 | source license, the SIL Open Font License. 7 |

8 | 9 |

10 | As urban development changes this place, it will never return to its original 11 | form and loses forever the designs that are so special and unique. To draw the 12 | letters, I rely on examples of lettering in the urban space. Each selected 13 | example produces its own variants in length, width and height proportions, 14 | each adding to the Montserrat family. The old typographies and canopies are 15 | irretrievable when they are replaced. 16 |

17 | 18 |

19 | There are other revivals, but those do not stay close to the originals. The 20 | letters that inspired this project have work, dedication, care, color, 21 | contrast, light and life, day and night! These are the types that make the 22 | city look so beautiful. 23 |

24 | 25 |

26 | This is the Regular family, and it has two sister families so far, 27 | Alternates 30 | and 31 | Underline 34 | families. Many of the letterforms are special in the Alternates family, while 35 | . 36 |

37 | -------------------------------------------------------------------------------- /alternates.sh: -------------------------------------------------------------------------------- 1 | echo 2 | echo Freezing and subsetting Alternates 3 | rm -rf fonts-alternates 4 | cp -r fonts fonts-alternates 5 | cd fonts-alternates 6 | 7 | shopt -s nullglob # Enable nullglob to avoid errors 8 | 9 | for f in variable/*.ttf; do echo && echo Freezing Alternates version for "$f" && pyftfeatfreeze -f 'ss01' -S -U Alternates "$f" "${f//Montserrat/MontserratAlternates}" && rm "$f"; done 10 | for f in variable/*.ttf; do pyftsubset --recalc-bounds --recalc-average-width --glyph-names --layout-features="*" --name-IDs="*" --unicodes="*" --output-file=$f.temp $f && mv $f.temp $f; done 11 | 12 | for f in otf/*.otf; do echo && echo Freezing Alternates version for "$f" && pyftfeatfreeze -f 'ss01' -S -U Alternates "$f" "${f//Montserrat/MontserratAlternates}" && rm "$f"; done 13 | for f in otf/*.otf; do pyftsubset --recalc-bounds --recalc-average-width --glyph-names --layout-features="*" --name-IDs="*" --unicodes="*" --output-file=$f.temp $f && mv $f.temp $f; done 14 | 15 | for f in ttf/*.ttf; do echo && echo Freezing Alternates version for "$f" && pyftfeatfreeze -f 'ss01' -S -U Alternates "$f" "${f//Montserrat/MontserratAlternates}" && rm "$f"; done 16 | for f in ttf/*.ttf; do pyftsubset --recalc-bounds --recalc-average-width --glyph-names --layout-features="*" --name-IDs="*" --unicodes="*" --output-file=$f.temp $f && mv $f.temp $f; done 17 | 18 | for f in webfonts/*.woff2; do echo && echo Freezing Alternates version for "$f" && pyftfeatfreeze -f 'ss01' -S -U Alternates "$f" "${f//Montserrat/MontserratAlternates}" && rm "$f"; done 19 | for f in webfonts/*.woff2; do pyftsubset --recalc-bounds --recalc-average-width --glyph-names --layout-features="*" --name-IDs="*" --unicodes="*" --output-file=$f.temp $f && mv $f.temp $f; done 20 | cd ../.. 21 | -------------------------------------------------------------------------------- /sources/config.yaml: -------------------------------------------------------------------------------- 1 | sources: 2 | - Montserrat.glyphs 3 | - Montserrat-Italic.glyphs 4 | axisOrder: 5 | - wght 6 | - ital 7 | familyName: "Montserrat" 8 | flattenComponents: True 9 | buildStatic: True 10 | extraStaticFontmakeArgs: "--overlaps-backend pathops" 11 | buildSmallCap: False 12 | stat: 13 | Montserrat[wght].ttf: 14 | - name: Weight 15 | tag: wght 16 | values: 17 | - name: Thin 18 | value: 100 19 | - name: ExtraLight 20 | value: 200 21 | - name: Light 22 | value: 300 23 | - name: Regular 24 | value: 400 25 | linkedValue: 700 26 | flags: 2 27 | - name: Medium 28 | value: 500 29 | - name: SemiBold 30 | value: 600 31 | - name: Bold 32 | value: 700 33 | - name: ExtraBold 34 | value: 800 35 | - name: Black 36 | value: 900 37 | - name: Italic 38 | tag: ital 39 | values: 40 | - name: Roman 41 | value: 0 42 | linkedValue: 1 43 | flags: 2 44 | Montserrat-Italic[wght].ttf: 45 | - name: Weight 46 | tag: wght 47 | values: 48 | - name: Thin 49 | value: 100 50 | - name: ExtraLight 51 | value: 200 52 | - name: Light 53 | value: 300 54 | - name: Regular 55 | value: 400 56 | linkedValue: 700 57 | flags: 2 58 | - name: Medium 59 | value: 500 60 | - name: SemiBold 61 | value: 600 62 | - name: Bold 63 | value: 700 64 | - name: ExtraBold 65 | value: 800 66 | - name: Black 67 | value: 900 68 | - name: Italic 69 | tag: ital 70 | values: 71 | - name: Italic 72 | value: 1 73 | -------------------------------------------------------------------------------- /sources/config-underline.yaml: -------------------------------------------------------------------------------- 1 | sources: 2 | - MontserratUnderline.glyphs 3 | - MontserratUnderline-Italic.glyphs 4 | axisOrder: 5 | - wght 6 | - ital 7 | familyName: "Montserrat Underline" 8 | flattenComponents: True 9 | buildStatic: True 10 | buildSmallCap: False 11 | outputDir: "../fonts-underline" 12 | stat: 13 | MontserratUnderline[wght].ttf: 14 | - name: Weight 15 | tag: wght 16 | values: 17 | - name: Thin 18 | value: 100 19 | - name: ExtraLight 20 | value: 200 21 | - name: Light 22 | value: 300 23 | - name: Regular 24 | value: 400 25 | linkedValue: 700 26 | flags: 2 27 | - name: Medium 28 | value: 500 29 | - name: SemiBold 30 | value: 600 31 | - name: Bold 32 | value: 700 33 | - name: ExtraBold 34 | value: 800 35 | - name: Black 36 | value: 900 37 | - name: Italic 38 | tag: ital 39 | values: 40 | - name: Roman 41 | value: 0 42 | linkedValue: 1 43 | flags: 2 44 | MontserratUnderline-Italic[wght].ttf: 45 | - name: Weight 46 | tag: wght 47 | values: 48 | - name: Thin 49 | value: 100 50 | - name: ExtraLight 51 | value: 200 52 | - name: Light 53 | value: 300 54 | - name: Regular 55 | value: 400 56 | linkedValue: 700 57 | flags: 2 58 | - name: Medium 59 | value: 500 60 | - name: SemiBold 61 | value: 600 62 | - name: Bold 63 | value: 700 64 | - name: ExtraBold 65 | value: 800 66 | - name: Black 67 | value: 900 68 | - name: Italic 69 | tag: ital 70 | values: 71 | - name: Italic 72 | value: 1 73 | -------------------------------------------------------------------------------- /out/badges/Universal.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "green", 3 | "label": "Universal", 4 | "logoSvg": "", 5 | "message": "76%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/MetadataChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "red", 3 | "label": "Metadata Checks", 4 | "logoSvg": "", 5 | "message": "0%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/overall.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "brightgreen", 3 | "label": "FontBakery QA", 4 | "logoSvg": "", 5 | "message": "90%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/ArticleChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "inactive", 3 | "label": "Article Checks", 4 | "logoSvg": "", 5 | "message": "SKIP", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/FamilyChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "inactive", 3 | "label": "Family Checks", 4 | "logoSvg": "", 5 | "message": "SKIP", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/FontFileChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "green", 3 | "label": "Font File Checks", 4 | "logoSvg": "", 5 | "message": "78%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/GoogleFonts.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "brightgreen", 3 | "label": "Google Fonts", 4 | "logoSvg": "", 5 | "message": "90%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/OutlineChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "inactive", 3 | "label": "Outline Checks", 4 | "logoSvg": "", 5 | "message": "SKIP", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/ShapingChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "orange", 3 | "label": "Shaping Checks", 4 | "logoSvg": "", 5 | "message": "50%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/GlyphsetChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "inactive", 3 | "label": "Glyphset Checks", 4 | "logoSvg": "", 5 | "message": "SKIP", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/Nametablechecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "inactive", 3 | "label": "Name table checks", 4 | "logoSvg": "", 5 | "message": "SKIP", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/DescriptionChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "inactive", 3 | "label": "Description Checks", 4 | "logoSvg": "", 5 | "message": "SKIP", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/RepositoryChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "brightgreen", 3 | "label": "Repository Checks", 4 | "logoSvg": "", 5 | "message": "100%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/SuperfamilyChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "inactive", 3 | "label": "Superfamily Checks", 4 | "logoSvg": "", 5 | "message": "SKIP", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/UniversalProfileChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "brightgreen", 3 | "label": "Universal Profile Checks", 4 | "logoSvg": "", 5 | "message": "93%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/OutlineCorrectnessChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "inactive", 3 | "label": "Outline Correctness Checks", 4 | "logoSvg": "", 5 | "message": "SKIP", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /out/badges/OpenTypeSpecificationChecks.json: -------------------------------------------------------------------------------- 1 | { 2 | "color": "brightgreen", 3 | "label": "OpenType Specification Checks", 4 | "logoSvg": "", 5 | "message": "100%", 6 | "schemaVersion": 1 7 | } -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SOURCES=$(shell python3 scripts/read-config.py --sources ) 2 | FAMILY=$(shell python3 scripts/read-config.py --family ) 3 | 4 | help: 5 | @echo "###" 6 | @echo "# Build targets for $(FAMILY)" 7 | @echo "###" 8 | @echo 9 | @echo " make build: Builds the fonts and places them in the fonts/ directory" 10 | @echo " make test: Tests the fonts with fontbakery" 11 | @echo " make proof: Creates HTML proof documents in the proof/ directory" 12 | @echo 13 | 14 | build: build.stamp 15 | 16 | venv: venv/touchfile 17 | 18 | customize: venv 19 | . venv/bin/activate; python3 scripts/customize.py 20 | 21 | build.stamp: venv sources/config.yaml $(SOURCES) 22 | rm -rf fonts fonts-underline fonts-alternates 23 | (for config in sources/config*.yaml; do . venv/bin/activate; gftools builder $$config; done) && touch build.stamp 24 | . venv/bin/activate; python3 sources/vtt/hinting.py; bash alternates.sh 25 | 26 | venv/touchfile: requirements.txt 27 | test -d venv || python3 -m venv venv 28 | . venv/bin/activate; pip install -Ur requirements.txt 29 | touch venv/touchfile 30 | 31 | test: venv build.stamp 32 | . venv/bin/activate; mkdir -p out/ out/fontbakery; fontbakery check-googlefonts -l WARN --full-lists --succinct --badges out/badges --html out/fontbakery/fontbakery-report.html --ghmarkdown out/fontbakery/fontbakery-report.md $(shell find fonts/variable -type f) || echo '::warning file=sources/config.yaml,title=Fontbakery failures::The fontbakery QA check reported errors in your font. Please check the generated report.' 33 | 34 | test-underline: venv build.stamp 35 | . venv/bin/activate; mkdir -p out/ out/fontbakery-underline; fontbakery check-googlefonts -l WARN --full-lists --succinct --badges out/badges-underline --html out/fontbakery-underline/fontbakery-report.html --ghmarkdown out/fontbakery-underline/fontbakery-report.md $(shell find fonts-underline/variable -type f) || echo '::warning file=sources/config.yaml,title=Fontbakery failures::The fontbakery QA check reported errors in your font. Please check the generated report.' 36 | 37 | test-alternates: venv build.stamp 38 | . venv/bin/activate; mkdir -p out/ out/fontbakery-alternates; fontbakery check-googlefonts -l WARN --full-lists --succinct --badges out/badges-alternates --html out/fontbakery-alternates/fontbakery-report.html --ghmarkdown out/fontbakery-alternates/fontbakery-report.md $(shell find fonts-alternates/variable -type f) || echo '::warning file=sources/config.yaml,title=Fontbakery failures::The fontbakery QA check reported errors in your font. Please check the generated report.' 39 | 40 | proof: venv build.stamp 41 | . venv/bin/activate; mkdir -p out/ out/proof; diffenator2 proof $(shell find fonts/ttf -type f) -o out/proof 42 | 43 | %.png: %.py build.stamp 44 | . venv/bin/activate; python3 $< --output $@ 45 | 46 | clean: 47 | rm -rf venv 48 | find . -name "*.pyc" -delete 49 | 50 | update-project-template: 51 | npx update-template https://github.com/googlefonts/googlefonts-project-template/ 52 | 53 | update: 54 | pip install --upgrade $(dependency); pip freeze > requirements.txt -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | absl-py==2.1.0 2 | afdko==4.0.1 3 | appdirs==1.4.4 4 | attrs==24.2.0 5 | axisregistry==0.4.11 6 | babelfont==3.0.5 7 | beautifulsoup4==4.12.3 8 | beziers==0.6.0 9 | blackrenderer==0.6.0 10 | booleanOperations==0.9.0 11 | Brotli==1.1.0 12 | bump2version==1.0.1 13 | bumpfontversion==0.4.1 14 | cattrs==24.1.2 15 | certifi==2024.8.30 16 | cffi==1.17.1 17 | cffsubr==0.3.0 18 | charset-normalizer==3.3.2 19 | cmarkgfm==2024.1.14 20 | collidoscope==0.6.5 21 | commandlines==0.4.1 22 | compreffor==0.5.5 23 | cryptography==43.0.1 24 | defcon==0.10.3 25 | dehinter==4.0.0 26 | Deprecated==1.2.14 27 | diffenator2==0.4.4 28 | docopt==0.6.2 29 | filelock==3.16.1 30 | font-v==2.1.0 31 | fontbakery==0.13.0a1 32 | fontFeatures==1.8.0 33 | fontmake==3.9.0 34 | fontMath==0.9.4 35 | fontParts==0.12.2 36 | fontPens==0.2.4 37 | fonttools==4.54.1 38 | freetype-py==2.3.0 39 | fs==2.4.16 40 | gflanguages==0.6.4 41 | gfsubsets==2024.9.25 42 | gftools==0.9.70 43 | gitdb==4.0.11 44 | GitPython==3.1.43 45 | glyphsets==1.0.0 46 | glyphsLib==6.9.0 47 | h11==0.14.0 48 | idna==3.10 49 | importlib_resources==6.4.5 50 | Jinja2==3.1.4 51 | kurbopy==0.11.0 52 | lxml==5.3.0 53 | markdown-it-py==3.0.0 54 | MarkupSafe==2.1.5 55 | mdurl==0.1.2 56 | munkres==1.1.4 57 | MutatorMath==3.0.1 58 | nanoemoji==0.15.1 59 | networkx==3.3 60 | ninja==1.11.1.1 61 | num2words==0.5.13 62 | numpy==2.1.1 63 | openstep-plist==0.3.1 64 | opentype-feature-freezer==1.32.2 65 | opentype-sanitizer==9.1.0 66 | opentypespec==1.9.1 67 | orjson==3.10.7 68 | outcome==1.3.0.post0 69 | packaging==24.1 70 | picosvg==0.22.1 71 | pillow==10.4.0 72 | pip-api==0.0.34 73 | pngquant-cli==2.17.0.post5 74 | protobuf==3.20.3 75 | pyahocorasick==2.1.0 76 | pybind11==2.13.6 77 | pycairo==1.27.0 78 | pyclipper==1.3.0.post5 79 | pycparser==2.22 80 | pygit2==1.15.1 81 | PyGithub==2.4.0 82 | Pygments==2.18.0 83 | PyJWT==2.9.0 84 | PyNaCl==1.5.0 85 | pyparsing==3.1.4 86 | PySocks==1.7.1 87 | python-bidi==0.4.2 88 | python-dateutil==2.9.0.post0 89 | PyYAML==6.0.2 90 | regex==2024.9.11 91 | requests==2.32.3 92 | resvg-cli==0.22.0.post3 93 | rich==13.8.1 94 | rstr==3.2.2 95 | ruamel.yaml==0.18.6 96 | ruamel.yaml.clib==0.2.8 97 | selenium==4.25.0 98 | shaperglot==0.6.3 99 | six==1.16.0 100 | skia-pathops==0.8.0.post1 101 | skia-python==87.6 102 | smmap==5.0.1 103 | sniffio==1.3.1 104 | sortedcontainers==2.4.0 105 | soupsieve==2.6 106 | sre-yield==1.2 107 | statmake==0.6.0 108 | strictyaml==1.7.3 109 | stringbrewer==0.0.1 110 | tabulate==0.9.0 111 | termcolor==2.4.0 112 | toml==0.10.2 113 | tqdm==4.66.5 114 | trio==0.26.2 115 | trio-websocket==0.11.1 116 | ttfautohint-py==0.5.1 117 | typing_extensions==4.12.2 118 | ufo2ft==3.3.0 119 | ufoLib2==0.16.0 120 | ufolint==1.2.0 121 | ufomerge==1.8.2 122 | ufonormalizer==0.6.2 123 | ufoProcessor==1.13.1 124 | uharfbuzz==0.41.0 125 | unicodedata2==15.1.0 126 | Unidecode==1.3.8 127 | urllib3==2.2.3 128 | vfbLib==0.7.1 129 | vharfbuzz==0.3.1 130 | vttLib==0.12.0 131 | websocket-client==1.8.0 132 | wrapt==1.16.0 133 | wsproto==1.2.0 134 | youseedee==0.5.3 135 | zopfli==0.2.3 136 | -------------------------------------------------------------------------------- /scripts/debug-merge.py: -------------------------------------------------------------------------------- 1 | from glyphsLib import load, to_designspace 2 | from ufo2ft.featureCompiler import FeatureCompiler, parseLayoutFeatures 3 | from fontTools.feaLib import ast 4 | import argparse 5 | 6 | 7 | class Checker: 8 | def __init__(self, sources): 9 | self.masters = [] 10 | for source in sources: 11 | self.masters.append( 12 | { 13 | "ufo": source.font, 14 | "name": source.name, 15 | "compiler": FeatureCompiler(source.font), 16 | } 17 | ) 18 | self.masters[-1]["writers"] = self.masters[-1]["compiler"].featureWriters 19 | 20 | def check_all_the_same(self, items, description, print_items=None): 21 | if all(i == items[0] for i in items[1:]): 22 | return True 23 | print(" MERGE PROBLEM: Not all masters " + description + ":") 24 | if print_items is not None: 25 | items = print_items 26 | for master, item in zip(self.masters, items): 27 | print(" %s: %s" % (master["name"], item)) 28 | print("\n") 29 | return False 30 | 31 | 32 | parser = argparse.ArgumentParser(description="Debug a merge error in a Glyphs file") 33 | parser.add_argument( 34 | "glyphs_file", metavar="glyphs_file", type=str, help="The Glyphs file to debug" 35 | ) 36 | args = parser.parse_args() 37 | print("Converting to UFO") 38 | ds = to_designspace(load(args.glyphs_file), minimal=True) 39 | checker = Checker(ds.sources) 40 | 41 | for writers in zip(*[m["writers"] for m in checker.masters]): 42 | features = writers[0].features 43 | # Start a new feature file for each master 44 | written = [] 45 | for writer, master in zip(writers, checker.masters): 46 | master["featurefile"] = parseLayoutFeatures(master["ufo"]) 47 | written.append(writer.write(master["ufo"], master["featurefile"])) 48 | if not written[0]: 49 | continue 50 | print( 51 | "Checking compatibility of %s feature%s" 52 | % ("/".join(features), "s" if len(features) > 1 else "") 53 | ) 54 | if not checker.check_all_the_same( 55 | ["yes" if w else "no" for w in written], " had this feature" 56 | ): 57 | continue 58 | # Now check compatibility of each feature file. Normally the problem is 59 | # incompatible lookups 60 | feature_files = [m["featurefile"] for m in checker.masters] 61 | lookups_by_name = [ 62 | {s.name: s for s in f.statements if isinstance(s, ast.LookupBlock)} 63 | for f in feature_files 64 | ] 65 | all_lookup_names = set() 66 | for names in lookups_by_name: 67 | all_lookup_names.update(names.keys()) 68 | for lookup in all_lookup_names: 69 | checker.check_all_the_same( 70 | ["yes" if lookup in my_lookups else "no" for my_lookups in lookups_by_name], 71 | "had a %s lookup" % lookup, 72 | print_items=[ 73 | my_lookups[lookup].asFea() if lookup in my_lookups else "" 74 | for my_lookups in lookups_by_name 75 | ], 76 | ) 77 | -------------------------------------------------------------------------------- /scripts/customize.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # This script is run by the user using `make customize` after the repository 4 | # is cloned. If you are reading this because `make customize` failed, 5 | # skip down to the section headed "INITIALIZATION STEPS". 6 | 7 | from sh import git 8 | import datetime 9 | import re 10 | import sys 11 | from urllib.parse import quote 12 | import subprocess 13 | import requests 14 | 15 | BASE_OWNER = "googlefonts" 16 | BASE_REPONAME = "googlefonts-project-template" 17 | DUMMY_URL = "https://yourname.github.io/your-font-repository-name" 18 | LATEST_OFL = "https://raw.githubusercontent.com/googlefonts/googlefonts-project-template/main/OFL.txt" 19 | 20 | 21 | def repo_url(owner, name): 22 | return f"https://github.com/{owner}/{name}" 23 | 24 | 25 | def web_url(owner, name): 26 | return f"https://{owner}.github.io/{name}" 27 | 28 | 29 | def raw_url(owner, name): 30 | return f"https://raw.githubusercontent.com/{owner}/{name}" 31 | 32 | 33 | def lose(msg, e=None): 34 | print(msg) 35 | print("You will need to do the initialization steps manually.") 36 | print("Read scripts/customize.py for more instructions how to do this.") 37 | if e: 38 | print( 39 | "\nHere's an additional error message which may help diagnose the problem." 40 | ) 41 | raise e 42 | sys.exit(1) 43 | 44 | 45 | try: 46 | my_repo_url = git.remote("get-url", "origin") 47 | except Exception as e: 48 | lose("Could not use git to find my own repository URL", e) 49 | 50 | m = re.match(r"(?:https://github.com/|git@github.com:)(.*)/(.*)/?", str(my_repo_url)) 51 | if not m: 52 | lose( 53 | f"My git repository URL ({my_repo_url}) didn't look what I expected - are you hosting this on github?" 54 | ) 55 | 56 | owner, reponame = m[1], m[2] 57 | 58 | if owner == BASE_OWNER and reponame == BASE_REPONAME: 59 | print("I am being run on the upstream repository; don't do that") 60 | sys.exit() 61 | 62 | # INITIALIZATION STEPS 63 | 64 | # First, the README file contains URLs to pages in the `gh-pages` branch of the 65 | # repo. When initially cloned, these URLs will point to the 66 | # googlefonts/Unified-Font-Repository itself. But downstream users want links 67 | # and badges about their own font, not ours! So any URLs need to be adjusted to 68 | # refer to the end user's repository. 69 | 70 | # We will also pin the dependencies so future builds are reproducible. 71 | 72 | readme = open("README.md").read() 73 | ghpages_url = web_url(owner, reponame) 74 | project_url = repo_url(owner, reponame) 75 | 76 | print("Fixing URLs:", web_url(BASE_OWNER, BASE_REPONAME), "->", ghpages_url) 77 | 78 | readme = readme.replace(web_url(BASE_OWNER, BASE_REPONAME), ghpages_url) 79 | # In the badges, the URLs to raw.githubusercontent.com are URL-encoded as they 80 | # are passed to shields.io. 81 | readme = readme.replace( 82 | quote(raw_url(BASE_OWNER, BASE_REPONAME), safe=""), 83 | quote(raw_url(owner, reponame), safe=""), 84 | ) 85 | 86 | print("Fixing URLs:", DUMMY_URL, "->", ghpages_url) 87 | readme = readme.replace(f"`{DUMMY_URL}`", ghpages_url) 88 | 89 | with open("README.md", "w") as fh: 90 | fh.write(readme) 91 | 92 | git.add("README.md") 93 | 94 | # Fix the OFL 95 | year = datetime.date.today().year 96 | title = reponame.title() 97 | copyright = f"Copyright {year} The {title} Project Authors ({project_url})\n" 98 | print("Fetching the latest OFL..") 99 | ofl = requests.get(LATEST_OFL).text.splitlines() 100 | print("Writing an OFL for you") 101 | print(copyright) 102 | with open("OFL.txt", "w") as fh: 103 | fh.write(copyright) 104 | fh.write("\n".join(ofl[1:])) 105 | 106 | git.add("OFL.txt") 107 | 108 | # Pin the dependencies 109 | print("Pinning dependencies") 110 | dependencies = subprocess.check_output(["pip", "freeze"]) 111 | with open("requirements.txt", "wb") as dependency_file: 112 | dependency_file.write(dependencies) 113 | git.add("requirements.txt") 114 | 115 | # Did anything change? 116 | result = git.status("--porcelain") 117 | if any(line.startswith("M ") for line in result.splitlines()): 118 | git.commit("-m", "Customize repository") 119 | 120 | print("Pushing changes to GitHub") 121 | git.push() 122 | else: 123 | print("Nothing changed, no need to push") 124 | -------------------------------------------------------------------------------- /OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2024 The Montserrat.Git Project Authors (https://github.com/JulietaUla/Montserrat.git) 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | https://openfontlicense.org 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. -------------------------------------------------------------------------------- /.github/workflows/build.yaml: -------------------------------------------------------------------------------- 1 | name: Build font and specimen 2 | 3 | on: push 4 | 5 | jobs: 6 | build: 7 | name: Build and test 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v4 11 | - name: Set up Python 3.10 12 | uses: actions/setup-python@v5 13 | with: 14 | python-version: "3.10" 15 | - name: Install sys tools/deps 16 | run: | 17 | sudo apt-get update 18 | sudo apt-get install ttfautohint libcairo2-dev 19 | sudo snap install yq 20 | - uses: actions/cache@v4 21 | with: 22 | path: ./venv/ 23 | key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} 24 | restore-keys: | 25 | ${{ runner.os }}-venv- 26 | - name: gen zip file name 27 | id: zip-name 28 | shell: bash 29 | # Set the archive name to repo name + "-assets" e.g "MavenPro-assets" 30 | run: echo "ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-fonts" >> $GITHUB_ENV 31 | 32 | # If a new release is cut, use the release tag to auto-bump the source files 33 | # - name: Bump release 34 | # if: github.event_name == 'release' 35 | # run: | 36 | # . venv/bin/activate 37 | # SRCS=$(yq e ".sources[]" sources/config.yaml) 38 | # TAG_NAME=${GITHUB_REF/refs\/tags\//} 39 | # echo "Bumping $SRCS to $TAG_NAME" 40 | # for src in $SRCS 41 | # do 42 | # bumpfontversion sources/$src --new-version $TAG_NAME; 43 | # done 44 | 45 | - name: Build font 46 | run: make build 47 | - name: Check with fontbakery 48 | run: make test 49 | continue-on-error: true 50 | - name: proof 51 | run: make proof 52 | - name: setup site 53 | run: cp scripts/index.html out/index.html 54 | - name: Deploy 55 | uses: peaceiris/actions-gh-pages@v3 56 | if: ${{ github.ref == 'refs/heads/main' }} 57 | with: 58 | github_token: ${{ secrets.GITHUB_TOKEN }} 59 | publish_dir: ./out 60 | - name: Archive artifacts 61 | uses: actions/upload-artifact@v4 62 | with: 63 | name: ${{ env.ZIP_NAME }} 64 | path: | 65 | fonts 66 | out 67 | outputs: 68 | zip_name: ${{ env.ZIP_NAME }} 69 | 70 | # There are two ways a release can be created: either by pushing a tag, or by 71 | # creating a release from the GitHub UI. Pushing a tag does not automatically 72 | # create a release, so we have to do that ourselves. However, creating a 73 | # release from the GitHub UI *does* push a tag, and we don't want to create 74 | # a new release in that case because one already exists! 75 | 76 | release: 77 | name: Create and populate release 78 | needs: build 79 | runs-on: ubuntu-latest 80 | if: contains(github.ref, 'refs/tags/') 81 | env: 82 | ZIP_NAME: ${{ needs.build.outputs.zip_name }} 83 | GH_TOKEN: ${{ github.token }} 84 | steps: 85 | - uses: actions/checkout@v4 86 | - name: Download font artefact files 87 | uses: actions/download-artifact@v4 88 | with: 89 | name: ${{ env.ZIP_NAME }} 90 | path: ${{ env.ZIP_NAME }} 91 | - name: Copy DESCRIPTION.en_us.html to artefact directory 92 | run: cp documentation/DESCRIPTION.en_us.html ${{ env.ZIP_NAME }}/DESCRIPTION.en_us.html 93 | - name: Copy ARTICLE.en_us.html to artefact directory 94 | run: cp documentation/ARTICLE.en_us.html ${{ env.ZIP_NAME }}/ARTICLE.en_us.html 95 | continue-on-error: true 96 | - name: Copy OFL.txt to artefact directory 97 | run: cp OFL.txt ${{ env.ZIP_NAME }}/OFL.txt 98 | - name: Remove proof/fontbakery stuff from release 99 | run: rm -rf ${{ env.ZIP_NAME }}/out 100 | - name: gen release file name 101 | shell: bash 102 | run: echo "RELEASE_ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-${{github.ref_name}}" >> $GITHUB_ENV 103 | - name: Create release bundle 104 | run: mv ${{ env.ZIP_NAME }} ${{ env.RELEASE_ZIP_NAME }}; zip -r ${{ env.RELEASE_ZIP_NAME }}.zip ${{ env.RELEASE_ZIP_NAME }} 105 | - name: Check for release 106 | id: create_release 107 | run: | 108 | if ! gh release view ${{ github.ref_name }}; then 109 | git show -s --format=%B ${{ github.ref_name }} | tail -n +4 | gh release create ${{ github.ref_name }} -t ${{ github.ref_name }} -F - 110 | fi 111 | - name: Populate release 112 | run: | 113 | gh release upload ${{ github.ref_name }} ${{ env.RELEASE_ZIP_NAME }}.zip --clobber 114 | - name: Set release live 115 | run: | 116 | gh release edit ${{ github.ref_name }} --draft=false 117 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Montserrat Font Project 2 | 3 | [![][Fontbakery]](https://JulietaUla.github.io/Montserrat/fontbakery/fontbakery-report.html) 4 | [![][Universal]](https://JulietaUla.github.io/Montserrat/fontbakery/fontbakery-report.html) 5 | [![][GF Profile]](https://JulietaUla.github.io/Montserrat/fontbakery/fontbakery-report.html) 6 | [![][Shaping]](https://JulietaUla.github.io/Montserrat/fontbakery/fontbakery-report.html) 7 | 8 | [Fontbakery]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2FJulietaUla%2FMontserrat%2Fgh-pages%2Fbadges%2Foverall.json 9 | [GF Profile]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2FJulietaUla%2FMontserrat%2Fgh-pages%2Fbadges%2FGoogleFonts.json 10 | [Outline Correctness]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2FJulietaUla%2FMontserrat%2Fgh-pages%2Fbadges%2FOutlineCorrectnessChecks.json 11 | [Shaping]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2FJulietaUla%2FMontserrat%2Fgh-pages%2Fbadges%2FShapingChecks.json 12 | [Universal]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2FJulietaUla%2FMontserrat%2Fgh-pages%2Fbadges%2FUniversal.json 13 | 14 | ![Montserrat](documentation/MONTSERRAT_01.png) 15 | ![Montserrat](documentation/MONTSERRAT_02.png) 16 | ![Montserrat](documentation/MONTSERRAT_03.png) 17 | 18 | Julieta Ulanovsky began this project in 2010 while a post-graduate student of typeface design at the FADU, University of Buenos Aires. 19 | She launched it as a Kickstarter project in 2011, in order to complete the first public release and share it with the world through Google Fonts. 20 | In her Kickstarter, she described it like this: 21 | 22 | > The old posters and signs in the traditional neighborhood of Buenos Aires called Montserrat inspired me to design a typeface that rescues the beauty of urban typography from the first half of the twentieth century. The goal is to rescue what is in Montserrat and set it free, under a free, libre and open source license, the SIL Open Font License. 23 | > 24 | > As urban development changes this place, it will never return to its original form and loses forever the designs that are so special and unique. To draw the letters, I rely on examples of lettering in the urban space. Each selected example produces its own variants in length, width and height proportions, each adding to the Montserrat family. The old typographies and canopies are irretrievable when they are replaced. 25 | > 26 | > There are other revivals, but those do not stay close to the originals. The letters that inspired this project have work, dedication, care, color, contrast, light and life, day and night! These are the types that make the city look so beautiful. 27 | 28 | Since then it has been developed by Julieta in collaboration with several designers. 29 | In 2015, a full set of weights and italics were developed by Julieta in collaboration with Ale Paul, Carolina Giovagnoli, Andrés Torresi, Juan Pablo del Peral and Sol Matas. 30 | In 2017, Jacques Le Bailly reworked the entire Latin design, and in parallel Juan Pablo del Peral and Sol Matas developed the initial Cyrillic extension with review and advise from Maria Doreuli and Alexei Vanyashin. 31 | Technical reviews were made by Lasse Fister, Kalapi GajjarBordawekar and Marc Foley. Special thanks also to Thomas Linard, Valeria Dulitzky, Belén Quirós, and Germán Rozo. 32 | 33 | ## Building 34 | 35 | Fonts are built automatically by GitHub Actions - take a look in the "Actions" tab for the latest build. 36 | 37 | If you want to build fonts manually on your own computer: 38 | 39 | - `make build` will produce font files. 40 | - `make test` will run [FontBakery](https://github.com/googlefonts/fontbakery)'s quality assurance tests. 41 | - `make proof` will generate HTML proof files. 42 | 43 | ## License 44 | 45 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 46 | This license is copied below, and is also available with a FAQ at 47 | https://openfontlicense.org 48 | 49 | ## Changelog 50 | 51 | ### Version 3.100 52 | 53 | - Now with four set of figures: tabular lining (default), tabular oldstyle, proportional lining, proportional oldstyle. 54 | - fixed kcommaaccent (ķ) accent positioning (thanks @kalapi). 55 | - Deleted some open paths in .glyphs files. 56 | 57 | ### Version 4.000 58 | 59 | - Updated character-set/language support to Google's Pro glyph-set (https://github.com/google/fonts/tree/master/tools/encodings/GF%202016%20Glyph%20Sets) 60 | - Updated OS/2 winMetrics to Google's latest vertical metrics recommendations (https://groups.google.com/d/msg/googlefonts-discuss/W4PHxnLk3JY/KoMyM2CfAwAJ) 61 | - Added 'useTypoMetrics' flag 62 | - Added OpenType features consistent with character-set expansion 63 | 64 | ### Version 7.200 65 | 66 | - Google commissioned Jacques Le Bailly @fonthausen to do an extensive revision of the latin character set. 67 | - We applied a new weight distribution across the variables. 68 | - Now Montserrat has extended Cyrillic support (GF Cyrillic Pro). 69 | - More detais about migration in https://github.com/JulietaUla/Montserrat/releases/tag/v7.200 70 | 71 | ### Version 8.000 72 | 73 | - Variable font wow includes hand hinting by Mike Duggan 74 | - Added necessary glyphs for Navajo 75 | - Other small glyph / OT fixes 76 | 77 | ### Version 9.000 78 | 79 | - New Subfamily: _Montserrat Underline_ replaces Montserrat Subrayada, and is fully synchronized with Montserrat Normal and their respective Alternates versions. 80 | - Glyph Expansion: Increased from 1968 to 2731 glyphs, including SSA (African), new anchors, diacritics, Cyrillic updates, and additional characters. 81 | - Tooling & Pipeline Enhancements: Updated to latest gftools, added Cairo, reimported font hinting, and cleaned up scripts. 82 | - Spacing & Kerning Fixes: Improved interpolation, character spacing, kerning pairs, and width matching across styles. 83 | - Miscellaneous Fixes: Case-swapping fixes, remapped fonts, updated Font Info, and cleaned source files. 84 | 85 | ## Known Issues 86 | 87 | **Variable font display issues in Adobe apps:** Variable fonts may not display correctly in certain versions of Adobe CC apps. This behavior varies between different versions. For a more consistent experience, we recommend using the static font files instead. [More info](https://github.com/google/fonts/pull/8281#issuecomment-2402303242). 88 | 89 | **Bolder glyph variations:** There are known issues with the appearance of some glyphs in bolder weights. This is due to limitations in fontmake, the tool used to generate the fonts, and is under investigation. 90 | [More details here.](https://github.com/google/fonts/pull/8281#issuecomment-2419002841) 91 | --------------------------------------------------------------------------------