UNPKG

picnic

Version:

A lighweight CSS library with nice defaults and many plugins to kickstart your projects

156 lines (77 loc) 5.18 kB
# Picnic CSS Unpack your meal and get coding. An invasive CSS library to get your style started. ## Getting started There are many ways of using Picnic CSS in your projects. Here a brief introduction of the recommended two methods: ### CDN - just give me the file Use [Picnic CSS in the CDN jsDelivr](http://www.jsdelivr.com/#!picnicss) for linking to the static file. ### Bower - to personalize Picnic To install Picnic with bower just write this in your terminal (you'll need bower installed): ``` bower install picnic ``` Then, to use it within your scss development cycle, just do: ```scss // Here go any variables you want to overwrite $picnic-primary: #faa; // Now import picnic and a couple of plugins @import 'BOWER_PATH/picnic/src/picnic'; @import 'BOWER_PATH/picnic/plugins/nav/plugin'; @import 'BOWER_PATH/picnic/plugins/modal/plugin'; ``` ### NPM Just do ```bash npm install picnic --save ``` To add it to your repository. Then you can include it straight from your css like: ```css @import "../node_modules/picnic/picnic.min.css"; ``` Thanks to [chadoh](https://github.com/chadoh) for helping me in publishing it in NPM and for the instructions. ### Other ways You can always download the latest minimized version from github, clone the repository or download it. Or clone it: `git clone https://github.com/franciscop/picnic.git` ## Wait, *invasive*? Many libraries rely upon adding classes to your already existing HTML elements, resulting in bloated code like `<button class="btn btn-primary">Hey</button>`. It would be easier if the buttons knew they are, well, *buttons*. Crazy eh? This setup works neatly for newly created projects or for pages that you have to build quick from scratch. It also allows for a much more intuitive extension of base elements. ## Browser support IE11+ Bug reports and fixes only for IE11+. With IE8- usage [dropping *fast*](https://ux.stackexchange.com/questions/64250/do-websites-still-have-to-support-internet-explorer-8-and-below/#64361) and with IE9 and IE10 usage even below their older mate, it is time to start thinking about not supporting them anymore. For others, up to 2 previous versions are expected to be working, and everything that is not is definitely a bug. ## Example usage After including the stylesheet as indicated in the `Getting started`: ```html <form> What's your favourite Picnic CSS feature? <label> <select name="feature"> <option value="semantic"> Semantic HTML5 </option> <option value="lightweight"> Lightweight </option> <option value="css3"> Only CSS3 </option> <option value="responsive"> Responsive </option> </select> </label> <input type="email" placeholder="Email to receive updates"> <button class="primary"> Subscribe! </button> </form> ``` If you don't see anything that seems *picnic.css exclusive*, that's because there's nothing, that's the main purpose of Picnic CSS. However, try it out and you'll see a decent example in your browser. ## Advantages - **Only CSS3** is needed and your **HTML5** stays highly semantic*. - **Under 10kb** when minimized and gzipped with all plugins. - **Normalize.css** is used as a base, achieving a solid foundation. - **Support**: IE 9+ and others. No fancy CSS3 on IE 8. - **Responsive**: The nav and the grids are responsive. \* Except for the grids :( ## Disadvantages - Difficult to drop in an already created project. This is what I meant by *invasive*. This is not within the new scope of the project. ## Alternatives and why I still created Picnic CSS [Milligram](https://milligram.github.io/): A minimalist CSS framework [PureCSS](http://purecss.io/): Lightweight, nice package. The thing I would be using if I didn't build Picnic CSS and where I took the inspiration. However, no nice `<select>` out of the box and the non-responsive grid from the CDN feels like a stab on the back. [Bootstrap](http://getbootstrap.com/): Really comprehensive, but too many files and too heavy for most of the websites. It also relies too much on javascript. Still cannot get the `<select>` right out of the box. [Min](http://mincss.com/): a tiny, basic css framework. It has great browser support. No `<select>` right, and it's too inexpressive. ## Contributing You are encouraged to contribute to Picnic CSS. To write a new plugin, just copy one of the existing ones (specially recommend "button") and modify the files. The code must be linted with scss-lint, except the `PropertySortOrder` which is ignored for a better code structure. ## Authors Created by [Francisco Presencia](https://github.com/FranciscoP). SASS from [Jordan Wallwork](https://github.com/jordanwallwork). Significant fixes from [Alex Galushka](https://github.com/galulex). Tons of help in several parts of the project from [Emilio Coppola](https://github.com/Coppolaemilio). ## Some love - [Clrs](http://clrs.cc/) the new nice web palette (from HN) used for Picnic CSS. - [Fontello](http://fontello.com/) an icon library that plays really nice with others. - [Normalize](http://necolas.github.io/normalize.css/) the foundation of Picnic CSS