npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cruk/chakra-components

v3.17.0

Published

Chakra UI v2 based components for CRUK applications

Readme

Logo

CRUK Chakra Components 🎨

A Chakra UI v2 based component library that provides styled components following the Cancer Research UK Helix design system 🧬.

NPM Version

📚 Quick Links & Documentation

Using the Library

Quick Start

Depending on your project, you might install the library in the project root directory, or in client:

# Install the package
npm install @cruk/chakra-components

# Install peer dependencies (if you don't already have them)
npm install @chakra-ui/react @emotion/react @emotion/styled framer-motion

NOTE: Not all projects use npm as their package managers - use whichever is appropriate for your project.

Basic Setup

Once added to the project, you can use the ChakraBaseProvider to wrap your application and provide styled based on the crukBrand theme.

import type { AppProps } from "next/app";
import { ChakraBaseProvider, crukBrand } from "@cruk/chakra-components";

const App = ({ Component, pageProps }: AppProps) => (
  <ChakraBaseProvider theme={crukBrand}>
    <Component {...pageProps} />
  </ChakraBaseProvider>
);

export default App;

Contributing 🛠️

Development Setup

After cloning the repository, install the dependencies:

# Clone and setup
git clone https://github.com/CRUKorg/cruk-chakra-components
cd cruk-chakra-components
npm ci

# Start Storybook
npm run storybook

Quick Test

npm run test     # Unit tests
npm run test-ct  # Component tests

Deployment and Releases 🚀

Release Process

This library uses semantic-release with GitHub PR labels to automate versioning and package publishing.

Branch Strategy

  • dev branch: Configured as a prerelease branch with the dev prerelease tag
  • main branch: Configured as a regular release branch

Release Requirements

Important: Only pull requests with the release label will trigger a release. The version type is determined by additional labels.

Creating a Release

  1. Create your pull request and add labels:

    Required label:

    • release - Must be present to trigger any release

    Version labels (choose one):

    • breaking or major - Major release (v1.0.0 → v2.0.0)
    • minor - Minor release (v1.0.0 → v1.1.0)
    • patch - Patch release (v1.0.0 → v1.0.1)

    Optional label:

    • force - Forces a release even when semantic-release detects no changes

    If only the release label is present, it defaults to a patch release.

  2. For main branch releases: Obtain ServiceNow approval

    Important: All releases to the main branch require an approved ServiceNow change request before merging. This is mandatory for production deployments.

  3. Merge your PR to the appropriate branch:

    Important: When merging, do NOT modify the merge commit message. The PR label analyzer requires the default message format "Merge pull request #XXX from..." to extract the PR number. Changing this message will prevent the release from being triggered.

    • Merge to dev for prerelease versions (no ServiceNow required)
    • Merge to main for standard releases (ServiceNow approval required)
  4. The semantic-release system will automatically:

    • Read the PR labels
    • Determine the appropriate version bump
    • Generate release notes
    • Publish to npm
    • Create a GitHub release

Examples

Will trigger a minor release:

  • Labels: release, minor

Will trigger a patch release:

  • Labels: release, patch
  • Labels: release (defaults to patch)

Will trigger a major release:

  • Labels: release, breaking

Will force a release (even with no detected changes):

  • Labels: release, force, minor
  • Labels: release, force, patch

Will NOT trigger any release:

  • No release label present

Manual Release

If needed, you can manually trigger a release:

npm run release

Resources 📖

📄 Licence

MIT © Cancer Research UK