This module allows to add local fonts on Odoo website.
By default, Odoo only allows to upload fonts available from Google (fonts.google.com) and they can be made available locally or from Google's server in addition to the fonts made available via website theme modules. But there's no option to upload and have local fonts available across all website themes.
To overcome this limitation, this module has been developed to allow users to upload proprietary (or custom) fonts in the most widely used font formats - otf, ttf, woff and woff2 and make it available across all website themes.
The fonts can be deleted as well if not needed anymore.
auto_awesome What this module does
AI-generated from the code · Odoo 17.0Lets website editors upload their own font files (otf, ttf, woff, woff2) and use them across all website themes, and delete them when no longer needed.
This module adds a way to bring your own font files into the Odoo website builder, instead of being limited to Google-hosted fonts or fonts shipped by themes.
In the website editor, when you open the font family picker, you now see an "Add a Local Font" button. Clicking it opens a dialog where you choose a font file and give it a name. Only .otf, .ttf, .woff and .woff2 files are accepted; other formats are rejected with an error message. The font name is required. Saving uploads the file and reloads the page so the new font becomes available.
Uploaded fonts appear in the font list with a trash icon. Deleting one asks for confirmation (because the page reloads), then removes the font files and resets any website setting that was using that font.
Behind the scenes, the uploaded font is stored as a public attachment and a matching CSS rule is generated so browsers can load it. The module extends ir.attachment (with an add_local_font method) and web_editor.assets (to handle adding and deleting fonts in the website style customizations). Website designers get full access rights on attachments so they can manage these fonts.
Depends on
Models and fields (2)
- ir.attachment · extends an existing model
- web_editor.assets · extends an existing model
Text generated by AI (DeepSeek) from reading the Odoo 17.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 2 confirmed, 7 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/website.
terminal Installation and usage
OCA documentation · Odoo 17.0Usage
Source · Odoo 17.0To upload local fonts and use it for the website, you need to:
- Go to website (with editor enabled), click on 'Edit' and go to 'THEMES' section. Under Font Family, you would find an option 'Add a Local Font'.
>
2.When you click on the 'Add a Local Font' option, a wizard would open with two fields- 'Font File' and 'Font Name'. Upload the file with one of the supported file formats and the font name would be automatically updated based on the file. You can update the name or leave it as it is.
>
3.Click on 'Save & Reload' Button, you will see the font is applied to the elements of the website.
>
4.If you want to see the list of local fonts or delete the locally uploaded fonts, click on 'Edit' on website and go to 'THEMES' section. Under Font Family, you would find the newly added font.
>
5.If you want to delete this locally added font, you can click on the delete icon next to it. Once, you click on the delete icon, it would open up a confirmation dialog.
>
6.Once you click on 'Ok' button, the page would be refreshed and you would see the font is changed for the website and also the font is not found in the list.
>
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.