Flutter’s google_fonts
package makes it easy to use Google Fonts in your Flutter app. This package provides a wide variety of fonts to choose from, and allows you to easily customize the font style, weight, and size to fit your app’s design.
In this article, we’ll go over the basics of using the google_fonts
package, including how to install it and how to use it to apply Google Fonts in your app. We’ll also explore some of the advanced features of this package, such as custom font loading and font subsets.
Installing the Package
To start using the google_fonts
package, you first need to add it to your project. You can do this by adding the following line to your pubspec.yaml
file:
dependencies:
flutter:
sdk: flutter
google_fonts: ^2.1.0
After adding the package to your pubspec.yaml
file, run flutter pub get
to install the package.
Basic Usage
Using Google Fonts in your Flutter app is easy with the google_fonts
package. To use a Google Font, simply import the google_fonts
package and call the GoogleFonts
widget, passing in the desired font and any additional styles you want to apply.
Here’s an example that shows how to use the GoogleFonts
widget to apply the Roboto
font to a Text
widget:
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('My App'),
),
body: Center(
child: Text(
'Hello, World!',
style: GoogleFonts.roboto(fontSize: 24),
),
),
);
}
}
In this example, we imported the google_fonts
package and used the GoogleFonts
widget to apply the Roboto
font to the Text
widget. We also set the font size to 24 pixels.
Customization
The GoogleFonts
widget provides several properties you can use to customize the font, including:
fontWeight
: The weight of the font (e.g. bold, medium, light).fontStyle
: The style of the font (e.g. italic, normal).fontSize
: The size of the font.letterSpacing
: The spacing between letters.wordSpacing
: The spacing between words.height
: The height of the text.
Here’s an example that shows how to apply some of these properties:
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('My App'),
),
body: Center(
child: Text(
'Hello, World!',
style: GoogleFonts.roboto(
fontSize: 24,
fontWeight: FontWeight.bold,
fontStyle: FontStyle.italic,
letterSpacing: 1.2,
wordSpacing: 1.5,
height: 1.5,
),
),
),
);
}
}
In this example, we applied the bold
weight to the font, set the style to italic
, increased the letter spacing to 1.2 pixels, increased the word spacing to 1.5 pixels, and set the line height to 1.5.
Advanced Usage
The google_fonts
package provides several advanced features that allow you to customize the font’s appearance and behavior further. Let’s take a look at some of these features:
- Font weight and style: You can specify the font’s weight and style using the FontWeight and FontStyle classes, respectively. For example, you can create a Text widget with a bold and italic Roboto font like this:
Text(
'Hello, World!',
style: GoogleFonts.roboto(
fontWeight: FontWeight.bold,
fontStyle: FontStyle.italic,
),
);
- Text decoration: You can add decorations to your text, such as underlines and strikethroughs, using the TextDecoration class. Here’s an example
Text(
'Hello, World!',
style: GoogleFonts.roboto(
decoration: TextDecoration.underline,
decorationColor: Colors.red,
decorationThickness: 2,
),
);
- Letter spacing: You can specify the spacing between letters using the letterSpacing property of the TextStyle class. Here’s an example
Text(
'Hello, World!',
style: GoogleFonts.roboto(
letterSpacing: 2,
),
);
- Word spacing: You can specify the spacing between words using the wordSpacing property of the TextStyle class. Here’s an example:
Text(
'Hello, World!',
style: GoogleFonts.roboto(
wordSpacing: 5,
),
);
- Line height: You can control the height of each line of text using the lineHeight property of the TextStyle class. Here’s an example:
Text(
'Hello,\nWorld!',
style: GoogleFonts.roboto(
lineHeight: 1.5,
),
);
- Text direction: You can specify the text direction of your text using the TextDirection enum. Here’s an example:
Text(
'Hello, World!',
style: GoogleFonts.roboto(
textDirection: TextDirection.rtl,
),
);
- Font fallbacks: If the specified font is not available on the device, you can provide a list of fallback fonts to use instead. Here’s an example:
Text(
'Hello, World!',
style: GoogleFonts.getFont(
'Acme',
fontWeight: FontWeight.bold,
fontFallback: ['Roboto'],
),
);
These are just a few examples of the advanced features provided by the google_fonts package. With these features, you can customize your text in a myriad of ways to suit your app’s needs.