Chopstick is a mobile-first responsive design framework.
It uses the following tools
- Sass as a scss preprocessor
- Ask your question on twitter: @GetChopstick
- Join the Slack channel
Use your prefered workflow to compile the .scss
.
We use the following layers according to the ITCSS structure.
- Settings: contains global variables and config switches to get you started. These can be overwritten in your project. Simply duplicate the variables you want to change or replace this file.
- Tools: contains mixins and functions.
- Generic: contains ground-zero styles (Normalize.css, resets, box-sizing)
- Elements: contains unclassed HTML elements (type selectors)
- Objects: contains cosmetic-free design patterns
- Components: contains designed components, chunks of UI (these are maintained in the boilerplate as they are specific to this)
- Plugins: contains third-party plugin styles
- Utilities: contains helper classes
- Shame: nasty, hacky, quick-fix CSS
We try to keep the code as modular as possible. So you can comment out what you don’t use.
If you want to change something you have 3 options:
- Change the settings and default appearance by overriding the variables in your project.
- Create a pull request on the source code in the correct repository.
- Copy the original file in you own project. This means you will have to do manual updates in the future.
Chopstick aims to support all modern browsers. This includes latest versions of Chrome, Firefox and Safari and the latest mobile browsers on Android, iPhone and Windows Phone. Internet explorer is currently supported starting from IE10 and up.
Chopstick is a framework based on the ITCSS architecture and a series of principles. It creates a structure to easily set-up and build bespoke web projects.
- Maintain sensible defaults
- Enforce a global coding style
- Create a scalable system for both small and big web projects
Chopstick is built upon the following principles. Please keep these in mind when contributing and/or using this framework.
A single-depth-class-based architecture based on the BEM naming methodology.
Avoid reliance on other bits.
- Separation of Concerns: let each piece of code solve its own problems
- Single Responsibility Principle: one thing, one thing only, one thing well
- Open/Closed Principle: add via extension, not modification
- We build the bits that build the bits
- Make everything opt-in and configurable: expose API-like CSS
- The Principle of Least Surprise: make sure expectations are met, and nothing else
- Murphy’s Law: Pick the option that is the most resilient, even if it is the most boring one
You are free to contribute to Chopstick via GitHub Pull Requests. We have a couple of simple guidelines we try to follow, of which most are taken from the CSS Tricks Sass Style Guide. Please refer to the CONTRIBUTING.md for more information
We owe a ton of credits to the following projects for inspiration: