For disabled custom-form components in Bootstrap 4 (checkbox, radio button), make sure to include the following CSS rule/selector:
.custom-control-input:disabled ~ .custom-control-label {
cursor: not-allowed;
}
If you specifically only want the custom cursor style for the checkbox/radio button itself and not the label (not recommended in most cases), then you would need this rule:
.custom-control-input:disabled ~ .custom-control-label::after {
cursor: not-allowed;
}
You can test it by clicking "run code snippet" below:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<style>
.custom-control-input:disabled~.custom-control-label {
cursor: not-allowed;
}
</style>
<form class="m-3">
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" id="customRadioInline1" name="customRadioInline1" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline1">This custom radio is OK</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" id="customRadioInline2" name="customRadioInline1" class="custom-control-input" disabled>
<label class="custom-control-label" for="customRadioInline2">This one is disabled</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck1">
<label class="custom-control-label" for="customCheck1">This custom checkbox is OK</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck2">
<label class="custom-control-label" for="customCheck2">OK too</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheckDisabled" disabled>
<label class="custom-control-label" for="customCheckDisabled">This custom checkbox is disabled</label>
</div>
</form>