MatteuSan / sentro

A low-level SCSS library for building robust token-driven design systems at scale.

Home Page:https://sentro.matteusan.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sentro

lang version_badge license_badge stars

A low-level SCSS library for building and managing token-driven design systems.

Installation

# NPM
npm install @matteusan/sentro --save

# Yarn
yarn add @matteusan/sentro --save

Documentation

  • The documentation for this project is located here.

Showcase

SCSS Input

  • Tokenize your UI while creating an intuitive theming API for your design system.
@use 'path/to/@matteusan/sentro' with (
  $prefix: 'sdb',
  $context: 'theme'
);

:root {
  @include sentro.token-config(
    $primary: (
      'default': #122c53,
      'light': #536b99,
      'dark': #061021,
      'ink': #fff
    ),
    $secondary: (
      'default': #ffac00,
      'light': #ffd77e,
      'dark': #533800,
      'ink': #000
    ),
    $radius: (
      'small': 0.3rem,
      'medium': 0.5rem,
      'large': 0.7rem
    ),
  );
}

.my-button-theme {
  background: sentro.key-create('button-fill', sentro.token-get('secondary'));
  color: sentro.key-create('button-ink', sentro.token-get('secondary-ink'));
  border-color: sentro.key-create('button-border', sentro.token-get('secondary'));
  border-radius: sentro.key-create('button-radius', sentro.token-get('radius-small'));
}

CSS Output

  • Voila!
:root {
  --sdb-theme-primary: #122c53;
  --sdb-theme-primary-light: #536b99;
  --sdb-theme-primary-dark: #061021;
  --sdb-theme-primary-ink: #fff;
  --sdb-theme-secondary: #ffac00;
  --sdb-theme-secondary-light: #ffd77e;
  --sdb-theme-secondary-dark: #533800;
  --sdb-theme-secondary-ink: #000;
  --sdb-theme-radius-small: 0.3rem;
  --sdb-theme-radius-medium: 0.5rem;
  --sdb-theme-radius-large: 0.7rem;
}

.my-button-theme {
    background: var(--sdb-button-fill, var(--sdb-theme-secondary));
    color: var(--sdb-button-ink, var(--sdb-theme-secondary-ink));
    border-color: var(--sdb-button-border, var(--sdb-theme-secondary));
    border-radius: var(--sdb-button-radius, var(--sdb-theme-radius-small));
}

About

A low-level SCSS library for building robust token-driven design systems at scale.

https://sentro.matteusan.com

License:MIT License


Languages

Language:SCSS 93.9%Language:TypeScript 6.1%