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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@undercoatcss/grid

v0.5.1

Published

Grid component for the Undercoat CSS Framework

Downloads

5

Readme

@undercoatcsss/grid

Grid is a component of the Undercoat.css framework.

Travis (.org) npm (scoped) WCAG 2.0 Level AA schema.org

CAUTION! IT'S UNDER HEAVY DEVELOPMENT CURRENTLY! DON'T USE IT IN PRODUCTION!

Description

Grid is a logically and functionally independent reusable page component (block), which represents a grid system for designing a layout of the pages.

Grid is based on 24 columns (tracks) by default. It's like 12 columns but more flexible since it can be split into 2, 3, 4 and even 6, 8 and 12 equal parts! But you can configure the number of columns following your requirements.

Installation

NPM

npm install @undercoatcss/grid

Usage

After installation, you can link or import the assets into your project:

CDN

<link rel="stylesheet" href="https://unpkg.com/@undercoatcss/grid@latest/dist/grid.min.css">

Webpack

import '@undercoatcss/grid/grid.css';

Settings

The default grid settings are stored in CSS custom properties and are below (px units):

  --grid-columns-number: 24; /* columns number */
  --grid-columns-width-min: 13;    /* column (track) min width */
  --grid-columns-width-max: 50;    /* column (track) max width */
  --grid-width-max: 1920;    /* grid wrapper max width */
  --grid-column-gap: 0;      /* columns gutter (gap) width */
  --grid-margin-inline: 2vw; /* column grid inline margins */

Min width of the grid wrapper is set automatically by multiplying of --grid-columns-number on --grid-columns-width-min custom properties (variables). Max width is stored in --grid-width-max custom property and can be changed manually.

Don't use equal values for --grid-columns-width-min and --grid-columns-width-max custom properties because it leads to fixed column width, which isn't appropriate for the mobile first approach!

Layout templates

The grid is based on CSS Grid Layout Module Level 1. The grid-template-columns property is used for specifying the track list for the grid columns. Use the grid-template-areas property to add specific page layouts over the grid columns.

Columns help keep the UI svelte and template areas make UI components positioning simple as never before. Just specify page areas for placing UI components.

Subgrids

Due to the fact that Subgrids section from CSS Grid Layout Module Level 2 specification has a weak browsers support, we have to forward subgrids manually in grid container items if it's necessary.

Add the utility CSS class .subgrid to a grid item in the markup (HTML) to make it a new grid container with the same number of columns. Make sure the value of the --grid-columns-number custom property in this context is equal to the number of the columns which grid item takes.

Column percentage size custom property

There's a special custom property --grid-column-size with a dynamic automatically calculated value. It returns a column size in percents based on the value of current columns number specified in the --grid-columns-number custom property for a current context.

It's useful to place items on the virtual grid in a non-grid container placed itself on the grid. In the example below each flex item will have a width equal to three columns of the grid and will be aligned to it:

.flex-container {
  grid-column: grid-start / grid-end;
  display: flex;
}

.flex-item {
  display: flex;
  justify-content: space-between;
  flex-basis: calc(var(--grid-column-size) * 3);
}

Expanding blocks

On the large screens, it can be appropriate to limit the width of the content area and make it less than the viewport width. For example, to make centered horizontally content area 1200px width with a 20-columns grid set --grid-columns-width-max value to 50.

In this case, you can expand a grid item to the full --grid-width-max width by adding .grid__itemExpand CSS class to it.

.subgrid and .grid__itemExpand can be combined to get an expanded block with a subgrid.