Home

Awesome

Stand With Ukraine

Stylable CSS for Components

Build Status

Stylable enables you to write reusable, highly-performant components. Each component exposes a style API that maps its internal parts so you can reuse components across teams without sacrificing stylability.

At build time, the preprocessor converts the Stylable CSS into a minimal, flat, static, valid vanilla CSS that works cross-browser.

Learn more in our Documentation Center.

Installation

There are two options for installing Stylable:

For details on both options, see Install & Configure.

Demos

Repository Structure

This repository is a mono-repo containing multiple packages that together comprise the Stylable ecosystem. It uses NPM workspaces to manage the various packages and their dependencies.

Core & Internals

Package NamePublished NameLatest VersionDescription
core@stylable/corenpm versionCore CSS preprocessor
runtime@stylable/runtimenpm versionRuntime browser code
optimizer@stylable/optimizernpm versionProduction mode optimizer
module-utils@stylable/module-utilsnpm versionStylable CommonJS module generator
custom-value@stylable/custom-valuenpm versionStylable custom build-time values

Tooling & Utilities

Package NamePublished NameLatest VersionDescription
cli@stylable/clinpm versionUsed for managing Stylable stylesheets in a project
create-stylable-appcreate-stylable-appnpm versionBoilerplate generator CLI
schema-extract@stylable/schema-extractnpm versionJSON Schema convertor for Stylable stylesheets
language-service@stylable/language-servicenpm versionLanguage service protocol provider, business logic for the stylable-intelligence extension
build-tools@stylable/build-toolsnpm versionA collection of tools used during build-time by our webpack and rollup plugins

Integrations

Package NamePublished NameLatest VersionDescription
jest@stylable/jestnpm versionJest Stylable processor plugin
node@stylable/nodenpm versionrequire hook and Node module factory
webpack-extensions@stylable/webpack-extensionsnpm versionExperimental features for webpack integration
webpack-plugin@stylable/webpack-pluginnpm versionwebpack (^5.30.0) integration plugin
experimental-loader@stylable/experimental-loadernpm versionexperimental webpack loader - not recommended for production use
rollup-plugin@stylable/rollup-pluginnpm versionRollup (v2.x) integration plugin
esbuild@stylable/esbuildnpm versionesbuild integration plugin

Test-kits

Package NamePublished NameLatest VersionDescription
e2e-test-kit@stylable/e2e-test-kitnpm versionwebpack project runner used for E2E testing
dom-test-kit@stylable/dom-test-kitnpm versionStylable DOM related testing utils
core-test-kit@stylable/core-test-kitnpm versionUtilities used for testing core Stylable operations (processing and transformations)

External Packages

Package NameDescription
stylable-intelligenceVSCode extension providing language services for Stylable

Contributing

Read our contributing guidelines for details on our code of conduct, and the process for submitting pull requests.

License

Copyright (c) 2017 Wix.com Ltd. All Rights Reserved. Use of this source code is governed by a MIT license.