Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Form Components Laravel Package

rawilk/laravel-form-components

A set of reusable Blade form components for Laravel that make building consistent forms quick and clean. Includes inputs, selects, checkboxes, radios, buttons, errors, and styling-friendly markup, with flexible config and easy customization.

View on GitHub
Deep Wiki
Context7

title: Textarea sort: 2

Introduction

The textarea component offers an easy way to set up a textarea field for your forms. By simply setting its name attribute it also automatically defines your id and makes sure old values are respected.

Requirements

If you want to take advantage of the auto-resize functionality of the component, you will need the following installed:

  • Alpine.js

See Third-Party Assets on the installation guide for further setup information.

Basic Usage

The most basic usage of the component exists by setting a name attribute:

<x-textarea name="about" />

By default, a rows attribute will be set for the textarea field as well as an id that allows it to be easily referenced by a label element. Of course, you can overwrite all of these values as well:

<x-textarea name="about" id="about_me" rows="5" />

Old Values

The textarea component also supports old values that were set. For example, you might want to apply some validation in the backend and make sure the user doesn't lose their input data when you show the form again with the validation errors. Whe re-rendering the form, the textarea component will remember the old value:

<div class="form-text-container ...">
    <textarea name="about" id="about" class="form-input form-text ..." rows="3">
About me text</textarea
    >
</div>

If you are using livewire, the textarea will allow livewire to set the value instead, however.

Auto Resize

You can have the textarea auto-resize its height based on its content length. This is enabled by default in the config, but you can either disable it there or on a per-element basis with the autoResize prop:

<x-textarea :auto-resize="false" />

Behind-the-scenes, the component will make use of our custom x-textarea-resize directive to handle automatically resizing the textarea for you.

API Reference

props

prop description
name Name of the textarea
id Id of the input. Defaults to name.
type Type of input. Defaults to text
value Value of the input. Gets omitted if wire:model or x-model is present
containerClass Defines a CSS class to apply to the container of the input
size Define a size for the textarea. Default size is md
showErrors If a validation error is present for the input, it will show the error state on the input
extraAttributes Pass an array of HTML attributes to render on the textarea
leadingAddon Render text on the left of the textarea
leadingIcon Render an icon on the left of the textarea
inlineAddon Render text inside the textarea on the left
trailingAddon Render text on the right of the textarea
trailingInlineAddon Render text inside the textarea on the right
trailingIcon Render an icon on the right of the textarea
autoResize Resize the textarea automatically as the user types into it. Defaults to config value.

slots

slot description
before Render HTML before the textarea and/or leading addons
after Render HTML after the textarea and/or trailing addons
leadingAddon Render text on the left of the textarea
leadingIcon Render an icon on the left of the textarea
inlineAddon Render text inside the textarea on the left
trailingAddon Render text on the right of the textarea
trailingInlineAddon Render text inside the textarea on the right
trailingIcon Render an icon on the right of the textarea

config

The following configuration keys and values can be adjusted for common default behavior you may want for the textarea element.

'defaults' => [
    'global' => [
        // Show error states by default.
        'show_errors' => true,
    ],

    'input' => [
        // Supported: 'sm', 'md', 'lg'
        // Applies to all input types except for checkbox/radios and custom select.
        'size' => 'md',

        // Classes applied by default to input parent div.
        // Will also apply to select.
        'container_class' => null,

        // Base input classes applied by default.
        'input_class' => null,
    ],

    'textarea' => [
        // How many rows should the textarea have by default.
        'rows' => 3,

        // Automatically resize the textarea based on content length.
        'auto_resize' => true,
    ],
],
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky