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

evokit-box

v3.4.0

Published

The content block allows to apply indents, position and more

Downloads

3,590

Readme

EvoKit - Box

The content block allows to apply indents, position and more. Contains one element <Box>


Install

Peer dependencies evokit. More about install

npm install evokit-box --save

Usage

More about usage

import React from 'react';
import { Box } from 'evokit-box';
import 'evokit-box/style.css';

const App = () => (
    <Box box-margin='xs xl'>
        ...
    </Box>
);

Edit box-usage

Props

Also supports other valid props of the React Element. More about use props

<Box />

| Prop name | Default value | Possible value | Description | |------------------------|---------------|----------------|-------------| | box-align | none | none left center right | Horizontal alignment | | box-background | null | Create theme | Background color | | box-border * | null | Create theme | Border color, width and style | | box-border-color * | null | Create theme | Border color | | box-border-width * | none | none xxs xs s m l xl xxl 3xl 4xl 5xl | Border width | | box-border-style * | solid | solid dotted dashed | Border style | | box-display | block | block inline-block inline none none:empty | Display type | | box-height | auto | auto 1-1 | Set the height | | box-margin * | none | none xxs xs s m l xl xxl 3xl 4xl 5xl auto | Indent around block | | box-opacity | null | 0 10 20 30 40 50 60 70 80 90 100 | Set the opacity in % | | box-overflow * | visible | auto hidden scroll visible | Display overflow block content | | box-padding * | none | none xxs xs s m l xl xxl 3xl 4xl 5xl | Indent around an block content | | box-place | null | none top top-left top-right center center-left center-right bottom bottom-left bottom-right | Position place, depending box-position | | box-position * | static | static relative absolute fixed sticky | Positioning method | | box-round * | none | none full xxs xs s m l xl xxl 3xl 4xl 5xl | Corner rounding | | box-width | auto | auto 1-1 *-2 *-3 *-4 *-5 *-6 *-7 *-8 *-9 *-10 | Set the width | | box-zindex | null | none xxs xs s m l xl xxl 3xl 4xl 5xl | Position z-index, depending box-position |

* — prop has advanced params

Customize

This set of css variables is default, if you want to override one or more value, please use the rules css-variable-usage, define them below the css import.

@custom-media --ek-box-media-small only screen and (min-width: 480px);
@custom-media --ek-box-media-medium only screen and (min-width: 768px);
@custom-media --ek-box-media-large only screen and (min-width: 960px);
@custom-media --ek-box-media-wide only screen and (min-width: 1200px);
@custom-media --ek-box-media-huge only screen and (min-width: 1400px);

:root {
    /* prop 'box-padding', 'box-margin' */
    --ek-box-indent-xxs: 5px;
    --ek-box-indent-xs: 10px;
    --ek-box-indent-s: 15px;
    --ek-box-indent-m: 20px;
    --ek-box-indent-l: 25px;
    --ek-box-indent-xl: 30px;
    --ek-box-indent-xxl: 35px;
    --ek-box-indent-3xl: 40px;
    --ek-box-indent-4xl: 45px;
    --ek-box-indent-5xl: 50px;
    /* prop 'box-round' */
    --ek-box-round-xxs: 2px;
    --ek-box-round-xs: 4px;
    --ek-box-round-s: 6px;
    --ek-box-round-m: 8px;
    --ek-box-round-l: 10px;
    --ek-box-round-xl: 12px;
    --ek-box-round-xxl: 14px;
    --ek-box-round-3xl: 16px;
    --ek-box-round-4xl: 18px;
    --ek-box-round-5xl: 20px;
    /* prop 'box-border-width' */
    --ek-box-border-width-xxs: 1px;
    --ek-box-border-width-xs: 2px;
    --ek-box-border-width-s: 3px;
    --ek-box-border-width-m: 4px;
    --ek-box-border-width-l: 5px;
    --ek-box-border-width-xl: 6px;
    --ek-box-border-width-xxl: 7px;
    --ek-box-border-width-3xl: 8px;
    --ek-box-border-width-4xl: 9px;
    --ek-box-border-width-5xl: 10px;
    /* prop 'box-zindex' */
    --ek-box-zindex-xxs: 5;
    --ek-box-zindex-xs: 10;
    --ek-box-zindex-s: 15;
    --ek-box-zindex-m: 20;
    --ek-box-zindex-l: 25;
    --ek-box-zindex-xl: 30;
    --ek-box-zindex-xxl: 35;
    --ek-box-zindex-3xl: 40;
    --ek-box-zindex-4xl: 45;
    --ek-box-zindex-5xl: 50;
}

box-display

  • block - shown as blocky
  • block-inline - block element that is wrapped around by other elements
  • inline - displayed as inline
  • none - remove from a document
  • none:empty - Hide if contain either nothing or only an HTML comment
<Box box-display='none'>
    ...
</Box>

box-align

  • none - No alignment
  • left - Align to the left
  • center - Center alignment
  • right - Align to the right
<Box box-align='center'>
    ...
</Box>

box-margin

The property allows you to set the indentation value for all sides of an element at once or to determine it only for specified sides.

!> DEPRECATED props box-margin-lr and box-margin-tb, please use multi values

Advanced props

  • box-margin-top {1}
  • box-margin-right {2}
  • box-margin-bottom {3}
  • box-margin-left {4}

Multi values (set value separated by a space)

  • box-margin="{1,3} {2,4}"
  • box-margin="{1} {2,4} {3}"
  • box-margin="{1} {2} {3} {4}"

List of values

| Value | CSS var | CSS value | |--------|-----------------------|-----------| | none | --- | 0px | | auto | --- | auto | | xxs | --ek-box-indent-xxs | 5px | | xs | --ek-box-indent-xs | 10px | | s | --ek-box-indent-s | 15px | | m | --ek-box-indent-m | 20px | | l | --ek-box-indent-l | 25px | | xl | --ek-box-indent-xl | 30px | | xxl | --ek-box-indent-xxl | 35px | | 3xl | --ek-box-indent-3xl | 40px | | 4xl | --ek-box-indent-4xl | 45px | | 5xl | --ek-box-indent-5xl | 50px |

<Box box-margin='s' />
<Box box-margin='s m' />
<Box box-margin='s m l' />
<Box box-margin='s m l xl' />
<Box
    box-margin-top='s'
    box-margin-right='m'
    box-margin-bottom='l'
    box-margin-left='xl'
/>

box-padding

The property allows you to set the indentation value for all sides of an element at once or to determine it only for specified sides.

!> DEPRECATED props box-padding-lr and box-padding-tb, please use multi values

Advanced props

  • box-padding-top {1}
  • box-padding-right {2}
  • box-padding-bottom {3}
  • box-padding-left {4}

Multi values (set value separated by a space)

  • box-padding="{1,3} {2,4}"
  • box-padding="{1} {2,4} {3}"
  • box-padding="{1} {2} {3} {4}"

List of values

| Value | CSS var | CSS value | |--------|-----------------------|-----------| | none | --- | 0px | | xxs | --ek-box-indent-xxs | 5px | | xs | --ek-box-indent-xs | 10px | | s | --ek-box-indent-s | 15px | | m | --ek-box-indent-m | 20px | | l | --ek-box-indent-l | 25px | | xl | --ek-box-indent-xl | 30px | | xxl | --ek-box-indent-xxl | 35px | | 3xl | --ek-box-indent-3xl | 40px | | 4xl | --ek-box-indent-4xl | 45px | | 5xl | --ek-box-indent-5xl | 50px |

<Box box-padding='s' />
<Box box-padding='s m' />
<Box box-padding='s m l' />
<Box box-padding='s m l xl' />
<Box
    box-padding-top='s'
    box-padding-right='m'
    box-padding-bottom='l'
    box-padding-left='xl'
/>

box-round

The property allows you to set the fillet value for all corners of the element at the same time or to determine it only for the specified angle.

!> DEPRECATED props box-round-top, box-round-right, box-round-bottom and box-round-left, please use multi values

Advanced props

  • box-round-top-left {1}
  • box-round-top-right {2}
  • box-round-bottom-right {3}
  • box-round-bottom-left {4}

Multi values (set value separated by a space)

  • box-round="{1,3} {2,4}"
  • box-round="{1} {2,4} {3}"
  • box-round="{1} {2} {3} {4}"

List of values

| Value | CSS var | CSS value | |--------|-----------------------|-----------| | none | --- | 0px | | full | --- | 50% | | xxs | --ek-box-round-xxs | 2px | | xs | --ek-box-round-xs | 4px | | s | --ek-box-round-s | 6px | | m | --ek-box-round-m | 8px | | l | --ek-box-round-l | 10px | | xl | --ek-box-round-xl | 12px | | xxl | --ek-box-round-xxl | 14px | | 3xl | --ek-box-round-3xl | 16px | | 4xl | --ek-box-round-4xl | 18px | | 5xl | --ek-box-round-5xl | 20px |

<Box box-round='s' />
<Box box-round='s m' />
<Box box-round='s m l' />
<Box box-round='s m l xl' />
<Box
    box-round-top-left='s'
    box-round-top-right='m'
    box-round-bottom-right='l'
    box-round-bottom-left='xl'
/>

box-width

  • auto - value: auto
  • See table, for example: 3-4 = 75%

| |1|2|3|4|5|6|7|8|9|10| |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| |1|100%|50%|33.33%|25%|20%|16.66%|14.28%|12.5%|11.11%|10%| |2|---|100%|66.66%|50%|40%|33.33%|28.57%|25%|22.22%|20%| |3|---|---|100%|75%|60%|50%|42.85%|37.5%|33.33%|30%| |4|---|---|---|100%|80%|66.66%|57.14%|50%|44.44%|40%| |5|---|---|---|---|100%|83.33%|71.42%|62.5%|55.55%|50%| |6|---|---|---|---|---|100%|85.71%|75%|66.66%|60%| |7|---|---|---|---|---|---|100%|87.5%|77.77%|70%| |8|---|---|---|---|---|---|---|100%|88.88%|80%| |9|---|---|---|---|---|---|---|---|100%|90%| |10|---|---|---|---|---|---|---|---|---|100%|

<Box box-width='3-4'>
    ...
</Box>

box-height

  • auto - value: auto
  • 1-1 - value: 100%
<Box box-height='1-1'>
    ...
</Box>

box-position

The property allows you to set the type of positioning, location place on all sides and z-index

Advanced props

Multi values (set value separated by a space)

  • box-position="{1}"
  • box-position="{1} {2}"
  • box-position="{1} {2} {3}"
<Box box-position='absolute' />
<Box box-position='absolute center' />
<Box box-position='absolute center xs' />

box-place

Use with prop box-position

List of values

| Value | Description | |-----------------|--------------------------| | none | Reset placement | | top | Center top placement | | top-left | Left top placement | | top-right | Right top placement | | center | Center placement | | center-left | Left center placement | | center-right | Right center placement | | bottom | Center bottom placement | | bottom-left | Left bottom placement | | bottom-right | Right bottom placement |

<Box box-position='absolute' box-place='center'>
    ...
</Box>

box-zindex

Use with prop box-position

List of values

| Value | CSS var | CSS value | |--------|-----------------------|-----------| | none | --- | 0 | | xxs | --ek-box-zindex-xxs | 5 | | xs | --ek-box-zindex-xs | 10 | | s | --ek-box-zindex-s | 15 | | m | --ek-box-zindex-m | 20 | | l | --ek-box-zindex-l | 25 | | xl | --ek-box-zindex-xl | 30 | | xxl | --ek-box-zindex-xxl | 35 | | 3xl | --ek-box-zindex-3xl | 40 | | 4xl | --ek-box-zindex-4xl | 45 | | 5xl | --ek-box-zindex-5xl | 50 |

<Box box-position='absolute' box-zindex='xs'>
    ...
</Box>

box-overflow

The property allows you to set the value for all axes at the same time or to determine it only for the specified axis

Advanced props

  • box-overflow-x {1}
  • box-overflow-y {2}

Multi values (set value separated by a space)

  • box-overflow="{1} {2}"

List of values

  • auto - Scroll bars are added only when needed
  • hidden - Only the area inside the element is displayed, the rest will be hidden
  • scroll - Scroll bars are always added
  • visible - The entire content of the element is displayed, even beyond the specified height and width
<Box box-overflow='scroll' />
<Box box-overflow='visible scroll' />
<Box box-overflow-x='visible' box-overflow-y='scroll' />

box-border

!> DEPRECATED props box-border-lr and box-border-tb, please use the separately box-border-left and box-border-right or box-border-top and box-border-bottom

Advanced props

  • box-border-top
  • box-border-right
  • box-border-bottom
  • box-border-left

Multi values (set value separated by a space)

  • box-border="{1}"
  • box-border="{1} {2}"
  • box-border="{1} {2} {3}"

{1} - color, {2} - width, {3} - style

<Box box-border="{THEME_NAME}" />
<Box box-border="{THEME_NAME} xs" />
<Box box-border="{THEME_NAME} xs dotted" />

<Box box-border-top="{THEME_NAME}" />
<Box box-border-top="{THEME_NAME} xs" />
<Box box-border-top="{THEME_NAME} xs dotted" />

Set the THEME_NAME depending on the theming

box-border-width

The property allows you to set the border width for all sides of an element at once or to determine it only for specified sides.

Advanced props

  • box-border-width-top {1}
  • box-border-width-right {2}
  • box-border-width-bottom {3}
  • box-border-width-left {4}

Multi values (set value separated by a space)

  • box-border-width="{1,3} {2,4}"
  • box-border-width="{1} {2,4} {3}"
  • box-border-width="{1} {2} {3} {4}"

List of values

| Value | CSS var | CSS value | |--------|------------------------------|-----------| | none | --- | 0px | | xxs | --ek-box-border-width-xxs | 1px | | xs | --ek-box-border-width-xs | 2px | | s | --ek-box-border-width-s | 3px | | m | --ek-box-border-width-m | 4px | | l | --ek-box-border-width-l | 5px | | xl | --ek-box-border-width-xl | 6px | | xxl | --ek-box-border-width-xxl | 7px | | 3xl | --ek-box-border-width-3xl | 8px | | 4xl | --ek-box-border-width-4xl | 9px | | 5xl | --ek-box-border-width-5xl | 10px |

<Box box-border-width='s' />
<Box box-border-width='s m' />
<Box box-border-width='s m l' />
<Box box-border-width='s m l xl' />
<Box
    box-border-width-top='s'
    box-border-width-right='m'
    box-border-width-bottom='l'
    box-border-width-left='xl'
/>

box-border-color

The property allows you to set the border color for all sides of an element at once or to determine it only for specified sides.

Advanced props

  • box-border-color-top {1}
  • box-border-color-right {2}
  • box-border-color-bottom {3}
  • box-border-color-left {4}

Multi values (set value separated by a space)

  • box-border-color="{1,3} {2,4}"
  • box-border-color="{1} {2,4} {3}"
  • box-border-color="{1} {2} {3} {4}"
<Box box-border-color='{THEME_NAME}' />
<Box box-border-color='{THEME_NAME} {THEME_NAME}' />
<Box box-border-color='{THEME_NAME} {THEME_NAME} {THEME_NAME}' />
<Box box-border-color='{THEME_NAME} {THEME_NAME} {THEME_NAME} {THEME_NAME}' />
<Box
    box-border-color-top='{THEME_NAME}'
    box-border-color-right='{THEME_NAME}'
    box-border-color-bottom='{THEME_NAME}'
    box-border-color-left='{THEME_NAME}'
/>

Set the THEME_NAME depending on the theming

box-border-style

The property allows you to set the border style for all sides of an element at once or to determine it only for specified sides.

Advanced props

  • box-border-style-top {1}
  • box-border-style-right {2}
  • box-border-style-bottom {3}
  • box-border-style-left {4}

Multi values (set value separated by a space)

  • box-border-style="{1,3} {2,4}"
  • box-border-style="{1} {2,4} {3}"
  • box-border-style="{1} {2} {3} {4}"

Values

  • solid - solid style (default)
  • dotted - dotted style
  • dashed - dashed style
<Box box-border-style='solid' />
<Box box-border-style='solid dotted' />
<Box box-border-style='solid dotted dashed' />
<Box box-border-style='solid dotted dashed solid' />
<Box
    box-border-style-top='solid'
    box-border-style-right='dotted'
    box-border-style-bottom='dashed'
    box-border-style-left='solid'
/>

box-background

<Box box-background='{THEME_NAME}'>
    ...
</Box>

Set the THEME_NAME depending on the theming

box-opacity

  • 0 - value: 0
  • 10 - value: 0.1
  • 20 - value: 0.2
  • 30 - value: 0.3
  • 40 - value: 0.4
  • 50 - value: 0.5
  • 60 - value: 0.6
  • 70 - value: 0.7
  • 80 - value: 0.8
  • 90 - value: 0.9
  • 100 - value: 1
<Box box-opacity='50'>
    ...
</Box>

box-empty

!> In version [email protected] DEPRECATED prop box-empty='hidden', please use box-display='none:empty'

The <Box> will be hidden display: none that contain either nothing or only an HTML comment.

<Box box-empty='hidden'>
    {null}
</Box>