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

Show more utility

Allow a user to show more or less of a card or list with a button (client side).

github location npm version



Usage

  • data-vf-js-show-more The containing element, does not have to be a direct parent
  • data-vf-js-show-more-pager-size=3 The number of items to show on first page load
  • class="vf-show-more__item" Items to be shown hidden (display done with CSS)
  • data-vf-js-show-more-button The button to show more
  • data-vf-js-show-more-button--less The button to show less, optional

An overview of the HTML strcuture

A condensed example.

<section data-vf-js-show-more data-vf-js-show-more-pager-size="3" class="vf-show-more">
  <a href="#" class="vf-box | vf-show-more__item">
    <p class="vf-box__text">I'm item number 1</p>
  </a>

  <button class="vf-button | vf-show-more__button" data-vf-js-show-more-button>Show more</button>
  <button class="vf-button | vf-show-more__button--less" data-vf-js-show-more-button--less>Show less</button>
</section>

Future development

  • Pager support
  • Currently designed to work with pre-loaded HTML. It should be possible to use it with lazy-loaded HTML with a few considerations.

Variants

Show more demo

foo

I'm item number 1

foo

I'm item number 2

foo

I'm item number 3

foo

I'm item number 4

foo

I'm item number 5

foo

I'm item number 6

foo

I'm item number 7

foo

I'm item number 8

foo

I'm item number 9

Show more demo part 2

  • a list item
  • another list item
  • and another list item
  • yet another list item
HTML
<section data-vf-js-show-more data-vf-js-show-more-pager-size="3" class="vf-show-more">
  <div class="vf-section-header">
    <h2 class="vf-section-header__heading"> Show more demo</h2>
  </div>
  <div class="vf-grid vf-grid__col-3">

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 1</p>
    </div>

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 2</p>
    </div>

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 3</p>
    </div>

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 4</p>
    </div>

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 5</p>
    </div>

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 6</p>
    </div>

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 7</p>
    </div>

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 8</p>
    </div>

    <div class="vf-box vf-box--easy | vf-show-more__item">

      <h3 class="vf-box__heading">foo</h3>
      <p class="vf-box__text">I'm item number 9</p>
    </div>
  </div>

  <button class="vf-button vf-button--primary vf-button--sm | vf-show-more__button" data-vf-js-show-more-button>Show more</button>
  <button class="vf-button vf-button--primary vf-button--sm | vf-show-more__button--less" data-vf-js-show-more-button--less>Show less</button>
</section>




<section data-vf-js-show-more data-vf-js-show-more-pager-size="2" class="vf-show-more">
  <div class="vf-section-header">
    <h2 class="vf-section-header__heading"> Show more demo part 2</h2>
  </div>
  <ul class="vf-list vf-list--ordered">
    <li class="vf-list__item | vf-show-more__item">a list item</li>
    <li class="vf-list__item | vf-show-more__item">another list item</li>
    <li class="vf-list__item | vf-show-more__item">and another list item</li>
    <li class="vf-list__item | vf-show-more__item">yet another list item</li>
  </ul>

  <button class="vf-button vf-button--primary vf-button--sm | vf-show-more__button" data-vf-js-show-more-button>Show more list items</button>
  <button class="vf-button vf-button--primary vf-button--sm | vf-show-more__button--less" data-vf-js-show-more-button--less>Show less</button>
</section>
              

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-show-more with this command.

$ yarn add --dev @visual-framework/vf-show-more

JS

You should import this component in ./components/vf-component-rollup/scripts.js or your other JS process:

import { vfcomponentName } from 'vf-show-more/vf-show-more';
// Or import directly
// import { vfcomponentName } from '../components/raw/vf-show-more/vf-show-more.js';
vfcomponentName(); // if needed, invoke it

Sass/CSS

If your component uses Sass:

The style files included are written in Sass. If you're using a VF-core project, you can import it like this:

@import "@visual-framework/vf-show-more/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.1.13

  • Documentation updates
  • New release

1.1.12

  • Update milestones and roadmap.

1.1.11

  • Add ELIXIR banner to example EMBL-EBI page.
  • https://stable.visual-framework.dev/patterns/boilerplate-generic-embl-ebi/
  • https://github.com/visual-framework/vf-core/pull/1615

1.1.7

  • Fixed issue of overlapping menu on VF components site
  • https://github.com/visual-framework/vf-core/issues/1518

1.1.6

  • dependency bump

1.1.2

  • Implements updated vf-search markup.
  • Changes a few pages on how it works with nunjucks and markdown.

1.1.0

  • updates Design Tokens homepage.
  • adds neutral colour tokens
  • adds 'status banners' for components in the documentation page.
  • Adds the form options as their own set of components in the list.
  • https://github.com/visual-framework/vf-core/pull/1390/files
  • Updates to use 11ty 0.12.1
  • https://github.com/visual-framework/vf-core/pull/1435

1.0.24

  • changes the vf-intro so it's a white background, removes the padding.
  • changes the links in vf-intro to be the 'correct' buttons.

1.0.23

  • small change to cards on homepage

1.0.18

  • dependency bump

1.0.17

  • dependency bump

1.0.16

  • dependency bump

1.0.13

  • dependency bump
  • adds roamap and consultation docs

1.0.12

  • design token documenation now lives in the component libary

1.0.7

  • adds updates blog

1.0.6

  • begin to make more pattern/boilerplate guidance
  • minor templating updates

1.0.5

  • dependency bump

1.0.4

  • uses vf-favicon
  • adds meta attributes

1.0.3

  • run vf-component-assets:everything on local dev
  • remove reference to removed /css/app.css

1.0.2

  • Add 404
  • Fix component CSS generation

1.0.1

  • Also generate per-component CSS with vf-css:generate-component-css

1.0.0

  • Initial release to be used with vf-core 2.2.0

Assets



File system location: components/vf-show-more

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