Material-ui: Alterar/usar fonte personalizada

Criado em 7 abr. 2016  ·  7Comentários  ·  Fonte: mui-org/material-ui

Por que somos forçados a usar fontes empacotadas com material-ui?

Existe uma maneira de remover ou configurar isso?

Comentários muito úteis

Na verdade, depois de 6 horas pesquisando online, cavando no código da lib e adivinhando aleatoriamente, cheguei à conclusão: É POSSÍVEL! :D

  1. crie o diretório /fonts em /public
  2. create /public/fonts/fonts.css , que define o @font-faces:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. adicione <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> à cabeça de /public/index.html

  2. Viva!

4/b. Se, por algum motivo, ainda não funcionar, altere as extensões das fontes para .css (também em src: url('./OperatorMono.css') )

Todos 7 comentários

Na verdade, depois de 6 horas pesquisando online, cavando no código da lib e adivinhando aleatoriamente, cheguei à conclusão: É POSSÍVEL! :D

  1. crie o diretório /fonts em /public
  2. create /public/fonts/fonts.css , que define o @font-faces:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. adicione <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> à cabeça de /public/index.html

  2. Viva!

4/b. Se, por algum motivo, ainda não funcionar, altere as extensões das fontes para .css (também em src: url('./OperatorMono.css') )

  1. vincule fontes do google em seu index.html
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,500,700&display=swap" rel="stylesheet">

  2. Adicione seu estilo de corpo
    /* Styles */ body { margin: 0 auto; font-family: 'Montserrat'; }

  3. algumas alterações no app.js
    import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';

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

/public/index.html


funcionou para mim :)

Na verdade, depois de 6 horas pesquisando online, cavando no código da lib e adivinhando aleatoriamente, cheguei à conclusão: É POSSÍVEL! :D

  1. crie o diretório /fonts em /public
  2. create /public/fonts/fonts.css , que define o @font-faces:
@font-face {
  font-family: 'inglobal';
  font-weight: normal;
  font-style: normal;
  src: url('./inglobal.ttf');
}
  1. adicione <link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css"> à cabeça de /public/index.html
  2. Viva!

4/b. Se, por algum motivo, ainda não funcionar, altere as extensões das fontes para .css (também em src: url('./OperatorMono.css') )

Isso funciona !! Obrigada.

Siga estas 2 etapas para alterar a fonte padrão:

Aqui estou mudando a fonte padrão para "Open Sans"

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

  2. Faça essas alterações no 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')
);

_Às vezes, a sequência é importante durante a configuração. Como boa prática, sempre defina a tipografia no nível superior durante a configuração em createMuiTheme _

Emitir:

Depois que o tema de configuração não estiver recebendo a família de fontes

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


Solução:

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

Acabei de mudar a sequência e tudo funcionando bem.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

FranBran picture FranBran  ·  3Comentários

chris-hinds picture chris-hinds  ·  3Comentários

mb-copart picture mb-copart  ·  3Comentários

revskill10 picture revskill10  ·  3Comentários

newoga picture newoga  ·  3Comentários