diff --git a/html5/connect.html b/html5/connect.html
index b7cc8a0c..24ab6f5b 100644
--- a/html5/connect.html
+++ b/html5/connect.html
@@ -11,10 +11,8 @@
-
-
-
+
Xpra HTML5 Client
diff --git a/html5/css/connect.css b/html5/css/connect.css
new file mode 100644
index 00000000..b014991c
--- /dev/null
+++ b/html5/css/connect.css
@@ -0,0 +1,309 @@
+/* Screenreader-only */
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: none;
+}
+
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+
+ color: #333;
+}
+
+.form-signin-heading {
+ font-weight: 500;
+ font-size: 30px;
+}
+
+/* Version number */
+h5 {
+ margin-top: 10px;
+ margin-bottom: 10px;
+
+ font-weight: 500;
+}
+
+/* Forms for ports, passwords, etc... */
+.form-control::placeholder {
+ color: #999;
+ opacity: 1;
+}
+
+.form-control {
+ display: inline-block;
+ vertical-align: middle;
+
+ height: 34px;
+ padding: 6px 12px;
+
+ color: #555;
+
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+
+ border: 1px solid #ccc;
+ border-radius: 4px;
+
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+}
+
+/* Checkbox labels */
+#ssl-span,
+#webtransport-span,
+#encryption-span {
+ font-size: 14px;
+}
+
+/* Radio button labels */
+label {
+ margin-bottom: 5px;
+ font-weight: bold;
+
+ font-size: 14px;
+}
+
+/* Start session text boxes */
+#action_connect_group,
+#action_start_group,
+#action_start_desktop_group,
+#action_shadow_group {
+ max-height: 34px;
+}
+
+#action_connect_group>.form-control,
+#action_start_group>.form-control,
+#action_start_desktop_group>.form-control,
+#action_shadow_group>.form-control {
+ position: relative;
+ top: 0px;
+}
+
+.list-style-none.action {
+ margin: 0px;
+}
+
+.panel-group .list-style-none.action {
+ margin-bottom: 40px;
+}
+
+/* Connect buttons */
+.form-group {
+ margin-bottom: 30px;
+}
+
+.btn {
+ border: 1px solid transparent;
+
+ cursor: pointer;
+}
+
+.btn-lg {
+ padding: 10px 16px;
+
+ border-radius: 6px;
+
+ font-size: 18px;
+}
+
+.btn-success {
+ color: white;
+ background-color: #5cb85c;
+ border-color: #4cac4c;
+}
+
+.btn-success:hover {
+ color: white;
+ background-color: #449d44;
+ border-color: #398439;
+}
+
+/* Advanced options */
+.panel.panel-default {
+ font: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+
+.panel-group .panel {
+ margin-bottom: 0;
+
+ border-radius: 4px;
+ border: 1px solid #ddd;
+}
+
+#expandopts {
+ color: #333;
+ background-color: #f5f5f5;
+
+ padding: 10px 15px;
+
+ border-color: #ddd;
+ border-radius: 3px 3px 0 0;
+}
+
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+
+ font-size: 16px;
+ font-weight: 500;
+
+ color: #333;
+}
+
+.list-group {
+ position: relative;
+ top: -16px;
+ padding: 0px;
+}
+
+.list-group-item {
+ display: block;
+ list-style-type: none;
+
+ padding: 6px 10px;
+ line-height: 1.4;
+ padding: 0px;
+ margin-bottom: -1px;
+
+ background-color: white;
+
+ border: 1px solid #ddd;
+ border-left: none;
+ border-right: none;
+
+ font-size: 14px;
+}
+
+.list-group-item>select {
+ padding: 4px 1px 4px 5px;
+}
+
+.list-group-item>.form-control {
+ display: block;
+}
+
+/* Background */
+div.bg-image {
+ position: fixed;
+ height: 100%;
+ width: 100%;
+ padding: 0;
+ margin: 0;
+ top: 0;
+ left: 0;
+ background-image: url(../background.png);
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: cover;
+ opacity: 0.3;
+ z-index: -1000;
+}
+
+div.container {
+ margin-top: 40px;
+ margin-bottom: 40px;
+}
+
+.form-signin {
+ max-width: 530px;
+ padding: 15px;
+ margin: 0 auto;
+}
+
+.form-or-heading {
+ text-align: center;
+}
+
+.form-signin h5 {
+ padding-left: 8em;
+}
+
+.form-signin .form-signin-heading,
+.form-signin .checkbox {
+ margin-bottom: 10px;
+}
+
+.form-signin .checkbox,
+.form-signin .radiobox {
+ font-weight: normal;
+}
+
+.form-signin .form-control {
+ position: relative;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 16px;
+ max-width: 16em;
+}
+
+.form-signin .form-control.command {
+ margin-left: 1.6em;
+}
+
+.form-signin .form-control:focus {
+ z-index: 2;
+}
+
+.form-signin .panel-group {
+ padding-top: 8px;
+}
+
+.form-signin .security-box {
+ padding-left: 5em;
+}
+
+.form-signin .security-box #key {
+ font-size: 12px;
+ padding: 0px 10px;
+ height: 20px;
+}
+
+.form-signin .list-group-item {
+ padding: 6px 10px;
+}
+
+.form-signin .list-style-none {
+ list-style-type: none;
+ margin-bottom: 5px;
+}
+
+.form-signin .action input {
+ font-size: 12px;
+ padding: 2px;
+}
+
+.form-signin img.command-icon {
+ object-fit: scale-down;
+ max-width: 32px;
+ max-height: 32px;
+}
+
+.form-signin span.warning {
+ color: red;
+ font-size: smaller;
+ padding-left: 10px;
+}
+
+.form-signin span.disabled {
+ color: grey;
+}
+
+.form-signin img.field-icon {
+ margin-left: -32px;
+ position: relative;
+ z-index: 2;
+ font-family: bootstrap-icons;
+ width: 1.2em;
+ height: 1.2em;
+}
+
+.form-signin span#server-info {
+ padding-left: 20px;
+ font-size: 11px;
+ font-style: italic;
+}
diff --git a/html5/css/signin.css b/html5/css/signin.css
deleted file mode 100644
index 82ec3f23..00000000
--- a/html5/css/signin.css
+++ /dev/null
@@ -1,108 +0,0 @@
-div.bg-image {
- position: fixed;
- height: 100%;
- width: 100%;
- padding: 0;
- margin: 0;
- top: 0;
- left: 0;
- background-image: url(../background.png);
- background-position: center center;
- background-repeat: no-repeat;
- background-size: cover;
- opacity: 0.3;
- z-index: -1000;
-}
-
-div.container {
- margin-top: 40px;
- margin-bottom: 40px;
-}
-
-.form-signin {
- max-width: 530px;
- padding: 15px;
- margin: 0 auto;
-}
-.form-or-heading {
- text-align: center;
-}
-.form-signin h5 {
- padding-left: 8em;
-}
-.form-signin .form-signin-heading,
-.form-signin .checkbox {
- margin-bottom: 10px;
-}
-.form-signin .checkbox,
-.form-signin .radiobox {
- font-weight: normal;
-}
-.form-signin .form-control {
- position: relative;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- font-size: 16px;
- max-width: 16em;
-}
-.form-signin .form-control.command {
- margin-left: 1.6em;
-}
-.form-signin .form-control:focus {
- z-index: 2;
-}
-.form-signin .panel-group {
- padding-top: 8px;
-}
-
-.form-signin .security-box {
- padding-left: 5em;
-}
-.form-signin .security-box #key {
- font-size: 12px;
- padding: 0px 10px;
- height: 20px;
-}
-
-.form-signin .list-group-item {
- padding: 6px 10px;
-}
-
-.form-signin .list-style-none {
- list-style-type: none;
- margin-bottom: 5px;
-}
-.form-signin .action input {
- font-size: 12px;
- padding: 2px;
-}
-
-.form-signin img.command-icon {
- object-fit: scale-down;
- max-width: 32px;
- max-height: 32px;
-}
-.form-signin span.warning {
- color: red;
- font-size: smaller;
- padding-left: 10px;
-}
-.form-signin span.disabled {
- color: grey;
-}
-
-.form-signin img.field-icon {
- margin-left: -32px;
- position: relative;
- z-index: 2;
- font-family: bootstrap-icons;
- width: 1.2em;
- height: 1.2em;
-}
-
-.form-signin span#server-info {
- padding-left: 20px;
- font-size: 11px;
- font-style: italic;
-}
\ No newline at end of file