Material-ui: Изменить/использовать собственный шрифт

Созданный на 7 апр. 2016  ·  7Комментарии  ·  Источник: mui-org/material-ui

Почему мы вынуждены использовать шрифты в комплекте с material-ui?

Есть ли способ удалить или настроить это?

Самый полезный комментарий

Собственно, после 6 часов поиска в сети, копания в коде lib и случайных угадываний, я пришел к выводу: ЭТО ВОЗМОЖНО! :D

  1. создать каталог /fonts в /public
  2. создайте /public/fonts/fonts.css , который определяет @font-faces:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. добавить <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> в заголовок /public/index.html

  2. Ура!

4/б. Если по какой-либо причине это все еще не работает, измените расширения шрифтов на .css (также в src: url('./OperatorMono.css') )

Все 7 Комментарий

Собственно, после 6 часов поиска в сети, копания в коде lib и случайных угадываний, я пришел к выводу: ЭТО ВОЗМОЖНО! :D

  1. создать каталог /fonts в /public
  2. создайте /public/fonts/fonts.css , который определяет @font-faces:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. добавить <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> в заголовок /public/index.html

  2. Ура!

4/б. Если по какой-либо причине это все еще не работает, измените расширения шрифтов на .css (также в src: url('./OperatorMono.css') )

  1. связать шрифты Google в вашем index.html
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,500,700&display=swap" rel="stylesheet">

  2. Добавьте в свой стиль тела
    /* Styles */ body { margin: 0 auto; font-family: 'Montserrat'; }

  3. несколько изменений в app.js
    import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';

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

/public/index.html


работал на меня :)

Собственно, после 6 часов поиска в сети, копания в коде lib и случайных угадываний, я пришел к выводу: ЭТО ВОЗМОЖНО! :D

  1. создать каталог /fonts в /public
  2. создайте /public/fonts/fonts.css , который определяет @font-faces:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. добавить <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> в заголовок /public/index.html
  2. Ура!

4/б. Если по какой-либо причине это все еще не работает, измените расширения шрифтов на .css (также в src: url('./OperatorMono.css') )

Это работает !! Спасибо.

Выполните следующие 2 шага, чтобы изменить шрифт по умолчанию:

Здесь я меняю шрифт по умолчанию на «Open Sans».

  1. Импортируйте шрифты Google в ваш index.html
    <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap" rel="stylesheet"/>

  2. Сделайте эти изменения в index.js

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')
);

_Иногда последовательность имеет значение при настройке. Рекомендуется всегда определять типографику на верхнем уровне во время настройки createMuiTheme _

Проблема:

После настройки тема не получает font-family

// 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


Решение:

// 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],
      },
    },
  },
});

Я просто меняю последовательность и все работает нормально.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

Bessonov picture Bessonov  ·  93Комментарии

tleunen picture tleunen  ·  59Комментарии

aranw picture aranw  ·  95Комментарии

gndplayground picture gndplayground  ·  54Комментарии

garygrubb picture garygrubb  ·  57Комментарии