password_check 2.0.0 copy "password_check: ^2.0.0" to clipboard
password_check: ^2.0.0 copied to clipboard

This package facilitates the implementation of a checklist for password validation

PasswordChecklist Widget #

O widget PasswordChecklist em Flutter exibe regras de validação de senha em tempo real, indicando quais condições foram atendidas. Totalmente customizável em cores, mensagens, ícones e layout.

Video 1

Video 2

Uso básico #

PasswordChecklist(
  controller: myController,
  minCharacters: 8,
  onValidationChanged: (isValid) {
    setState(() => _isPasswordValid = isValid);
  },
)

Parâmetros (versão 2.x) #

Parâmetro Tipo Padrão Desde Descrição
controller TextEditingController (obrigatório) 1.0.0 Controller do campo de senha
onValidationChanged ValueChanged<bool> (obrigatório) 1.0.0 Callback quando validação muda
checkEightCharacters bool true 1.0.0 Verifica comprimento mínimo
checkSpecialCharacter bool true 1.0.0 Verifica caractere especial
checkNumber bool true 1.0.0 Verifica número
checkUppercase bool true 1.0.0 Verifica maiúscula
checkLowercase bool true 1.0.0 Verifica minúscula
checkOnlyNumbers bool false 2.0.0 Rejeita senha apenas números
minCharacters int 8 1.0.0 Comprimento mínimo
specialCharactersRegex RegExp? padrão 2.0.0 Regex para especiais
validColor Color? green 1.0.0 Cor quando válido
invalidColor Color? red 1.0.0 Cor quando inválido
eightCharactersMessage String? pt-BR 1.0.0 Mensagem comprimento
specialCharacterMessage String? pt-BR 1.0.0 Mensagem especial
numberMessage String? pt-BR 1.0.0 Mensagem número
uppercaseMessage String? pt-BR 1.0.0 Mensagem maiúscula
lowercaseMessage String? pt-BR 1.0.0 Mensagem minúscula
onlyNumbersMessage String? pt-BR 2.0.0 Mensagem apenas números
customIcon Widget? null 1.0.0 Ícone único para todos
customIconBuilder Function? null 2.0.0 Ícone por regra
itemSpacing double 8.0 2.0.0 Espaço entre itens
validTextStyle TextStyle? null 2.0.0 Estilo texto válido
invalidTextStyle TextStyle? null 2.0.0 Estilo texto inválido
itemBuilder Function? null 2.0.0 Builder customizado
padding EdgeInsetsGeometry? null 2.0.0 Padding do container
margin EdgeInsetsGeometry? null 2.0.0 Margem do container
crossAxisAlignment CrossAxisAlignment start 2.0.0 Alinhamento transversal
mainAxisAlignment MainAxisAlignment start 2.0.0 Alinhamento principal
ruleOrder List<PasswordRuleType>? null 2.0.0 Ordem das regras

Compatibilidade com 1.x #

A versão 2.0.0 é retrocompatível com 1.x. Parâmetros existentes mantêm o mesmo comportamento. Novos parâmetros são opcionais com defaults sensatos.

Exemplos de customização #

Regex de caracteres especiais #

PasswordChecklist(
  controller: controller,
  onValidationChanged: (_) {},
  specialCharactersRegex: RegExp(r'[!@#\$%&*]'),
)

Ordem customizada das regras #

import 'package:password_check/password_check.dart';

PasswordChecklist(
  controller: controller,
  onValidationChanged: (_) {},
  ruleOrder: [
    PasswordRuleType.uppercase,
    PasswordRuleType.lowercase,
    PasswordRuleType.number,
    PasswordRuleType.minCharacters,
    PasswordRuleType.specialCharacter,
  ],
)

Ícone por regra #

PasswordChecklist(
  controller: controller,
  onValidationChanged: (_) {},
  customIconBuilder: (ruleId, isValid) {
    return Icon(
      isValid ? Icons.check_circle : Icons.cancel,
      color: isValid ? Colors.green : Colors.red,
      size: 20,
    );
  },
)

Builder customizado (controle total) #

PasswordChecklist(
  controller: controller,
  onValidationChanged: (_) {},
  itemBuilder: (item) {
    return ListTile(
      leading: Icon(
        item.isValid ? Icons.done : Icons.pending,
        color: item.effectiveColor,
      ),
      title: Text(item.message),
    );
  },
)

Internacionalização #

PasswordChecklist(
  controller: controller,
  onValidationChanged: (_) {},
  eightCharactersMessage: 'At least 8 characters',
  specialCharacterMessage: 'One special character',
  numberMessage: 'One number',
  uppercaseMessage: 'One uppercase letter',
  lowercaseMessage: 'One lowercase letter',
  onlyNumbersMessage: 'Not only numbers',
)
5
likes
150
points
87
downloads

Publisher

unverified uploader

Weekly Downloads

This package facilitates the implementation of a checklist for password validation

Repository (GitHub)
View/report issues

Documentation

API reference

License

unknown (license)

Dependencies

flutter

More

Packages that depend on password_check