otp_pin_field
A flutter package which will help you to generate pin code fields with beautiful design and animations. It's a beautiful and highly customizable Flutter widget for entering pin code. Can be useful for OTP or pin code inputs.
Usage
Use this package as a library
- Depend on it Add this to your package's pubspec.yaml file:
dependencies:
otp_pin_field: <VERSION>
- Install it You can install packages from the command line: with Flutter:
$ flutter pub add otp_pin_field
Alternatively, your editor might support flutter packages get. Check the docs for your editor to learn more.
- Import it Now in your Dart code, you can use:
import 'package:otp_pin_field/otp_pin.dart';
Properties
name | type | default | description |
---|---|---|---|
fieldCount | int | 4 | The total length of pin number & the number of pin boxes. |
highlightBorder | bool | true | highlight the focused pin box. |
activeFieldBorderColor | Color | Colors.black | Set color of the focused pin box. |
activeFieldBackgroundColor | Color | Colors.transparent | Set background color of the focused pin box. |
defaultFieldBorderColor | Color | Colors.black45 | Set color of the unfocused pin box. |
defaultFieldBackgroundColor | Color | Colors.transparent | Set background color of the unfocused pin box. |
fieldPadding | double | 20.0 | Set padding for pin box. |
fieldBorderRadius | double | 2.0 | Set border radius for pin box. |
fieldBorderWidth | double | 2.0 | Set border width for pin box. |
textStyle | TextStyle | TextStyle(fontSize: 18.0,color: Colors.black,) | TextStyle for styling pin characters. |
otpPinFieldInputType | OtpPinFieldInputType | OtpPinFieldInputType.none | Want to show text of otp_pin_field(OtpPinFieldInputType.none) or not(OtpPinFieldInputType.password) or want to show some special character(OtpPinFieldInputType.custom) |
otpPinInputCustom | String | "*" | Special character to mask the pin code. Will only work if uses otpPinFieldInputType is set to OtpPinFieldInputType.custom . |
onSubmit | void Function(String) | Callback when the max length of pin code is reached. | |
otpPinFieldStyle | OtpPinFieldStyle | OtpPinFieldStyle() | Customization for the individual pin boxes. Check OtpPinFieldStyle for possible options. |
fieldHeight | double | 45.0 | Height of pin boxes. |
fieldWidth | double | 70.0 | Width of pin boxes. |
otpPinFieldDecoration | OtpPinFieldDecoration | OtpPinFieldDecoration.underlinedPinBoxDecoration | Predefine customization for the individual pin boxes. Check OtpPinFieldStyle for possible options and use OtpPinFieldDecoration.custom for fully customization like boarder radius,width, active and default otp_pin_field colors and etc.. |
keyboardType | TextInputType | TextInputType.number | The type of the input keyboard |
autofocus | bool | false | Autofocus on view entered |
Example
OtpPinField(
otpPinFieldInputType: OtpPinFieldInputType.custom, // OtpPinFieldInputType.none || OtpPinFieldInputType.password || OtpPinFieldInputType.custom
otpPinInputCustom: "\$", // A String which you want to show when you use 'inputType: OtpPinFieldInputType.custom, '
onSubmit: (text) {
print( 'Entered pin is $text'); // return the entered pin
},
// to decorate your Otp_Pin_Field
otpPinFieldStyle: OtpPinFieldStyle(
defaultFieldBorderColor: Colors.blue, // border color for inactive/unfocused Otp_Pin_Field
activeFieldBorderColor: Colors.red, // border color for active/focused Otp_Pin_Field
defaultFieldBackgroundColor: Colors.pinkAccent, // Background Color for inactive/unfocused Otp_Pin_Field
activeFieldBackgroundColor: Colors.cyanAccent, // Background Color for active/focused Otp_Pin_Field
),
fieldCount: 4, // no of pin field
highlightBorder: true, // want to highlight focused/active Otp_Pin_Field
fieldWidth: 50, //to give width to your Otp_Pin_Field
fieldHeight: 50, //to give height to your Otp_Pin_Field
keyboardType: TextInputType.text, // type of keyboard you want
autoFocus: false, //want to open keyboard or not
// predefine decorate of pinField use OtpPinFieldDecoration.defaultPinBoxDecoration||OtpPinFieldDecoration.underlinedPinBoxDecoration||OtpPinFieldDecoration.roundedPinBoxDecoration
//use OtpPinFieldDecoration.custom (by using this you can make Otp_Pin_Field according to yourself like you can give fieldBorderRadius,fieldBorderWidth and etc things)
otpPinFieldDecoration: OtpPinFieldDecoration.defaultPinBoxDecoration,
)
refer to example/lib/main.dart
Different Shapes







