Bool Knob
The bool knob renders a toggle switch in the Widgetbook UI where you can dynamically toggle a bool value for a widget property.
Varients
The bool knob has two variants:
context.knobs.bool()
: This variant allows you to toggle a bool value. It does not acceptnull
values.context.knobs.boolOrNull()
: This variant allows you to toggle a bool value ornull
. It is useful when the property can be optional.
Properties
Besides the knob's base properties, the bool knob does not feature any additional properties.
Usage
To use a bool knob, call the context.knobs.bool()
method.
Example: Bool Knob
import 'package:flutter/material.dart';
import 'package:widgetbook/widgetbook.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart';
@UseCase(type: Checkbox, name: 'Duo state')
Widget buildCheckboxUseCase(BuildContext context) {
return Checkbox(
value: context.knobs.boolean(label: 'value'),
onChanged: (value) {},
);
}
Properties
Besides the knob's base properties, the nullable bool knob does not feature any additional properties.
Usage
To use the nullable bool knob, call the context.knobs.boolOrNull()
method.
Example: Nullable Bool Knob
import 'package:flutter/material.dart';
import 'package:widgetbook/widgetbook.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart';
@UseCase(type: Checkbox, name: 'Tristate')
Widget buildCheckboxUseCase(BuildContext context) {
return Checkbox(
value: context.knobs.booleanOrNull(label: 'value'),
tristate: true,
onChanged: (value) {},
);
}
Multi-snapshot Support
Multi-snapshot support allows you to generate multiple screenshots of a single use case with varying values using KnobsConfigs and AddonsConfigs.
Regular Bool Knob
Example: BooleanKnobConfig
import 'package:flutter/material.dart';
import 'package:widgetbook/widgetbook.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart';
@UseCase(
type: Checkbox,
name: 'Duo state',
cloudKnobsConfigs: {
'Checked': [BooleanKnobConfig('value', true)],
'Unchecked': [BooleanKnobConfig('value', false)],
},
)
Widget buildCheckboxUseCase(BuildContext context) {
return Checkbox(
value: context.knobs.boolean(label: 'value'),
onChanged: (value) {},
);
}
Nullable Bool Knob
Example: NullKnobConfig
import 'package:flutter/material.dart';
import 'package:widgetbook/widgetbook.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart';
@UseCase(
type: Checkbox,
name: 'Tristate',
cloudKnobsConfigs: {
'Mixed': [NullKnobConfig('value')],
'Checked': [BooleanKnobConfig('value', true)],
'Unchecked': [BooleanKnobConfig('value', false)],
},
)
Widget buildCheckboxUseCase(BuildContext context) {
return Checkbox(
value: context.knobs.booleanOrNull(label: 'value'),
onChanged: (value) {},
);
}