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

@ninetynine/react-flex

v3.0.0-canary-rc2

Published

A small package with flex styles and component

Downloads

12

Readme

React Flex

This package provides a flex component and styles (scss and css).

Documentation is for master

Installation

You can install this packge with either npm or yarn.

npm i @ninetynine/react-flex

An example of how to install the package through NPM.

yarn add @ninetynine/react-flex

An example of how to install the package through Yarn.

Be sure to import the styles into your main style file or into your HTML, and import the component if you wish to use it within your project.

import "~@ninetynine/flex/dist/flex"

An example of how to import into scss.

Usage

After importing the styles and component into your project you'll be able to use the <Flex /> component.

By default it will attempt to position all items inside it to the center of the container. It also has flex-wrap enabled, and flex-direction as row.

<Flex>
    <p>I'm in the middle of the container</p>
</Flex>

An example of how to pass content into Flex by using React children.

Passing content

Content can be passed by putting elements inside the tags, as shown above. Or you can take advantage of the content prop which accepts:

  • a string
  • a number
  • a valid React element
<Flex
    content={(
    	<p>Hello, world!</p>
    )}
/>

An example of how to pass content into Flex using the content prop.

Positioning all content

If you wish to change the positioning of all items within the flex component by using different combinations of the position prop or by passing in the positions as a boolean.

The following position are supported:

start, top, left, right, bottom, end
  • top will pull content to the top of the container
  • left will pull content to the left of the container
  • right will pull content to the right of the container
  • bottom will pull content to the bottom of the container

start and end combine multiple positions:

  • start combines top and left
  • end combines bottom and right

Different ways of using positions:

<Flex
    position={'top left'}
 // position={'start'}
/>

An example of how to pass positions as a string.

<Flex
    top left
 // start
/>

An example of how to pass positions as truthy props.

Positioning single content elements

There are a number of classes that can be added to a content element to change it's behaviour:

  • flex-shrink adds flex-shrink
  • flex-grow adds flex-grow
  • flex-full adds flex-grow but sets it higher than flex-grow so it will expand to fill content
  • flex-no-basis adds flex-grow and disables flex-basis to make elements the same width
  • flex-basis adds flex-basis
  • float-left pushes the element to the left
  • float-right pushes the element to the right

Changing Flex behaviour

Flex comes with a few different options to change general behaviour, for example page will make Flex cover the whole screen (width: 100vw; height: 100vh;).

The following behaviours are supported:

page, padded, row, column
  • page as already described makes Flex fill the whole page
  • padded adds a specified amount of padding to page
  • row makes a few different behaviour changes:
    • Changes flex-direction to row
    • Removes outer margin on the first/last content
    • Removes top and bottom margin on all content
    • Disables flex-wrap
  • column changes flex-direction to column

Adding custom styles and class names to Flex

Flex has the props style and className that directly alter the styles and classes of the containing element. These work the same way as they would on a standard HTML element.

It's worth noting that className will append classes to the already default Flex classes.

The scss style file makes use of three variables:

$gutter, $gutter-half, $gutter-double

By default $gutter is 20px, $gutter-half is half of $gutter- and $gutter-double is double of $gutter, so ideally you should only edit $gutter.

$gutter is used for the margins and paddings within the scss stylesheet. The css is compiled with the defaults.