Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Flexboxgrid | 9,002 | 1,361 | 194 | 3 years ago | 14 | August 12, 2016 | 65 | other | HTML | |
Grid based on CSS3 flexbox | ||||||||||
Flex Layout | 5,917 | 5,089 | 934 | a month ago | 41 | June 30, 2022 | 50 | mit | TypeScript | |
Provides HTML UI layout for Angular applications; using Flexbox and a Responsive API | ||||||||||
Split | 5,630 | 248 | 132 | 3 months ago | 43 | January 07, 2022 | 158 | mit | JavaScript | |
Unopinionated utilities for resizeable split views | ||||||||||
Lost | 4,528 | 1,743 | 181 | a month ago | 48 | August 16, 2022 | 21 | mit | JavaScript | |
LostGrid is a powerful grid system built in PostCSS that works with any preprocessor and even vanilla CSS. | ||||||||||
Awesome Css Learning | 2,923 | 14 days ago | 5 | other | ||||||
A tiny list limited to the best CSS Learning Resources | ||||||||||
Css Gridish | 2,212 | 4 years ago | 17 | other | CSS | |||||
Automatically build your grid design’s CSS Grid code, CSS Flexbox fallback code, Sketch artboards, and Chrome extension. | ||||||||||
Grd | 2,209 | 7 | 3 | a month ago | 11 | March 16, 2018 | 9 | mit | HTML | |
A CSS grid framework using Flexbox. Only 321 bytes (Gzipped). | ||||||||||
Grid | 2,059 | 134 | 72 | 4 years ago | 10 | August 06, 2019 | mit | JavaScript | ||
This package has moved and renamed | ||||||||||
Fukol Grids | 1,453 | 6 years ago | October 25, 2016 | 7 | other | CSS | ||||
Reflexbox | 1,363 | 2 | 2 | 5 years ago | 5 | July 20, 2016 | JavaScript | |||
Moved to https://rebassjs.org |
CSS Gridish takes design specs of your product’s grid and builds out several resources for your team to use:
This tool is not a grid system with a grid already designed for you. Instead, CSS Gridish builds all of the resources for the grid your team designed.
We hope it helps teams adapt CSS Grid sooner and enables more complex layouts. To show how versatile the tool is, we have examples of grids from Bootstrap, Carbon Design System, and Material Design.
The truth is that many enterprise projects can’t afford to drop support for browsers that do not support CSS Grid Layout yet. This tool takes your grid’s design specs and builds a slim CSS Grid Layout implementation and a fallback to CSS Flexbox support.
Requires Node v8.2.0 or higher, which includes npm and npx.
css-gridish.json
in your project root. See the config documentation or an example config for help.npx css-gridish
.npm install css-gridish
.scripts: {build: "css-gridish"}
in your package.json
.npm run build
.Your CSS and README.md
with class documentation will be built into ./css-gridish/
.
The config file is where all of your design system specs live. See this example for help. Edit your css-gridish.json
to have all generated grid content match your design system:
{
"prefix": "gridish", // Custom prefix for all classes and filenames
"breakpoints": {
// Class name for a breakpoint
"sm": {
"breakpoint": 20, // Min-width for media query (number in rem)
"columns": 4, // Quantity of columns (number)
"gutter": "2rem", // Space between columns (rem string, px string, vw string or 0)
"margin": "3vw" // Horizontal margin of grid container (rem string, px string, vw string or 0)
},
...
"max": {
"breakpoint": 100,
"columns": 12,
"gutter": "4rem",
"margin": "5vw"
}
},
"extraArtboards": {
"xlg": 100 // Additional breakpoint for the Sketch file (number in rem)
},
"rem": 16, // Base rem unit for all measurements (number in px)
"rowHeight": 0.5, // Height of a fixed row (number in rem)
"rows": 30, // Quantity of row variables (number)
"paths": {
"route": "css-gridish", // Route that files save in from project root (optional, use `""` for project root, `"css-gridish"` is default)
"intro": "intro.md" // Path to any markdown you want inserted at the top of your README.md documentation (optional)
}
}
Tip: For the best results in Sketch, we recommend you make your grid breakpoints, margin, and gutter divisible by the row height.
Required: Even if your design specs do not change between breakpoints, you need to list the max-width breakpoint in the breakpoints
object.
The first breakpoint min-width media query is not used to save kilobytes, but we recommend stating it anyways for future artboard-making tools.
If you are supporting browsers that lack CSS Grid Layout support, you can use css-gridish/yourPrefix-legacy.min.css
and the legacy classes detailed in the README.md
. With the legacy file and classes, the browsers that do not support the final CSS Grid Legacy spec will fallback to a CSS Flexbox alternative. The CSS Flexbox alternative supports embedded subgrids that still reflect the overall grid system’s column structure.
One of the best parts about CSS Grid Layout is that your users can rearrange the layout at any width in their own media query. Your grid will also support rearranging layout at custom breakpoints for the legacy implementation when the user compiles their own Sass. Just have them define the following map of rem widths before they import in your Sass file:
$extraBreakpoints: (
xsm: 10,
whatever: 78,
superxlarge: 1000,
...
);
@import './css-gridish/scss/yourPrefix-legacy.scss;
Once your experience can drop support for browsers like IE 11 and Edge <15, you can simply remove all legacy classes and switch over to the non-legacy files. This is a great progressive-enhancement for your performance when it happens.
display: subgrid
support, we can remove our dependence on vw
units.grid-gap
, we can utilize grid-gap
by default instead of opting in to padding classes.grid-gap
for gutters?A lot of times, you will want an item to break out of the gutters for background color, to extend media, or for another reason. Until the CSS Grid spec has a way to ignore that gutter, we use the padding classes (.yourGrid-padding
) to opt-in to respecting the gutter. The padding classes are always half the size of a gutter for alignment.
Until Edge and Safari support
display: subgrid
,
it will be difficult for you to write semantic HTML with CSS Grid Layout. We are
able to take advantage of vw units and the calc function so you can embed your
.yourPrefix-grid
class inside of itself as much that is needed for you.
Thanks to flexbox’s wrapping functionality, nodes that specify rows are not necessary. Only create a node for a row if it has semantic or accessibility significance. You can keep embedding .yourPrefix-grid
as necessary to accomplish this.
To maintain a mobile-first opinion, column widths will scale to the next breakpoint if not specified. This means that a .yourPrefix__col--sm--3
(with 6 total columns) would automatically grow into a .yourPrefix__col--md--6
(with 12 total columns) if no md
class was declared to maintain half of the screen size.