
Product
A Fresh Look for the Socket Dashboard
We’ve redesigned the Socket dashboard with simpler navigation, less visual clutter, and a cleaner UI that highlights what really matters.
react-staggered-grid
Advanced tools
This is a react component that positions and arranges your items in a staggered grid
This is a react component that positions and arranges your items in a staggered grid
https://wakaztahir.github.io/react-staggered-grid
npm i react-staggered-grid
Here columns will be generated automatically according to fixed width of each item !
import {
StaggeredAlignment,
StaggeredGrid,
StaggeredGridItem,
StaggeredGridItemFunctional,
StaggeredItemSpan
} from "react-staggered-grid";
<StaggeredGrid
columns={totalColumns} // number of columns , don't pass if you want it to be gridWidth / columnWidth
columnWidth={columnWidth} // width of each column , don't pass if you want it to be gridWidth / columns
// by default gridWidth = columns * columnWidth
style={{width: "100%"}} // when width of the grid is fixed in pixels , use gridWidth prop
useElementWidth={true} // this would force css styled width (100%) calculated using a ref
>
{items.map((item, index) => (
<StaggeredGridItem // or use StaggeredGridItemFunctional
index={index}
spans={span}
style={{transition: "left 0.3s ease,top 0.3s ease"}}
itemHeight={item.height + 8} // when not given , a ref is used to get element height
>
<div style={{
width: item.width,
height: item.height + "px",
background: "skyblue",
textAlign: "center",
margin: "8px",
display: "flex",
flexDirection: "column",
alignItems: "center",
justifyContent: "center"
}} />
</StaggeredGridItem>
))}
</StaggeredGrid>
This prop adjusts width of each column on the grid This prop is required if gridWidth
&& columns
props are not being
passed
This prop adjusts the number of columns , If you want the columns to be adjusted according to width , You don't need to
pass this prop , just pass columns
and gridWidth
Custom width of the grid , if you don't know width of the grid , pass useElementWidth = true
and set css style width
to be 100%
This is for gridWidth ,when using css styled width , this should be true If you pass columns
&& columnWidth
, grid
width would be columns
* columnWidth
but if you want to force gridWidth to be element width (css styled width) , you
can pass useElementWidth = true
and it will get width of the grid using a ref on the parent element
Increase the gap between items horizontally , This also decreases column width to make space for the gap
columnWidth = columnWidth - horizontalGap * 2
When true , horizontalGap will be subtracted from column width making column width to be decreased to allow for horizontal gap , Useful when all columns must fit inside gridWidth regardless of horizontal gap !
Increase the gap between items vertically
This should be mostly centered , unless you have a custom gridWidth and you'd like it to translate each item according to the given alignment
just sets the className on the element of the grid
Children of the grid , should be StaggeredGridItem
CSS properties
It limits item span into range (0-total column count) , true by default
Since StaggeredGrid uses translate , it translates items on the page using position : relative
on the parent Which
makes the parent element has zero height when it contains height this is by default true , which means that when the
grid items are positioned , It tracks the total height and sets it later
when true , reposition will be run when the window is resized , false by default.
There are two types of items : StaggeredGridItem
& StaggeredGridItemFunctional
, the Functional component has
Functional stands for Functional component which uses a useStaggeredItemPosition
hook to get the item position on the
grid and transforms it into css properties , You can create a custom StaggeredGridItem
functional component using that
hook and transform the css properties as you desire , look for the implementation of StaggeredGridItemFunctional
Initial width of the item , you don't need to pass it usually its column width
Initial translateX of the item
Initial translateY of the item
If you know the item height beforehand , you should pass it StaggeredGridItem uses ref to get element height , if you pass the height It won't use a ref
Span of the item , It can be full StaggeredItemSpan.Full
or in range (1 - total column count)
This is the index of the item in the array
Any css properties
className for the item
Children of the item
This is a function which gets passed a parameter item position which contains item width , x and y which is transformed into props (attributes) for the staggered grid item element It basically tells how to style elements with item position
By default, it uses css property left
& top
to translate each item with position : absolute
relative to
parent
FAQs
This is a React component that positions and arranges your items in a staggered grid
The npm package react-staggered-grid receives a total of 72 weekly downloads. As such, react-staggered-grid popularity was classified as not popular.
We found that react-staggered-grid demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
We’ve redesigned the Socket dashboard with simpler navigation, less visual clutter, and a cleaner UI that highlights what really matters.
Industry Insights
Terry O’Daniel, Head of Security at Amplitude, shares insights on building high-impact security teams, aligning with engineering, and why AI gives defenders a fighting chance.
Security News
MCP spec updated with structured tool output, stronger OAuth 2.1 security, resource indicators, and protocol cleanups for safer, more reliable AI workflows.