рд╣рдореЗрдВ рдордЯреЗрд░рд┐рдпрд▓-рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рдлреЛрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдХреНрдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рдЕрд╕рд▓ рдореЗрдВ, рдСрдирд▓рд╛рдЗрди рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ 6 рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж, lib рдХреЛрдб рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдФрд░ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛: IT IS POSSIBLE! :рдбреА
/public/fonts/fonts.css
рдмрдирд╛рдПрдВ, рдЬреЛ @font-faces рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:@font-face {
font-family: 'inglobal';
font-weight: normal;
font-style: normal;
src: url('./inglobal.ttf');
}
<link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css">
рдХреЛ /public/index.html рдХреЗ рд╢реАрд░реНрд╖ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
рд╣реБрд░реНрд░реЗ!
4/рдмреА. рдЕрдЧрд░, рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдлреЛрдВрдЯ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ .css рдореЗрдВ рдмрджрд▓реЗрдВ ( src: url('./OperatorMono.css')
рдкрд░ рднреА)
Google рдлрд╝реЙрдиреНрдЯреНрд╕ рдХреЛ рдЕрдкрдиреЗ index.html . рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░реЗрдВ
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,500,700&display=swap" rel="stylesheet">
рдЕрдкрдиреА рдмреЙрдбреА рд╕реНрдЯрд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
/* Styles */
body {
margin: 0 auto;
font-family: 'Montserrat';
}
app.js . рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡
import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
const theme = createMuiTheme({
typography: {
fontFamily: [
'Montserrat'
].join(','),
},
})
/public/index.html
рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ :)
рдЕрд╕рд▓ рдореЗрдВ, рдСрдирд▓рд╛рдЗрди рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ 6 рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж, lib рдХреЛрдб рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдФрд░ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛: IT IS POSSIBLE! :рдбреА
- /public . рдореЗрдВ /рдлреЛрдВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ
/public/fonts/fonts.css
рдмрдирд╛рдПрдВ, рдЬреЛ @font-faces рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:@font-face { font-family: 'inglobal'; font-weight: normal; font-style: normal; src: url('./inglobal.ttf'); }
<link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css">
рдХреЛ /public/index.html рдХреЗ рд╢реАрд░реНрд╖ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ- рд╣реБрд░реНрд░реЗ!
4/рдмреА. рдЕрдЧрд░, рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдлреЛрдВрдЯ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ .css рдореЗрдВ рдмрджрд▓реЗрдВ (
src: url('./OperatorMono.css')
рдкрд░ рднреА)
рдпрд╣ рдХрд╛рдо рд╣реИ !! рд╢реБрдХреНрд░рд┐рдпрд╛ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЙрдиреНрдЯ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди 2 рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:
рдпрд╣рд╛рдБ рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЙрдиреНрдЯ рдХреЛ "рдУрдкрди рд╕реИрдВрд╕" рдореЗрдВ рдмрджрд▓ рд░рд╣рд╛ рд╣реВрдБ
Google рдлрд╝реЙрдиреНрдЯреНрд╕ рдХреЛ рдЕрдкрдиреЗ index.html . рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВ
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap" rel="stylesheet"/>
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 _ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрд╢рд╛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдлреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдереАрдо рдХреЗ рдмрд╛рдж рдлрд╝реЙрдиреНрдЯ-рдкрд░рд┐рд╡рд╛рд░ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
// 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],
},
},
},
});
рдореИрдВ рдмрд╕ рдЕрдиреБрдХреНрд░рдо рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЕрд╕рд▓ рдореЗрдВ, рдСрдирд▓рд╛рдЗрди рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ 6 рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж, lib рдХреЛрдб рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдФрд░ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛: IT IS POSSIBLE! :рдбреА
/public/fonts/fonts.css
рдмрдирд╛рдПрдВ, рдЬреЛ @font-faces рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:<link rel="stylesheet" href="%PUBLIC_URL%/fonts/fonts.css">
рдХреЛ /public/index.html рдХреЗ рд╢реАрд░реНрд╖ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВрд╣реБрд░реНрд░реЗ!
4/рдмреА. рдЕрдЧрд░, рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдлреЛрдВрдЯ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ .css рдореЗрдВ рдмрджрд▓реЗрдВ (
src: url('./OperatorMono.css')
рдкрд░ рднреА)