using Adobe fonts with Flutter project - flutter

I am working in a Flutter project and I want to use the following Adobe fonts, how can I do that?
https://fonts.adobe.com/fonts/myriad
https://fonts.adobe.com/fonts/myriad-arabic

You need to download this fonts and place it to assets/fonts folder at the root of your project. Next, add fonts to your pubspec.yaml file. For example:
flutter:
fonts:
- family: FontFamily
fonts:
- asset: fonts/FontFamily-Regular.ttf
style: regular
You can find more information in Official Documentation.

Related

Flutter - different asset path in package's example when building

When creating a custom package that contains font as a .ttf file. I try to download the font file also in the example app that is contained in the package.
The font is downloaded successfully on iOS and macOS apps but not on Linux or Web.
The web console is giving me an error
Failed to load font My-Custom-Icons at assets/../lib/assets/fonts/My-Custom-Icons.ttf
...
my_package:
# When depending on this package from a real application you should use:
# custom_package: ^x.y.z
# See https://dart.dev/tools/pub/dependencies#version-constraints
# The example app is bundled with the plugin so we use a path dependency on
# the parent directory to use the current plugin's version.
path: ../
...
flutter:
uses-material-design: true
fonts:
- family: My-Custom-Icons
fonts:
- asset: ../lib/assets/fonts/My-Custom-Icons.ttf
I would expect that font would be downloaded the same way on all different platforms. What I'm missing here?
Hi just replace this and try.
- asset: assets/fonts/My-Custom-Icons.ttf
Ah, it seems that you can use the packages path when importing the font even inside the example. So the following did the work.
...
my_package:
# When depending on this package from a real application you should use:
# custom_package: ^x.y.z
# See https://dart.dev/tools/pub/dependencies#version-constraints
# The example app is bundled with the plugin so we use a path dependency on
# the parent directory to use the current plugin's version.
path: ../
...
flutter:
uses-material-design: true
fonts:
- family: My-Custom-Icons
fonts:
- asset: packages/my_package/assets/fonts/My-Custom-Icons.ttf

Export fonts from a package - Flutter

Page URL: [https://flutter.dev/docs/cookbook/design/package-fonts.html][1]
Page source: [https://github.com/flutter/website/tree/master/src/docs/cookbook/design/package-fonts.md][1]
Description of issue:
I've been trying to replicate the project Export fonts from a package from the Flutter.dev cookbook page. But I'm getting lost in the instructions. The instructions indicate that :
To export a font from a package, you need to import the font files into the lib folder of the package project.
The instructions also say that (I quote)
assume you’ve got a Flutter library called awesome_package with fonts living in a lib/fonts folder.
And the awesome_package package/library folder structure is defined as follow
awesome_package/
lib/
awesome_package.dart
fonts/
Raleway-Regular.ttf
Raleway-Italic.ttf
My question is : How do I create the awesome_package. Do I necessarily need to publish the package on the pub.dev ?
Please help me out
How do I create the awesome_package.
See more about Flutter packages and plugins
Do I necessarily need to publish the package on the pub.dev ?
No, you can use the package locally.
If you just want to use differents fonts, don't create a package for this, use this package google_fonts
Or you can use your own font
Docs
flutter:
fonts:
- family: font_name
fonts:
- asset: fonts/font_name1.ttf
- asset: fonts/font_name1.ttf

Flutter - No file or variants found for asset: lib/assets/images

I'm getting this error while adding images folder assets in pubspec.yaml
Error detected in pubspec.yaml:
No file or variants found for asset: lib/assets/images.
This is how my pubspec.yaml file looks like
flutter:
uses-material-design: true
assets:
- lib/assets/images
fonts:
- family: Potra
fonts:
- asset: lib/assets/fonts/Potra.ttf
- family: BAHNSCHRIFT
fonts:
- asset: lib/assets/fonts/BAHNSCHRIFT.TTF
I tried to look it up. Most of the people are suggesting to give the right indentation for this problem. But I'm quite sure it is not the case here. I tried the proper indentation method and also all possible variants but in vain.
When I remove below part, code runs fine without any error and respective added font family in pubspec also works fine.
assets:
- lib/assets/images
Why I'm getting error after adding assets part?
This is how my file structure looks like
Your code doesn't work because you need to add one more slash, so it should be like:
assets:
- lib/assets/images/
Tips: It's kinda bad practice if you put your assets folder inside your lib folder. Try to place it outside the lib folder. And also make sure the indentations are correct.
I hope it will be helpful.
You should have your assets folder not inside lib folder but in the main root directory( i.e. out of lib ) and then add assets as :
assets:
# For images
- assets/images
fonts:
- family: FontFamilyName
fonts:
- asset: assets/fonts/the_font_you_want.ttf
And beware of indentation in pubspec.yaml, they also cause errors
I got this exception for a silly mistake I have space in my file name like home_cover. jpg. So I remove it like home_cover.jpg

Font from a package (library) not showing up in Flutter app?

I have a package named Handwriter. It writes text in a custom font. I have the .ttf saved in lib/third_party/. In its pubspec.yaml, I add the font:
flutter:
uses-material-design: true
fonts:
- family: FancyHandwriting
fonts:
- asset: lib/third_party/FancyHandwriting-Regular.ttf
My app imports this package. In its pubspec.yaml, I add Handwriter as a dependency:
dependencies:
flutter:
sdk: flutter
handwriter:
path: ../handwriter
model:
path: ../model
However, the font does not show up at all when I use it in my app. Why?
final defaultStyle = TextStyle(
fontFamily: 'FancyHandwriting',
fontSize: 130);
Without having to re-add the fonts in the package consumer app, you can use:
final defaultStyle = TextStyle(
fontFamily: 'FancyHandwriting',
package: 'handwriter',
fontSize: 130,
);
Which is also equivalent to doing:
final defaultStyle = TextStyle(
fontFamily: 'packages/handwriter/FancyHandwriting',
fontSize: 130,
);
To use your Flutter Icon font from a custom package, you can follow these steps:
create a flutter icon font
You can use flutter icon for that https://www.fluttericon.com
Put the file into your package
Make sure to copy the .ttf file into of the /lib folder.
NOT just assets, as you would do in your root project.
Example path:
/packages/my_awesome_fontpackage/lib/assets/MyIconFont.ttf
(see https://zubairehman.medium.com/how-to-use-custom-fonts-images-in-flutter-package-c2d9d4bfd47a )
Add the font to your project
Now open your package's pubspec.yaml file and add the font as an asset with package path:
flutter:
fonts:
- family: MyIconFont
fonts:
- asset: packages/my_awesome_fontpackage/assets/MyIconFont.ttf
(you might have to restart your app and bundling completely for the font to be loaded correctly)
Now add package declaration to font dart file
Go into the my_icon_font.dart file and change the constant _kFontPkg there to your package name.
class MyIconFont {
MyIconFont._();
static const _kFontFam = 'MyIconFont';
static const String? _kFontPkg = 'my_awesome_fontpackage';
static const IconData bell = ...
....
}
According to this: https://flutter.dev/docs/cookbook/design/package-fonts you have to declare the package's font in your app's pubspec.yaml:
Declare the font assets
Now that you’ve imported the package, tell
Flutter where to find the fonts from the awesome_package.
To declare package fonts, prefix the path to the font with
packages/awesome_package. This tells Flutter to look in the lib folder
of the package for the font.
I.e.:
dependencies:
flutter:
sdk: flutter
handwriter:
path: ../handwriter
model:
path: ../model
flutter:
uses-material-design: true
fonts:
- family: FancyHandwriting
fonts:
- asset: packages/handwriter/third_party/FancyHandwriting-Regular.ttf
Note you're declaring the asset as being from the package - you don't have to make a copy of it in your app's lib.
The reasoning behind this is that not all fonts from every package may be used, so this trims down your final app's size.
Don't forget that you must also import/copy the fonts into your font assets directory. In your case make sure you place them in lib/third_party/. (See step 1 - https://flutter.dev/docs/cookbook/design/fonts).

Flutter - Custom Font not displaying

This is an excerpt of my pubspec.yaml file:
flutter:
uses-material-design: true
fonts:
- family: Coiny
fonts:
- asset: fonts/Coiny-Regular.ttf
I am trying to use the font called "Coiny" from the Google Fonts page. I created a fonts folder inside my root directory and put it in there.
In my code, I do this:
new Text("Testtext", style: new TextStyle(fontFamily: "Coiny")),
But it has no effect. I have encountered a similar problem in the past with the Barrio font. But it seemed to work after some time, which is not the case with this one.
You might want to try removing the app from the device and reinstalling it. Depending on how you're launching, it might not be writing over the old install file.
I had font: not right under flutter:. I moved the font: section right under flutter: , and worked.
flutter:
fonts:
- family: Test
fonts:
- asset: assets/fonts/Font-Test.ttf
I had the same issue. If you're testing via an emulator, you just need to stop and restart it. Via VSCode you can just stop the run process (Red square in the top right) and then run -> Run without debugging or Start Debugging
Whenever you make changes to pubspec.yaml file, it is always a good idea to stop the ongoing dart process from your IDE and do a full restart.
If you do hot reload or hot restart, engine may not be able to fetch the newly added data to your file. If nothing works, you should use #Collin answer, uninstall and reinstall the app.
Font declaration alignment is not as per flutter pubspec.yaml. It should be like below.
fonts:
- family: Coiny
fonts:
- asset: fonts/Coiny-Regular.ttf
You can check out it here.
Just Uninstall previous flutter app apk from your android device and again run application. This will resolve your problem. If this not working then clear device cache and try again.
You have add new files in the app therefore you have to
close the running device and then restart the emulator.
-stop a running emulator
-run a emulator
It works in my case.
I had an issue with the font and was receiving these two warnings:
Warning: No fonts specified for font [font family name]
Warning: Missing family name for font.
The issue was that I had the pubspec.yaml fonts section typed incorrectly.
Make sure your pubspec.yaml looks like this:
flutter:
fonts:
- family: FontFamily
fonts:
- asset: fonts/Font-Medium.ttf
uses-material-design: true
You will then need to flutter clean and then flutter pub get. If all of this fails, try to uninstall the app and then reinstall it again (as Collin states above) after doing the above.
I had a "-" next to the nested fonts declaration, which was causing those errors (and the font not to work).
In my case the font asset files were corrupted. Try installing them on your local machine first. If it gives you an error then they are corrupted.
I also encountered this issue, after setting the font B, it not showing correctly.
But the issue for me was I made an empty line between two font-family, like below
fonts:
- family: A
fonts:
- asset: assets/fonts/A-Regular.ttf
- family: B
fonts:
- asset: assets/fonts/B-Regular.ttf
remove the empty line between two font families, This was the working solution for me and remember YAML is INDENTATION sensitive
I tried everything but the changes in pubspec.yaml just did not make any difference. I then created a new project. copied font files to respective folder, made all changes to pubspec.yaml, pasted code into my main.dart file. I ensured everything was in place and then ran project in simulator and viola all fonts appeared in full glory.
I had the other reason. Consider removing spaces from family name. For example, use "MavenPro" instead of "Maven Pro".
Also check you put fonts section into flutter section.
Idek, sometimes I've found you need to totally kill your simulator or device and re-install to get some fonts to work.
I've also found that some font just refuse to work.
Try a different font to to confirm your sanity that your pubspec and TextThemes are actually correct with known working font.
set in pubspec.yaml
fonts:
- family: Montserrat
fonts:
- asset: assets/fonts/Montserrat-Regular.ttf
- asset: assets/fonts/Montserrat-Bold.ttf
and then make sure that clean and build
1. Check the indentation. Every sub-property has 2 spaces from the left. Don't use tab spaces.
2. Stop the dart file execution and try to cold boot the emulator.
3. Try doing a hot restart.
Refer to this YouTube Tutorial.