Skip to content

Styles

Writing your own SCSS

You can write your own SCSS in src/assets/styles/styles.scss file.

Overriding variables

If you want to override any of vuetify or our custom variable then you can override it in src/assets/styles/variables/{_vuetify|_template}.scss folder.

In this folder you can find two variable files.

_vuetify.scss

You can override Vuetify variable in this file.

You can override variables like below:

scss
@forward "../../@core/scss/template/libs/vuetify/variables" with (
  $color-pack: false
);

You can get list of variables you can override in below locations:

  • Check Vuetify SASS variables page

_template.scss

You can override template/custom variable in this file.

You can override variables like below:

scss
@forward "@core/scss/template/variables" with (
  $navbar-high-emphasis-text: true
);

You can get list of variables you can override in below locations:

  • Check src/@core/scss/base/_variables.scss and src/@core/scss/template/_variables.scss files for our custom variables

Mixins

icon-size

We use this mixin to customize the size of icon. Size of icon is determined using height and width property. Instead of writing same value for both properties like below:

scss
.some-icon {
  height: 1.25rem;
  width: 1.25rem;
}

We use this mixin:

scss
// Import mixins
@use '@layouts/styles/mixins';

.some-icon {
  @include mixins.icon-size(1.25rem);
}

/* Output

.some-icon {
  height: 1.25rem;
  width: 1.25rem;
}

*/

rtl

You have to use this mixin if you are writing RTL styles. This will scope the written style to RTL direction only.

scss
// Import mixins
@use '@layouts/styles/mixins';

.selector {
  @include mixins.rtl {
    margin-left: 1rem;
  }
}

/* Output

[dir="rtl"] .selector {
  margin-left: 1rem;
}

*/

However, it does more than just generating RTL styles. It will only generate the styles if you have enabled generating RTL styles.

scss
// File: src/assets/styles/_variables.scss

/*
If you have disable generating RTL styles by setting `$enable-rtl-styles: false`
then style won't be generated by rtl mixin
*/

@forward '@layouts/styles/variables' with (
  $enable-rtl-styles: false
);
scss
// File: Your SCSS file
// Import mixins
@use '@layouts/styles/mixins';

.selector {
  @include mixins.rtl {
    margin-left: 1rem;
  }
}

/* No output */

Custom-Classes

We have defined various custom classes in our template which makes development fast, smooth and enjoyable. We recommend you to use this classes whenever required.

  • flip-in-rtl: flip-in-rtl is a custom class which rotate the element 180 degree when direction is rtl.

  • Timeline Classes: We have defined timeline classes for timeline title, timeline text and timeline meta. Below is the list of classes:

    • app-timeline-title: sets font-weight, font-size, line-height and color for timeline title.
    • app-timeline-meta: sets text disabled and font size smaller for meta data in timeline.
    • app-timeline-text: sets text, font-size and line-height for timeline text.
  • match-height: The match-height class makes sure that the height of cards in one row should be same.

  • clamp-text: The clamp-text class is for truncating or applying ellipsis to text content after only two lines, providing a concise and visually pleasing presentation.

  • carousel-delimiter-top-end: The carousel-delimiter-top-end class moves carousel-delimiter on the top end as shown in the dashboard example.

  • disable-tab-transition: The disable-tab-transition class eliminates the transition effect on v-window-item components, resulting in a smooth user experience without any visual animations.

  • leading-normal:The leading-normal class applies line-height: normal style to the element.

You can refer to src/@core/scss/base/_utilities.scss for more such utility classes.

How to override styles using placeholders Contributors

Our template provides SCSS placeholders to modify the sensitive core styles easily. As a contributor you are allowed to write your styles in src/@core/scss/templates.

Placeholders provided in src/@core/scss/base/placeholders are available to override.

Assume you want to increase the font-weight of vertical nav section title. You can find placeholder %vertical-nav-section-title in src/@core/scss/base/placeholders/_vertical-nav.scss file.

Now, to override this placeholder, create file in src/@core/scss/template/placeholders/ with the same name as in src/@core/scss/base/placeholders. Hence, we will create a new file _vertical-nav.scss in src/@core/scss/template/placeholders/.

scss
// Section title
%vertical-nav-section-title {
  font-weight: 600;
}

Next, import this newly created file in src/@core/scss/template/placeholders/_index.scss

scss
@forward "vertical-nav";

Done 🥳