Streamlined integration between windicss and heropatterns. This plugin is modified based on tailwind-heropatterns to adapt to Windi CSS.
Add this plugin to your project:
npm install --save-dev @windicss/plugin-heropatterns
The heropatterns plugin exposes some options to configure the generated classes. Here is the example for adding it to your project plugins
require('@windicss/plugin-heropatterns')({
// the list of patterns you want to generate a class for
// the names must be in kebab-case
// an empty array will generate all 87 patterns
patterns: ['polka-dots', 'signal'],
// The foreground colors of the pattern
colors: {
'default': '#9C92AC',
'blue-dark': '#000044', // also works with rgb(0,0,205)
},
// The foreground opacity
opacity: {
default: '0.4',
100: '1.0',
},
})
This configuration would create the following classes:
.bg-hero-polka-dots-100 {
background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%239C92AC' fill-opacity='1.0' fill-rule='evenodd'%3E%3Ccircle cx='3' cy='3' r='3'/%3E%3Ccircle cx='13' cy='13' r='3'/%3E%3C/g%3E%3C/svg%3E");
}
.bg-hero-signal-100 {
background-image: url("data:image/svg+xml,%3Csvg width='84' height='48' viewBox='0 0 84 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='...' fill='%239C92AC' fill-opacity='1.0' fill-rule='evenodd'/%3E%3C/svg%3E");
}
.bg-hero-polka-dots-blue-dark-100 {
background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000044' fill-opacity='1.0' fill-rule='evenodd'%3E%3Ccircle cx='3' cy='3' r='3'/%3E%3Ccircle cx='13' cy='13' r='3'/%3E%3C/g%3E%3C/svg%3E");
}
.bg-hero-signal-blue-dark-100 {
background-image: url("data:image/svg+xml,%3Csvg width='84' height='48' viewBox='0 0 84 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='...' fill='%23000044' fill-opacity='1.0' fill-rule='evenodd'/%3E%3C/svg%3E");
}
.bg-hero-polka-dots {
background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%239C92AC' fill-opacity='0.4' fill-rule='evenodd'%3E%3Ccircle cx='3' cy='3' r='3'/%3E%3Ccircle cx='13' cy='13' r='3'/%3E%3C/g%3E%3C/svg%3E");
}
.bg-hero-signal {
background-image: url("data:image/svg+xml,%3Csvg width='84' height='48' viewBox='0 0 84 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='...' fill='%239C92AC' fill-opacity='0.4' fill-rule='evenodd'/%3E%3C/svg%3E");
}
.bg-hero-polka-dots-blue-dark {
background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000044' fill-opacity='0.4' fill-rule='evenodd'%3E%3Ccircle cx='3' cy='3' r='3'/%3E%3Ccircle cx='13' cy='13' r='3'/%3E%3C/g%3E%3C/svg%3E");
}
.bg-hero-signal-blue-dark {
background-image: url("data:image/svg+xml,%3Csvg width='84' height='48' viewBox='0 0 84 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='...' fill='%23000044' fill-opacity='0.4' fill-rule='evenodd'/%3E%3C/svg%3E");
}
As you can see when you use the default
key for colors or opacity it is omitted in the class name.
So the following configuration:
require('@windicss/plugin-heropatterns')({
patterns: ['polka-dots', 'signal'],
colors: {
default: '#9C92AC',
},
opacity: {
default: '0.4',
},
})
Will generate only the following classes
.bg-hero-polka-dots {
/**/
}
.bg-hero-signal {
/**/
}
The default configuration is the following. And it will generate all the patterns with the default color of heropatterns.com
config = {
patterns: [],
colors: {
default: '#9C92AC',
},
opacity: {
default: 0.4,
},
}