Skip to content

A web-focused toolkit for creating, assembling, and distributing design tokens for custom design systems.

License

Notifications You must be signed in to change notification settings

quarksuite/core

Repository files navigation

QuarkSuite Core (v2.1.0)

Table of Contents

Introduction

QuarkSuite Core is the engine of the emerging QuarkSuite toolkit which is focused around using the web platform as a design token development environment.

The core in particular is responsible for generating, assembling, and exporting token collections and dictionaries.

QuarkSuite Core is written in vanilla JavaScript (ES2017+).

Features

  • Generate practical color palettes for apps and sites
    • Color adjustment and blending
    • Built-in colorblindness, contrast sensitivity, and illuminant simulations
    • Material-esque and artistic configurations
    • WCAG-based and colorimetic color accessibility filtering
  • Enforce compositional balance with modular scales
  • Export tokens to take with you
    • Graphic design palettes (GIMP/Inkscape, Sketch)
    • Stylesheet formats (CSS custom properties, Sass, Less, Stylus)
    • Data formats (JSON, YAML)
  • Interop with TailwindCSS and Style Dictionary
  • Scales with your needs
    • from basic generation and assembly
    • to advanced rules and processes
    • to modular configurations
  • Independent modules
    • color.js for color features
    • content.js for content features
    • exporter.js for exporting features
    • workflow.js for advanced features

Packages

  • JSDelivr: https://cdn.jsdelivr.net/gh/quarksuite/core@2.1.0/[module]
  • Statically: https://cdn.statically.io/gh/quarksuite/core/v2.1.0/[module]
  • Nest.land: https://x.nest.land/quarksuite:core@2.1.0/[module]
  • Node (NPM): @quarksuite-two/core@2.1.0
    • Skypack: https://cdn.skypack.dev/@quarksuite-two/core@2.1.0/[module]
    • esm.sh: https://esm.sh/@quarksuite-two/core@2.1.0/[module]

In general, prefer the JSDelivr/Statically CDN for availability, features, and speed. The Nest.land package is a failsafe for the repo disappearing or GitHub going down.

Getting Started

Live

If you want to try the library live, load up your console in a modern browser or run a deno repl and copy/paste:

const {
  color,
  content,
  exporter,
  workflow
} = await import("https://cdn.jsdelivr.net/gh/quarksuite/core@2.1.0/mod.js");

Local Development

For local dev, it’s recommended that you use a buildless stack or work in the browser. QuarkSuite Core is designed especially for that.

Browser/Deno

import {
  color,
  content,
  exporter,
  workflow
} from "https://cdn.jsdelivr.net/gh/quarksuite/core@2.1.0/mod.js";

Node

The now defunct @quarksuite/core was originally published on NPM, but I started the project over and unpublished the package. The core is now in a state where I feel comfortable putting it back on NPM and exposing it to the wider JavaScript ecosystem.

Ensure that type: module is set in your package.json so that Node is set for ES Modules. Then install the package.

npm install @quarksuite-two/core@2.1.0

# OR

yarn add @quarksuite-two/core@2.1.0

And then in your source files:

import {
  color,
  content,
  exporter,
  workflow
} from "@quarksuite-two/core";

Offline

Some engines (like QuickJS) support ES Modules but don’t allow importing from URLs. For those, you can curl/wget the modules you need directly.

curl -o [module] https://cdn.jsdelivr.net/gh/quarksuite/core@2.1.0/[module]

# OR

wget https://cdn.jsdelivr.net/gh/quarksuite/core@2.1.0/[module]

Handbook

The QuarkSuite Core Handbook introduces the features of the library from a user perspective. It’s recommended you read that next.

API

The QuarkSuite Core API is a technical overview of the library that also serves as documentation of its functions. It may make more sense after reading the handbook, but some of you may get more out of reading it beforehand.

Demos

I maintain a growing collection of demos for QuarkSuite at various stages of development on Glitch. It includes rough experiments, workflow samples, and practical usage examples, so be sure to check it out.

Contributing

First, clone the repo to your local machine.

git clone https://github.com/quarksuite/core.git

Then make sure you read the contribution guidelines.

Concept

QuarkSuite is a project built around the idea that authoring design tokens shouldn’t be limited to a particular environment or web stack. Many design tools build entire systems around themselves.

I wanted a workflow where I could open a blank page in a browser and start experimenting. I wanted tools with mobility across environments. I wanted something that could grow seamlessly with my needs and allow me to automate my requirements.

QuarkSuite aims to be that toolkit.

Project Objectives

The following objectives guide the ongoing development of QuarkSuite.

Availability

This project focuses on the overall availability of web technologies over the popularity of particular web stacks. Its independent modules, relatively small size, and simple output all work to make the kit extremely portable.

Adaptability

QuarkSuite Core aims to grow or shrink according to your needs. Its functional nature makes it straightforward to use and extend as you see fit.

Invisibility

This project is a means to an end: creating design tokens. I don’t want its processes to call attention to themselves or its design to get in your way. Use what you need and leave the rest.

Interoperability

QuarkSuite Core is built to work with what already exists in the design token and UI theming space. It can be used on its own, but its schema is nothing but a plain object.

This makes it particularly suited for integration with design tools that use their own schemas (such as TailwindCSS and Style Dictionary).

Stability

Where applicable, this project aims to adhere as closely as possible to current and emerging web standards. From its use of standard CSS color formats to its avoidance of bleeding-edge syntax.

Credit

About

A web-focused toolkit for creating, assembling, and distributing design tokens for custom design systems.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published