Skip to content

Textarea

The textarea component is an important part of any website or application that can be used to show the current location of a page in a hierarchical structure of pages.

Examples

Textarea

The height of the Textarea Autosize component automatically adjusts as a response to keyboard inputs and window resizing events.

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseTextarea } from '@point-hub/papp'

const form = ref({
  text: ''
})
</script>

<template>
  <form @submit.prevent="">
    <component :is="BaseTextarea" v-model="form.text" />
  </form>
</template>

Label

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseTextarea } from '@point-hub/papp'

const form = ref({
  text1: '',
  text2: ''
})
</script>

<template>
  <form @submit.prevent="">
    <component
      :is="BaseTextarea"
      label="Label"
      v-model="form.text1"
      layout="vertical"
      description="Vertical Layout"
    />
    <component
      :is="BaseTextarea"
      label="Label"
      v-model="form.text2"
      layout="horizontal"
      description="Horizontal Layout"
    />
  </form>
</template>

Border

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseTextarea } from '@point-hub/papp'

const form = ref({
  text1: '',
  text2: '',
  text3: ''
})
</script>

<template>
  <form @submit.prevent="">
    <component
      :is="BaseTextarea"
      label="Without Border"
      v-model="form.text1"
      border="none"
    ></component>
    <component
      :is="BaseTextarea"
      label="Simple Border"
      v-model="form.text2"
      border="simple"
    ></component>
    <component
      :is="BaseTextarea"
      label="Full Border"
      v-model="form.text3"
      border="full"
    ></component>
  </form>
</template>

Helper

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseTextarea } from '@point-hub/papp'

const form = ref({
  text1: '',
  text2: '',
  text3: '',
  text4: '',
  text5: ''
})

const errors = ref(['Error Example'])
</script>

<template>
  <form @submit.prevent="">
    <component :is="BaseTextarea" required label="Label" v-model="form.text1" />
    <component
      :is="BaseTextarea"
      placeholder="Placeholder Example"
      label="Label"
      v-model="form.text2"
    />
    <component
      :is="BaseTextarea"
      description="Description Example"
      label="Label"
      v-model="form.text3"
    />
    <component
      :is="BaseTextarea"
      :helpers="['Helper Example']"
      label="Label"
      v-model="form.text4"
    />
    <component :is="BaseTextarea" v-model:errors="errors" label="Label" v-model="form.text5" />
    <component
      :is="BaseTextarea"
      label="Label"
      v-model="form.text6"
      description="Disabled"
      disabled
    />
  </form>
</template>

Height

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseTextarea } from '@point-hub/papp'

const form = ref({
  text1: '',
  text2: ''
})
</script>

<template>
  <form @submit.prevent="">
    <component
      :is="BaseTextarea"
      label="Min Height 128px"
      v-model="form.text1"
      border="full"
      :minHeight="128"
    />
    <component
      :is="BaseTextarea"
      label="Max Height 128px"
      v-model="form.text2"
      border="full"
      :maxHeight="128"
    />
  </form>
</template>

Textarea API

Types

ts
export type BaseTextareaBorderType = 'simple' | 'full' | 'none'
export type BaseFormLayoutType = 'vertical' | 'horizontal'

Props

NameTypeDefaultDescription
v-modelstringv-model is required.
v-model:errorsstring[]Textarea error message.
idstringTextarea id.
labelstringTextarea label.
descriptionstringTextarea description.
placeholderstringTextarea placeholder.
borderBaseTextareaBorderTypeTextarea border.
layoutBaseFormLayoutTypeTextarea layout.
maxlengthnumberTextarea Max Length.
autofocusbooleanfalseFocus textarea on page load.
requiredbooleanfalseif true textarea is required.
disabledbooleanfalseif true textarea is disabled.
helpersstring[]Textarea helper message.
minHeightnumberTextarea min height.
maxHeightnumberTextarea max height.

Released under the MIT License.