HTML
<button type="button" class="button">Primary</button>
<button type="button" class="button button-secondary">
Secondary
</button>
<button type="button" class="button button-tertiary">
tertiary
</button>
SCSS
.button {
--color-1: #2a816f;
--white: #fff;
--_bg: var(--color-1);
--_bg-hover: var(--white);
--_color: var(--white);
--_color-hover: var(--color-1);
--_border-thickness: 1px;
--_border-type: solid;
--_border-color: var(--color-1);
--_border-color-hover: var(--color-1);
background-color: var(--_bg);
color: var(--_color);
border: var(--_border-thickness) var(--_border-type) var(--_border-color);
cursor: pointer;
padding: 0.5rem 1rem;
transition: background-color 0.2s cubic-bezier(0.23, 1, 0.32, 1),
color 0.2s cubic-bezier(0.23, 1, 0.32, 1),
border-color 0.2s cubic-bezier(0.23, 1, 0.32, 1);
&:focus {
outline: none;
}
@media (hover: hover) {
&:hover {
background-color: var(--_bg-hover);
color: var(--_color-hover);
border-color: var(--_border-color-hover);
}
}
&:focus-visible {
background-color: var(--_bg-hover);
color: var(--_color-hover);
border-color: var(--_border-color-hover);
}
&-secondary {
--color-1: #282828;
}
&-tertiary {
--_bg: transparent;
--_bg-hover: var(--color-1);
--_color: var(--color-1);
--_color-hover: var(--white);
--_border-color-hover: var(--color-1);
}
}