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 🙏

© 2024 – Pkg Stats / Ryan Hefner

reactive-bulma

v4.0.10

Published

A component library based on React, Bulma, Typescript and Rollup

Downloads

177

Readme

Component library based on React, Bulma, Typescript and Rollup

Table of contents

Purpose

After studying an Udemy course about Typescript, I wanted to start a new project to practice my new knowledge in a meaningful tool. Therefore, I began this project to understand how to create a component library and investigate the best ways to maintain and nourish it as any professional-level alternatives.

Now I have finished (Jan 31th) the last story related to my proposed roadmap; I will change the repo's objectives to the following:

  • Check every new issues raised by users who found new bugs (of any kind) or related to new components or feature improvements of the existing ones.
  • Update dependencies every week, creating alongside its related PR, branch, and PR to maintain track of those updates.
  • Include ReactiveBulma's components as part of my full-stack app MyPets, where I now have code that I can get rid of and, in that process, find new opportunities to enhance components' usability.

Status

Npm Version Npm Bundle Size Npm Downloads Netlify Status Code Coverage Quality Gate Status Maintainability Rating Security Rating Technical Debt Known Vulnerabilities GitHub Repo stars GitHub commit activity GitHub last commit Semantic Commits Contributor Covenant

Dependencies

react dependency bulma dependency material design dependency typescript dependency rollup dependency postcss dependency storybook dependency semantic release dependency babel dependency jest dependency react testing library dependency lint-staged dependency prettier dependency eslint dependency husky dependency hygen dependency

Quick start

Several quick start options are available:

  • Clone the repo: git clone https://github.com/NicolasOmar/reactive-bulma.git.
  • Install with npm: npm install reactive-bulma@latest
    • Before cloning this repo, I recommend installing Node >=20.10.0 to install packages.

Folder structure

In case you have cloned the repo, it will show you the following folders:

  • _templates: Dedicated to Hygen configuration and implementation files. Dedicated to creating new components from customizable templates.
  • .github: Github Actions files used to run post-merge. commits like unit test coverage collection.
  • .husky: Dedicated to Husky configuration files.
  • .storybook: Dedicated to Storybook configuration files.
  • src:
    • components: Location of all used components, using Atomic Design hierarchy structure
      • atoms (from v1.0.0).
      • molecules (from v2.0.0).
      • organisms (from v3.0.0).
    • design: Location of common design tokens (coded on .mdx files) displayed above components sections in the storybook's instance.
    • functions: Dedicated to parsers and helper functions for repetitive logic.
    • interfaces: Dedicated to components and functions typing interfaces.
    • types: Dedicated to Bulma's style typesetting (part of the component's properties).

Documentation

Reactive bulma's documentation, included in this repo in the root directory, is built with Storybook and publicly hosted on Netlify at https://reactivebulma.netlify.app/. The docs may also be run locally.

Running documentation locally

  • Go to the reactive-bulma folder (where you cloned the repo before).
  • Open a console and run npm install to install the Node.js dependencies, including Storybook (the site builder).
  • Run npm start.
  • Wait until a new tab opens with url http://localhost:6006/ in your browser.
    • If you want to initiate it in the background, you can run npm run start:cli.

Learn more about Storybook by reading its documentation.

Usage

import React from 'react'
import { Button } from 'reactive-bulma'

const App = () => (
  <Button text="This is a test" />
);

To see all component variants and code snippets go to the Documentation section.

If you want to create a custom component for your forked Reactive Bulma version, the easiest way is by running the creation script I made, which instructions are here.

How to create a template component

After some time, I understood that creating component files is a repetitive and time-consuming task, so I made issue #180 to implement a library called Hygen, whose function is to provide a way to generate templates for generic files that can consume time at the long term. You can run the script by the following steps:

  • Open a console and run npm run create in your console.
  • An will assistant will appear asking about how your component will be named. You can answer with text separated with spaces ( ), underscores (_), or hyphens (-)
  • Then, the assistant will ask in which folder you want to create it (based on its type following Atomic Design hierarchy structure)
  • Finally, the script should create all base files to reduce time and focus on custom implementation.

Learn more about Hygen by reading its documentation.

How to update all dependencies

In case you want to make your fork, I recommend you to update at least weekly using a custom command npm run update, which will run the following commands in order:

  • update:deps: Using a npm-check-updates script, you will be able to choose which dependencies want to update to the latest version
  • update:doctor: Runs build and test checks to ensure your update will not break any current build.
  • update:storybook: Updates storybook to the latest version (following its recommended command) followed for a build check (similar to update:doctor, but for Storybook only)

Versioning

After investigating semantic-release documentation (refer to #3) and finishing the last version according to the original roadmap, I decided to give the following meaning to project's versions after v4.0.0:

  • Major versions (5.0.0, 6.0.0 and beyond) will refer to milestones achievement and significant changes on existing components that will need extra attention before the update.
  • Minor versions (4.1.0, 4.2.0, and so on) will refer to new components or modifications of existing ones.
  • Patch versions (4.0.1, 4.0.2, and so on) will refer to bug fixes or weekly dependencies updates.

To check the current project's status, go to the Roadmap section.

Branching

Given the mentioned release logic, main is the only static branch, and each developed feature or fix will have a unique branch with its PR and a merge commit following semantic versioning and semantic commits specifications.

Roadmap

After finishing the last story related to v4.0.0, ReactiveBulma's current work is now focused on updating its dependencies in a weekly manner, as well as checking every issue or discussion raised by visitors who are interested in improving the project by proposing new ideas in shape of tickets or issues with its related PR.

In case you want actual short-term status, go to the project board (powered by GitHub Projects).

| Version | Progress | Open issues | Closed issues | :---: | :---: | :---: | :---: | | v1.0.0 | v1.0.0, progress | v1.0.0, open | v1.0.0, closed | | v2.0.0 | v2.0.0, progress | v2.0.0, open | v2.0.0, closed | | v3.0.0 | v3.0.0, progress | v3.0.0, open | v3.0.0, closed | | v4.0.0 | v4.0.0, progress | v4.0.0, open | v4.0.0, closed |

In case you want the detailed list of current and future features, go to the roadmap document.

Changelog

The changelog (powered by semantic-release) is regularly updated to reflect what's changed in each new release.

Contributing

If you're interested in contributing to Reactive Bulma, please read our contributing docs before submitting a pull request.

Credit

Bulma was beautifully crafted by @jgthms

License

Code released under the MIT License.