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

react-flexy

v1.0.10

Published

Building fast and realible components base on Flexbox

Downloads

26

Readme


name: Getting Started route: /

A extremely lightweight package to build amazing flex components.

Features

Documentation

Visit https://react-flexy.netlify.app/

Motivation

One of the things nowadays I enjoy is Flexbox. And when it comes with React we can build agnostic components in such an amazing way that leverage the full potential of componentization.

However, dealing with flex properties and build reusable components becomes hard.

It leads to inconsistencies throughout the project. Not to mention the amount of code which is repetitive over the place. Another aspect to mention is sometimes you'd like to customize a component but the API exposed does not allow to do that and you have to go to the implementation details and modify it as you wish. That potentially could break other consumers.

Then you can build those components which are let say 'private' like layout holders which just suit that case and you do not want to build a reusable namish component for that. The problem is when another developer tries to visualize the entire picture by reading the markup.

And guess what? ain't can get any clue about it. No good choice.

This is how Flexy was born, to overcome those situations by giving a meaningful way to build amazing composable UI components.

Installation

npm install react-flexy

Quick start

import Flexy from "react-flexy";

const Horizontally = () => {
  return (
    <Flexy.Horizontal center spaceAll="m">
      <h1>Usage</h1>
      <Content />
    </Flexy.Horizontal>
  );
};

const Vertically = () => {
  return (
    <Flexy.Vertical spaceAll="m">
      <h1>Usage</h1>
      <Content />
    </Flexy.Vertical>
  );
};

Composable

import Flexy from "react-flexy";

const Composable = () => {
  return (
    <Flexy.Horizontal center spaceAll="m">
      <h1>Title</h1>
      <Flexy.Vertical center spaceAll="m">
        <Flexy.Horizontal center spaceAll="m">
          <h1>Another title</h1>
          <Flexy.Vertical center spaceAll="m">
            <h1>Other title</h1>
            <Content />
          </Flexy.Vertical>
        </Flexy.Horizontal>
      </Flexy.Vertical>
    </Flexy.Horizontal>
  );
};

Configurable

import Flexy from "react-flexy";

// You could customize all the spaces,
// the left ones will filled with the default config
const customTokens = {
  spaceXS: "1rem",
  spaceS: "2rem",
  spaceM: "3rem",
  spaceL: "4rem",
};

// Probably you'd like to handle the config in a theme React Context
const Configurable = () => {
  return (
    <Flexy.Horizontal config={customTokens} center spaceAll="m">
      <h1>Title</h1>
    </Flexy.Horizontal>
  );
};

Style extension

import Flexy from "react-flexy";

const StyleExtension = () => {
  return (
    <Flexy.Horizontal addStyle={{ height: "300px" }} center spaceAll="3xl">
      <h1>Title</h1>
    </Flexy.Horizontal>
  );
};