1.8.5 • Published 3 years ago

react-aspect-ratio-fence v1.8.5

Weekly downloads
54
License
ISC
Repository
github
Last release
3 years ago

react-aspect-ratio-fence

Build Status codecov NPM version

for more information, please see: Document

Installation

npm i react-aspect-ratio-fence

Components

  • AspectRatioFence (no IE support)

    Set ratio as css custom properties, and calc() the height of elementType's pseudo-element as placeholder. The defailt style will fit the children node into the placeholer.

    propstyperequireddefaultdescription
    elementTypestringfalsedivhtml tag name for the wrap component
    rationumbertrue1The aspect ratio of an image describes the proportional relationship between width and height
    classNamestringfalseundefinedCustom class name
    childrenReactNodefalseundefinedcustom children node
  • AspectRatioFenceLegacy

    Caculate the height of innerElementType base on the width of outerElementType and ratio. The defailt style will fit the children node into the placeholer.

    propstyperequireddefaultdescription
    outerElementTypestringfalsedivhtml tag name for the outer component
    innerElementTypestringfalsedivhtml tag name for the inner component
    rationumbertrue1The aspect ratio of an image describes the proportional relationship between width and height
    classNamestringfalseundefinedCustom class name
    childrenReactNodefalseundefinedcustom children node
  • SquareFence

    Set height of elementType's pseudo-element to the value of elementType's width. The defailt style will fit the children node into the placeholer.

    propstyperequireddefaultdescription
    elementTypestringfalsedivhtml tag name for the wrap component
    classNamestringfalseundefinedCustom class name
    childrenReactNodefalseundefinedcustom children node

Way to Ride

  • Common jS
// import from package entry point
const uc = require('react-aspect-ratio-fence')
require('react-aspect-ratio-fence/css/style.css')

  <uc.AspectRatioFence {...props} />
  <uc.SquareFence {...props} />
// only import specific component
const AspectRatioFence = require('react-aspect-ratio-fence/lib/components/AspectRatioFence')
require('react-aspect-ratio-fence/css/components/AspectRatioFence/style.css')

  <AspectRatioFence {...props} />
  • ESM
// import from package entry point
import { AspectRatioFence, SquareFence } from 'react-aspect-ratio-fence'
import 'react-aspect-ratio-fence/css/style.css'

  <AspectRatioFence {...props} />
  <SquareFence {...props} />
// only import specific component
import AspectRatioFence from 'react-aspect-ratio-fence/es/components/AspectRatioFence'
import 'react-aspect-ratio-fence/css/components/AspectRatioFence/style.css'

  <AspectRatioFence {...props} />

Development by storybook

npm install
npm start storybook
  • configuration files list in .storybook directory
  • story files list in .stories directory

Test with Jest and Puppeteer

npm run test
  • __tests__
    • unit test running by jest
    • use test:update to update jest snapshot
1.8.5

3 years ago

1.8.4

5 years ago

1.8.3

5 years ago

1.8.2

5 years ago

1.8.1

5 years ago

1.8.0

5 years ago

1.7.0

5 years ago

1.5.0

5 years ago

1.2.0

5 years ago

0.0.0

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago