Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
magic-grid
Advanced tools
Creating a dynamic grid layout has never been easier. With Magic Grid, all you have to do is specify a container and listen for changes. A few other configuration options are available for convenience but it's all very simple. Check it out live on JSFIDDLE. You can read about the implementaion details on Codeburst.
Note: Every item in the grid must have the same width
Get Magic Grid:
npm install magic-grid
Import Magic Grid:
import MagicGrid from "magic-grid"
// or
let MagicGrid = require("magic-grid");
You can also pull Magic Grid directly into your html
CDN
<script src="https://unpkg.com/magic-grid/dist/magic-grid.cjs.js"></script>
<!-- or (minified) -->
<script src="https://unpkg.com/magic-grid/dist/magic-grid.min.js"></script>
NPM
<script src="node_modules/magic-grid/dist/magic-grid.cjs.js"></script>
<!-- or (minified) -->
<script src="node_modules/magic-grid/dist/magic-grid.min.js"></script>
You're good to go! If you used a script tag, the library can be referenced via the global variable, MagicGrid.
let magicGrid = new MagicGrid(...);
magicGrid.listen();
If your container doesn't have any dynamically loaded content i.e., all its child elements are always in the DOM, you should initialize the grid this way:
let magicGrid = new MagicGrid({
container: "#container", // Required. Can be class or id selector
static: true, // Required for static content
animate: true, // Optional
});
magicGrid.listen();
If the container relies on data from an api, or experiences a delay, for whatever reason, before it can render its content in the DOM, you need to let the grid know the number of items to expect:
let magicGrid = new MagicGrid({
container: "#container", // Required. Can be class or id selector
items: 20, // For a grid with 20 items. Required for dynamic content
animate: true, // Optional
});
magicGrid.listen();
config (required): Configuration object
The MagicGrid constructor. Initializes the grid with a configuration object.
let magicGrid = new MagicGrid({
container: "#container", // Required. Class or id of the container.
static: false, // Required for static content. Default: false.
items: 30, // Required for dynamic content. Initial number of items in the container.
gutter: 30, // Optional. Space between items. Default: 25(px)
maxColumns: 5, // Maximum number of colums. Default: Infinite
useMin: true, // Append next element to the shortest column. Default: false.
animate: true, // Animate item positioning. Default: false
});
Positions the items and listens for changes to the window size. All items are repositioned whenever the window is resized.
let magicGrid = new MagicGrid({
container: "#container", // Required. Can be class or id selector
static: true, // Required for static content
animate: true, // Optional
});
magicGrid.listen();
This function is useful in cases where you have to manually trigger a repositioning; for instance, if a new element is added to the container
let magicGrid = new MagicGrid({
container: "#container", // Required. Can be class or id selector
items: 30, // Required for dynamic content.
animate: true, // Optional
});
magicGrid.listen();
// get data from api
// append new element to DOM
// reposition items
magicGrid.positionItems();
FAQs
Super lightweight javascript library for dynamic grid layouts.
The npm package magic-grid receives a total of 3,090 weekly downloads. As such, magic-grid popularity was classified as popular.
We found that magic-grid demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.