EC System

Featured items

When and how to use this component

Users need a way to quickly scan relevant information.

The featured item component uses a different visualisation to attract user attention. It’s always the first item on the “Latest section”.

When to use this component

  • when you want to highlight content in a list for a limited period

Do not use this component

  • if it is a permanent page

Technical details

Variants

Use following variants to change the display:

  • ecl-featured-items--extended: visual changes and link option
{#
  Parameters:
    - "variant" (string, '' or 'extended') (default: '')
    - "image" (object): {
        "src" (string) (default: '')
        "alt" (string) (default: '')
      }
    - "metas" (array) (default: []): array of meta. Should follow structure of ecl-meta
    - "title" (string) (default: ''): title of the featured item
    - "link" (object): {
        "href" (string) (default: '')
        "label" (string) (default: '')
      }
    - "extra_classes" (string) (default: '')
    - "extra_attributes" (array) (default: []): format: [
        {
          "name" (string) (default: ''),
          "value" (string) (default: '')
        },
        ...
      ]
  Blocks:
    - "body" (default: lorem ipsum): content of the featured item
#}

{# Internal properties #}

{% set _variant = variant|default('') %}
{% set _image = { src: '', alt: '' }|merge(image|default({})) %}
{% set _title = title|default('') %}
{% set _link = { href: '', label: '' }|merge(link|default({})) %}
{% set _css_class = 'ecl-featured-item' %}
{% set _extra_attributes = '' %}
{% set _metas = metas|default([]) %}

{# Internal logic - Process properties #}

{% if _variant is not empty %}
  {% set _css_class = _css_class ~ ' ' ~ ' ecl-featured-item--' ~ _variant %}
{% endif %}

{% if extra_classes is defined and extra_classes is not empty %}
  {% set _css_class = _css_class ~ ' ' ~ extra_classes %}
{% endif %}

{% if extra_attributes is defined and extra_attributes is not empty and extra_attributes is iterable %}
  {% for attr in extra_attributes %}
    {% set _extra_attributes = _extra_attributes ~ ' ' ~ attr.name ~ '="' ~ attr.value|e ~ '"' %}
  {% endfor %}
{% endif %}

{# Print the result #}

<div class="{{ _css_class }}"{{ _extra_attributes|raw }}>
  <div class="ecl-featured-item__image">
    <img src="{{ _image.src }}" alt="{{ _image.alt }}" class="ecl-image ecl-image--fluid" />
  </div>
  <div class="ecl-featured-item__body">
    {% include '@ecl/ec-component-meta' with {
      modifier: 'ecl-meta--header',
      metas: _metas,
    } %}
    {% include '@ecl/ec-component-link' with {
      'href': _link.href,
      'label': _title,
      'extra_classes': 'ecl-featured-item__title',
      'variant': 'standalone',
      }
    %}
    {% block body %}
      <p class="ecl-paragraph">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce et augue quis est dignissim lacinia. Curabitur interdum iaculis sagittis. Maecenas sodales elit est, et suscipit nisl vulputate eget. Mauris vel pulvinar odio. Sed diam turpis, cursus vel congue vel, lobortis a ipsum. Donec vel quam nec enim tristique efficitur at eget nisl.
      </p>
    {% endblock %}
    {% if _variant == 'extended' %}
    <a href="{{ _link.href }}" class="ecl-button ecl-button--call ecl-button--caret-right">{{ _link.label }}</a>
    {% endif %}
  </div>
</div>
/* Featured item */
{
  "image": {
    "src": "../../assets/demo_images/technics-demo-1.jpg",
    "alt": "Technic picture"
  },
  "link": {
    "href": "../../example.html#featured-item-1",
    "label": "See more"
  },
  "metas": [
    "announcement",
    "21 December 2016"
  ],
  "title": "Energy Union tour"
}

/* Featured item extended */
{
  "variant": "extended",
  "image": {
    "src": "../../assets/demo_images/technics-demo-1.jpg",
    "alt": "Technic picture"
  },
  "metas": [
    "announcement",
    "21 December 2016"
  ],
  "title": "Energy Union tour",
  "link": {
    "href": "../../example.html#featured-item-2",
    "label": "See more"
  }
}

<!-- Featured item -->
<div class="ecl-featured-item">
  <div class="ecl-featured-item__image">
    <img src="../../assets/demo_images/technics-demo-1.jpg" alt="Technic picture" class="ecl-image ecl-image--fluid" />
  </div>
  <div class="ecl-featured-item__body">

    <div class="ecl-meta">
      <span class="ecl-meta__item">announcement</span>
      <span class="ecl-meta__item">21 December 2016</span>
    </div>

    <a class="ecl-link ecl-link--standalone ecl-featured-item__title" href="../../example.html#featured-item-1">Energy Union tour</a>
    <p class="ecl-paragraph">
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce et augue quis est dignissim lacinia. Curabitur interdum iaculis sagittis. Maecenas sodales elit est, et suscipit nisl vulputate eget. Mauris vel pulvinar odio. Sed diam turpis, cursus vel congue vel, lobortis a ipsum. Donec vel quam nec enim tristique efficitur at eget nisl.
    </p>
  </div>
</div>

<!-- Featured item extended -->
<div class="ecl-featured-item  ecl-featured-item--extended">
  <div class="ecl-featured-item__image">
    <img src="../../assets/demo_images/technics-demo-1.jpg" alt="Technic picture" class="ecl-image ecl-image--fluid" />
  </div>
  <div class="ecl-featured-item__body">

    <div class="ecl-meta ecl-meta--extended">
      <span class="ecl-meta__item">announcement</span>
      <span class="ecl-meta__item">21 December 2016</span>
    </div>

    <a class="ecl-link ecl-link--standalone ecl-featured-item__title" href="../../example.html#featured-item-2">Energy Union tour</a>
    <p class="ecl-paragraph">
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce et augue quis est dignissim lacinia. Curabitur interdum iaculis sagittis. Maecenas sodales elit est, et suscipit nisl vulputate eget. Mauris vel pulvinar odio. Sed diam turpis, cursus vel congue vel, lobortis a ipsum. Donec vel quam nec enim tristique efficitur at eget nisl.
    </p>
    <a href="../../example.html#featured-item-2" class="ecl-button ecl-button--call ecl-button--caret-right">See more</a>
  </div>
</div>

  • Content:
    /**
     * Featured item component
     * @define featured-item
     */
    
    // Import base and generic
    @import '@ecl/ec-base/ec-base';
    @import '@ecl/generic-component-featured-item/generic-component-featured-item';
    
    // Check if overridden dependencies are already loaded, if needed
    @include check-imports(('ec-component-link'));
    
    // Use generic mixin
    @include exports('ec-component-featured-item') {
      @include ecl-featured-item();
    }
    
  • URL: /components/raw/ec-component-featured-item/ec-component-featured-item.scss
  • Filesystem Path: ../../src/systems/ec/ec-component/ec-component-featured-item/ec-component-featured-item.scss
  • Size: 419 Bytes
  • Handle: @ecl/ec-component-featured-item
  • Tags: molecule
  • Preview:
  • Filesystem Path: ../../src/systems/ec/ec-component/ec-component-featured-item/ec-component-featured-item.twig