How to embed font to all page with nuxt js

后端 未结 5 1802
心在旅途
心在旅途 2021-01-04 12:51

I just embed google font to the global setting in nuxt.config.js

 link: [
      { rel: \'stylesheet\', href: \'https://fonts.googleapis.com/css?family=Roboto         


        
相关标签:
5条回答
  • 2021-01-04 13:03

    you can do these steps: 1__define your font in as a custom varriable in a seprated file in your assests directory,for example variables.scss, like this:

    $body-font-family: Roboto;
    @import '~vuetify/src/styles/styles.sass';

    2__then in the nuxt.config.js,you should add a stylesheet link in the head, like this:

    head: {
      link: [
        { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Oswald|Libre+Baskerville&display=swap' }
      ]
    },

    3__then it is neccessary to enable treeshaking in the vuetify and set your customvariables,like this:

    vuetify: {
      customVariables: ['~/assets/variables.scss'],
      treeShake: true
    },

    0 讨论(0)
  • 2021-01-04 13:04

    Update your CSS with the following rule:

    body {
      font-family: 'Roboto', sans-serif;
    }
    

    If you don't have CSS stylesheet setup yet, create a new file in assets directory named i.e. main.css. Inside it put the code above and save it. Then edit nuxt.config.js adding this piece of code after head object:

    css: [
      '@/assets/main.css'
    ],
    
    0 讨论(0)
  • 2021-01-04 13:05

    If you want to include the font within your app so you're serving it

    Download the font from: https://fonts.google.com/specimen/Roboto?selection.family=Roboto (Open the drawer and download the .zip file).

    1. Unpack the contents of the .zip into ./assets/fonts/* (create it if it does not exist).
    2. Create ./assets/fonts/roboto.css and place the following in it:
    /* cyrillic-ext */
    @font-face {
      font-family: 'Roboto';
      font-style: normal;
      font-weight: 400;
      src: local('Roboto'), local('Roboto-Regular'), url(KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
      unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
    }
    /* cyrillic */
    @font-face {
      font-family: 'Roboto';
      font-style: normal;
      font-weight: 400;
      src: local('Roboto'), local('Roboto-Regular'), url(KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
      unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
    }
    /* greek-ext */
    @font-face {
      font-family: 'Roboto';
      font-style: normal;
      font-weight: 400;
      src: local('Roboto'), local('Roboto-Regular'), url(KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
      unicode-range: U+1F00-1FFF;
    }
    /* greek */
    @font-face {
      font-family: 'Roboto';
      font-style: normal;
      font-weight: 400;
      src: local('Roboto'), local('Roboto-Regular'), url(KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
      unicode-range: U+0370-03FF;
    }
    /* vietnamese */
    @font-face {
      font-family: 'Roboto';
      font-style: normal;
      font-weight: 400;
      src: local('Roboto'), local('Roboto-Regular'), url(KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
      unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
    }
    /* latin-ext */
    @font-face {
      font-family: 'Roboto';
      font-style: normal;
      font-weight: 400;
      src: local('Roboto'), local('Roboto-Regular'), url(KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
      unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
    }
    /* latin */
    @font-face {
      font-family: 'Roboto';
      font-style: normal;
      font-weight: 400;
      src: local('Roboto'), local('Roboto-Regular'), url(KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
    }
    

    (You can find this CSS by going to https://fonts.googleapis.com/css?family=Roboto).

    Then change nuxt.config.js to include the CSS file in the css property:

    module.exports = {
      /*
      ** Global CSS
      */
      css: [
        '~/assets/fonts/roboto.css'
      ]
    }
    

    Then you apply font-family: 'Roboto', sans-serif; to your text elements.


    Using the font on every page

    Create a ./assets/css/styles.css file with the following in it:

    body
    {
      font-family: 'Roboto', sans-serif;
    }
    

    Then as above include the CSS file in the nuxt.config.js:

    module.exports = {
      css: [
        '~/assets/fonts/roboto.css',
        '~/assets/css/styles.css'
      ]
    }
    

    Same applies for any asset like other fonts, icons, framework css etc.

    0 讨论(0)
  • 2021-01-04 13:17

    QUICK

    In your nuxt.config.js fi

    head: {
      ...
      ...
      link: [
        {
          rel: 'icon',
          type: 'image/x-icon',
          href: '/favicon.ico'
        },
        {
          rel: 'stylesheet',
          href: 'https://fonts.googleapis.com/css?family=Lato:400,700'
        }
      ]
    }
    

    And in your layouts/default.vue or any other layout file that you are using add the style tag

    <style scoped>
    #app {
      font-family: 'Lato', sans-serif;
    }
    </style>
    
    0 讨论(0)
  • 2021-01-04 13:17

    It is simple like this

    1. Go to Google fonts and select your font style e.g Montserrat

    2. Got to nuxt.config.js and add your font url as shown here

    export default {  
     head: {
            meta: [],
              link: [
           { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Montserrat&display=swap"'}
         ]
       }
    
    1. Go to your nuxt project -> layouts directory -> default.vue file and add class named app ( or whatever name you want) in v-app tag as shown here
     <v-app dark class="app"> 
    
          --your app goes here -- 
    
      </v-app>
    
    1. In the same file style option add the following lines in the class body you defined above

       <style>
       .app{
         font-family: 'Montserrat', sans-serif;
       }
       </style>
      

      Make sure class is defined in v-app tag and use <style> and not <style scoped> to take effect of whole project

    0 讨论(0)
提交回复
热议问题