Material-ui: Benutzerdefinierte Schriftart ändern/verwenden

Erstellt am 7. Apr. 2016  ·  7Kommentare  ·  Quelle: mui-org/material-ui

Warum sind wir gezwungen, Schriftarten zu verwenden, die mit Material-UI gebündelt sind?

Gibt es eine Möglichkeit, dies zu entfernen oder zu konfigurieren?

Hilfreichster Kommentar

Tatsächlich bin ich nach 6 Stunden Online-Suche, Graben in Lib-Code und zufälligem Raten zu dem Schluss gekommen: ES IST MÖGLICH! :D

  1. /fonts-Verzeichnis in /public erstellen
  2. erstelle /public/fonts/fonts.css , das die @font-faces definiert:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. fügen Sie <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> zum Kopf von /public/index.html hinzu

  2. Hurra!

4/b. Wenn es aus irgendeinem Grund immer noch nicht funktioniert, ändern Sie die Erweiterungen der Schriftarten in .css (auch unter src: url('./OperatorMono.css') ).

Alle 7 Kommentare

Tatsächlich bin ich nach 6 Stunden Online-Suche, Graben in Lib-Code und zufälligem Raten zu dem Schluss gekommen: ES IST MÖGLICH! :D

  1. /fonts-Verzeichnis in /public erstellen
  2. erstelle /public/fonts/fonts.css , das die @font-faces definiert:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. fügen Sie <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> zum Kopf von /public/index.html hinzu

  2. Hurra!

4/b. Wenn es aus irgendeinem Grund immer noch nicht funktioniert, ändern Sie die Erweiterungen der Schriftarten in .css (auch unter src: url('./OperatorMono.css') ).

  1. verlinke google fonts in deiner index.html
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,500,700&display=swap" rel="stylesheet">

  2. Fügen Sie Ihren Körperstil hinzu
    /* Styles */ body { margin: 0 auto; font-family: 'Montserrat'; }

  3. einige Änderungen in app.js
    import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';

const theme = createMuiTheme({ typography: { fontFamily: [ 'Montserrat' ].join(','), }, })

/public/index.html


hat bei mir funktioniert :)

Tatsächlich bin ich nach 6 Stunden Online-Suche, Graben in Lib-Code und zufälligem Raten zu dem Schluss gekommen: ES IST MÖGLICH! :D

  1. /fonts-Verzeichnis in /public erstellen
  2. erstelle /public/fonts/fonts.css , das die @font-faces definiert:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. fügen Sie <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> zum Kopf von /public/index.html hinzu
  2. Hurra!

4/b. Wenn es aus irgendeinem Grund immer noch nicht funktioniert, ändern Sie die Erweiterungen der Schriftarten in .css (auch unter src: url('./OperatorMono.css') ).

Es ist Arbeit !! Danke schön.

Befolgen Sie diese 2 Schritte, um die Standardschriftart zu ändern:

Hier ändere ich die Standardschriftart in "Open Sans"

  1. Importieren Sie Google Fonts in Ihre index.html
    <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap" rel="stylesheet"/>

  2. Nehmen Sie diese Änderungen in index.js vor

import { ThemeProvider } from '@material-ui/styles';
import { CssBaseline } from '@material-ui/core';
import { createMuiTheme } from '@material-ui/core';

const theme = createMuiTheme({ typography: { fontFamily: [ 'Open Sans' ].join(','), }, })

ReactDOM.render(
        <ThemeProvider theme={theme}>
                        <CssBaseline />
            <App />
        </ThemeProvider>,
    document.getElementById('root')
);

_Manchmal kommt es bei der Konfiguration auf die Reihenfolge an. Als gute Praxis definieren Sie Typografie immer auf der obersten Ebene während der Konfiguration auf createMuiTheme _

Problem:

Nach der Konfiguration erhält das Thema keine Schriftfamilie

// Create a theme instance.
const theme = createMuiTheme({
  palette: {
    primary: {
      main: "#2991d6",
    },
    secondary: {
      main: "#19857b",
    },
    error: {
      main: red.A400,
    },
    background: {
      default: "#fff",
    },
  }, typography: {
    fontFamily: "VarelaRound,sans-serif",
  },
  overrides: {
    MuiCssBaseline: {
      "@global": {
        "@font-face": [varelaRound],
      },
    },
  },
});

Note: In this case Material UI using Roboto as the default font


Lösung:

// Create a theme instance.
const theme = createMuiTheme({
  typography: {
    fontFamily: "VarelaRound,sans-serif",
  },
  palette: {
    primary: {
      main: "#2991d6",
    },
    secondary: {
      main: "#19857b",
    },
    error: {
      main: red.A400,
    },
    background: {
      default: "#fff",
    },
  },
  overrides: {
    MuiCssBaseline: {
      "@global": {
        "@font-face": [varelaRound],
      },
    },
  },
});

Ich ändere einfach die Reihenfolge und alles funktioniert gut.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

activatedgeek picture activatedgeek  ·  3Kommentare

mattmiddlesworth picture mattmiddlesworth  ·  3Kommentare

revskill10 picture revskill10  ·  3Kommentare

anthony-dandrea picture anthony-dandrea  ·  3Kommentare

newoga picture newoga  ·  3Kommentare