Button: Fix the spacing with an icon

This commit is contained in:
2020-02-14 12:35:38 +01:00
parent dfcc3f9f7a
commit 29f6e7e645
2 changed files with 20 additions and 10 deletions

View File

@@ -4,20 +4,17 @@
export let className = 'button' export let className = 'button'
export let text = '' export let text = ''
// Wrap string's each letters into a span const hasSlot = arguments[1].$$slots !== undefined
// const textSpans = text
// .replace(/(<.*?>)|(.)/g, letter => letter.replace(/./g, '<span>$&</span>'))
// .replace(/ /g, '\u00a0')
</script> </script>
{#if type === 'button'} {#if type === 'button'}
<button class={className} data-text={text}> <button class={className} class:button-icon={hasSlot} data-text={text}>
<slot></slot> <slot></slot>
<span>{text}</span> <span>{text}</span>
</button> </button>
{:else} {:else}
<a {href} class={className} data-text={text}> <a {href} class={className} class:button-icon={hasSlot} data-text={text}>
<slot></slot> <slot></slot>
<span>{text}</span> <span>{text}</span>
</a> </a>

View File

@@ -5,7 +5,7 @@
align-items: center; align-items: center;
height: 40px; height: 40px;
overflow: hidden; overflow: hidden;
padding: 0 16px; padding: 1px 16px 0;
background: #fff; background: #fff;
font-family: $font-sans-sb; font-family: $font-sans-sb;
font-size: rem(14px); font-size: rem(14px);
@@ -56,14 +56,23 @@
position: absolute; position: absolute;
display: block; display: block;
top: 50%; top: 50%;
left: calc(50% + 19px); left: 0;
width: 100%; width: 100%;
transform: translate3d(-50%, -120%, 0); transform: translate3d(0, -120%, 0);
} }
span, &:after { span, &:after {
transition: opacity 275ms $ease-cubic, transform 275ms $ease-cubic; transition: opacity 275ms $ease-cubic, transform 275ms $ease-cubic;
} }
// Button has an icon (offset the hovered text)
&-icon:after {
left: 13px;
@include breakpoint (sm) {
left: 19px;
}
}
// Hover // Hover
&:hover { &:hover {
color: #fff; color: #fff;
@@ -81,7 +90,11 @@
} }
&:after { &:after {
opacity: 1; opacity: 1;
transform: translate3d(-50%, -50%, 0); transform: translate3d(0, -47%, 0);
@include breakpoint (sm) {
transform: translate3d(0, -50%, 0);
}
} }
} }
} }