springload / rikki-patterns

🎽⚡️ Living pattern library generator. Move fast and don't break your patterns.
https://springload.github.io/rikki-patterns
MIT License
3 stars 2 forks source link
internal pattern-library tooling

Rikki Patterns npm Build Status Coverage Status

:running_shirt_with_sash::zap: Living pattern library generator. Move fast and don't break your patterns.

Features

Usage

npm install --save-dev rikki-patterns

Running the preview server

rikki start

Building tokens

We use a system of Design Tokens similar to SalesForce Lightning Design System, so that you can export the tokens for your environment.

rikki tokens
# Potential future arguments: --tokens colours,breakpoints,typography --path ./my_app/tokens --format sass

Available formats are Sass, CSS, JSON, XML.

Creating a new component

rikki component <name>

Installing into Python apps

The templates use Nunjucks/Jinja2 and React. You can add the template paths to your application to make direct use of the components.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.jinja2.Jinja2',
        'APP_DIRS': True,
        'DIRS': [
            normpath(join(DJANGO_ROOT, 'client/ui/components')),
            normpath(join(DJANGO_ROOT, 'client/ui')),
        ],
        'OPTIONS': {
            'extensions': [
                'wagtail.wagtailcore.jinja2tags.core',
                'wagtail.wagtailadmin.jinja2tags.userbar',
                'wagtail.wagtailimages.jinja2tags.images',
                'jinja2.ext.with_',
                'jinja2.ext.i18n',
                'jinja2.ext.do',
                'core.jinja2_extensions.IncludeBlockWithContext',
            ],
            # 'environment': '<your_project>.jinja2.environment'
        },
    },
]

Installing into your Sass workflow

To build the frontend assets into your application's static file directory:

npm run build ./my_app/static

To watch changes to the Design System and automatically export them to your app:

npm run watch ./my_app/static

Configuration

Development

Install

Clone the project on your computer, and install Node. This project also uses nvm.

nvm install
# Then, install all project dependencies.
npm install
# Install the git hooks.
./.githooks/deploy
# Set up a `.env` file with the appropriate secrets.
touch .env

Working on the project

Everything mentioned in the installation process should already be done.

# Make sure you use the right node version.
nvm use
# Start the server and the development tools.
npm run start
# Runs linting.
npm run lint
# Runs tests.
npm run test
# View other available commands with:
npm run

Releases

npm run dist
# Use irish-pub to check the package content. Install w/ npm install -g first.
irish-pub
npm publish