Appearance
Styles
We have created a set of highly useful mixins that greatly facilitate fast and efficient development.
before-pseudo
The before-pseudo
mixin is inspired by Vuetify and provides a convenient way to add hover styles using a before pseudo-element in SCSS (Sass) stylesheets.
Usage
To use the before-pseudo
mixin, follow these steps:
- Include the mixin in your SCSS file using the @include directive.
- Apply the before-pseudo mixin to the desired selector.
scss
@use "@core/scss/base/mixins";
.my-element {
@include before-pseudo;
}
scss
// ℹ️ This mixin is inspired from vuetify for adding hover styles via before pseudo element
@mixin before-pseudo() {
position: relative;
&::before {
position: absolute;
border-radius: inherit;
background: currentcolor;
block-size: 100%;
content: "";
inline-size: 100%;
inset: 0;
opacity: 0;
pointer-events: none;
}
}
Example
Here's an example usage of the before-pseudo
mixin:
scss
.button {
@include before-pseudo;
// Adds vuetify states
@include vuetifyStates.states($active: false);
}
In the above example, the .button
class will have a before
pseudo-element added, which covers the entire element. When the button is hovered over, the opacity of the before pseudo-element changes to 0.5
, creating a hover effect.
selected-states
The selected-states
mixin is inspired by Vuetify's active-states mixin. It provides a convenient way to apply selected states to a specified selector, adding visual effects such as opacity changes. This mixin is especially useful for enhancing interactivity in SCSS (Sass) stylesheets.
Usage
To utilize the selected-states
mixin, follow these steps:
- Include the mixin in your SCSS file using the
@include
directive. - Pass the desired selector as an argument to the mixin.
scss
@include selected-states('.my-selector') {
// Styles specific to the selected states of '.my-selector'
}
scss
// ℹ️ Inspired from vuetify's active-states mixin
// focus => 0.12 & selected => 0.08
@mixin selected-states($selector) {
#{$selector} {
opacity: calc(var(--v-selected-opacity) * var(--v-theme-overlay-multiplier));
}
&:hover
#{$selector} {
opacity: calc(var(--v-selected-opacity) + var(--v-hover-opacity) * var(--v-theme-overlay-multiplier));
}
&:focus-visible
#{$selector} {
opacity: calc(var(--v-selected-opacity) + var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
}
@supports not selector(:focus-visible) {
&:focus {
#{$selector} {
opacity: calc(var(--v-selected-opacity) + var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
}
}
}
}
Example
Here's an example usage of the selected-states
mixin:
scss
.my-button.active {
@include selected-states('.my-selector') {
background-color: blue;
color: white;
}
}
In the above example, the .my-button
class will have the selected states styles applied to the .my-selector
element, resulting in a blue background and white text color when the element is in the selected states.