4.1.0 • Published 4 years ago

gulp-google-webfonts v4.1.0

Weekly downloads
1,423
License
GPL-3.0
Repository
github
Last release
4 years ago

gulp-google-webfonts

A gulp plugin to download Google webfonts and generate a stylesheet for them.

Note: The examples seem to have issues with Gulp v4.

Example #1

Input

fonts.list

# Tab-delimeted format
Oswald	400,700	latin,latin-ext

# Google format
Roboto:500,500italic&subset=greek

gulpfile.js

var gulp = require('gulp');
var googleWebFonts = require('../');

var options = { };

gulp.task('fonts', function () {
	return gulp.src('./fonts.list')
		.pipe(googleWebFonts(options))
		.pipe(gulp.dest('out/fonts'))
		;
	});

gulp.task('default', ['fonts']);

Output

gulp fonts

out/fonts/

fonts.css
Oswald-normal-400.woff
Oswald-normal-700.woff
Roboto-italic-500.woff
Roboto-normal-500.woff

out/fonts/fonts.css

@font-face {
	font-family: 'Oswald';
	font-style: normal;
	font-weight: 400;
	src: url(Oswald-normal-400.woff) format('woff');
	unicode-range: U+0-10FFFF;
}

@font-face {
	font-family: 'Oswald';
	font-style: normal;
	font-weight: 700;
	src: url(Oswald-normal-700.woff) format('woff');
	unicode-range: U+0-10FFFF;
}

@font-face {
	font-family: 'Roboto';
	font-style: italic;
	font-weight: 500;
	src: url(Roboto-italic-500.woff) format('woff');
	unicode-range: U+0-10FFFF;
}

@font-face {
	font-family: 'Roboto';
	font-style: normal;
	font-weight: 500;
	src: url(Roboto-normal-500.woff) format('woff');
	unicode-range: U+0-10FFFF;
}

Options

The googleWebFonts object can take the following options:

  • fontsDir - The path the output fonts should be under. (Note: the path is relative to gulp.dest)
  • cssDir - The path the output css should be under. (Note: the path is relative to gulp.dest)
  • cssFilename - The filename of the output css file.
  • fontDisplayType - The css font display type (Default: auto)

Example #2

Input (other inputs same as example #1)

gulpfile.js

var gulp = require('gulp');
var googleWebFonts = require('../');

var options = {
	fontsDir: 'googlefonts/',
	cssDir: 'googlecss/',
	cssFilename: 'myGoogleFonts.css'
};

gulp.task('fonts', function () {
	return gulp.src('./fonts.list')
		.pipe(googleWebFonts(options))
		.pipe(gulp.dest('out/fonts'))
		;
	});

gulp.task('default', ['fonts']);

Output

gulp fonts

out/

./fonts/googlefonts/Oswald-normal-400.woff
./fonts/googlefonts/Oswald-normal-700.woff
./fonts/googlefonts/Roboto-normal-500.woff
./fonts/googlefonts/Roboto-italic-500.woff
./fonts/googlecss/myGoogleFonts.css

Example #3

Input (other inputs same as example #1)

gulpfile.js

var gulp = require('gulp');
var googleWebFonts = require('../');

var options = {
	fontsDir: 'googlefonts/',
	cssDir: 'googlecss/',
	cssFilename: 'myGoogleFonts.css',
  relativePaths: true
};

gulp.task('fonts', function () {
	return gulp.src('./fonts.list')
		.pipe(googleWebFonts(options))
		.pipe(gulp.dest('out/fonts'))
		;
	});

gulp.task('default', ['fonts']);

Output

gulp fonts

out/

./css/fonts.css
./fonts/Lato-normal-300.woff
./fonts/googlefonts/Oswald-normal-400.woff
./fonts/googlefonts/Oswald-normal-700.woff
./fonts/googlefonts/Roboto-normal-500.woff
./fonts/googlefonts/Roboto-italic-500.woff
./fonts/Roboto-normal-400.woff
./fonts/Lato-normal-400.woff
./fonts/googlecss/myGoogleFonts.css
./fonts/Lato-italic-400.woff

Example #4

Command-line usage

Input

Makefile

PATH := ./node_modules/.bin:$(PATH)

out := out

fonts_list := fonts.list
fonts_dir := fonts
css_dir := css
css_filename := fonts.css

.PHONY: default fonts clean

default: fonts

clean:
	rm -rf -- $(out)

fonts:
	google-webfonts < $(fonts_list) --out-base-dir $(out) --fonts-dir $(fonts_dir) --css-dir $(css_dir) --css-filename $(css_filename)

fonts.list

Lato	300,400,400italic	latin,greek
Roboto	400					latin,latin-ext

Output

make

out/

./css/fonts.css
./fonts/Lato-normal-300.woff
./fonts/Roboto-normal-400.woff
./fonts/Lato-normal-400.woff
./fonts/Lato-italic-400.woff

out/css/fonts.css

@font-face {
	font-family: 'Lato';
	font-style: italic;
	font-weight: 400;
	src: url(fonts/fonts/Lato-italic-400.woff) format('woff');
	unicode-range: U+0-10FFFF;
}

@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 300;
	src: url(fonts/fonts/Lato-normal-300.woff) format('woff');
	unicode-range: U+0-10FFFF;
}

@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 400;
	src: url(fonts/fonts/Lato-normal-400.woff) format('woff');
	unicode-range: U+0-10FFFF;
}

@font-face {
	font-family: 'Roboto';
	font-style: normal;
	font-weight: 400;
	src: url(fonts/fonts/Roboto-normal-400.woff) format('woff');
	unicode-range: U+0-10FFFF;
}
4.1.0

4 years ago

4.0.0

5 years ago

2.1.0

6 years ago

2.0.0

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago

0.0.14

9 years ago

0.0.13

9 years ago

0.0.12

9 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago