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.
- Scopes styles to components so they don't "leak" and clash with other styles.
- Enables custom pseudo-classes and pseudo-elements that abstract the internal structure of a component. These can then be styled externally.
- Cuts down on the resulting CSS bundles using "rule-shaking" and other optimizations
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.
There are two options for installing Stylable:
- Create a new project based on Stylable react-scripts, using create-react-app
- Install Stylable and its webpack plugin to an existing webpack based project
For details on both options, see Install & Configure.
- Mr. Potato Bruce - A small app showcasing Stylable, created using @stylable/react-scripts
- Manual Vue Integration - Simple example showing how to manually integrate Stylable into a Vue project (proof of concept)
- Various webpack project setups - An example of possible webpack configurations
This repository is a mono-repo
containing multiple packages
that together comprise the Stylable ecosystem. It uses Lerna and Yarn workspaces to manage the various packages and their dependencies.
Package Name | Published Name | Latest Version | Description |
---|---|---|---|
core | @stylable/core |
Core CSS preprocessor | |
runtime | @stylable/runtime |
Runtime browser code | |
optimizer | @stylable/optimizer |
Production mode optimizer | |
module-utils | @stylable/module-utils |
Stylable CommonJS module generator |
Package Name | Published Name | Latest Version | Description |
---|---|---|---|
cli | @stylable/cli |
Used for managing Stylable stylesheets in a project | |
react-scripts | @stylable/react-scripts |
create-react-app boilerplate generator scripts |
|
schema-extract | @stylable/schema-extract |
JSON Schema convertor for Stylable stylesheets | |
stylable.io | - | - | source package for the stylable.io official website |
Package Name | Published Name | Latest Version | Description |
---|---|---|---|
jest | @stylable/jest |
Jest Stylable processor plugin | |
node | @stylable/node |
require hook and Node module factory |
|
webpack-extensions | @stylable/webpack-extensions |
Experimental features for webpack integration |
|
webpack-plugin | @stylable/webpack-plugin |
webpack (v4.x ) integration plugin |
Package Name | Published Name | Latest Version | Description |
---|---|---|---|
e2e-test-kit | @stylable/e2e-test-kit |
webpack project runner used for E2E testing |
|
dom-test-kit | @stylable/dom-test-kit |
Stylable DOM related testing utils | |
core-test-kit | @stylable/core-test-kit |
Utilities used for testing core Stylable operations (processing and transformations) |
Package Name | Description |
---|---|
stylable-intelligence | VSCode extension providing language services for Stylable |
Read our contributing guidelines for details on our code of conduct, and the process for submitting pull requests.
Copyright (c) 2017 Wix.com Ltd. All Rights Reserved. Use of this source code is governed by a BSD license.