@volverjs/style
v0.1.15
Published
@volverjs/style is a lightweight responsive CSS utility library to accompany @volverjs/ui-* and static webpages as well.
Downloads
1,030
Maintainers
Readme
@volverjs/style
backgrounds
border
colors
aspect ratios
typography
easings
animations
sizes
borders
z-indexes
media-queries
layout
spacing
flexbox
grid
custom properties
scss
maintained with ❤️ by
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.