textarea

Displays a form textarea or a component that looks like a textarea.

PreviousNext
import { Component } from '@angular/core';

import { ZardTextareaComponent } from '@/shared/components/textarea/textarea.component';

@Component({
  selector: 'z-demo-textarea-default',
  imports: [ZardTextareaComponent],
  template: `
    <textarea z-textarea placeholder="Type your message here." class="w-72"></textarea>
  `,
})
export class ZardDemoTextareaDefaultComponent {}

Installation

Copy
npx zard-cli@latest add textarea

Usage

import { ZardTextareaComponent } from '@/shared/components/textarea/textarea.component';
Copy
<textarea z-textarea rows="6" placeholder="Type your message"></textarea>
Copy

Examples

field

Use Field, FieldLabel, and FieldDescription to create a textarea with a label and description.

Enter your message below.

import { Component } from '@angular/core';

import { ZardFieldImports } from '@/shared/components/field/field.imports';
import { ZardTextareaComponent } from '@/shared/components/textarea/textarea.component';

@Component({
  selector: 'z-demo-textarea-field',
  imports: [ZardTextareaComponent, ...ZardFieldImports],
  template: `
    <div z-field class="w-72">
      <label z-field-label for="textarea-message">Message</label>
      <p z-field-description>Enter your message below.</p>
      <textarea z-textarea id="textarea-message" placeholder="Type your message here."></textarea>
    </div>
  `,
})
export class ZardDemoTextareaFieldComponent {}

disabled

Use the disabled prop to disable the textarea. To style the disabled state, add the data-disabled attribute to the Field component.

import { Component } from '@angular/core';

import { ZardFieldImports } from '@/shared/components/field/field.imports';
import { ZardTextareaComponent } from '@/shared/components/textarea/textarea.component';

@Component({
  selector: 'z-demo-textarea-disabled',
  imports: [ZardTextareaComponent, ...ZardFieldImports],
  template: `
    <div z-field class="w-72" data-disabled="true">
      <label z-field-label for="textarea-disabled">Message</label>
      <textarea z-textarea id="textarea-disabled" placeholder="Type your message here." disabled></textarea>
    </div>
  `,
})
export class ZardDemoTextareaDisabledComponent {}

invalid

Use the aria-invalid prop to mark the textarea as invalid. To style the invalid state, add the data-invalid attribute to the Field component.

Please enter a valid message.

import { Component } from '@angular/core';

import { ZardFieldImports } from '@/shared/components/field/field.imports';
import { ZardTextareaComponent } from '@/shared/components/textarea/textarea.component';

@Component({
  selector: 'z-demo-textarea-invalid',
  imports: [ZardTextareaComponent, ...ZardFieldImports],
  template: `
    <div z-field class="w-72" data-invalid="true">
      <label z-field-label for="textarea-invalid">Message</label>
      <textarea z-textarea id="textarea-invalid" placeholder="Type your message here." aria-invalid="true"></textarea>
      <p z-field-description>Please enter a valid message.</p>
    </div>
  `,
})
export class ZardDemoTextareaInvalidComponent {}

button

Pair with Button to create a textarea with a submit button.

import { Component } from '@angular/core';

import { ZardButtonComponent } from '@/shared/components/button/button.component';
import { ZardTextareaComponent } from '@/shared/components/textarea/textarea.component';

@Component({
  selector: 'z-demo-textarea-button',
  imports: [ZardTextareaComponent, ZardButtonComponent],
  template: `
    <div class="grid w-72 gap-2">
      <textarea z-textarea placeholder="Type your message here."></textarea>
      <button z-button>Send message</button>
    </div>
  `,
})
export class ZardDemoTextareaButtonComponent {}

API Reference

textarea[z-textarea]Component

A multi-line text input directive applied to a native textarea. All native HTML textarea attributes (placeholder, name, disabled, readonly, aria-invalid, etc.) are supported.

PropertyDescriptionTypeDefault
[class] Additional CSS classes ClassValue ''
[(value)] Textarea value (two-way binding) string ''
github iconwhatsapp icondiscord iconX icon

Made with in Brazil. Open source and available on GitHub .