<!-- Standard -->
<button class="icon-button" id="icon-button-d6c1" type="button">
<svg class="icon icon--user" id="icon-8d5d" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-8d5d">
<title id="title-icon-8d5d">Ein Icon mit Text</title>
<use xlink:href="#icon-user"></use>
</svg>
</button>
<!-- Rot -->
<button class="icon-button icon-button--red" id="icon-button-64c7" type="button">
<svg class="icon icon--user" id="icon-935e" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-935e">
<title id="title-icon-935e">Ein Icon mit Text</title>
<use xlink:href="#icon-user"></use>
</svg>
</button>
<!-- Blau -->
<button class="icon-button icon-button--blue" id="icon-button-953a" type="button">
<svg class="icon icon--user" id="icon-1584" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-1584">
<title id="title-icon-1584">Ein Icon mit Text</title>
<use xlink:href="#icon-user"></use>
</svg>
</button>
<!-- Facebook -->
<button class="icon-button icon-button--facebook" id="icon-button-434b" type="button">
<svg class="icon icon--facebook" id="icon-c9ae" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-c9ae">
<title id="title-icon-c9ae">Facebook</title>
<use xlink:href="#icon-facebook"></use>
</svg>
</button>
<!-- Twitter -->
<button class="icon-button icon-button--twitter" id="icon-button-29ec" type="button">
<svg class="icon icon--twitter" id="icon-abf3" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-abf3">
<title id="title-icon-abf3">Twitter</title>
<use xlink:href="#icon-twitter"></use>
</svg>
</button>
<!-- Google Plus -->
<button class="icon-button icon-button--google-plus" id="icon-button-6129" type="button">
<svg class="icon icon--google-plus" id="icon-5606" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-5606">
<title id="title-icon-5606">Google Plus</title>
<use xlink:href="#icon-google-plus"></use>
</svg>
</button>
<!-- YouTube -->
<button class="icon-button icon-button--youtube" id="icon-button-1f43" type="button">
<svg class="icon icon--youtube" id="icon-32c6" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-32c6">
<title id="title-icon-32c6">YouTube</title>
<use xlink:href="#icon-youtube"></use>
</svg>
</button>
<!-- Xing -->
<button class="icon-button icon-button--xing" id="icon-button-b13b" type="button">
<svg class="icon icon--xing" id="icon-e46c" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-e46c">
<title id="title-icon-e46c">Xing</title>
<use xlink:href="#icon-xing"></use>
</svg>
</button>
<!-- Instagram -->
<button class="icon-button icon-button--instagram" id="icon-button-dff1" type="button">
<svg class="icon icon--instagram" id="icon-ca44" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-ca44">
<title id="title-icon-ca44">Instagram</title>
<use xlink:href="#icon-instagram"></use>
</svg>
</button>
<!-- LinkedIn -->
<button class="icon-button icon-button--linkedin" id="icon-button-b703" type="button">
<svg class="icon icon--linkedin" id="icon-cacd" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-cacd">
<title id="title-icon-cacd">LinkedIn</title>
<use xlink:href="#icon-linkedin"></use>
</svg>
</button>
<!-- Funktions-Button -->
<button class="icon-button icon-button--functional" id="icon-button-1893" type="button">
<svg class="icon icon--share" id="icon-39b7" viewBox="0 0 200 200" role="img" aria-labelledby="title-icon-39b7">
<title id="title-icon-39b7">Diesen Inhalt teilen</title>
<use xlink:href="#icon-share"></use>
</svg>
</button>
-
//- Prepare attr object
attr = attr || {};
attr.class = classList(attr.class);
attr.id = id || attr.id || `icon-button-${randomString()}`;
//- Tag
tag = link ? 'a' : 'button';
//- Process options
if (modifier) attr.class.push(`icon-button--${modifier}`);
if (color) attr.class.push(`icon-button--${color}`);
if (link) {
attr.href = link;
} else {
attr.type = submit ? 'submit' : 'button';
}
//- Render atom
#{tag}.icon-button&attributes(attr)
!= include('@icon', {icon, title: title})
/* Standard */
{
"icon": "user",
"title": "Ein Icon mit Text"
}
/* Rot */
{
"icon": "user",
"color": "red",
"title": "Ein Icon mit Text"
}
/* Blau */
{
"icon": "user",
"color": "blue",
"title": "Ein Icon mit Text"
}
/* Facebook */
{
"icon": "facebook",
"color": "facebook",
"title": "Facebook"
}
/* Twitter */
{
"icon": "twitter",
"color": "twitter",
"title": "Twitter"
}
/* Google Plus */
{
"icon": "google-plus",
"color": "google-plus",
"title": "Google Plus"
}
/* YouTube */
{
"icon": "youtube",
"color": "youtube",
"title": "YouTube"
}
/* Xing */
{
"icon": "xing",
"color": "xing",
"title": "Xing"
}
/* Instagram */
{
"icon": "instagram",
"color": "instagram",
"title": "Instagram"
}
/* LinkedIn */
{
"icon": "linkedin",
"color": "linkedin",
"title": "LinkedIn"
}
/* Funktions-Button */
{
"modifier": "functional",
"icon": "share",
"title": "Diesen Inhalt teilen"
}
// Icon button settings
$default-icon-button-size: 4.5rem;
// Default icon button
.icon-button {
background-color: $color-steelgrey-dark;
border-radius: 50%;
color: #fff;
cursor: pointer;
display: inline-block;
font-size: 2rem;
height: $default-icon-button-size;
line-height: $default-icon-button-size;
padding: 0;
text-align: center;
text-decoration: none;
transition-duration: $default-transition-duration;
transition-property: background-color;
user-select: none;
width: $default-icon-button-size;
// If buttons are grouped, add some spacing between them
& + & {
margin-left: $spacer;
}
// Default focus, hover
&:hover,
&:focus {
background-color: $color-steelgrey-xdark;
}
}
// Functional
.icon-button--functional {
border-radius: 0;
}
// Colors
$default-icon-button-colors: (
red: ($color-red, $color-red-dark),
blue: $color-blue,
facebook: #3b5998,
twitter: #1da1f2,
youtube: #cd201f,
xing: #026466,
google-plus: #dd4b39,
instagram: #405de6,
linkedin: #2867b2,
);
@each $name, $color in $default-icon-button-colors {
.icon-button--#{$name} {
@if type-of($color) == list {
background-color: nth($color, 1);
} @else {
background-color: $color;
}
&:hover,
&:focus {
@if type-of($color) == list {
background-color: nth($color, 2);
} @else {
background-color: darken($color, 5%);
}
}
}
}
There are no notes for this item.