Item form

The vf-form__item is a wrapping div for form inputs.

github location npm version

Usage

You should use a vf-form__item to wrap each form input.

It is used to wrap any of the inputs along with the related vf-form__label and also can take the vf-form__helper and vf-form__helper--error content as well.

The contents of the vf-form__item should be coded in a specifc way to match consistency across products. For example, for the vf-form__input items it should look like this:

<div class="vf-form__item vf-stack">

    <label for="text" class="vf-form__label vf-form__label--required">
        Form Label
        <span class="vf-u-sr-only">this field is required.</span>
        <svg class="vf-icon vf-icon--asterick" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
            <title>asterick</title>
            <path d="M23.555,8.729a1.505,1.505,0,0,0-1.406-.98H16.062a.5.5,0,0,1-.472-.334L13.405,1.222a1.5,1.5,0,0,0-2.81,0l-.005.016L8.41,7.415a.5.5,0,0,1-.471.334H1.85A1.5,1.5,0,0,0,.887,10.4l5.184,4.3a.5.5,0,0,1,.155.543L4.048,21.774a1.5,1.5,0,0,0,2.31,1.684l5.346-3.92a.5.5,0,0,1,.591,0l5.344,3.919a1.5,1.5,0,0,0,2.312-1.683l-2.178-6.535a.5.5,0,0,1,.155-.543l5.194-4.306A1.5,1.5,0,0,0,23.555,8.729Z" />
        </svg>
    </label>

    <p class="vf-form__helper">Form helper text</p>

    <input type="text" id="text" class="vf-form__input">

    <p class="vf-form__helper vf-form__helper--error">You have done something wrong.</p>

</div>

Each form input in the component library shows how they should be displayed in a vf-form__item, and have their own vf-form__item-- variant.

Variants

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",
 }
%}
{% include "../path_to/vf-form__item/vf-form__item.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__item', {
  "component-type" : "form",}
%}
                
HTML
<div class="vf-form__item">

</div>
              

Form helper text

You have done something wrong.

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",
 }
%}
{% include "../path_to/vf-form__item/vf-form__item.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__item', {
  "component-type" : "form",}
%}
                
HTML
<div class="vf-form__item vf-stack">

  <label for="text" class="vf-form__label vf-form__label--required">
    Form Label
    <span class="vf-u-sr-only">this field is required.</span>
    <svg class="vf-icon vf-icon--asterick" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
      <title>asterick</title>
      <path d="M23.555,8.729a1.505,1.505,0,0,0-1.406-.98H16.062a.5.5,0,0,1-.472-.334L13.405,1.222a1.5,1.5,0,0,0-2.81,0l-.005.016L8.41,7.415a.5.5,0,0,1-.471.334H1.85A1.5,1.5,0,0,0,.887,10.4l5.184,4.3a.5.5,0,0,1,.155.543L4.048,21.774a1.5,1.5,0,0,0,2.31,1.684l5.346-3.92a.5.5,0,0,1,.591,0l5.344,3.919a1.5,1.5,0,0,0,2.312-1.683l-2.178-6.535a.5.5,0,0,1,.155-.543l5.194-4.306A1.5,1.5,0,0,0,23.555,8.729Z" />
    </svg>
  </label>

  <p class="vf-form__helper">Form helper text</p>

  <input type="text" id="text" class="vf-form__input">

  <p class="vf-form__helper vf-form__helper--error">You have done something wrong.</p>

</div>
              

Examples

Installation info

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

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

Sass/CSS

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__item/index.scss";

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

Changelog

Changelog

3.0.0

3.0.0-alpha.0

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

2.0.1

  • Add support for vf-form__select as inline element.

2.0.0

  • Changes styling of the inputs.
  • Updates CSS to use vf-stack.
  • https://github.com/visual-framework/vf-core/pull/1228/

1.0.0

  • makes the example the 'warts and all' with all labels and helper text
  • removes some unrequired CSS

1.0.0-alpha.9

  • Revert "Make vf-form subpatterns workable"
  • https://github.com/visual-framework/vf-core/commit/706953b6fcfbbd1965d17b2ca082432af90ab752

1.0.0-alpha.8

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

1.0.0-alpha.7

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

Assets



File system location: components/vf-form__item

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

AI Assistant

Welcome! I'm here to help

Try asking me:

Disclaimer: This chatbot is designed to assist you with general information and basic inquiries. See our disclaimer notes.

Review AI generated content for accuracy. Leave feedback.

Close chat and delete conversation?

Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.