For the better part of a decade, every button, menu item, and status indicator in Odoo spoke the visual language of Font Awesome. The “fa-” prefix was as much a part of the platform’s DNA as its module system or its ORM. That era just ended. Odoo has completed a full migration of its icon system to Google Material Symbols — a change that touches every screen in the application and fundamentally alters how the platform’s interface is built and extended.
Why Material Symbols, and Why Now
The old setup carried a kind of technical debt that was easy to ignore until it wasn’t. Odoo was running two parallel icon systems: Font Awesome for general-purpose icons (the “fa-” prefix that developers know by heart) and a custom Odoo UI icon set (the “oi-” prefix) for platform-specific glyphs. Each system had its own font files, its own naming conventions, and its own quirks. When a developer needed an icon for a new feature, they had to decide which set to pull from — and when neither had the right glyph, the answer was often to add yet another custom SVG.
Google Material Symbols solves this by providing a single, comprehensive icon library with consistent design language, variable font support, and active maintenance. More importantly, it ships as a subset — Odoo isn’t loading the entire Material Symbols library. The team has curated a specific subset of icons that covers every use case in the platform, delivered as optimized WOFF2 font files that keep page weight under control.
The Mapping Layer That Makes It Seamless
Ripping out an icon system used across thousands of views, templates, and custom modules would normally be a breaking change of spectacular proportions. Odoo sidestepped that problem with a compatibility layer: two SCSS mapping files that automatically translate every legacy “fa-” and “oi-” icon reference to its Material Symbols equivalent. A button that used to call “fa-area-chart” now resolves to “area_chart” behind the scenes. An “oi-apps” reference maps to “apps.” The old names still work; they just render through the new font.
This matters enormously for the Odoo ecosystem. Third-party module developers, custom theme builders, and anyone who has written a view XML file with an icon reference in the last ten years won’t see their interfaces break overnight. The mapping layer acts as a bridge, giving the community time to update their code while immediately benefiting from the visual consistency of the new set.
What Changes for Developers
The updated contributor guidelines are explicit: Material Symbols is now the primary icon set, listed first in the approved icon systems. New code should reference icons by their Material Symbols name — plain English, no prefix, underscores instead of hyphens. Instead of “fa-pencil,” you write “edit.” Instead of “fa-cog,” you write “settings.” The naming convention alone makes templates more readable.
There’s also a new icon subset reference page that documents exactly which Material Symbols icons are available in Odoo, complete with a search interface. This is a deliberate constraint: rather than exposing the full Material Symbols catalog (which runs to thousands of glyphs), Odoo maintains a curated subset that ensures visual consistency across the platform. If a developer needs an icon that isn’t in the subset, the process is to request its addition rather than importing it directly.
The Bigger Picture
Icon migrations are one of those projects that most companies defer indefinitely because the cost-benefit ratio looks terrible on a spreadsheet. The old icons work fine. Users don’t complain about them. The effort to change every reference, test every screen, and maintain backward compatibility seems out of proportion to the visual improvement.
But the compounding effects are real. A unified icon system means faster design decisions, smaller font payloads, better accessibility (Material Symbols supports variable weight and fill), and a modern visual baseline that doesn’t look like it was designed in 2014. For a platform that serves as the daily operating system for hundreds of thousands of businesses, that visual coherence matters more than it might for a single-purpose tool.
The migration also signals something about Odoo’s willingness to tackle foundational infrastructure work even when the surface-level payoff is subtle. Swapping an icon system is the kind of change that makes every future interface improvement slightly easier and every new module slightly more consistent. It’s an investment in the platform’s next decade, paid for with the kind of meticulous engineering work that rarely makes headlines but quietly raises the ceiling for everything built on top of it.