diff --git a/src/components/Properties/PropertiesPanel.tsx b/src/components/Properties/PropertiesPanel.tsx
index 993e08d0..8321244d 100644
--- a/src/components/Properties/PropertiesPanel.tsx
+++ b/src/components/Properties/PropertiesPanel.tsx
@@ -23,6 +23,11 @@ import { AlignButtons } from "./AlignButtons";
import { inputCls, labelCls } from "./styles";
import type { LabelConfig } from "../../types/ObjectType";
+/** Built-in alphanumeric font IDs the Zebra firmware ships with. Used as
+ * suggestions for ^CF — the input stays free-text so user-defined ^CW
+ * aliases (single letters) can still be entered. */
+const ZPL_BUILTIN_FONT_IDS = ['0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as const;
+
interface PropertiesPanelProps {
/** Imperative handle on the canvas — used for actions that need live render
* bboxes (alignment, future zoom-to-selection, etc.). Required so the
@@ -430,7 +435,9 @@ function LabelConfigPanel({
+