@area17/a17-tailwind-plugins
Version:
A collection of Tailwind plugins to help build responsive design systems in collaboration with A17 design and development build methodologies
94 lines (62 loc) • 3.75 kB
Markdown
# AREA 17 Tailwind Plugins - Documentation
The documentation is made using [Jekyll](https://jekyllrb.com/) to compile [Liquid](https://shopify.github.io/liquid/) templates.
To view these in a browser, visit [area17.github.io/tailwind-plugins/](https://area17.github.io/tailwind-plugins/).
To view these locally and for local development of plugins and their documentation you will need to install a few dependencies. See [docs.github.com - building-your-site-locally](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/testing-your-github-pages-site-locally-with-jekyll#building-your-site-locally)
Once everything is installed, `cd` into the `docs` folder and run:
```bash
$ bundle install
$ bundle exec jekyll serve
```
The site should now be available in a browser at http://localhost:4000
Then open a new terminal tab, `cd` to the root of the project and run:
```bash
$ npm install
$ npm run watch
```
And lastly, open a new terminal tab, `cd` to the root of the project and run:
```bash
$ npm run sync
```
The site should now be available in a browser at http://localhost:3000 with browser-sync live reloading.
Scripts available to run are:
* `npm run dev` - builds the Tailwind CSS file
* `npm run watch` - builds Tailwind CSS and watches for changes
* `npm run prod` - builds a minified Tailwind CSS file
* `npm run sync` - starts browser-sync proxying the documentation and watching for changes for live reload
## Adding a new plugin
Every plugin needs documentation, with config options and/or output demonstrated or demos of the output. Adding the documentation for a plugin is also a handy way to develop a new plugin. Lets say your plugin is called `Foo`.
First step is to create a HTML file, with the name of your new plugin in the `docs` folder:
```bash
touch docs/Foo.html
```
If you open any of the other plugin docs, you'll see the basic structure of:
```HTML
---
title: TITLE
---
{% include_relative includes/_header.html %}
<!-- content -->
{% include_relative includes/_footer.html %}
```
The content is made up of `<div class="copy">...</div>` blocks and in between any demonstration HTML needed. `.copy` blocks have styles for `h2` to `h4`, paragraphs, lists, nested lists, code, links and HR's. You'll see the structure of them is easy to replicate.
Code example blocks are inserted like:
```HTML
<figure class="code-example">
<figcaption class="code-example-filename">tailwind.config.js</figcaption>
<pre class="code-example-code"><code class="language-javascript">module.exports = {
};</code></pre>
</figure>
```
Too add your work-in-progress plugin, you'll want to add a folder for your plugin to the `src` folder with the name of your plugin and add an `index.js` in the root of this repository:
```bash
mkdir -p src/Foo && touch $_/index.js
```
And then open `docs/tailwind.config.js` and require your plugin:
```JS
// A17 tailwind plugins
const { Setup, RatioBox, Layout, GridLine, PseudoElements, DevTools, GridGap, Container, Keyline, Spacing, Typography, ColorTokens, ApplyColorVariables, Underline, GridLayout, SpacingTokens } = require('@area17/a17-tailwind-plugins');
const Foo = require('./../src/Foo/index.js');
```
You can now add your plugin to the list of plugins in `docs/tailwind.config.js` and assign it to which ever `theme` entity required.
Make your plugin, write the documentation and submit a pull request to the main for it.
Please send coherent history - make sure each individual commit in your pull request is meaningful. If you had to make a lot of intermediate commits while developing, please [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting.