laconic-dot-com/src/components/primitives/button/button.module.scss
2022-07-26 10:59:32 -07:00

104 lines
2.0 KiB
SCSS

@import '~/css/helpers';
.button {
display: inline-block;
transition: all var(--normal-transition);
border: tovw(1px) solid var(--color-white);
border-radius: tovw(4px);
background: transparent;
cursor: pointer;
padding: tovw(16px, 'default', 16px) tovw(32px, 'default', 14px);
text-transform: uppercase;
text-decoration: none;
line-height: 1;
color: var(--color-white);
font-family: var(--font-dm-mono);
font-size: tovw(18px, 'default', 18px);
appearance: none;
white-space: nowrap;
&:disabled {
pointer-events: none;
}
&:hover,
&--active {
background: var(--color-white);
color: var(--color-black);
}
&--interactive {
position: relative;
overflow: hidden;
span {
position: relative;
mix-blend-mode: difference;
}
&::before,
&::after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
&::before {
left: -150%;
transform: skew(10deg);
transition: transform var(--duration-normal) var(--ease-button);
background: var(--color-white);
width: 130%;
content: '';
}
&:hover,
&--active {
background: transparent;
color: var(--color-white);
&::before {
transform: translate3d(90%, 0, 0) skew(30deg) scaleX(1.2);
}
}
}
&--primary {
border-color: var(--color-accent);
box-shadow: 0 0 tovw(25px, 'default', 16px) var(--color-accent);
background: var(--color-accent);
&:hover,
&--active {
box-shadow: 0 0 0 var(--color-accent);
background: var(--color-accent);
color: var(--color-white);
}
}
&--small {
padding: tovw(11.5px, 'default', 11.5px) tovw(24px, 'default', 10px);
}
&--unstyled {
border: none;
background: none;
padding: tovw(12px, 'default', 12px);
&:hover {
background: none;
color: currentcolor;
}
}
}
[data-theme='light'] {
.button {
&--primary {
color: var(--color-black);
}
}
}