@use "variables" as *;
@mixin flex($direction: row, $justify: flex-start, $align: stretch) {
display: flex;
flex-direction: $direction;
justify-content: $justify;
align-items: $align;
}
@mixin mobile {
@media screen and (max-width: $breakpoint-mobile) {
@content;
}
}
@mixin tablet {
@media screen and (max-width: $breakpoint-tablet) {
@content;
}
}
@mixin desktop {
@media screen and (min-width: $breakpoint-desktop) {
@content;
}
}
@mixin card {
background: var(--surface-elevated);
border-radius: $border-radius;
box-shadow: $card-shadow;
transition: transform $transition-duration $transition-timing,
box-shadow $transition-duration $transition-timing;
&:hover {
transform: translateY(-3px);
box-shadow: $card-shadow-hover;
}
}
@mixin text-truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@mixin link {
color: var(--color-primary);
text-decoration: none;
transition: color $transition-duration $transition-timing;
&:hover {
color: var(--color-primary-hover);
}
}
@mixin reset-button {
background: none;
border: none;
padding: 0;
margin: 0;
cursor: pointer;
display: inline-flex;
align-items: center;
font: inherit;
color: inherit;
outline: none;
&:focus {
outline: none;
}
}
@mixin clearfix {
&::after {
content: '';
display: table;
clear: both;
}
}
@mixin center($position: absolute) {
position: $position;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}