The wallpaper is only half the design. Fonts and colours decide whether the menu is readable - and they are split across theme.txt and ventoy.json. Here is which setting lives where, and the exact names to use.
Wallpaper gets all the attention, but the text is what you actually read at boot time. Ventoy themes control fonts and colours in two places that work together: theme.txt decides which font and colours each element uses, and the theme block in ventoy.json can preload extra font files and recolour Ventoy's own version text. This guide covers both, with the exact property names.
GRUB does not use Windows TTF fonts directly in the menu; it uses compiled .pf2 font files. A theme usually ships its own - when you copy a GRUB theme, its pf2 files come with it. If your theme.txt asks for a font that was never loaded, GRUB quietly falls back to its built-in font and your design shifts. The fonts list in the theme block of ventoy.json preloads pf2 files by full path, exactly as in the panel above. List every size your theme.txt references, and keep the pf2 files inside the theme folder so the whole design travels as one folder.
theme.txt, fonts are named as family, style and size - for example "Hack Regular 14" - not by file nameterminal-font sets the global font; the boot menu block refines it with item_font for entriesHack-14.pf2 changes nothing, and guessing a name that does not exist gives you the fallback fontgrub-mkfont tool (available with GRUB on Linux, for example grub-mkfont -s 14 -o MyFont-14.pf2 MyFont.ttf), or borrow pf2 files from another theme - for a stick you share commercially, respect the font's licenceColour properties accept named colours ("white", "blue") or hex values like "#d7e3fc". The ones you will actually touch: desktop-color (the background behind the wallpaper), title-color for the heading, and inside the boot menu block, item_color for normal entries and selected_item_color for the highlighted one. Design rule that saves rework: pick colours against your real wallpaper, at your real gfxmode, on a real monitor - a combination that looks elegant on your editing screen can vanish on a dim customer display.
The small version line at the bottom-left of the menu (for example 1.0.10 UEFI www.ventoy.net) is not styled by theme.txt at all. Its position and colour are theme-block options in ventoy.json: ventoy_left (default 5%), ventoy_top (default 95%) and ventoy_color (default #0000ff). Set the colour to match your wallpaper so the line sits quietly in the design - and remember it can be moved and recoloured, never removed by a setting.
display_mode on GUI.The video edits these same files live - keep it open beside this guide.
Watch Full VideoAlmost always because the font was never loaded. theme.txt refers to fonts by their internal name (family, style, size), and the matching pf2 file must be loaded - by the theme itself or through the fonts list in ventoy.json. If the name does not match a loaded pf2, GRUB falls back to its built-in font without any error.
Not directly. The menu needs a compiled PF2 font, converted from a TTF with GRUB's grub-mkfont tool. After conversion, copy the pf2 into your theme folder, add it to the fonts list in ventoy.json, and reference its family-style-size name in theme.txt.
In the theme block of ventoy.json: ventoy_color sets its colour (default #0000ff), and ventoy_left and ventoy_top set its position (defaults 5% and 95%). The text itself is hard-coded in Ventoy and cannot be removed by any theme setting.