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

factorial-components

v1.1.42

Published

library of factorial components

Downloads

136

Readme

Factorial Components

Library of React components to be used at Factorial.

Two builds: client and server

This package offers two builds of the same components, one optimized for client-side applications and the other optimized for server side rendering.

This is due to the nature of CSS and how it needs to be treated in each case.

Client side build

Default imports are from the client-side build, e.g:

import { Button } from 'factorial-components'

Styles are dynamically injected at runtime thanks to webpack's style-loader

Server side build

To import components from server side simply append /server to your imports, e.g:

import { Button } from 'factorial-components/server'

In this case, CSS is generated at compile time and extracted to a separate css file that needs to be served with your application.

File is available at factorial-components/dist/server/main.css.

Here is an example importing the css file as a string and injecting it to the html served:

  import React from 'react'
  import styles from 'factorial-components/dist/server/main.css'

  export default class YourDocument extends Document {
  render () {
    return (
      <html>
        <Head>
          <title>Your page</title>
          <style>
            {styles}
          </style>
        </Head>
        ...
      </html>
    )
  }
}

Development

yarn storybook will open a storybook on http://localhost:6006

Build

Build both server and client packages with: yarn build

This command will generate a dist folder containing subsequent server and client folders for each case.

Release flow

If you don't have it, install git flow and initialize it in the repo like so: git flow init -d.

To start a new release:

git flow release start <NEW_RELEASE_VERSION>

On the newly created branch modify package.json's version to NEW_RELEASE_VERSION and commit changes:

git ci -am '<NEW_RELEASE_VERSION>'

Finally close the release with :

git flow release finish <NEW_RELEASE_VERSION>

You are done, now simply npm publish it ;)