Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@volverjs/style

volverjs484MIT0.1.23

@volverjs/style is a lightweight responsive CSS utility library to accompany @volverjs/ui-* and static webpages as well.

css, scss, design-system, volver, volverjs, css custom properties, css variables, utility classes, design tokens, responsive, components library

readme

volverjs

@volverjs/style

backgrounds border colors aspect ratios typography\ easings animations sizes borders z-indexes media-queries\ layout spacing flexbox grid custom properties scss

Quality Gate Status Maintainability Rating Security Rating Depfu Depfu


maintained with ❤️ by


8 wave


Install

# pnpm
pnpm add @volverjs/style

# yarn
yarn add @volverjs/style

# npm 
npm i -s @volverjs/style

Usage

/* css */
@import '@volverjs/style';

/* scss */
@use '@volverjs/style/scss';

or cherry pick what you want

/* css */
@import '@volverjs/style/reset';
@import '@volverjs/style/props/layout';
@import '@volverjs/style/utilities/layout';
@import '@volverjs/style/components/vv-button';

/* scss */
@use '@volverjs/style/scss/reset';
@use '@volverjs/style/scss/props/layout';
@use '@volverjs/style/scss/utilities/layout';
@use '@volverjs/style/scss/components/vv-button';

Principles

👌 Zero Specificity

Everything is defined with :where() so you can override all definitions easily.

🎨 Custom properties

All attributes have a custom properties (CSS variables) for easy theming.

😱 Utility-first + BEM

You can style utility-first (with tailwindcss syntax) and use components (vv-** for ex. *vv-button) written with BEM.

Basic personalization

Custom props

@import '@volverjs/style';
@import url('https://fonts.googleapis.com/css2?family=Open+Sans');

:root {
  /* custom color brand */
  --color-brand-hue: 149deg;
  --color-brand-saturation: 56%;
  --color-brand-lightness: 53%;

  /* custom font sans */
  --font-sans: 'Open Sans', sans-serif;
}

SCSS

@use '@volverjs/style/scss/context' with (
  // custom color brand 
  $color-brand: #45cb85,
  //custom font sans
  $font-family-sans: 'Open Sans', sans-serif
);
@use '@volverjs/style/scss';

@import url('https://fonts.googleapis.com/css2?family=Open+Sans');

Deep override

All components are written through SCSS maps. Root attributes style the component, submaps state, element, and modifier generates BEM selectors.

@use 'sass:map';
// import volverjs default settings, functions and mixins
@use '@volverjs/style/scss/context';

// override vv-button map
context.$vv-button: map.deep-merge(
  context.$vv-button,
  (
    // change default button background
    background: #ddd,
    state: (
      hover: (
        // change default button background on hover
        background: #aaa
      )
    ),
    modifier: (
      // add a custom modifier
      my-error: (
        background: red
      )
    )
  )
);

// import volverjs style
@use '@volverjs/style/scss';
<button type="button" class="vv-button vv-button--my-error">Error</button>

Documentation

To learn more about @volverjs/style, check its documentation.

License

MIT

changelog

Changelog

All notable changes to this project will be documented in this file.

0.1.23 - 2025-10-21

Fixed

  • Add list-style-type: none for vv-accordion items (ios safari issue).

0.1.22 - 2025-09-08

Fixed

  • Dependencies updates.

0.1.21 - 2025-07-10

Fixed

  • Default $breakpoints for mixins;
  • Dependencies updates.

0.1.20 - 2025-07-10

Fixed

  • Dependencies updates.

0.1.19 - 2025-05-22

Fixed

  • Select and textarea icon positioning;

0.1.18 - 2025-05-22

Fixed

  • Dependencies updates;

0.1.17 - 2025-02-26

Fixed

  • vv-select readonly with loading;

Added

  • vv-nav__item-label disabled state;

0.1.16 - 2025-02-06

Fixed

  • Border width for vv-card component;

0.1.15 - 2024-11-08

Added

  • Breakpoints for min-w, max-w, min-h, max-h, for example md:min-w-288 or xl:max-h-56;

0.1.14 - 2024-10-18

Fixed

  • Remove @import statements;
  • Input label display property;
  • string.unquote() function;

Added

  • $preflight variable to disable preflight module;

0.1.13 - 2024-10-09

Fixed

  • Components classes duplication;
  • Remove alerts for Firefox :has() lack of support;

Added

  • bp-up, bp-down, bp-only and bp-between shorthand for breakpoint mixin;

0.1.12 - 2024-10-04

Fixed

  • vv-alert auto close radius;
  • From transform to translate, rotate and scale separated properties;
  • Mobile improvements;
  • A11y review;
  • Update figma design tokens;
  • bordered modifier for vv-table;
  • Add min-w-{spacing} and min-h-{spacing} utilities;
  • breakpoint for states;
  • replace deprecated sass functions;

Changed

  • vv-nav__divider is now vv-nav__separator.

Added

  • .text-balance utility;
  • user-select utilities;
  • vv-input-file component.

0.1.11 - 2023-05-24

Added

  • vv-dropdown mobile modifier

Fixed

  • vv-select__value element.

0.1.10 - 2023-05-11

Added

  • vv-input-text__unit element. A unit label for text input;
  • vv-accordion square modifier;
  • vv-dropdown docs;
  • vv-dropdown-optgroup component;
  • vv-alert-group component;
  • vv-alert notifications and transitions;
  • vv-accordion-group condensed modifier.

Fixed

  • wrap-with-where fix to work properly with List and Map of selectors;
  • breakpoint keyword in components maps;
  • vv-table empty caption;
  • vv-alert colors accessibility;
  • loading state for inputs has more accessible colors.

Removed

  • vv-toast component;

0.1.8 - 2023-02-03

Added

  • vv-dropdown-option for vv-dropdown combobox;
  • base.css style with reset and props.

Fixed

  • .container utility and docs;
  • vv-dropdown-action for vv-dropdown menus.

0.1.7 - 2023-02-01

Fixed

  • vv-dropdown search input, arrow and position;
  • vv-input-text type date placeholder align on Safari;
  • transition-* utilities and props;
  • translate-* utilities now works on both x and y axis.

Added

  • vv-avatar-group block for group of avatars;
  • vv-avatar with sub vv-badge;
  • vv-avatar--{color} modifiers;
  • vv-avarar--bordered modifier;
  • vv-avatar--ring modifier;
  • vv-avatar--square modifier;
  • vv-dropdown-action block for actions inside dropdowns;
  • vv-badgte--action modifier for actions inside badges.

Changed

  • vv-input-text, vv-textarea and vv-select now have a *--icon-after element and modifier that replace the *--icon-right.

0.1.6 - 2023-01-18

Fixed

  • vv-input-text fix floating modifier and label alignment;
  • vv-select fix floating modifier;
  • vv-textarea fix floating modifier.

Added

  • vv-select multiple modifier;
  • @spread-map-into-modifiers mixin now support nested modifiers.

0.1.5 - 2023-01-18

Fixed

  • vv-button min-height with vv-button--icon-only modifier;
  • vv-input-text, vv-textarea and vv-select wrapper min-height.

0.1.4 - 2023-01-17

Fixed

  • translate utilities;
  • rotate utilities;
  • origin utilities;
  • scale utilities;
  • table utilities specificity;
  • vv-button spacing in rem;
  • eslint, eslint-plugin-vue, glob and vite-plugin-stylelint updates;
  • vv-button--icon-only modifier.

0.1.3 - 2023-01-09

Added

  • translate utilities;
  • rotate utilities;
  • origin utilities;
  • scale utilities;
  • table utilities;
  • border-collapse and border-separate utilities;
  • vv-accordion-group component.

0.1.2 - 2023-01-04

Added

  • Docs site;
  • saturation utility and custom property;
  • cursor utilities and custom properties;
  • vv-skeleton component;
  • vv-tab component;
  • vv-nav component for navigation and tabs;
  • vv-avatar component;
  • vv-toast component;
  • vv-alert component;
  • vv-tooltip component;
  • vv-badge component;
  • vv-breadcrumb component;
  • vv-button action and action-quite modifier.

Fixed

  • Preflight for themes;
  • A11y improvements;
  • Transition utilities and custom properties;
  • Typo in SCSS variable $zero-specificity-for-components, thanks to @tinny77 for the PR #;
  • Safari iOS improvements;
  • vv-radio and vv-checkbox readonly state.

Changed

  • Move from @import to @use;
  • vv-input-checkbox is now vv-checkbox;
  • vv-input-checkbox-group is now vv-checkbox-group;
  • vv-input-radio is now vv-radio;
  • vv-input-radio-group is now vv-radio-group;
  • vv-collapse is now vv-accordion;
  • state selected is now pressed in vv-button component.

0.1.1 - 2022-10-18

Added

  • vv-badge component;
  • vv-button component;
  • vv-button-group component;
  • vv-progress component;
  • vv-accordion component;
  • vv-dialog component;
  • vv-dropdown component;
  • vv-checkbox component;
  • vv-checkbox-group component;
  • vv-radio component;
  • vv-radio-group component;
  • vv-input-text component;
  • vv-textarea component;
  • vv-select component;
  • vv-table component;
  • vv-card component;
  • vv-text component.