UNPKG

flexbox-grid-mixins

Version:
352 lines (273 loc) 9.47 kB
# 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 ``` <div class="grid"> <div class="grid__col-3"> 3 </div> <div class="grid__col-9"> 9 </div> </div> ``` ### 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