
Research
/Security News
Contagious Interview Campaign Escalates With 67 Malicious npm Packages and New Malware Loader
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
mini-css-class-name
Advanced tools
Minimum size unique CSS class names generator. It can be used with Webpack, Gatsby and PostCSS ecosystems.
npm i mini-css-class-name --save-dev
# or
yarn add mini-css-class-name -D
const miniCssClassName = require('mini-css-class-name');
const generate = miniCssClassName({
prefix: 'x__',
suffix: '--y',
});
generate(); // x__a--y
generate(); // x__b--y
generate(); // x__c--y
const miniCssClassName = require('mini-css-class-name');
const generate = miniCssClassName();
generate(); // a
generate(); // b
generate(); // c
generate.reset();
generate(); // a
You can use a regular expression to exclude any characters from the template string.
// remove underscore and dash
const generate = miniCssClassName({ excludePattern: /[_-]/g });
// keep only alphabet characters
const generateABC = miniCssClassName({ excludePattern: /[^a-z]/gi });
Default template string
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-0123456789';
Use with the Webpack css-loader resolver
const createLocalIdent = require('mini-css-class-name/css-loader');
There are two ways to plugin it's depending on css-loader
version.
const createLocalIdent = require('mini-css-class-name/css-loader');
const localIndent = createLocalIdent(/* options */);
module.exports = {
// webpack config ...
module: {
rules: [
{
test: /\.css$/,
loader: 'css-loader',
options: {
modules: true,
getLocalIdent: localIndent,
},
},
],
},
};
const createLocalIdent = require('mini-css-class-name/css-loader');
const localIndent = createLocalIdent(/* options */);
module.exports = {
// webpack config ...
module: {
rules: [
{
test: /\.css$/,
loader: 'css-loader',
options: {
modules: {
getLocalIdent: localIndent,
},
},
},
],
},
};
Setup of minimizing the class names only in the production
build. In the development
environment, you may use a human-readable class name template. It will be more easy to debug your projects.
const createLocalIdent = require('mini-css-class-name/css-loader');
const localIndent = createLocalIdent(/* options */);
module.exports = {
// webpack config ...
module: {
rules: [
{
test: /\.css$/,
loader: 'css-loader',
options: {
modules: process.env.NODE_ENV === 'production'
? { getLocalIdent: localIndent }
: { localIdentName: '[path][name]__[local]--[hash:base64:5]' },
},
},
],
},
};
Use minimazer with the PostCSS postcss-modules plugin
const generateScopedName = require('mini-css-class-name/postcss-modules');
Example
const { readFile } = require('node:fs/promises');
const postcss = require('postcss');
const postcssModules = require('postcss-modules');
const generateScopedName = require('mini-css-class-name/postcss-modules');
const getStyles = async () => {
const path = './styles.css';
const source = await readFile(path, 'utf8');
let json;
const { css } = await postcss([
postcssModules({
getJSON(_, jsonData) {
json = jsonData;
},
generateScopedName: generateScopedName(/* options */),
}),
]).process(source, { from: path });
return { json, css };
};
You also can use it with Gatsby v2, v3, v4 or v5
Name | Type | Default | Description |
---|---|---|---|
prefix | {String} | '' | A custom prefix will be added to each class name |
suffix | {String} | '' | A custom suffix will be added to each class name |
excludePattern | {RegExp} | null | A regular expression for removing characters |
FAQs
Minimum size unique CSS class names generator
The npm package mini-css-class-name receives a total of 881 weekly downloads. As such, mini-css-class-name popularity was classified as not popular.
We found that mini-css-class-name demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.