All Projects → posthtml → posthtml-css-modules

posthtml / posthtml-css-modules

Licence: MIT license
Use CSS modules in HTML

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to posthtml-css-modules

React Redux Universal Boilerplate
An Universal ReactJS/Redux Boilerplate
Stars: ✭ 165 (+205.56%)
Mutual labels:  css-modules
React Native Css Modules
Style React Native components using CSS, PostCSS, Sass, Less or Stylus.
Stars: ✭ 207 (+283.33%)
Mutual labels:  css-modules
rollup-plugin-stylus-css-modules
A Rollup.js plugin to compile Stylus and inject CSS Modules
Stars: ✭ 15 (-72.22%)
Mutual labels:  css-modules
Css Modules Typescript Loader
Webpack loader to create TypeScript declarations for CSS Modules
Stars: ✭ 172 (+218.52%)
Mutual labels:  css-modules
Holy Grail Markup
All CSS methodologies compared examples at one place.
Stars: ✭ 197 (+264.81%)
Mutual labels:  css-modules
Modular Css
A streamlined reinterpretation of CSS Modules via CLI, API, Browserify, Rollup, Webpack, or PostCSS
Stars: ✭ 234 (+333.33%)
Mutual labels:  css-modules
Breko Hub
Babel React Koa Hot Universal Boilerplate
Stars: ✭ 145 (+168.52%)
Mutual labels:  css-modules
vital
Starter template for Vite with React (TypeScript). Supports Tailwind with CSS-Modules. Jest and @react/testing-library configured and ready to go. Also ESLint, Prettier, Husky, Commit-lint and Atomic Design for components.
Stars: ✭ 151 (+179.63%)
Mutual labels:  css-modules
Front End Guide
📚 Study guide and introduction to the modern front end stack.
Stars: ✭ 14,073 (+25961.11%)
Mutual labels:  css-modules
react-css-modules-intellij-plugin
React CSS Modules support in IntelliJ IDEA and WebStorm for components written in JavaScript and TypeScript.
Stars: ✭ 41 (-24.07%)
Mutual labels:  css-modules
Typescript Webpack React Redux Boilerplate
React and Redux with TypeScript
Stars: ✭ 182 (+237.04%)
Mutual labels:  css-modules
Micron
a [μ] microInteraction library built with CSS Animations and controlled by JavaScript Power
Stars: ✭ 2,252 (+4070.37%)
Mutual labels:  css-modules
React
Extremely simple boilerplate, easiest you can find, for React application including all the necessary tools: Flow | React 16 | redux | babel 6 | webpack 3 | css-modules | jest | enzyme | express + optional: sass/scss
Stars: ✭ 244 (+351.85%)
Mutual labels:  css-modules
Babel Plugin React Css Modules
Transforms styleName to className using compile time CSS module resolution.
Stars: ✭ 1,989 (+3583.33%)
Mutual labels:  css-modules
next-plugin-antd
A @zeit/next-less patch with full support for Ant Design, Less and CSS modules
Stars: ✭ 27 (-50%)
Mutual labels:  css-modules
Es Css Modules
PostCSS plugin that combines CSS Modules and ES Imports
Stars: ✭ 165 (+205.56%)
Mutual labels:  css-modules
React Styleable
React Component for portable styles
Stars: ✭ 214 (+296.3%)
Mutual labels:  css-modules
BBob
⚡️Blazing-fast js-bbcode-parser, bbcode js, that transforms and parses to AST with plugin support in pure javascript, no dependencies
Stars: ✭ 133 (+146.3%)
Mutual labels:  posthtml
react-module-boilerplate
Sample React presentational components package.
Stars: ✭ 16 (-70.37%)
Mutual labels:  css-modules
Css In Js 101
💈 CSS-in-JS 101: All you need to know
Stars: ✭ 252 (+366.67%)
Mutual labels:  css-modules

posthtml-css-modules

npm version Build Status

PostHTML plugin that inlines CSS modules in HTML.

Usage

I suggest using postcss-modules to generate CSS modules. Check the PostHTML documentation for integration examples with grunt, gulp, and other build systems.

If you're more into webpack then you don't need all these modules at all. With css, style, and html loaders you can achieve the same result: css-modules-webpack-example

Global file

Let's say we have cssClasses.json with all CSS modules inside:

{
  "title": "_title_116zl_1 _heading_9dkf",
  "profile": {
    "user": "_profile_user_f93j"
  }
}

Now we can inline these CSS modules in our HTML:

var posthtml = require('posthtml');

posthtml([require('posthtml-css-modules')('./cssClasses.json')])
    .process(
        '<h1 css-module="title">My profile</h1>' +
        // You can also use nested modules
        '<div css-module="profile.user">John</div>'
    )
    .then(function (result) {
        console.log(result.html);
    });

// <h1 class="_title_116zl_1 _heading_9dkf">My profile</h1>
// <div class="_profile_user_f93j">John</div>

Directory with several files

CSS modules could be also separated into several files. For example, profile.js and article.js inside directory cssModules/:

// profile.js
module.exports = {
  user: '_profile_user_f93j'
}
// article.js
module.exports = {
  title: '_article__tile _heading'
}

You can use both JS and JSON for a declaration, as long as the file could be required via require().

var posthtml = require('posthtml');

posthtml([require('posthtml-css-modules')('./cssModules/')])
    .process(
        '<div class="baseWrapper" css-module="profile.user">John</div>' +
        '<h2 css-module="article.title"></h2>'
    )
    .then(function (result) {
        console.log(result.html);
    });

// <div class="baseWrapper _profile_user_f93j">John</div>
// <h2 class="_article__tile _heading"></h2>

Object

You can also pass CSS modules as an object to the plugin:

var posthtml = require('posthtml'),
    cssModules = {
        title: "_title_116zl_1 _heading_9dkf",
        profile: {
            user: "_profile_user_f93j"
        }
    };

posthtml([require('posthtml-css-modules')(cssModules)])
    .process(
        '<h1 css-module="title">My profile</h1>' +
        // You can also use nested modules
        '<div css-module="profile.user">John</div>'
    )
    .then(function (result) {
        console.log(result.html);
    });

// <h1 class="_title_116zl_1 _heading_9dkf">My profile</h1>
// <div class="_profile_user_f93j">John</div>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].