Skip to content

Kirby 5.0.4

Toggle

Yes/no or on/off toggle

The toggle field is perfect for simple on/off or yes/no states.

Example

fields:
  toggle:
    label: Include in menu?
    type: toggle
    text:
      - "no"
      - "yes"

Field properties

Name Type Default Description
$after mixed null Optional text that will be shown after the input
$autofocus bool null Sets the focus on this field when the form loads. Only the first field with this label gets
$before mixed null Optional text that will be shown before the input
$default mixed null Default value which will be saved when a new page/user/file is created
$disabled bool null If true, the field is no longer editable and will not be saved
$help mixed null Optional help text below the field
$icon string null Optional icon that will be shown at the end of the field
$label mixed null The field label can be set as string or associative array with translations
$required bool null If true, the field has to be filled in correctly to be saved.
$text mixed null Sets the text next to the toggle. The text can be a string or an array of two options. The first one is the negative text and the second one the positive. The text will automatically switch when the toggle is triggered.
$translate bool true If false, the field will be disabled in non-default languages and cannot be translated. This is only relevant in multi-language setups.
$when mixed null Conditions when the field will be shown (since 3.1.0)
$width string '1/1' The width of the field in the field grid, e.g. 1/1, 1/2, 1/3, 1/4, 2/3, 3/4

Simple toggle field translated

fields:
  toggle:
    label: Toggle
    type: toggle
    text:
        en: Include in menu?
        de: Im Menü anzeigen?

Toggle text

fields:
  toggle:
    label: Toggle
    type: toggle
    text:
        - Nope
        - Yay

Note: The values No and Yes will not work out of the box as the YAML parser will interpret them as booleans. You need to quote them as "No" and "Yes".

Translated text

fields:
  toggle:
    label: Toggle
    type: toggle
    text:
        -
            en: Nope
            de: Och nö
        -
            en: Yay
            de: Juhu

The field content will either be 'true' or 'false'.

Text from query

fields:
  toggle:
    label: Toggle
    type: toggle
    text: "{{ page.toggleText }}"

How to use in templates/snippet

Convert to a proper boolean:

$bool = $page->toggle()->toBool();

Do something depending on field value:

<?php
if ($page->toggle()->toBool() === true) {
  // do this
} else {
  // do that
}