Home
Components
Option
Option
The Option component provides a reusable pattern for option in the interface.
Checkbox
A basic checkbox option with a label, name, and value — the default option type.
<div class="c-option c-option__checkbox">
<input name="terms" id="id_6ac9f66eda853" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Accept terms and conditions" value="1" aria-checked="false"
tabindex="0" label="Accept terms and conditions" aria-labelledby="label_id_6ac9f66eda853" /> <label for="id_6ac9f66eda853" class="c-option__checkbox--label"> <span id="label_id_6ac9f66eda853"
class="c-option__checkbox--label-text">Accept terms and conditions</span></label>
<div id="error_input_id_6ac9f66eda853_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'Accept terms and conditions',
'name' => 'terms',
'value' => '1',
])
@endoption
Radio buttons
Radio buttons sharing the same name attribute form a group where only one option can be selected at a time.
<div class="c-option c-option__radio">
<input name="choice" id="id_6ac9f66edab83" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Option A" value="a" aria-checked="false" tabindex="0" label=
"Option A" aria-labelledby="label_id_6ac9f66edab83" /> <label for="id_6ac9f66edab83" class="c-option__radio--label"> <span id="label_id_6ac9f66edab83" class="c-option__radio--label-text">Option
A</span></label>
<div id="error_input_id_6ac9f66edab83_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__radio">
<input name="choice" id="id_6ac9f66edac84" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Option B" value="b" aria-checked="false" tabindex="0" label=
"Option B" aria-labelledby="label_id_6ac9f66edac84" /> <label for="id_6ac9f66edac84" class="c-option__radio--label"> <span id="label_id_6ac9f66edac84" class="c-option__radio--label-text">Option
B</span></label>
<div id="error_input_id_6ac9f66edac84_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__radio">
<input name="choice" id="id_6ac9f66edad67" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Option C" value="c" aria-checked="false" tabindex="0" label=
"Option C" aria-labelledby="label_id_6ac9f66edad67" /> <label for="id_6ac9f66edad67" class="c-option__radio--label"> <span id="label_id_6ac9f66edad67" class="c-option__radio--label-text">Option
C</span></label>
<div id="error_input_id_6ac9f66edad67_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'radio',
'label' => 'Option A',
'name' => 'choice',
'value' => 'a',
])
@endoption
@option([
'type' => 'radio',
'label' => 'Option B',
'name' => 'choice',
'value' => 'b',
])
@endoption
@option([
'type' => 'radio',
'label' => 'Option C',
'name' => 'choice',
'value' => 'c',
])
@endoption
Pre-checked state
Setting the checked parameter to true renders the option pre-selected on load, for both checkbox and radio types.
<div class="c-option c-option__checkbox">
<input name="newsletter" id="id_6ac9f66edae7e" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Pre-checked checkbox" value="1" checked="checked"
aria-checked="true" tabindex="0" label="Pre-checked checkbox" aria-labelledby="label_id_6ac9f66edae7e" /> <label for="id_6ac9f66edae7e" class="c-option__checkbox--label"> <span id=
"label_id_6ac9f66edae7e" class="c-option__checkbox--label-text">Pre-checked checkbox</span></label>
<div id="error_input_id_6ac9f66edae7e_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__radio">
<input name="preset" id="id_6ac9f66edaf5b" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Pre-selected radio" value="yes" checked="checked" aria-checked=
"true" tabindex="0" label="Pre-selected radio" aria-labelledby="label_id_6ac9f66edaf5b" /> <label for="id_6ac9f66edaf5b" class="c-option__radio--label"> <span id="label_id_6ac9f66edaf5b" class=
"c-option__radio--label-text">Pre-selected radio</span></label>
<div id="error_input_id_6ac9f66edaf5b_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'Pre-checked checkbox',
'name' => 'newsletter',
'value' => '1',
'checked' => true,
])
@endoption
@option([
'type' => 'radio',
'label' => 'Pre-selected radio',
'name' => 'preset',
'value' => 'yes',
'checked' => true,
])
@endoption
Required
Setting required to true adds HTML5 validation attributes so the field must be interacted with before the form can be submitted.
<div class="c-option c-option__checkbox">
<input name="privacy" id="id_6ac9f66edb0fe" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="I agree to the privacy policy" value="1" required=""
data-required="1" aria-required="true" data-js-required="" aria-checked="false" tabindex="0" label="I agree to the privacy policy" aria-labelledby="label_id_6ac9f66edb0fe" /> <label for=
"id_6ac9f66edb0fe" class="c-option__checkbox--label"> <span id="label_id_6ac9f66edb0fe" class="c-option__checkbox--label-text">I agree to the privacy policy</span></label>
<div id="error_input_id_6ac9f66edb0fe_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__radio">
<input name="confirm" id="id_6ac9f66edb1f4" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Yes, I confirm" value="yes" required="" data-required="1"
aria-required="true" data-js-required="" aria-checked="false" tabindex="0" label="Yes, I confirm" aria-labelledby="label_id_6ac9f66edb1f4" /> <label for="id_6ac9f66edb1f4" class=
"c-option__radio--label"> <span id="label_id_6ac9f66edb1f4" class="c-option__radio--label-text">Yes, I confirm</span></label>
<div id="error_input_id_6ac9f66edb1f4_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'I agree to the privacy policy',
'name' => 'privacy',
'value' => '1',
'required' => true,
])
@endoption
@option([
'type' => 'radio',
'label' => 'Yes, I confirm',
'name' => 'confirm',
'value' => 'yes',
'required' => true,
])
@endoption
Disabled
Adding the is-disabled class via classList together with the disabled HTML attribute visually disables the option and prevents interaction.
<div class="c-option is-disabled c-option__checkbox">
<input disabled="disabled" name="disabledCheck" id="id_6ac9f66edb315" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Disabled unchecked" value="1"
aria-checked="false" tabindex="0" label="Disabled unchecked" aria-labelledby="label_id_6ac9f66edb315" /> <label for="id_6ac9f66edb315" class="c-option__checkbox--label"> <span id=
"label_id_6ac9f66edb315" class="c-option__checkbox--label-text">Disabled unchecked</span></label>
<div id="error_input_id_6ac9f66edb315_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option is-disabled c-option__checkbox">
<input disabled="disabled" name="disabledChecked" id="id_6ac9f66edb40a" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Disabled checked" value="1"
checked="checked" aria-checked="true" tabindex="0" label="Disabled checked" aria-labelledby="label_id_6ac9f66edb40a" /> <label for="id_6ac9f66edb40a" class="c-option__checkbox--label"> <span id=
"label_id_6ac9f66edb40a" class="c-option__checkbox--label-text">Disabled checked</span></label>
<div id="error_input_id_6ac9f66edb40a_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option is-disabled c-option__radio">
<input disabled="disabled" name="disabledRadio" id="id_6ac9f66edb4fd" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Disabled radio" value="x" aria-checked=
"false" tabindex="0" label="Disabled radio" aria-labelledby="label_id_6ac9f66edb4fd" /> <label for="id_6ac9f66edb4fd" class="c-option__radio--label"> <span id="label_id_6ac9f66edb4fd" class=
"c-option__radio--label-text">Disabled radio</span></label>
<div id="error_input_id_6ac9f66edb4fd_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'Disabled unchecked',
'name' => 'disabledCheck',
'value' => '1',
'classList' => ['is-disabled'],
'attributeList' => ['disabled' => 'disabled'],
])
@endoption
@option([
'type' => 'checkbox',
'label' => 'Disabled checked',
'name' => 'disabledChecked',
'value' => '1',
'checked' => true,
'classList' => ['is-disabled'],
'attributeList' => ['disabled' => 'disabled'],
])
@endoption
@option([
'type' => 'radio',
'label' => 'Disabled radio',
'name' => 'disabledRadio',
'value' => 'x',
'classList' => ['is-disabled'],
'attributeList' => ['disabled' => 'disabled'],
])
@endoption
Invalid state
Adding the is-invalid class via classList applies danger-color styling to the box border and label text to signal a validation error.
<div class="c-option is-invalid c-option__checkbox">
<input name="invalidCheck" id="id_6ac9f66edb642" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Invalid checkbox" value="1" aria-checked="false"
tabindex="0" label="Invalid checkbox" aria-labelledby="label_id_6ac9f66edb642" /> <label for="id_6ac9f66edb642" class="c-option__checkbox--label"> <span id="label_id_6ac9f66edb642" class=
"c-option__checkbox--label-text">Invalid checkbox</span></label>
<div id="error_input_id_6ac9f66edb642_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option is-invalid c-option__radio">
<input name="invalidRadio" id="id_6ac9f66edb7ca" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Invalid radio" value="x" aria-checked="false" tabindex="0"
label="Invalid radio" aria-labelledby="label_id_6ac9f66edb7ca" /> <label for="id_6ac9f66edb7ca" class="c-option__radio--label"> <span id="label_id_6ac9f66edb7ca" class=
"c-option__radio--label-text">Invalid radio</span></label>
<div id="error_input_id_6ac9f66edb7ca_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'Invalid checkbox',
'name' => 'invalidCheck',
'value' => '1',
'classList' => ['is-invalid'],
])
@endoption
@option([
'type' => 'radio',
'label' => 'Invalid radio',
'name' => 'invalidRadio',
'value' => 'x',
'classList' => ['is-invalid'],
])
@endoption
Valid state
Adding the is-valid class via classList applies success-color styling to the box border and label text to confirm a correct selection.
<div class="c-option is-valid c-option__checkbox">
<input name="validCheck" id="id_6ac9f66edb920" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Valid checkbox" value="1" checked="checked" aria-checked=
"true" tabindex="0" label="Valid checkbox" aria-labelledby="label_id_6ac9f66edb920" /> <label for="id_6ac9f66edb920" class="c-option__checkbox--label"> <span id="label_id_6ac9f66edb920" class=
"c-option__checkbox--label-text">Valid checkbox</span></label>
<div id="error_input_id_6ac9f66edb920_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option is-valid c-option__radio">
<input name="validRadio" id="id_6ac9f66edba11" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Valid radio" value="x" checked="checked" aria-checked="true"
tabindex="0" label="Valid radio" aria-labelledby="label_id_6ac9f66edba11" /> <label for="id_6ac9f66edba11" class="c-option__radio--label"> <span id="label_id_6ac9f66edba11" class=
"c-option__radio--label-text">Valid radio</span></label>
<div id="error_input_id_6ac9f66edba11_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'Valid checkbox',
'name' => 'validCheck',
'value' => '1',
'checked' => true,
'classList' => ['is-valid'],
])
@endoption
@option([
'type' => 'radio',
'label' => 'Valid radio',
'name' => 'validRadio',
'value' => 'x',
'checked' => true,
'classList' => ['is-valid'],
])
@endoption
Small size
Adding the c-option--sm modifier class via classList renders a smaller checkbox box and label font size.
<div class="c-option c-option--sm c-option__checkbox">
<input name="sizeSmCheck" id="id_6ac9f66edbb3c" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Small checkbox" value="1" aria-checked="false" tabindex=
"0" label="Small checkbox" aria-labelledby="label_id_6ac9f66edbb3c" /> <label for="id_6ac9f66edbb3c" class="c-option__checkbox--label"> <span id="label_id_6ac9f66edbb3c" class=
"c-option__checkbox--label-text">Small checkbox</span></label>
<div id="error_input_id_6ac9f66edbb3c_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__checkbox">
<input name="sizeMdCheck" id="id_6ac9f66ee7066" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Default size checkbox" value="1" aria-checked="false"
tabindex="0" label="Default size checkbox" aria-labelledby="label_id_6ac9f66ee7066" /> <label for="id_6ac9f66ee7066" class="c-option__checkbox--label"> <span id="label_id_6ac9f66ee7066" class=
"c-option__checkbox--label-text">Default size checkbox</span></label>
<div id="error_input_id_6ac9f66ee7066_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'Small checkbox',
'name' => 'sizeSmCheck',
'value' => '1',
'classList' => ['c-option--sm'],
])
@endoption
@option([
'type' => 'checkbox',
'label' => 'Default size checkbox',
'name' => 'sizeMdCheck',
'value' => '1',
])
@endoption
Custom name
The name parameter sets the HTML name attribute on the input; when omitted, the name is derived automatically from the label text.
<div class="c-option c-option__checkbox">
<input name="newsletter_opt_in" id="id_6ac9f66ee716b" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Subscribe to newsletter" value="1" aria-checked=
"false" tabindex="0" label="Subscribe to newsletter" aria-labelledby="label_id_6ac9f66ee716b" /> <label for="id_6ac9f66ee716b" class="c-option__checkbox--label"> <span id="label_id_6ac9f66ee716b"
class="c-option__checkbox--label-text">Subscribe to newsletter</span></label>
<div id="error_input_id_6ac9f66ee716b_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__radio">
<input name="delivery_time" id="id_6ac9f66ee7237" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Morning" value="morning" aria-checked="false" tabindex="0"
label="Morning" aria-labelledby="label_id_6ac9f66ee7237" /> <label for="id_6ac9f66ee7237" class="c-option__radio--label"> <span id="label_id_6ac9f66ee7237" class=
"c-option__radio--label-text">Morning</span></label>
<div id="error_input_id_6ac9f66ee7237_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__radio">
<input name="delivery_time" id="id_6ac9f66ee72ef" data-component="option" type="radio" class="c-option__radio--hidden-box" placeholder="Afternoon" value="afternoon" aria-checked="false" tabindex=
"0" label="Afternoon" aria-labelledby="label_id_6ac9f66ee72ef" /> <label for="id_6ac9f66ee72ef" class="c-option__radio--label"> <span id="label_id_6ac9f66ee72ef" class=
"c-option__radio--label-text">Afternoon</span></label>
<div id="error_input_id_6ac9f66ee72ef_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'Subscribe to newsletter',
'name' => 'newsletter_opt_in',
'value' => '1',
])
@endoption
@option([
'type' => 'radio',
'label' => 'Morning',
'name' => 'delivery_time',
'value' => 'morning',
])
@endoption
@option([
'type' => 'radio',
'label' => 'Afternoon',
'name' => 'delivery_time',
'value' => 'afternoon',
])
@endoption
Value
The value parameter sets the data submitted with the form when the option is checked, allowing multiple checkboxes to share a name while returning distinct values.
<div class="c-option c-option__checkbox">
<input name="color" id="id_6ac9f66ee73ec" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Red" value="red" aria-checked="false" tabindex="0" label="Red"
aria-labelledby="label_id_6ac9f66ee73ec" /> <label for="id_6ac9f66ee73ec" class="c-option__checkbox--label"> <span id="label_id_6ac9f66ee73ec" class=
"c-option__checkbox--label-text">Red</span></label>
<div id="error_input_id_6ac9f66ee73ec_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__checkbox">
<input name="color" id="id_6ac9f66ee74bc" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Green" value="green" aria-checked="false" tabindex="0" label=
"Green" aria-labelledby="label_id_6ac9f66ee74bc" /> <label for="id_6ac9f66ee74bc" class="c-option__checkbox--label"> <span id="label_id_6ac9f66ee74bc" class=
"c-option__checkbox--label-text">Green</span></label>
<div id="error_input_id_6ac9f66ee74bc_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div><!-- option.blade.php -->
<div class="c-option c-option__checkbox">
<input name="color" id="id_6ac9f66ee7582" data-component="option" type="checkbox" class="c-option__checkbox--hidden-box" placeholder="Blue" value="blue" aria-checked="false" tabindex="0" label=
"Blue" aria-labelledby="label_id_6ac9f66ee7582" /> <label for="id_6ac9f66ee7582" class="c-option__checkbox--label"> <span id="label_id_6ac9f66ee7582" class=
"c-option__checkbox--label-text">Blue</span></label>
<div id="error_input_id_6ac9f66ee7582_message" class="c-option__input-invalid-message">
<!-- icon.blade.php -->
<span class="c-icon c-icon--error c-icon--material c-icon--material-error c-icon--svg-material c-icon--size-sm" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined"
aria-hidden="false" data-component="icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 960" fill="currentcolor" style=
"fill:var(--icon-color, currentColor)">
<path d=
"M480.0 680.0Q497 680 508.5 668.5Q520 657 520.0 640.0Q520 623 508.5 611.5Q497 600 480.0 600.0Q463 600 451.5 611.5Q440 623 440.0 640.0Q440 657 451.5 668.5Q463 680 480.0 680.0ZM440 520H520V280H440ZM480 880Q397 880 324.0 848.5Q251 817 197.0 763.0Q143 709 111.5 636.0Q80 563 80 480Q80 397 111.5 324.0Q143 251 197.0 197.0Q251 143 324.0 111.5Q397 80 480 80Q563 80 636.0 111.5Q709 143 763.0 197.0Q817 251 848.5 324.0Q880 397 880 480Q880 563 848.5 636.0Q817 709 763.0 763.0Q709 817 636.0 848.5Q563 880 480 880ZM480 800Q614 800 707.0 707.0Q800 614 800 480Q800 346 707.0 253.0Q614 160 480 160Q346 160 253.0 253.0Q160 346 160 480Q160 614 253.0 707.0Q346 800 480 800ZM480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Q480 480 480.0 480.0Q480 480 480 480Z">
</path></svg></span>
</div>
</div>
@option([
'type' => 'checkbox',
'label' => 'Red',
'name' => 'color',
'value' => 'red',
])
@endoption
@option([
'type' => 'checkbox',
'label' => 'Green',
'name' => 'color',
'value' => 'green',
])
@endoption
@option([
'type' => 'checkbox',
'label' => 'Blue',
'name' => 'color',
'value' => 'blue',
])
@endoption
API
Parameter
Default
Type
Description
type
checkbox
string
-
label
string
-
required
false
boolean
-
value
string
-
checked
false
boolean
-
name
null
?string
-
CSS API
Variable
Default
Type
Values
Description
--c-option--base
var(--base)
range
-
Main unit that drives radius and spacing scales.
--c-option--border-radius
var(--border-radius)
range
-
Border Radius
--c-option--color--primary
var(--color--primary)
color
-
Primary
--c-option--color--surface
var(--color--surface)
color
-
Surface
--c-option--color--danger
var(--color--danger)
color
-
Danger
--c-option--color--success
var(--color--success)
color
-
Success
--c-option--font-size-100
var(--font-size-100)
range
-
Base font size.
--c-option--color--surface-contrast
var(--color--surface-contrast)
color
-
Used for text and icons on surface backgrounds with less contrast.
--c-option--color--danger-contrast
var(--color--danger-contrast)
color
-
Danger Contrast