smart_otp_field_plus 1.0.1
smart_otp_field_plus: ^1.0.1 copied to clipboard
A smart and customizable Flutter OTP input field with autofill, paste support, resend timer, obscure text, backspace handling, and flexible theming.
Smart OTP Field #
A beautiful, customizable Flutter OTP input package with controller support, theme customization, auto focus handling, completion callbacks, and resend timer.
β¨ Features #
- π’ Beautiful OTP input boxes
- π― Auto focus next / previous
- π OTP controller support
- π¨ Custom theme support
- π
onChangedcallback - β
onCompletedcallback - π Resend timer widget
- π§Ή Clear OTP programmatically
- π± Android & iOS support
- π Easy integration
π¦ Installation #
Add dependency in pubspec.yaml
dependencies:
smart_otp_field_plus: ^1.0.1
Run:
flutter pub get
π§© Full Example #
import 'package:flutter/material.dart';
import 'package:smart_otp_field_plus/smart_otp_field_plus.dart';
class OtpScreen extends StatelessWidget {
OtpScreen({super.key});
final OtpController controller = OtpController(length: 6);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("OTP Verification")),
body: Padding(
padding: const EdgeInsets.all(20),
child: Column(
children: [
SmartOtpFieldPlus(
controller: controller,
length: 6,
onCompleted: (otp) {
print("OTP Entered: $otp");
},
),
const SizedBox(height: 20),
ResendTimer(
seconds: 30,
onResend: () {
print("Resend OTP");
},
),
const SizedBox(height: 20),
ElevatedButton(
onPressed: () {
print(controller.value);
},
child: const Text("Submit"),
),
],
),
),
);
}
}
β Available Properties #
SmartOtpField #
| Property | Type | Default | Description |
|---|---|---|---|
length |
int |
6 |
OTP box count |
controller |
OtpController? |
null |
OTP controller |
theme |
OtpTheme |
default |
Custom UI theme |
onChanged |
ValueChanged<String>? |
null |
OTP change callback |
onCompleted |
ValueChanged<String>? |
null |
Called when OTP complete |
OtpController #
| Property | Description |
|---|---|
value |
Returns OTP string |
clear() |
Clears all boxes |
isComplete |
Checks OTP completion |
dispose() |
Dispose controllers |
OtpTheme #
| Property | Description |
|---|---|
boxWidth |
OTP box width |
boxHeight |
OTP box height |
textStyle |
OTP text style |
decoration |
Default box decoration |
focusedDecoration |
Focused box decoration |
π± Platform Support #
| Platform | Support |
|---|---|
| Android | β |
| iOS | β |
π License #
MIT License
π€ Contributing #
Pull requests are welcome.
If you find bugs or want improvements, feel free to open an issue.
β Support #
If you like this package, give it a star on GitHub.