Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thingsym/flexbox-grid-mixins

Sass Mixins to generate Flexbox grid
https://github.com/thingsym/flexbox-grid-mixins

css dart-sass flexbox libsass mixin npm sass scss

Last synced: about 6 hours ago
JSON representation

Sass Mixins to generate Flexbox grid

Awesome Lists containing this project

README

        

# Flexbox Grid Mixins

Sass Mixins to generate Flexbox grid.

**Flexbox Grid Mixins** is Sass Mixins library to help you write well-structured, readable, maintainable, component-based grid using Flexbox (CSS Flexible Box Layout Module).

Flexbox Grid Mixins documentation: [https://thingsym.github.io/flexbox-grid-mixins/](https://thingsym.github.io/flexbox-grid-mixins/)

## Example

### HTML

```



3


9


```

### Sass

#### Dart Sass

```
@use 'node_modules/flexbox-grid-mixins/dart-sass/flexbox-grid-mixins';

$default-grid-gutter: 2%;

.grid {
@include flexbox-grid-mixins.grid($gutter: $default-grid-gutter);

> .grid__col-3 {
@include flexbox-grid-mixins.grid-col($col: 3, $gutter: $default-grid-gutter);
}
> .grid__col-9 {
@include flexbox-grid-mixins.grid-col($col: 9, $gutter: $default-grid-gutter);
}
}
```

#### LibSass

```
@import 'node_modules/flexbox-grid-mixins/sass/flexbox-grid-mixins';

$default-grid-gutter: 2%;

.grid {
@include grid($gutter: $default-grid-gutter);

> .grid__col-3 {
@include grid-col($col: 3, $gutter: $default-grid-gutter);
}
> .grid__col-9 {
@include grid-col($col: 9, $gutter: $default-grid-gutter);
}
}
```

### CSS

```
.grid {
-webkit-box-sizing: border-box;
box-sizing: border-box;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
margin-left: -1%;
margin-right: -1%;
}

.grid > .grid__col-3 {
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-box-flex: 0;
-ms-flex: 0 0 23%;
flex: 0 0 23%;
margin-left: 1%;
margin-right: 1%;
margin-bottom: 2%;
}

.grid > .grid__col-9 {
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-box-flex: 0;
-ms-flex: 0 0 73%;
flex: 0 0 73%;
margin-left: 1%;
margin-right: 1%;
margin-bottom: 2%;
}
```

## Installation

### npm

```
$ npm install flexbox-grid-mixins --save-dev
```

### Yarn

```
$ yarn add flexbox-grid-mixins --dev
```

### Manual Install

Include `dart-sass/\_flexbox-grid-mixins.scss` or `sass/\_flexbox-grid-mixins.scss` in the appropriate location in your project.

## Getting Started using Dart Sass

### 1. Import Flexbox Grid Mixins in Sass/SCSS file

```
@use 'flexbox-grid-mixins';
```

Example : import from node_modules

```
@use 'node_modules/flexbox-grid-mixins/dart-sass/flexbox-grid-mixins';
```

### 2. Define the grid container

```
.grid {
@include flexbox-grid-mixins.grid();
}
```

### 3. Generate the grid columns

```
.grid__col-3 {
@include flexbox-grid-mixins.grid-col(3);
}
.grid__col-9 {
@include flexbox-grid-mixins.grid-col(9);
}
```

## Getting Started using LibSass

Note: [LibSass is Deprecated](https://sass-lang.com/blog/libsass-is-deprecated). See [Future Plans](https://sass-lang.com/blog/the-module-system-is-launched#future-plans).

### 1. Import Flexbox Grid Mixins in Sass/SCSS file

```
@import 'flexbox-grid-mixins';
```

Example : import from node_modules

```
@import 'node_modules/flexbox-grid-mixins/sass/flexbox-grid-mixins';
```

### 2. Define the grid container

```
.grid {
@include grid();
}
```

### 3. Generate the grid columns

```
.grid__col-3 {
@include grid-col(3);
}
.grid__col-9 {
@include grid-col(9);
}
```

## Documentation

See Flexbox Grid Mixins documentation: [http://thingsym.github.io/flexbox-grid-mixins/](http://thingsym.github.io/flexbox-grid-mixins/)

## Mixins Reference

[Mixins Reference](http://thingsym.github.io/flexbox-grid-mixins/#Mixins-Reference)

## Example

* [Basic Example](http://thingsym.github.io/flexbox-grid-mixins/#Basic-Example)
* [Grid System Example](http://thingsym.github.io/flexbox-grid-mixins/#Grid-System-Example)

### Dart Sass

* [Flexbox Grid Mixins Example](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/example.html)
* [Holy Grail Layout - Using Flexbox Grid Mixins](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/holy-grail-layout.html)
* [Responsive web design - Using Flexbox Grid Mixins](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/responsive.html)
* [Gap (grid-gap) css property](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/gap.html)
* [Auto margin](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/auto-margin.html)
* [Box Sizing using Default Values](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/box-sizing.html)
* [Stack](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/stack.html)
* [Grid Type](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/grid-type.html)
* [Unit-Set Grid (Experimental stage)](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/unit-set.html)
* [Test] [Stick Out Grid](http://thingsym.github.io/flexbox-grid-mixins/example-dart-sass/test-stick-out.html)

### LibSass

* [Flexbox Grid Mixins Example](http://thingsym.github.io/flexbox-grid-mixins/example/example.html)
* [Holy Grail Layout - Using Flexbox Grid Mixins](http://thingsym.github.io/flexbox-grid-mixins/example/holy-grail-layout.html)
* [Responsive web design - Using Flexbox Grid Mixins](http://thingsym.github.io/flexbox-grid-mixins/example/responsive.html)
* [Gap (grid-gap) css property](http://thingsym.github.io/flexbox-grid-mixins/example/gap.html)
* [Auto margin](http://thingsym.github.io/flexbox-grid-mixins/example/auto-margin.html)
* [Box Sizing using Default Values](http://thingsym.github.io/flexbox-grid-mixins/example/box-sizing.html)
* [Stack](http://thingsym.github.io/flexbox-grid-mixins/example/stack.html)
* [Grid Type](http://thingsym.github.io/flexbox-grid-mixins/example/grid-type.html)
* [Unit-Set Grid (Experimental stage)](http://thingsym.github.io/flexbox-grid-mixins/example/unit-set.html)
* [Test] [Stick Out Grid](http://thingsym.github.io/flexbox-grid-mixins/example/test-stick-out.html)

## Package manager

[flexbox-grid-mixins - npm](https://www.npmjs.com/package/flexbox-grid-mixins)

## Development

1. run ```$ sudo yum install nodejs npm```
2. Forking on GitHub
3. run ```$ cd /path/to/flexbox-grid-mixins```
4. run ```$ npm install```
5. run ```$ npm run serve```
6. Access URL http://localhost:3000

## Docker Development Environment

### Build and launch website

```
docker-compose run --rm node npm install
docker-compose run --rm -p 3000:3000 node npm run serve
```

Access to URL http://localhost:3000

### listing tasks

```
docker-compose run --rm node npm run
```

## Contribution

### Patches and Bug Fixes

Small patches and bug reports can be submitted a issue tracker in Github. Forking on Github is another good way. You can send a pull request.

1. Fork [Flexbox Grid Mixins](https://github.com/thingsym/flexbox-grid-mixins) from GitHub repository
2. Create a feature branch: git checkout -b my-new-feature
3. Commit your changes: git commit -am 'Add some feature'
4. Push to the branch: git push origin my-new-feature
5. Create new Pull Request on GitHub

## Changelog

* Version 0.3.4
* fix npm script
* fix Mixins Reference
* add Docker Development Environment
* gulpfile.js for docker
* update package.json
* update github actions, Node.js 12 actions are deprecated
* fix layout margin
* add Cards Layout example
* Version 0.3.3
* update README
* update index.html
* update example
* add condense
* add $gap argument for gap CSS property
* Version 0.3.2
* fix gulp-sass compiler
* update package.json
* fix Deprecation Warning: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.
* add timeout-minutes to workflows
* Version 0.3.1
* update example
* fix items row/column alignment example
* add auto margin example
* Version 0.3.0
* add example for dart sass
* add Flexbox Grid Mixins for Dart Sass
* add dart sass workfows with gulpfile.js
* Version 0.2.2
* remove .travis.yml, change CI/CD to GitHub Actions
* Version 0.2.1
* auto release to npm only version tags
* gulp bump up version to 4.0
* Version 0.2.0
* update example
* update package.json
* add Default Values flexbox-grid-mixins-stack
* change margin property, remove @mixin, grid-margin and grid-col-margin
* remove breakpoint value of col argument
* remove condensed argument
* change grid-type from argument to Default Values flexbox-grid-mixins-grid-type
* remove bower.json
* add .travis.yml
* Version 0.1.6
* add Default Values $flexbox-grid-mixins-box-sizing
* update package.json
* change lint from scss-lint to stylelint
* Version 0.1.5
* update package.json
* add optional arguments $shorthand to @mixin grid-col
* Version 0.1.4
* update example
* update document
* fix conditional expression
* add optional arguments $width, $max-width, $min-width, $height, $max-height and $min-height to @mixin grid-col
* enable flex-grow with number column
* add positive preset column
* change readme.md file name to upper case
* Version 0.1.3
* rename folder to docs from doc, change gh-pages
* update document
* update example
* add optional arguments $flex-direction and $flex-wrap to the mixin grid
* Version 0.1.2
* update document
* update example
* improve unit-set column, using CSS calc()
* Version 0.1.1
* fix breakpoint preset column
* fix example
* fix Holy Grail Layout
* Version 0.1.0
* Initial release.

## License

Licensed under the MIT License.

## Author

[thingsym](https://github.com/thingsym)

Copyright (c) 2016-2022 thingsym