ipfs-shipyard / ipfs-css

The single-purpose css class names and font-face config to IPFS up your UI.
MIT License
24 stars 19 forks source link
css dweb ipfs ipfs-gui scss theme

ipfs-css

The single-purpose CSS class names and @font-face config to IPFS up your UI.

/* ---- font ----- */
.sans-serif { font-family: 'Inter', system-ui, sans-serif; }
.montserrat { font-family: 'Montserrat', 'Verdana', system-ui, sans-serif; }
.monospace { font-family: Consolas, monaco, monospace; }

/* ---- color ----- */
.navy { color: #0b3a53; }
.navy-muted { color: #244e66; }
.aqua { color: #69c4cd; }
.aqua-muted { color: #9ad4db; }

/* ...and (just a little) more! */

Pairs well with tachyons.

Install

Add ipfs-css to your project via npm:

npm install ipfs-css

Usage

Once you've installed ipfs-css from npm, the CSS and SCSS files and the web-fonts are available from your node_modules/ipfs-css directory.

If you are set up with a build process that lets you import css files directly from node_modules, then you can just add the following to your CSS file.

@import 'tachyons'; /* Optional, jolly good tho */
@import 'ipfs-css';

The file includes font-face definitions and single purpose CSS class names that you can compose freely, to create your lovely UI.

<header class='pa2 bg-navy'>
  <h2 class='ma0 montserrat aqua'>
    OH HAI! It's so nice to see you again.
  </h2>
</header>

CSS in JS

You can import the theme.json file which can be used with a ThemeProvider component.

All the CSS atoms are generated from that, so you can be sure you're using the same values.

Less

ipfs.css is a regular CSS file, so you can import it normally. Each declaration has a single purpose, so if you prefer to compose your rules outside the DOM, you can safely use them as mixins:

.my-lovely-widget {
  .aqua;
  .bg-navy;
  .montserrat;
}

SCSS

While ipfs.css contains everything you need, if you prefer variables for fonts, colors and gradients, these are there for you in theme.scss.

Icons

See: https://dweb.link/ipfs/bafybeiebays3i7aem7tptga3kilzux7f5gz6czl4dietazgutcjhozjviu

Colors

Releasing

First, clean and build the CSS and the docs.

# Clean then build your local workspace
$ npm run clean
$ npm run build

Next, with IPFS running locally, add the docs to IPFS, to get the new CID.

# Add the docs to IPFS to get the CID
$ npm run -s deploy:docs
QmQYzfzGKAeBWgarrmTSsG2PJ8AFfFEBprhVBFaudcFTof

Pin the CID to ipfs-cluster (via #pinbot on IRC or your preferred method). Update the README.md with the new docs link.

Then bump the version, push to GitHub and publish to npm. If you are adding an icon, that's a minor release. Fixing an issue with an existing icon would be a patch. Changing any of the color values would be at least a minor. Changing the naming scheme for the CSS classes would be a major release.

# use npm to bump the version and tag
$ npm version minor

# Push the changes back to the repo
$ git push origin master
$ git push --tags

# PUBLISH!
$ npm publish

Contribute

Contributions are more than welcome! Check out the currently open issues and start hacking on anything that sounds interesting. Issues are labeled with a variety of tags to help you find a good fit — you may wish to start with the help-wanted tag.

To contribute to IPFS in general, check out the wide variety of opportunities here.

The IPFS community believes that our mission is best served in an environment that is friendly, safe, and accepting, and free from intimidation or harassment. To that end, we ask that everyone involved in IPFS read and respect our code of conduct.

License

The Monserrat font family © The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat) is used under the SIL Open Font License, Version 1.1.

The Inter font family © The Inter Project Authors (me@rsms.me) is used under the SIL Open Font License, Version 1.1.

The home icon © Icons8 is under their Free License

All other documents and icons are CC-BY-SA 3.0 license © 2018 Protocol Labs Inc.

Code is under the MIT © 2018 Protocol Labs Inc.