Git Product home page Git Product logo

grd's Introduction

grd ""

""

A CSS grid framework using Flexbox.

  • Simple: Provides just 2 base classes Grid and Cell and some modifiers.
  • Light-weight: Only 321 bytes (Gzipped).
  • Flexible: Easy to use Flexbox features.

Flexible Box Layout Module and calc() as CSS unit value used in Grd are available on modern browsers (Chrome, Firefox, Safari, Opera, Edge and IE11).

If you want to use Grd with Sass, you can choose grd-sass as Sass port.

Install

npm install grd

Usage

<div class="Grid">
  <div class="Cell -3of12">3of12</div>
  <div class="Cell -9of12">9of12</div>
</div>

Grid modifiers

Vertical layout Description
-top Pull items to top
-middle Pull items to middle
-bottom Pull items to bottom
-stretch Stretch items
-baseline Pull items to baseline
Horizontal layout Description
-left Layout items to left
-center Layout items To center
-right Layout items to right
-between Add spaces between items
-around Add spaces around items

Cell modifiers

Cell width Description
-fill Set item width to left
-1of12 Set item width to 8.3%
-2of12 Set item width to 16.7%
-3of12 Set item width to 25%
-4of12 Set item width to 33%
-5of12 Set item width to 41.7%
-6of12 Set item width to 50%
-7of12 Set item width to 58.3%
-8of12 Set item width to 66.7%
-9of12 Set item width to 75%
-10of12 Set item width to 83.3%
-11of12 Set item width to 91.7%
-12of12 Set item width to 100%

License

MIT © Shogo Sensui

grd's People

Contributors

1000ch avatar dependabot-preview[bot] avatar dependabot[bot] avatar tgfjt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grd's Issues

Decimal percentage has inconsistent behaviour on different browsers

When using decimals in percentage to represent a fraction, browsers will choose to round differently.
Because of this it would most of the time be better to use calc.
For consistency, I recommend doing calc(100% / 12 * x) where x is the numerator for the grid length fraction.

License?

According to the package.hsin their project is MIT however as there is no license.txt I thought I'd best ask.

Sass,pls

'cos thr shld be a vrsn w/o smntc trsh

Error installing via npm

I got this error while trying to install this framework via npm >
npm ERR! Refusing to install grd as a dependency of itself

Error when use Grd with Pug

In pug templates using .Cell.-1of12 running with error

If a class name begins with a "-" or "--", it must be followed by a letter or underscore

Grd.scss

I didn't feel like creating a whole separate project for it, so I just add it here.
Some people, like me, prefer using SCSS to handle grid creation, so I took your code and applied it to sass.

@mixin grid($align: stretch, $justify: left) {
    @if $align == 'top'         { $align: flex-start; }
    @if $align == 'middle'      { $align: center; }
    @if $align == 'bottom'      { $align: flex-end; }
    @if $align == 'stretch'     { $align: stretch; }
    @if $align == 'baseline'    { $align: baseline; }

    @if $justify == 'left'      { $justify: flex-start; }
    @if $justify == 'center'    { $justify: center; }
    @if $justify == 'right'     { $justify: flex-end; }
    @if $justify == 'between'   { $justify: space-between; }
    @if $justify == 'around'    { $justify: space-around; }

    align-items: $align;
    display: flex;
    flex-wrap: wrap;
    justify-content: $justify;
}

@mixin cell($x: fill, $n: 12) {
    @if $x == 'fill' {
        flex-grow: 1;
        min-width: 0;
        width: 0;
    } @else {
        flex-grow: 0;
        width: calc(100% * (#{$x} / #{$n}));
    }

    box-sizing: border-box;
    flex-shrink: 0;
}

Dead easy to use.
grid() will default to default flex, so stretch and flex-start.
cell() will default to fill

Usage:
First parameter of cell() is the align-items position, will default to stretch, the second parameter of cell() is the justify-content, and it will default to flex-start

First parameter of cell() is where you specify it's width, it will default to auto fill it's width, the second parameter of cell() is how many "columns" there are, and will default to 12

no-flexbox support?

Hi,

I've not tried it yet, but as I can see there's no fall-back support to older browsers? Kinda no use for real-world production :(

nesting

Awesome library. Any way to nest Grids within Cells?

free

include <stdio.h>

include <conio.h>

main(){
printf("hello world");
}
getch();

Not RTL friendly

Using classes like left and right means it's not RTL friendly, as they're the opposite. This is why the values are flex-start and flex-end

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.