I'd like to experiment with coding in variable-width fonts, but setting the default font will also set the default font for the minibuffer, which breaks Spacemacs' helpful menu system as it uses spaces to align columns of options (it is the minibuffer that's used there, not?). I can't find a way to set a global font and then just override the minibuffer--various hooks for Emacs I've tried don't seem to work. Is there a way to do that?
You can actually run into the same problem you described in several situations. One other example is org-tables, that are usually not properly aligned when you're not using a monospaced font.
To solve your issue, you can customize the
minibuffer-prompt face setting the Font Family attribute to "Monospace".
In practice, type
M-x and call the customize-face function. Then type
minibuffer-prompt on the minibuffer and press Enter. When the customization buffer appears, just click the "Show All Attributes" button and the Family Font option will show up.