Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

use local typeface in vue-cli 3

I want to import an local typeface into my vue-cli 3 project.

The .woff and .woff3 files are in src/assets/typo and I include them in src/scss/_typo.scss: enter image description here

My _typo.scss looks like this:

@font-face {
  font-family: 'HKGrotesk';
  src:  url('@/assets/typo/HKGrotesk-Bold.woff2') format('woff2'),
        url('@/assets/typo/HKGrotesk-Bold.woff') format('woff');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'HKGrotesk';
  src:  url('@/assets/typo/HKGrotesk-Medium.woff2') format('woff2'),
        url('@/assets/typo/HKGrotesk-Medium.woff') format('woff');
  font-weight: medium;
  font-style: normal;
}

@font-face {
  font-family: 'HKGrotesk';
  src:  url('@/assets/typo/HKGrotesk-Regular.woff2') format('woff2'),
        url('@/assets/typo/HKGrotesk-Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

And this is my vue.config to use the colors and typeface globally:

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        data: `
          @import "@/scss/_colors.scss";
          @import "@/scss/_typo.scss";
        `
      }
    }
  }
};

When I run my project I got the following error message:

Failed to compile.

./src/App.vue?vue&type=style&index=0&lang=scss& (./node_modules/css-loader??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/lib??ref--8-oneOf-1-2!./node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=style&index=0&lang=scss&)
Module not found: Error: Can't resolve './@/assets/typo/HKGrotesk-Bold.woff' in '/Users/robin/Documents/Code/2018/iamrobin-portfolio/src'
like image 543
iamrobin. Avatar asked Jul 18 '18 21:07

iamrobin.


People also ask

How do I use local fonts in Nextjs?

In this article, we will learn to add Custom Fonts to our Next. js project. Step 2: Open the project in your code editor, and create a new folder in the root directory called fonts. Step 3: If you already have the fonts, then skip this step.


2 Answers

Not sure if this helps at this stage but I had the same issue and resolved it by using relative paths (i.e. ../assets/fonts/myfont.woff) rather than using the root wildcard (i.e. @/assets/fonts/myfont.woff or @~/assets/fonts/myfont.woff).

Hope it helps you!

like image 175
Croot Avatar answered Oct 12 '22 00:10

Croot


Try this ~@/assets/...

@font-face {
  font-family: 'HKGrotesk';
  src:  url('~@/assets/typo/HKGrotesk-Regular.woff2') format('woff2'),
        url('~@/assets/typo/HKGrotesk-Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
like image 20
JPilson Avatar answered Oct 11 '22 22:10

JPilson