Just a totally wild guess: in development mode… you still have a not updated development bundle that contains lumo… your dev view looks like lumo… your production view looks like aura
Thanks Christian, will check right now. Struggling to force the dev-bundle to be regenerated. Need to read docs first.
From what is know yet visual differences can be observed exclusively in Vaadin constructed stylesheets injected at runtime. Using vaadin-drawer-toggle as an example, DevTools shows that the effective styles applied to [part="icon"] (including ::before / ::after) differ between dev mode and production build. Static CSS files and theme resources are identical in both cases; the differences are only visible in the runtime-generated (constructed) stylesheets.
After deleting the frontend/ folder and the dev.bundle, dev mode now looks exactly like the production build. The dev view was indeed still using Lumo, while prod was already on Aura.
So yeah — problem found, which is awesome.
That said, I’m still wrapping my head around why this happens. The interaction between the generated frontend/ folder (gitignored), the dev.bundle (checked in), and Quarkus dev mode / hot reload isn’t fully clear to me yet. I’ll need a bit of time to understand when Vaadin decides to reuse existing bundles vs. rebuilding them in dev mode.
But at least now we know what was going on Thanks very much!