diff --git a/esoui/ingame/group/keyboard/zo_groupmenu_keyboard.xml b/esoui/ingame/group/keyboard/zo_groupmenu_keyboard.xml
new file mode 100644
index 0000000..e099425
--- /dev/null
+++ b/esoui/ingame/group/keyboard/zo_groupmenu_keyboard.xml
@@ -0,0 +1,101 @@
+<GuiXml>
+ <Controls>
+ <Control name="ZO_GroupMenuKeyboard_CategoryHeader" inherits="ZO_IconChildlessHeader" virtual="true">
+ <Controls>
+ <Label name="$(parent)Text" override="true">
+ <DimensionConstraints maxX="200"/>
+ </Label>
+ </Controls>
+ </Control>
+
+ <Button name="ZO_PreferredRolesButton" inherits="ZO_CheckButton" virtual="true">
+ <Dimensions x="48" y="48"/>
+ <OnMouseEnter>
+ ZO_PreferredRolesButton_OnMouseEnter(self)
+ </OnMouseEnter>
+
+ <OnMouseExit>
+ ZO_PreferredRolesButton_OnMouseExit(self)
+ </OnMouseExit>
+
+ <OnClicked>
+ ZO_PreferredRolesButton_OnClicked(self, button)
+ </OnClicked>
+ </Button>
+
+ <TopLevelControl name="ZO_GroupMenu_Keyboard" inherits="ZO_RightPanelFootPrint" hidden="true">
+ <OnInitialized>
+ ZO_GroupMenuKeyboard_OnInitialized(self)
+ </OnInitialized>
+
+ <Controls>
+ <Control name="$(parent)Header">
+ <Dimensions y="70" />
+ <Anchor point="TOPLEFT" />
+ <Anchor point="TOPRIGHT" offsetX="-10" />
+ </Control>
+
+ <Control name="$(parent)PreferredRoles" resizeToFitDescendents="true">
+ <DimensionConstraints minX="265"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)Header" relativePoint="BOTTOMLEFT" offsetX="-8" offsetY="-5" />
+
+ <OnInitialized>
+ ZO_PreferredRoles_OnInitialized(self)
+ </OnInitialized>
+
+ <Controls>
+ <Label name="$(parent)Label" text="SI_GROUP_LIST_PANEL_PREFERRED_ROLES_LABEL" font="ZoFontHeader3" modifyTextType="UPPERCASE" color="INTERFACE_COLOR_TYPE_TEXT_COLORS:INTERFACE_TEXT_COLOR_NORMAL" horizontalAlignment="CENTER">
+ <Anchor point="TOP" />
+ </Label>
+
+ <Control name="$(parent)Buttons" resizeToFitDescendents="true">
+ <Anchor point="TOP" relativeTo="$(parent)Label" relativePoint="BOTTOM" />
+
+ <Controls>
+ <Button name="$(parent)Heal" inherits="ZO_PreferredRolesButton">
+ <Anchor point="TOP" />
+
+ <OnInitialized>
+ ZO_PreferredRoleButton_OnInitialized(self, LFG_ROLE_HEAL)
+ </OnInitialized>
+ </Button>
+
+ <Button name="$(parent)Tank" inherits="ZO_PreferredRolesButton">
+ <Anchor point="RIGHT" relativeTo="$(parent)Heal" relativePoint="LEFT" offsetX="-5" />
+
+ <OnInitialized>
+ ZO_PreferredRoleButton_OnInitialized(self, LFG_ROLE_TANK)
+ </OnInitialized>
+ </Button>
+
+ <Button name="$(parent)DPS" inherits="ZO_PreferredRolesButton">
+ <Anchor point="LEFT" relativeTo="$(parent)Heal" relativePoint="RIGHT" offsetX="5" />
+
+ <OnInitialized>
+ ZO_PreferredRoleButton_OnInitialized(self, LFG_ROLE_DPS)
+ </OnInitialized>
+ </Button>
+ </Controls>
+ </Control>
+ </Controls>
+ </Control>
+
+ <Control name="$(parent)RolesCategoriesDivider" inherits="ZO_DynamicHorizontalDivider">
+ <Anchor point="TOPLEFT" relativeTo="$(parent)PreferredRoles" relativePoint="BOTTOMLEFT" offsetY="5" />
+ <Anchor point="TOPRIGHT" relativeTo="$(parent)PreferredRoles" relativePoint="BOTTOMRIGHT" offsetY="5" />
+ </Control>
+
+ <Control name="$(parent)Categories" inherits="ZO_ScrollContainer">
+ <Dimensions x="275" />
+ <Anchor point="TOPLEFT" relativeTo="$(parent)RolesCategoriesDivider" relativePoint="BOTTOMLEFT" offsetX="-10" offsetY="10" />
+ <Anchor point="BOTTOMLEFT" offsetX="-10" />
+ </Control>
+ </Controls>
+ </TopLevelControl>
+
+ <Control name="ZO_GroupMenuKeyboard_ContentAnchors" virtual="true">
+ <Anchor point="TOPRIGHT" relativeTo="ZO_GroupMenu_KeyboardHeader" relativePoint="BOTTOMRIGHT" offsetX="-10" />
+ <Anchor point="BOTTOMLEFT" relativeTo="ZO_GroupMenu_KeyboardCategories" relativePoint="BOTTOMRIGHT" offsetX="10" />
+ </Control>
+ </Controls>
+</GuiXml>
\ No newline at end of file