Skip to main content
Javaabu Forms

Javaabu Forms

A comprehensive Laravel package providing 70+ Blade components for form elements. Built to reduce boilerplate code while maintaining flexibility and ease of customization. Inspired by protonemedia/laravel-form-components, Javaabu Forms takes form creation to the next level with automatic model binding, built-in validation display, and multi-framework support.

Key Features

Model Binding

Seamlessly bind Eloquent models to forms with automatic value population and support for nested relationships

Automatic Validation

Built-in validation error display that integrates with Laravel’s validation system

Multiple Frameworks

Bootstrap 5 and Material Admin 26 support out of the box, fully customizable

70+ Components

Text inputs, selects, textareas, dates, files, checkboxes, radios, Select2, WYSIWYG, maps, and more

Clean Syntax

Use semantic <x-forms::input /> syntax instead of verbose HTML

Zero Configuration

Works immediately with sensible defaults, fully publishable for deep customization

Quick Example

Here’s how clean your forms can look with Javaabu Forms:
<x-forms::form :model="$user" method="PUT" action="{{ route('users.update', $user) }}">
    <x-forms::text name="name" :label="__('Name')" required />
    <x-forms::email name="email" :label="__('Email')" required />
    <x-forms::textarea name="bio" :label="__('Biography')" rows="5" />
    <x-forms::select name="role" :label="__('Role')" :options="['admin' => 'Admin', 'user' => 'User']" />
    
    <x-forms::submit>Update User</x-forms::submit>
</x-forms::form>
The form automatically:
  • Binds $user data to all fields
  • Handles CSRF protection
  • Displays validation errors
  • Renders proper labels and layout

Component Categories

Form Inputs

Text, email, password, number, tel, URL, hidden, latitude, longitude

Select & Choices

Select, Select2 (AJAX, tags, icons), radio buttons

Date & Time

Date picker, datetime picker, time picker with icon triggers

File Uploads

File upload, image upload with Spatie Media Library integration

Rich Content

WYSIWYG editor, textarea with formatting

Layout & UI

Forms, buttons, cards, tables, tabs, accordions, modals, alerts

Special Inputs

Map input with Google Maps, checkboxes with multiple selection

Data Display

Text entries, boolean entries, infolists, status badges

Search & Filters

Search forms, bulk actions, per-page selector, pagination

Getting Started

1

Install the Package

Follow the Installation guide to add Javaabu Forms to your Laravel project via Composer
2

Review Requirements

Check the Requirements to ensure your environment meets the minimum PHP and Laravel versions
3

Quick Start

Jump into the Quickstart to create your first form with model binding in under 5 minutes
4

Explore Components

Browse the component documentation to discover all available form elements and their options

Why Javaabu Forms?

Before Javaabu Forms:
<div class="form-group">
    <label for="title" class="form-label">Title <span class="text-danger">*</span></label>
    <input type="text" class="form-control @error('title') is-invalid @enderror" 
           id="title" name="title" value="{{ old('title', $post->title ?? '') }}" required>
    @error('title')
        <div class="invalid-feedback">{{ $message }}</div>
    @enderror
</div>
With Javaabu Forms:
<x-forms::text name="title" :label="__('Title')" required :model="$post" />
Both examples produce identical output, but Javaabu Forms reduces 7 lines of boilerplate to a single declarative component.

Framework Support

Javaabu Forms comes with pre-built templates for:
  • Bootstrap 5 (default)
  • Material Admin 26
You can publish and customize views to support any CSS framework, or create your own framework configuration in the config file.

Community & Support

GitHub Repository

Star the project, report issues, or contribute

Packagist

View package statistics and version history
Found a bug or security issue? Email [email protected] instead of using the issue tracker.

Build docs developers (and LLMs) love