diff --git a/inst/lib/bs5/scss/_forms.scss b/inst/lib/bs5/scss/_forms.scss
index 7b17d849..31eae5d3 100644
--- a/inst/lib/bs5/scss/_forms.scss
+++ b/inst/lib/bs5/scss/_forms.scss
@@ -1,3 +1,14 @@
+$shiny-check: ".shiny-input-container .checkbox";
+$shiny-check-inline: $shiny-check + "-inline";
+$shiny-radio: ".shiny-input-container .radio";
+$shiny-radio-inline: $shiny-radio + "-inline";
+$form-check-input-selector: ".form-check-input, " + 
+  $shiny-check + " input, " + $shiny-check-inline + " input, " +
+  $shiny-radio + " input, " + $shiny-radio-inline + " input, ";
+$form-check-label-selector: ".form-check-label, " +
+  $shiny-check + " label, " + $shiny-check-inline + " label, " +
+  $shiny-radio + " label, " + $shiny-radio-inline + " label, ";
+
 @import "forms/labels";
 @import "forms/form-text";
 @import "forms/form-control";
diff --git a/inst/lib/bs5/scss/_variables.scss b/inst/lib/bs5/scss/_variables.scss
index 11d78f81..71c56bad 100644
--- a/inst/lib/bs5/scss/_variables.scss
+++ b/inst/lib/bs5/scss/_variables.scss
@@ -946,10 +946,10 @@ $form-color-width:                      3rem !default;
 // scss-docs-start form-check-variables
 $form-check-input-width:                  1em !default;
 $form-check-min-height:                   $font-size-base * $line-height-base !default;
-$form-check-padding-start:                $form-check-input-width + .5em !default;
+$form-check-padding-start:                0 !default;
 $form-check-margin-bottom:                .125rem !default;
 $form-check-label-color:                  null !default;
-$form-check-label-cursor:                 null !default;
+$form-check-label-cursor:                 pointer !default;
 $form-check-transition:                   null !default;
 
 $form-check-input-active-filter:          brightness(90%) !default;
diff --git a/inst/lib/bs5/scss/forms/_form-check.scss b/inst/lib/bs5/scss/forms/_form-check.scss
index c5a09c0f..2166dc73 100644
--- a/inst/lib/bs5/scss/forms/_form-check.scss
+++ b/inst/lib/bs5/scss/forms/_form-check.scss
@@ -2,13 +2,13 @@
 // Check/radio
 //
 
-.form-check {
+.form-check, #{$shiny-check}, #{$shiny-radio} {
   display: block;
   min-height: $form-check-min-height;
   padding-left: $form-check-padding-start;
   margin-bottom: $form-check-margin-bottom;
 
-  .form-check-input {
+  .form-check-input, #{$shiny-check} input, #{$shiny-radio} input {
     float: left;
     margin-left: $form-check-padding-start * -1;
   }
@@ -26,7 +26,7 @@
   }
 }
 
-.form-check-input {
+#{$form-check-input-selector} {
   --#{$prefix}form-check-bg: #{$form-check-input-bg};
 
   width: $form-check-input-width;
@@ -108,14 +108,14 @@
   // See: https://github.com/twbs/bootstrap/issues/28247
   &[disabled],
   &:disabled {
-    ~ .form-check-label {
+    ~ .form-check-label, ~ span {
       cursor: default;
       opacity: $form-check-label-disabled-opacity;
     }
   }
 }
 
-.form-check-label {
+#{$form-check-label-selector} {
   color: $form-check-label-color;
   cursor: $form-check-label-cursor;
 }
diff --git a/inst/lib/bs5/scss/forms/_labels.scss b/inst/lib/bs5/scss/forms/_labels.scss
index 39ecafcd..efcab1f4 100644
--- a/inst/lib/bs5/scss/forms/_labels.scss
+++ b/inst/lib/bs5/scss/forms/_labels.scss
@@ -2,7 +2,7 @@
 // Labels
 //
 
-.form-label {
+.form-label, .shiny-input-container .control-label {
   margin-bottom: $form-label-margin-bottom;
   @include font-size($form-label-font-size);
   font-style: $form-label-font-style;
