diff --git a/src/main/java/envoy/client/ui/LoginDialog.fxml b/src/main/java/envoy/client/ui/LoginDialog.fxml
new file mode 100644
index 0000000..45b2d60
--- /dev/null
+++ b/src/main/java/envoy/client/ui/LoginDialog.fxml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/envoy/client/ui/LoginDialogController.java b/src/main/java/envoy/client/ui/LoginDialogController.java
new file mode 100644
index 0000000..4513809
--- /dev/null
+++ b/src/main/java/envoy/client/ui/LoginDialogController.java
@@ -0,0 +1,53 @@
+package envoy.client.ui;
+
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.scene.Node;
+import javafx.scene.control.CheckBox;
+import javafx.scene.control.Label;
+import javafx.scene.control.PasswordField;
+import javafx.stage.Stage;
+
+/**
+ * Project: envoy-client
+ * File: LoginDialogController.java
+ * Created: 03.04.2020
+ *
+ * @author Kai S. K. Engelbart
+ * @since Envoy Client v0.1-beta
+ */
+public final class LoginDialogController {
+
+ @FXML
+ private PasswordField passwordField;
+
+ @FXML
+ private PasswordField repeatPasswordField;
+
+ @FXML
+ private Label repeatPasswordLabel;
+
+ @FXML
+ private CheckBox registerCheckBox;
+
+ @FXML
+ private void registerCheckboxChanged() {
+
+ // Make repeat password field and label visible / invisible
+ repeatPasswordField.setVisible(registerCheckBox.isSelected());
+ repeatPasswordLabel.setVisible(registerCheckBox.isSelected());
+
+ // Clear repeat password field if registration cancelled
+ if (!registerCheckBox.isSelected()) repeatPasswordField.clear();
+ }
+
+ @FXML
+ private void submitButtonClicked() {
+
+ }
+
+ @FXML
+ private void cancelButtonClicked(ActionEvent e) { closeStage(e); }
+
+ private void closeStage(ActionEvent e) { ((Stage) ((Node) e.getSource()).getScene().getWindow()).close(); }
+}