diff --git a/src/client/components/ui/input.vue b/src/client/components/ui/input.vue
index 22dd0fe9a5..3e2a5fb0dd 100644
--- a/src/client/components/ui/input.vue
+++ b/src/client/components/ui/input.vue
@@ -206,19 +206,27 @@ export default defineComponent({
 
 <style lang="scss" scoped>
 .matxzzsk {
-	margin: 1em 0;
+	margin: 1.5em 0;
 
 	> .label {
 		font-size: 0.85em;
 		padding: 0 0 6px 6px;
 		font-weight: bold;
 		user-select: none;
+
+		&:empty {
+			display: none;
+		}
 	}
 
 	> .caption {
 		font-size: 0.8em;
 		padding: 6px 0 0 6px;
 		color: var(--fgTransparentWeak);
+
+		&:empty {
+			display: none;
+		}
 	}
 
 	> .input {
diff --git a/src/client/components/ui/select.vue b/src/client/components/ui/select.vue
index c38bd7230f..987d4f194c 100644
--- a/src/client/components/ui/select.vue
+++ b/src/client/components/ui/select.vue
@@ -151,19 +151,27 @@ export default defineComponent({
 
 <style lang="scss" scoped>
 .vblkjoeq {
-	margin: 1em 0;
+	margin: 1.5em 0;
 
 	> .label {
 		font-size: 0.85em;
 		padding: 0 0 6px 6px;
 		font-weight: bold;
 		user-select: none;
+
+		&:empty {
+			display: none;
+		}
 	}
 
 	> .caption {
 		font-size: 0.8em;
 		padding: 6px 0 0 6px;
 		color: var(--fgTransparentWeak);
+
+		&:empty {
+			display: none;
+		}
 	}
 
 	> .input {
@@ -177,7 +185,7 @@ export default defineComponent({
 			height: $height;
 			width: 100%;
 			margin: 0;
-			padding: 0 8px;
+			padding: 0 12px;
 			font: inherit;
 			font-weight: normal;
 			font-size: 1em;
diff --git a/src/client/components/ui/textarea.vue b/src/client/components/ui/textarea.vue
index 592b8b9ca0..a61324f25f 100644
--- a/src/client/components/ui/textarea.vue
+++ b/src/client/components/ui/textarea.vue
@@ -172,19 +172,27 @@ export default defineComponent({
 
 <style lang="scss" scoped>
 .adhpbeos {
-	margin: 1em 0;
+	margin: 1.5em 0;
 
 	> .label {
 		font-size: 0.85em;
 		padding: 0 0 6px 6px;
 		font-weight: bold;
 		user-select: none;
+
+		&:empty {
+			display: none;
+		}
 	}
 
 	> .caption {
 		font-size: 0.8em;
 		padding: 6px 0 0 6px;
 		color: var(--fgTransparentWeak);
+
+		&:empty {
+			display: none;
+		}
 	}
 
 	> .input {
diff --git a/src/client/pages/docs.vue b/src/client/pages/docs.vue
index 48bae6c5c2..6dc5eb1ae8 100644
--- a/src/client/pages/docs.vue
+++ b/src/client/pages/docs.vue
@@ -98,14 +98,14 @@ export default defineComponent({
 	background: var(--panel);
 
 	> .search {
-		padding: 12px;
+		padding: 16px;
 	}
 
 	.docs {
 		display: grid;
 		grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
 		grid-gap: 12px;
-		margin: var(--margin);
+		margin: 0 16px 16px 16px;
 
 		> .doc {
 			display: inline-block;