Social icons
This is the ECL package you need when you want to implement a social media icon in any way.
Few possibilities to do so:
- As a link:
<a href="#" class="ecl-link ecl-icon-social ecl-icon-social--facebook">Facebook</a>
Note that the ecl-link
class is an optional extension you can have for links
formatting.
- As a span:
<span class="ecl-icon-social ecl-icon-social--facebook">Facebook</span>
- Making an icon smaller:
<span class="ecl-icon-social ecl-icon-social--smaller ecl-icon-social--facebook">Facebook</span>
{#
How to use this component:
1) Variables building a link:
- "link" (object): {
- "href" (string): target of the social link (default: empty).
- "variant" (string): variant of the social link. Correspond to the social network (default: empty)
- "label" (string): label of the social link (default: empty)
}
- "extra_classes" (string): extra CSS classes to be added
- "extra_attributes" (array): extra attributes classes (optional, format: [{ 'name': 'name_of_the_attribute', 'value': 'value_of_the_attribute'}])
2) Variables building a span - this is a default output if the preceding fail.
- "variant" (string): variant of the social link. Correspond to the social network (default: empty)
- "label" (string): label of the social link (default: empty)
- "extra_classes" (string): extra CSS classes to be added
- "extra_attributes" (array): extra attributes classes (optional, format: [{ 'name': 'name_of_the_attribute', 'value': 'value_of_the_attribute'}])
#}
{# Internal properties #}
{% set _css_class = 'ecl-icon-social' %}
{% set _extra_attributes = '' %}
{# Internal logic - Process properties #}
{% if link is defined and link.variant is defined and link.variant is not empty %}
{% set _css_class = _css_class ~ ' ' ~ 'ecl-icon-social--' ~ link.variant %}
{% endif %}
{% if variant is defined and variant is not empty %}
{% set _css_class = _css_class ~ ' ' ~ 'ecl-icon-social--' ~ variant %}
{% endif %}
{% if extra_classes is defined %}
{% set _css_class = _css_class ~ ' ' ~ extra_classes %}
{% endif %}
{% if extra_attributes is defined %}
{% for attr in extra_attributes %}
{% set _extra_attributes = _extra_attributes ~ ' ' ~ attr.name ~ '="' ~ attr.value ~ '"' %}
{% endfor %}
{% endif %}
{# Print result #}
{% if link is defined %}
{% include '@ec-europa/ecl-links' with {
href: link.href,
label: link.label,
extra_classes: _css_class,
extra_attributes: _extra_attributes,
} %}
{% else %}
<span class="{{ _css_class }}" {{ _extra_attributes|raw }}>{{ label }}</span>
{% endif %}
/* Arto */
{
"variant": "arto",
"label": "Arto"
}
/* Bebo */
{
"variant": "bebo",
"label": "Bebo"
}
/* Bitly */
{
"variant": "bitly",
"label": "Bitly"
}
/* Blinklist */
{
"variant": "blinklist",
"label": "Blinklist"
}
/* Blog */
{
"variant": "blog",
"label": "Blog"
}
/* Blogger */
{
"variant": "blogger",
"label": "Blogger"
}
/* Delicious */
{
"variant": "delicious",
"label": "Delicious"
}
/* Digg */
{
"variant": "digg",
"label": "Digg"
}
/* Diigo */
{
"variant": "diigo",
"label": "Diigo"
}
/* Dzone */
{
"variant": "dzone",
"label": "Dzone"
}
/* Email */
{
"variant": "email",
"label": "Email"
}
/* Facebook */
{
"variant": "facebook",
"label": "Facebook"
}
/* Flickr */
{
"variant": "flickr",
"label": "Flickr"
}
/* Foursquare */
{
"variant": "foursquare",
"label": "Foursquare"
}
/* Generic */
{
"variant": "generic",
"label": "Generic"
}
/* Google */
{
"variant": "google",
"label": "Google"
}
/* Gplus */
{
"variant": "gplus",
"label": "Gplus"
}
/* Instagram */
{
"variant": "instagram",
"label": "Instagram"
}
/* Linkarena */
{
"variant": "linkarena",
"label": "Linkarena"
}
/* Linkedin */
{
"variant": "linkedin",
"label": "Linkedin"
}
/* Live */
{
"variant": "live",
"label": "Live"
}
/* Meneame */
{
"variant": "meneame",
"label": "Meneame"
}
/* Misterwong */
{
"variant": "misterwong",
"label": "Misterwong"
}
/* Myspace */
{
"variant": "myspace",
"label": "Myspace"
}
/* Netlog */
{
"variant": "netlog",
"label": "Netlog"
}
/* Netvibes */
{
"variant": "netvibes",
"label": "Netvibes"
}
/* Newsvine */
{
"variant": "newsvine",
"label": "Newsvine"
}
/* Nujij */
{
"variant": "nujij",
"label": "Nujij"
}
/* Pinterest */
{
"variant": "pinterest",
"label": "Pinterest"
}
/* Pocket */
{
"variant": "pocket",
"label": "Pocket"
}
/* Reddit */
{
"variant": "reddit",
"label": "Reddit"
}
/* RSS */
{
"variant": "rss",
"label": "RSS"
}
/* Share */
{
"variant": "share",
"label": "Share"
}
/* Skype */
{
"variant": "skype",
"label": "Skype"
}
/* Slashdot */
{
"variant": "slashdot",
"label": "Slashdot"
}
/* Sonico */
{
"variant": "sonico",
"label": "Sonico"
}
/* Spotify */
{
"variant": "spotify",
"label": "Spotify"
}
/* Storify */
{
"variant": "storify",
"label": "Storify"
}
/* Studivz */
{
"variant": "studivz",
"label": "Studivz"
}
/* Stumbleupon */
{
"variant": "stumbleupon",
"label": "Stumbleupon"
}
/* Technorati */
{
"variant": "technorati",
"label": "Technorati"
}
/* Tuenti */
{
"variant": "tuenti",
"label": "Tuenti"
}
/* Tumblr */
{
"variant": "tumblr",
"label": "Tumblr"
}
/* Tumblr */
{
"variant": "tumblr",
"label": "Tumblr"
}
/* Twitter */
{
"variant": "twitter",
"label": "Twitter"
}
/* Viadeo */
{
"variant": "viadeo",
"label": "Viadeo"
}
/* Vine */
{
"variant": "vine",
"label": "Vine"
}
/* Wordpress */
{
"variant": "wordpress",
"label": "Wordpress"
}
/* Wykop */
{
"variant": "wykop",
"label": "Wykop"
}
/* Xerpi */
{
"variant": "xerpi",
"label": "Xerpi"
}
/* Yammer */
{
"variant": "yammer",
"label": "Yammer"
}
/* Youtube */
{
"variant": "youtube",
"label": "Youtube"
}
/* Print */
{
"variant": "print",
"label": "Print"
}
<!-- Arto -->
<span class="ecl-icon-social ecl-icon-social--arto">Arto</span>
<!-- Bebo -->
<span class="ecl-icon-social ecl-icon-social--bebo">Bebo</span>
<!-- Bitly -->
<span class="ecl-icon-social ecl-icon-social--bitly">Bitly</span>
<!-- Blinklist -->
<span class="ecl-icon-social ecl-icon-social--blinklist">Blinklist</span>
<!-- Blog -->
<span class="ecl-icon-social ecl-icon-social--blog">Blog</span>
<!-- Blogger -->
<span class="ecl-icon-social ecl-icon-social--blogger">Blogger</span>
<!-- Delicious -->
<span class="ecl-icon-social ecl-icon-social--delicious">Delicious</span>
<!-- Digg -->
<span class="ecl-icon-social ecl-icon-social--digg">Digg</span>
<!-- Diigo -->
<span class="ecl-icon-social ecl-icon-social--diigo">Diigo</span>
<!-- Dzone -->
<span class="ecl-icon-social ecl-icon-social--dzone">Dzone</span>
<!-- Email -->
<span class="ecl-icon-social ecl-icon-social--email">Email</span>
<!-- Facebook -->
<span class="ecl-icon-social ecl-icon-social--facebook">Facebook</span>
<!-- Flickr -->
<span class="ecl-icon-social ecl-icon-social--flickr">Flickr</span>
<!-- Foursquare -->
<span class="ecl-icon-social ecl-icon-social--foursquare">Foursquare</span>
<!-- Generic -->
<span class="ecl-icon-social ecl-icon-social--generic">Generic</span>
<!-- Google -->
<span class="ecl-icon-social ecl-icon-social--google">Google</span>
<!-- Gplus -->
<span class="ecl-icon-social ecl-icon-social--gplus">Gplus</span>
<!-- Instagram -->
<span class="ecl-icon-social ecl-icon-social--instagram">Instagram</span>
<!-- Linkarena -->
<span class="ecl-icon-social ecl-icon-social--linkarena">Linkarena</span>
<!-- Linkedin -->
<span class="ecl-icon-social ecl-icon-social--linkedin">Linkedin</span>
<!-- Live -->
<span class="ecl-icon-social ecl-icon-social--live">Live</span>
<!-- Meneame -->
<span class="ecl-icon-social ecl-icon-social--meneame">Meneame</span>
<!-- Misterwong -->
<span class="ecl-icon-social ecl-icon-social--misterwong">Misterwong</span>
<!-- Myspace -->
<span class="ecl-icon-social ecl-icon-social--myspace">Myspace</span>
<!-- Netlog -->
<span class="ecl-icon-social ecl-icon-social--netlog">Netlog</span>
<!-- Netvibes -->
<span class="ecl-icon-social ecl-icon-social--netvibes">Netvibes</span>
<!-- Newsvine -->
<span class="ecl-icon-social ecl-icon-social--newsvine">Newsvine</span>
<!-- Nujij -->
<span class="ecl-icon-social ecl-icon-social--nujij">Nujij</span>
<!-- Pinterest -->
<span class="ecl-icon-social ecl-icon-social--pinterest">Pinterest</span>
<!-- Pocket -->
<span class="ecl-icon-social ecl-icon-social--pocket">Pocket</span>
<!-- Reddit -->
<span class="ecl-icon-social ecl-icon-social--reddit">Reddit</span>
<!-- RSS -->
<span class="ecl-icon-social ecl-icon-social--rss">RSS</span>
<!-- Share -->
<span class="ecl-icon-social ecl-icon-social--share">Share</span>
<!-- Skype -->
<span class="ecl-icon-social ecl-icon-social--skype">Skype</span>
<!-- Slashdot -->
<span class="ecl-icon-social ecl-icon-social--slashdot">Slashdot</span>
<!-- Sonico -->
<span class="ecl-icon-social ecl-icon-social--sonico">Sonico</span>
<!-- Spotify -->
<span class="ecl-icon-social ecl-icon-social--spotify">Spotify</span>
<!-- Storify -->
<span class="ecl-icon-social ecl-icon-social--storify">Storify</span>
<!-- Studivz -->
<span class="ecl-icon-social ecl-icon-social--studivz">Studivz</span>
<!-- Stumbleupon -->
<span class="ecl-icon-social ecl-icon-social--stumbleupon">Stumbleupon</span>
<!-- Technorati -->
<span class="ecl-icon-social ecl-icon-social--technorati">Technorati</span>
<!-- Tuenti -->
<span class="ecl-icon-social ecl-icon-social--tuenti">Tuenti</span>
<!-- Tumblr -->
<span class="ecl-icon-social ecl-icon-social--tumblr">Tumblr</span>
<!-- Tumblr -->
<span class="ecl-icon-social ecl-icon-social--tumblr">Tumblr</span>
<!-- Twitter -->
<span class="ecl-icon-social ecl-icon-social--twitter">Twitter</span>
<!-- Viadeo -->
<span class="ecl-icon-social ecl-icon-social--viadeo">Viadeo</span>
<!-- Vine -->
<span class="ecl-icon-social ecl-icon-social--vine">Vine</span>
<!-- Wordpress -->
<span class="ecl-icon-social ecl-icon-social--wordpress">Wordpress</span>
<!-- Wykop -->
<span class="ecl-icon-social ecl-icon-social--wykop">Wykop</span>
<!-- Xerpi -->
<span class="ecl-icon-social ecl-icon-social--xerpi">Xerpi</span>
<!-- Yammer -->
<span class="ecl-icon-social ecl-icon-social--yammer">Yammer</span>
<!-- Youtube -->
<span class="ecl-icon-social ecl-icon-social--youtube">Youtube</span>
<!-- Print -->
<span class="ecl-icon-social ecl-icon-social--print">Print</span>
-
Content:
/** * Social icons * @define icon-social */ // Brings in the long list for $ecl-social-icons. @import './icons-list'; $img-path: $ecl-assets-path + 'images/social/'; // Social icons image. @mixin generate-icon($selector, $img-path, $image, $img-hover, $extra: null, $extra_hover: null) { // Ignoring next 2 selectors since the dynamic selector is problematic for the linter. /* postcss-bem-linter: ignore */ #{$selector}::before { background: url($img-path + $image) no-repeat $extra; } /* postcss-bem-linter: ignore */ #{$selector}:hover::before { background-image: url($img-path + $img-hover) $extra_hover; } } .ecl-icon-social { align-items: center; display: flex; margin: 0; } .ecl-icon-social::before { content: ''; display: block; height: 2rem; margin-right: 1rem; width: 2rem; } .ecl-icon-social--smaller { min-height: 1.5rem; &::before { height: 1.5rem; width: 1.5rem; } } @each $icon, $extra in $ecl-social-icons { @include generate-icon('.ecl-icon-social--' + $icon, $img-path, $icon + '.svg', $icon + '_hover.svg', #{$extra}); }
- URL: /components/raw/ecl-social-icons/ecl-social-icons.scss
- Filesystem Path: framework/components/ecl-social-icons/ecl-social-icons.scss
- Size: 1.1 KB
-
Content:
$ecl-social-icons: ('arto', ''), ('bebo', ''), ('bitly', ''), ('blinklist', ''), ('blog', ''), ('blogger', ''), ('delicious', ''), ('digg', ''), ('diigo', ''), ('dzone', ''), ('email', ''), ('facebook', ''), ('flickr', ''), ('foursquare', ''), ('generic', ''), ('google', ''), ('gplus', ''), ('instagram', ''), ('linkarena', ''), ('linkedin', ''), ('live', ''), ('meneame', ''), ('misterwong', ''), ('myspace', ''), ('netlog', ''), ('netvibes', ''), ('newsvine', ''), ('nujij', ''), ('pinterest', ''), ('pocket', ''), ('reddit', ''), ('rss', ''), ('share', ''), ('skype', ''), ('slashdot', ''), ('sonico', ''), ('spotify', ''), ('storify', ''), ('studivz', ''), ('stumbleupon', ''), ('technorati', ''), ('tuenti', ''), ('tumblr', ''), ('twitter', '#ffffff'), ('viadeo', ''), ('vine', ''), ('wordpress', ''), ('wykop', ''), ('xerpi', ''), ('yammer', ''), ('youtube', ''), ('print', '');
- URL: /components/raw/ecl-social-icons/icons-list.scss
- Filesystem Path: framework/components/ecl-social-icons/icons-list.scss
- Size: 963 Bytes
- Handle: @ec-europa/ecl-social-icons
- Tags: atom
- Preview:
- Filesystem Path: framework/components/ecl-social-icons/ecl-social-icons.twig