diff --git a/packages/theme/styles/components.scss b/packages/theme/styles/components.scss
index ec8a7c653d..9cdb8c9ea3 100644
--- a/packages/theme/styles/components.scss
+++ b/packages/theme/styles/components.scss
@@ -322,12 +322,27 @@
   &.gap-none { margin-bottom: 0; }
   &.gap-small { margin-bottom: .25rem; }
   &.gap-medium { margin-bottom: .5rem; }
+  &.gap-large { margin-bottom: 1rem; }
 
   label {
     flex: 1 1 auto;
-    padding-left: 0.375rem;
-    font-size: 0.8125rem;
     color: var(--theme-content-color);
+
+    &.medium {
+      font-size: 0.8125rem;
+    }
+
+    &.large {
+      font-size: 0.875rem;
+    }
+
+    &.gap-medium {
+      padding-left: 0.375rem;
+    }
+
+    &.gap-large {
+      padding-left: 0.5rem;
+    }
   }
 
   .marker {
diff --git a/packages/ui/src/components/RadioButton.svelte b/packages/ui/src/components/RadioButton.svelte
index 0d2e62b627..ff4c4e855c 100644
--- a/packages/ui/src/components/RadioButton.svelte
+++ b/packages/ui/src/components/RadioButton.svelte
@@ -23,10 +23,12 @@
   export let disabled: boolean = false
   export let labelOverflow: boolean = false
   export let label: string | undefined = undefined
+  export let labelSize: 'medium' | 'large' = 'medium'
   export let labelIntl: IntlString | undefined = undefined
   export let labelParams: Record<string, any> | undefined = undefined
   export let action: () => void = () => {}
-  export let gap: 'small' | 'medium' | 'none' = 'none'
+  export let gap: 'large' | 'small' | 'medium' | 'none' = 'none'
+  export let labelGap: 'large' | 'medium' = 'medium'
 </script>
 
 <!-- svelte-ignore a11y-click-events-have-key-events -->
@@ -50,7 +52,7 @@
     }}
   />
   <div class="marker" />
-  <label for={id} class:overflow-label={labelOverflow}>
+  <label for={id} class="{labelSize} gap-{labelGap}" class:overflow-label={labelOverflow}>
     <slot>
       {#if labelIntl}
         <Label label={labelIntl} params={labelParams} />
diff --git a/packages/ui/src/components/RadioGroup.svelte b/packages/ui/src/components/RadioGroup.svelte
index 301bc8dad3..cf8e8e46f6 100644
--- a/packages/ui/src/components/RadioGroup.svelte
+++ b/packages/ui/src/components/RadioGroup.svelte
@@ -19,7 +19,7 @@
   export let items: RadioItem[]
   export let selected: any | undefined = undefined
   export let disabled: boolean = false
-  export let gap: 'small' | 'medium' | 'none' = 'small'
+  export let gap: 'large' | 'small' | 'medium' | 'none' = 'small'
 </script>
 
 {#if items && items.length > 0}
@@ -29,6 +29,7 @@
         bind:group={selected}
         id={item.id}
         label={item.label}
+        labelGap={item.labelGap}
         labelIntl={item.labelIntl}
         labelParams={item.labelParams}
         value={item.value}
diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts
index cbce9f906f..4ed4070057 100644
--- a/packages/ui/src/types.ts
+++ b/packages/ui/src/types.ts
@@ -125,6 +125,8 @@ export interface TabItem {
 export interface RadioItem {
   id?: string
   label?: string
+  labelGap?: 'large' | 'medium'
+  labelSize?: 'medium' | 'large'
   labelIntl?: IntlString
   labelParams?: Record<string, any>
   value: any