File: D:/HostingSpaces/SBogers10/kommabasic.nl/resources/sass/5-Components/_components.ghostbutton.scss
/* ==========================================================================
* Default button
* ========================================================================== */
$c-ghost-button: (
'color': palette(neutral, 0),
);
.c-ghostbutton {
@include border-radius(m);
@include font-size(xs);
font-weight: 500;
display: inline-flex;
justify-content: center;
align-items: center;
color: map-get($c-ghost-button, 'color');
background: transparent;
text-shadow: 0 0 4px rgba(0,0,0,0.2);
border: 1px solid currentColor;
padding: space(2) 0;
text-transform: uppercase;
position: relative;
cursor: pointer;
text-decoration: none;
&:focus {
outline: none;
box-shadow: 0 0 4px 2px rgba(map-get($c-ghost-button, 'color'), 0.5);
}
&:active:not(:disabled) {
outline: none;
box-shadow: none !important;
}
&:disabled {
opacity: 0.5;
cursor: not-allowed;
}
// Border with pseudo element for animation
&::after {
@include border-radius(m);
border: 1px solid transparent;
background: rgba(palette(neutral, 1000), 0.07);
background-clip: content-box;
content: "";
position: absolute;
top: -1px;
bottom: -1px;
right: -1px;
left: -1px;
transform: scaleX(0);
opacity: 0;
pointer-events: none;
transition-duration: .5s;
}
&:hover:not(:disabled) {
&::after {
transform: scaleX(1);
opacity: 1;
transition-property: opacity, transform;
transition-duration: .35s;
transition-timing-function: cubic-bezier(.215,.61,.355,1);
}
}
}
.c-ghostbutton__text {
position: relative;
z-index: 2;
padding: 0 space(3);
text-align: center;
.c-button--icon & {
padding-right: space(2);
}
}
.c-ghostbutton__icon {
display: none; // By default icon is hidden
position: relative;
z-index: 2;
top: -1px;
margin-right: 15px;
transition: transform 0.3s;
.c-ghostbutton:hover:not(:disabled) & {
transform: translateX(3px);
}
.c-ghostbutton--icon & {
display: block; // Show when has icon modifier
width: 16px;
}
// When icon comes before the text (in the DOM) switch the margin
&:first-child {
margin-right: 0;
margin-left: 15px;
}
}