Comment inclure de la police Roboto dans webpack construire pour le Matériel de l'INTERFACE utilisateur?
Pour un progressive application web basée sur Matériel de l'INTERFACE utilisateur (Réagir) et construit avec Webpack, comment dois-je inclure police Roboto(s), de sorte que l'application ne dépend pas sur les serveurs de Google et les polices aussi travailler hors ligne ?
-
La la page d'installation juste les références de la Google polices de la page, mais que de toute évidence, les forces de polices à télécharger depuis les serveurs de Google.
-
Similaire Matériau Problème d'INTERFACE utilisateur existe à l'égard de la police Roboto, mais repose toujours sur Google fournissant les fichiers de police.
-
J'ai trouvé un NPM paquet fournissant les fichiers de police Roboto, mais je ne suis pas sûr de la façon d'inclure ces fichiers comme beaucoup de styles et de formats de police sont fournis et je ne sais pas ce que les styles de Matériel de l'INTERFACE utilisateur vraiment besoin. Aussi, l'importation de ces familles de polices simplement via @import semble avoir les problèmes de performances.
Donc, ce qui est une bonne et simple solution de regroupement de la droit Roboto fichiers avec mon application?
Vous devez vous connecter pour publier un commentaire.
C'est la façon dont mon équipe a passé en dont la Roboto polices dans notre Webpack projet:
Télécharger le Roboto polices et de faire un fichier CSS dans une police de caractères spécifique dossier
/fonts
)./fonts
./fonts/index.css
). Nous avons obtenu le contenu de ce fichier à partir de ce tutoriel.index.css:
Utiliser le fichier-chargeur webpack module à charger dans les fichiers de police afin webpack peut les reconnaître
npm install --save file-loader
(https://www.npmjs.com/package/file-loader)webpack.conf.js:
Importer la police fichier css dans l'entrée principale de l'application
App.js:
Et c'est tout. Votre application par défaut de la police doit maintenant être Roboto.
EDIT: Qui Roboto Polices ne Matériau-UI fait utiliser?
Partie de cette question est de déterminer la droit Roboto polices de caractères à inclure dans le projet puisque la totalité de la Roboto polices est de près de 5 MO.
Dans le README, les instructions, y compris pour les Roboto point pour: fonts.google.com/?selection.family=Roboto:300,400,500. Ici, 300 = Roboto-Lumière, 400 = Roboto Réguliers, et 500 = Roboto-Moyen. Ceux-ci correspondent à la police des poids définis dans le typography.js fichier. Bien que ces trois polices poids compte pour une utilisation dans la quasi-totalité de la bibliothèque, il y a une référence à la Régulière-Gras dans DateDisplay.js. Si vous n'êtes pas en utilisant le DatePicker, vous devriez être sûr de les omettre. Italique styles de police n'est pas utilisé n'importe où dans le projet de côté de l'GitHub markdown style.
Cette information est exacte au moment de la rédaction de ce document, mais il peut changer dans l'avenir.
font-weight
oufont-style
style. Je vais essayer de vérifier ça ce soir. En tout cas, j'ai trouvé un article sur le chargement différé des polices pour un gain de performance. Pourriez-vous vous charger Roboto-Régulier à l'avance et de lazy-load les autres variantes plus tard?Vous pouvez aussi le faire comme il est documenté dans ce numéro:
https://github.com/callemall/material-ui/issues/6256
Puis, dans votre index.js:
Fonctionne avec webpack/créer-réagir-app.
import typeface-roboto
? Si je veux par exemple à seulement 300 et 400 polices.Dans le cas où l'application a été commencé avec créez-réagir-app, il n'a pas un [visible] webpack configfile. Dans ce cas, vous pouvez effectuer les opérations suivantes:
créer /public/fonts/fonts.css, qui définit la
@font-faces
@font-face {
font-family: 'inglobal';
font-weight: normal;
font-style: normal;
src: url('./OperatorMono.ttf');
}
Copie des fichiers de police
ajouter
<link href="%PUBLIC_URL%/fonts/fonts.css">
d' /public/index.html's
Hourra!
5/b. Si, pour une raison quelconque, cela ne fonctionne toujours pas, changez les polices' extensions .css (également à la src: url('./OperatorMono.css') )