![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
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 0 weekly downloads. As such, mini-css-class-name popularity was classified as not popular.
We found that mini-css-class-name demonstrated a healthy version release cadence and project activity because the last version was released less than 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.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.