beta This component version is ready to be used but is still in active development.

Textarea form

The vf-form__textarea allows a site visitor to enter text on multiple lines.

github location npm version


Use the vf-form__textare when you want the site visitor to enter text on multiple lines or when the information they need to input is not short.

If you are wanting the site visitor to answer multiple questions inside a vf-form__textarea it is better to split these question up and use multiple vf-form__inputs.

The vf-from__textarea must be accompanied by a descriptive vf-form__label.


Nunjucks syntax

Depending on your environment you'll want to use render or include. As a rule of thumb: server-side use include, precompiled browser use render. If you're using vf-eleventy you should use include.

Using include

You'll need to pass a context object from your code or Yaml file (example), as well as the path to the Nunjucks template. Nunjucks' include is an abstraction of render and provides some additional portability.

{% set context fromYourYamlFile %}
- or -
{% set context = { 
"component-type" : "form",
"text_area_rows" : 5,
"text_area_name" : "text-area",
"text_label" : [object Object],
{% include "../path_to/vf-form__textarea/vf-form__textarea.njk" %}

Using render

This approach is best for bare-bones Nunjucks environments, such as precompiled templates with the Nunjucks slim runtime where include is not be available.

{% render '@vf-form__textarea', {
  "component-type" : "form",
  "text_area_rows" : 5,
  "text_area_name" : "text-area",
  "text_label" : [object Object],}
<div class="vf-form__item">
  <label for="text-area" class="vf-form__label">Write Some More details</label>
  <textarea class="vf-form__textarea" id="text-area" name="text-area" rows="5"></textarea>


Installation info

This component is distributed with npm. After installing npm, you can install the vf-form__textarea with this command.

$ yarn add --dev @visual-framework/vf-form__textarea


The source files included are written in Sass(scss). You can point your Sass include-path at your node_modules directory and import it like this.

@import "@visual-framework/vf-form__textarea/index.scss";

Make sure you import Sass requirements along with the modules. You can use a project boilerplate or the vf-sass-starter




  • reworks the inputs to make more use of nunjucks
  • restyles the inputs to match latest design direction
  • adds better documentation


  • changes any set- style functions to cleaner version
  • changes font size so it matches other form components


  • Adds vf-stack in example code.
  • Changes some of the styling to match inputs.


  • adds webkit-appearance: none; as needed for Safari browsers as autoprefixer is not doing this


  • removes unrequired vf-u-sr-only class
  • adds :hover effect to match other inputs


  • Revert "Make vf-form subpatterns workable"


  • Version bump only for package @visual-framework/vf-form__textarea


  • Version bump only for package @visual-framework/vf-form__textarea


File system location: components/vf-form__textarea

Find an issue on this page? Propose a change or discuss it.