Socket
Socket
Sign inDemoInstall

chromatic

Package Overview
Dependencies
301
Maintainers
4
Versions
921
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    chromatic

Automate visual testing across browsers. Gather UI feedback. Versioned documentation.


Version published
Weekly downloads
1.4M
increased by9.18%
Maintainers
4
Install size
27.8 MB
Created
Weekly downloads
 

Package description

What is chromatic?

The npm package 'chromatic' is a tool designed to help developers automate visual testing for their UI components. It captures snapshots of components and runs visual regression tests to ensure that changes do not break the visual appearance of applications. Chromatic integrates with Storybook to manage component libraries and streamline the testing process.

What are chromatic's main functionalities?

Visual Testing

This code sample demonstrates how to add a visual test for a simple button component using Chromatic with Storybook. The 'withChromatic' decorator is used to enable Chromatic's snapshot capabilities for the component.

import { storiesOf } from '@storybook/react';
import { withChromatic } from 'chromatic/isolated';

storiesOf('Button', module)
  .addDecorator(withChromatic)
  .add('default', () => <button>Click me</button>);

Snapshot Management

This code configures Chromatic to take snapshots after a delay and at specified screen widths, facilitating responsive visual testing. It helps in managing how snapshots are captured based on different device widths.

import { configure } from '@storybook/react';
import { setChromaticOptions } from 'chromatic';

setChromaticOptions({
  delay: 300, // Delay in ms before taking a snapshot
  widths: [320, 1200] // Array of widths for responsive testing
});

configure(() => require('./stories'), module);

Other packages similar to chromatic

Readme

Source

Chromatic CLI

Publishes your Storybook to Chromatic and kicks off tests if they're enabled.

Published on npm Tested with Chromatic

Documentation

👉 Read the Chromatic CLI docs

📝 View the Changelog

Contributing

Contributions of any kind are welcome! We're available to chat via the Intercom widget on the documentation site.

Compatibility & versioning

Compatibility is guaranteed between this package and Chromatic like so:

  • Production Chromatic ensures it’s compatible with what’s on npm
  • What's on the main branch is equal to what's published on npm
  • This package ensures it’s compatible with production Chromatic

To facilitate upgrading in the future, removing and adding features, this is the process:

  • Any new features will have to be on Chromatic production before they could be used in this package
  • We can add feature flags to be able to test new functionality
  • Chromatic production can not remove any features this package depends on until after the usage has been removed from this package in addition to a grace period to allow users to upgrade

Publishing a new version to npm

Before publishing, make sure you've done the following:

  • yarn build
  • Updated CHANGELOG.md
  • Committed and pushed everything
  • Decide on the proper semver bump (major/minor/patch)
Doing a canary or next release

We have two types of pre-releases: canary and next. canary releases are intended for development purposes and should not be used in production, as they may only work against a staging or dev environment. next releases should be valid, working releases that can potentially be used by early adopters of new features, for example to handle a support request.

As a consumer, you should not specify a tag (e.g. chromatic@next) in your package dependencies, but rather a specific version number (e.g. chromatic@5.6.2-next.0). Otherwise you'll end up with a broken build when we remove or update the tag.

For the first canary (or next) release, bump the version like so (depending on the semver bump):

npm version <premajor|preminor|prepatch> --preid canary

For consecutive canary releases on the same version:

npm version prerelease --preid=canary

Then push and publish:

git push --follow-tags
npm publish --tag canary

Make sure to replace canary with next if appropriate.

Doing a latest release

A final release is automatically tagged latest by npm.

npm version <major|minor|patch>
git push --follow-tags
npm publish

And finally, remove the canary and/or next tag, if any:

npm dist-tag rm chromatic canary

This ensures we can safely do a new canary or next release later, without anyone getting an unexpected update.

Keywords

FAQs

Last updated on 30 Sep 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc