Saltar al contenido
Filament Signature Field
code

Detalles del ejemplo

Filament Signature Field

Campo de firma digital para Filament v4 con soporte táctil, múltiples formatos de exportación y dark mode.

Instalación

composer require cursosdesarrolloweb/filament-signature-field

Después de instalar, publica los assets:

php artisan filament:assets

Uso Rápido

Añade un campo de firma en tu formulario:

use CursosDesarrolloWeb\SignatureField\Forms\Components\SignatureField;

SignatureField::make('signature')
    ->label('Firma')

Campo de Formulario

use CursosDesarrolloWeb\SignatureField\Forms\Components\SignatureField;

// Uso básico
SignatureField::make('signature')
    ->label('Firma del cliente')

// Personalizar colores del trazo
SignatureField::make('signature')
    ->penColor('#1e40af')
    ->penColorDark('#93c5fd')

// Personalizar grosor del trazo
SignatureField::make('signature')
    ->strokeMinWidth(0.5)
    ->strokeMaxWidth(3.0)

// Personalizar color de fondo
SignatureField::make('signature')
    ->backgroundColor('#f8fafc')

// Cambiar altura del canvas
SignatureField::make('signature')
    ->canvasHeight(250)

// Cambiar formato de exportación (png, jpg, svg)
SignatureField::make('signature')
    ->exportFormat('png')

// Requerido con validación
SignatureField::make('signature')
    ->required()

// Ejemplo completo
SignatureField::make('signature')
    ->label('Firma del contrato')
    ->penColor('#1e40af')
    ->penColorDark('#93c5fd')
    ->strokeMinWidth(0.5)
    ->strokeMaxWidth(3.0)
    ->backgroundColor('#ffffff')
    ->canvasHeight(200)
    ->exportFormat('png')
    ->required()

Métodos Disponibles

Método Descripción Default
penColor(string) Color del trazo en modo claro '#000000'
penColorDark(string) Color del trazo en modo oscuro '#ffffff'
strokeMinWidth(float) Grosor mínimo del trazo 0.5
strokeMaxWidth(float) Grosor máximo del trazo 2.5
backgroundColor(string) Color de fondo del canvas 'transparent'
canvasHeight(int) Altura del canvas en píxeles 200
exportFormat(string) Formato de exportación: png, jpg, svg 'png'

Base de Datos

La firma se guarda como base64 (data URI). Usa TEXT o LONGTEXT para el campo:

Schema::table('contracts', function (Blueprint $table) {
    $table->longText('signature')->nullable();
});

Características

  • Soporte táctil completo (móvil/tablet)
  • Botón para limpiar la firma
  • Dark mode automático
  • Responsive (se adapta al ancho del contenedor)
  • Alta resolución (soporte para pantallas retina)
  • Múltiples formatos de exportación (PNG, JPG, SVG)

Requisitos

  • PHP 8.2+
  • Laravel 11+
  • Filament 4.x|5.x

Licencia

Propietario - Solo para suscriptores de CursosDesarrolloWeb.