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

Details block

Use this interactive accordion-link component in places where information is optional.

github location npm version

Usage

  • This component makes use of the HTML details element.
  • To toggle the default state, the open attribute: <details class="vf-details" open>.

Variants

I'm a detail Something small enough to escape casual notice.
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": "block",
  "details_open": true,
  "details_summary": "I'm a detail",
  "details_content": "Something small enough to escape casual notice."
}
 %}
{% include "../path_to/vf-details/vf-details.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-details', {
  "component-type": "block",
  "details_open": true,
  "details_summary": "I'm a detail",
  "details_content": "Something small enough to escape casual notice."
} %}
                
HTML
<details class="vf-details" open>
  <summary class="vf-details--summary">I'm a detail</summary>
  Something small enough to escape casual notice.
</details>
              

Examples

Installation info

This repository is distributed with [npm][https://www.npmjs.com/]. After [installing npm][https://www.npmjs.com/get-npm] and yarn, you can install vf-details with this command.

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

JS

This component does not use JS.

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-details/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

1.2.0

  • Fixes the missing "about" in the readme.
  • Shows "pointer" on hover.
  • uses interactive blue colour.
  • Shows summary child elements as inline.
  • https://github.com/visual-framework/vf-core/issues/1417

1.1.1

  • changes any set- style functions to cleaner version

1.1.0

  • updates spacing design tokens
  • requires v2.0.0 of the vf-design-tokens package or newer

1.0.0-alpha.1

  • Inital version

Assets



File system location: components/vf-details

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