Skip to content

FormTextarea Component

The FormTextarea component is built with Vue 3 and provides a customizable textarea input with support for different sizes. It's designed to be simple to use and perfect for multi-line text input.

Basic Usage

Import and use FormTextarea in your Vue components as follows:

vue
<template>
  <FormTextarea v-model="textarea1" placeholder="Enter your message..." />
</template>

<script setup>
import { FormTextarea } from '@robuust-digital/vue-components/core';
</script>

Props

The FormTextarea component accepts the following props:

PropTypeDefaultDescription
modelValueStringundefinedThe textarea value
sizeString'base'Textarea size variant ('sm' or 'base')

Examples

Small Size Variant

Show code
vue
<template>
  <FormTextarea 
    v-model="textarea2" 
    size="sm" 
    placeholder="Small textarea..."
  />
</template>

Pre-filled Content

Show code
vue
<template>
  <FormTextarea v-model="textarea3" />
</template>

<script setup>
const textarea3 = ref('This is a pre-filled textarea');
</script>

CSS Customization ⚡️

To customize the textarea styles global

css
:root {
  /* Available variables */
  --rvc-textarea-border-radius: var(--rvc-base-border-radius);
  --rvc-textarea-border-width: var(--rvc-base-border-width);
  --rvc-textarea-border-color: var(--rvc-base-border-color);
  --rvc-textarea-font-size: var(--rvc-base-input-font-size);
  --rvc-textarea-font-weight: var(--rvc-base-input-font-weight);
  --rvc-textarea-box-shadow: var(--rvc-base-box-shadow);
  --rvc-textarea-color: var(--rvc-base-input-color);
  --rvc-textarea-bg-color: var(--rvc-base-input-bg-color);
  --rvc-textarea-padding-x: var(--rvc-base-input-padding-x);
  --rvc-textarea-padding-y: calc(var(--spacing) * 1.5);
  --rvc-textarea-height: var(--rvc-base-input-height);
  --rvc-textarea-placeholder-color: var(--rvc-base-input-placeholder-color);

  /* Small variant */
  --rvc-textarea-font-size-sm: calc(var(--rvc-base-input-font-size) * 0.9);
  --rvc-textarea-padding-x-sm: calc(var(--rvc-base-input-padding-x) * 0.85);
  --rvc-textarea-padding-y-sm: calc(var(--spacing) * 1.125);
  --rvc-textarea-height-sm: 1.875rem;
}