diff --git a/package.json b/package.json
index ee32f92c9895bff846a51b5c87445903c747e9ad..66da327d21e0d8975074b55f5e49985c5c253499 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
         "react": "^16.13.1",
         "react-dom": "^16.13.1",
         "react-scripts": "3.4.1",
+        "what-input": "^5.2.10",
         "zod": "^1.10.3"
     },
     "scripts": {
diff --git a/src/index.scss b/src/index.scss
index a628c9450479a57b4a2af454c09fc2fad7eb9c62..9ac73022bd4bcfc42bfcced99e7c3538839b0900 100644
--- a/src/index.scss
+++ b/src/index.scss
@@ -65,6 +65,11 @@ hr {
     margin: 0 40px;
 }
 
+// Suppress focus ring on form controls for mouse users
+[data-whatintent='mouse'] *:focus {
+    outline: none;
+}
+
 .matrixIdentifier {
     word-break: break-all;
 }
diff --git a/src/index.tsx b/src/index.tsx
index d55556bcf55deba6c4b1101087a33caa5ee9ce21..f56a3902882456dff1f5a2823f17d4e0b6683f9d 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -1,11 +1,12 @@
-import React from "react";
-import ReactDOM from "react-dom";
-import "./index.scss";
-import App from "./App";
+import 'what-input';
+import React from 'react';
+import ReactDOM from 'react-dom';
+import './index.scss';
+import App from './App';
 
 ReactDOM.render(
     <React.StrictMode>
         <App />
     </React.StrictMode>,
-    document.getElementById("root")
+    document.getElementById('root')
 );
diff --git a/yarn.lock b/yarn.lock
index 203a72d2ddd62bf93fcad8a075ee9ba1f90e426b..dc8a5e28b21e81a9681427e1e5b4f7c050bf1ca9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -14293,6 +14293,11 @@ websocket-extensions@>=0.1.1:
   resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
   integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
 
+what-input@^5.2.10:
+  version "5.2.10"
+  resolved "https://registry.yarnpkg.com/what-input/-/what-input-5.2.10.tgz#f79f5b65cf95d75e55e6d580bb0a6b98174cad4e"
+  integrity sha512-7AQoIMGq7uU8esmKniOtZG3A+pzlwgeyFpkS3f/yzRbxknSL68tvn5gjE6bZ4OMFxCPjpaBd2udUTqlZ0HwrXQ==
+
 whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"