Styled System

The styled system of Chakra UI Vue helps you to take care of anything style related.

Constraint Based Design

In order to help you create clean, consistent layouts, Chakra UI Vue provides building blocks that take advantage of constraint-based design principles.

Chakra UI Vue's design principles are built around two core concepts:

  • Design tokens
  • Space scales

Design tokens

Design tokens are named values that are used in place of hard-coded values (such as hex values for color or pixel values for spacing) in order to maintain a scalable and consistent visual system for UI development.

These constraints help you to create consistent, high-quality user interfaces.

Chakra UI Vue's theming system leverages design tokens for different style properties like color, spacing, font sizes, font weights, opacity, radii, shadows, z-indices, border widths, and breakpoints.

This allows us to create a system that enables us to style our applications in ways that can be scaled across different scales. These include a typographic (font-size) scale, a spacing scale for margin and padding, and a color object.

By default Chakra UI Vue uses the System UI Theme Specification

Space Scales

Because Chakra UI Vue uses styled system under the hood, it allows you to reliably create consistent spacing of elements in your applications. The space key can directly be referenced by padding, margin, top, right, bottom, and left style properties.

By default, Chakra UI Vue uses a comprehensive 4pt grid as a single unit. So in order to apply a padding of 32px, you can use the value 32px / 4px = 8. i.e. padding: 8

export default {  space: {    px: '1px',    '0': '0',    '1': '0.25rem',    '2': '0.5rem',    '3': '0.75rem',    '4': '1rem',    '5': '1.25rem',    '6': '1.5rem',    '8': '2rem',    '10': '2.5rem',    '12': '3rem',    '16': '4rem',    '20': '5rem',    '24': '6rem',    '32': '8rem',    '40': '10rem',    '48': '12rem',    '56': '14rem',    '64': '16rem'  }}

Below are some examples of how to apply spacing values to Chakra components.

<!-- Applies a padding of 4px --><CBox padding="1">  Box
</CBox><!-- Applies a padding of 16px --><CBox padding="4">  Box
</CBox><!-- Applies a padding of 32px --><CBox padding="8">  Box
</CBox>

Chakra UI Vue's default space scale uses rems as the CSS unit which is relative to the default root HTML font size of 16px

Theme

By default, Chakra UI Vue uses a theme object that you can extend and customize as you see fit for your application. To learn more about theming in Chakra UI Vue, check out the theme page.

Edit this page on GitHub