stylify/packages
💎 Monorepository for Stylify packages. Stylify uses CSS-like selectors to generate Extremely optimized utility-first CSS dynamically based on what you write 💎.
📋 What's Changed
- Dependencies update by @Machy8 in https://github.com/stylify/packages/pull/267
- Drop integration for external tools by @Machy8 in https://github.com/stylify/packages/pull/276
- Issue https://github.com/stylify/packages/issues/275
- In short. Integrations are nice at first. But when you need to configure something, which you will, it's just a wrapper around bundler and all of these integrations means only more problems, more bugs and things to learn. One bundler simplifies a lot of things.
- Longer version of "why" https://github.com/stylify/packages/discussions/274
- Use the Stylify Bundler instead along with Framework bundlers: [How to bundle files](https://stylifycss.com/en/docs/get-started/bundling-files). [Bundler docs](https://stylifycss.com/en/docs/bundler)
- Xs breakpoint by @Machy8 in https://github.com/stylify/packages/pull/277 - Now you can use `xs`: (min-width: 375px) and `toxs`: (max-width: 374px) - https://github.com/stylify/packages/issues/272
- Full Changelog: https://github.com/stylify/packages/compare/v0.6.2...v0.7.0
- + 2 more
📋 What's Changed
- Update css properties by @Machy8 in https://github.com/stylify/packages/pull/263
- Full Changelog: https://github.com/stylify/packages/compare/v0.6.1...v0.6.2
📋 What's Changed
- Do not mangle selectors when in watchmode by @Machy8 in https://github.com/stylify/packages/pull/257
- Types by @Machy8 in https://github.com/stylify/packages/pull/260
- Mangling fixes by @Machy8 in https://github.com/stylify/packages/pull/262
- Full Changelog: https://github.com/stylify/packages/compare/v0.6...v0.6.1
📋 What's Changed
- Regular expressions array for selectors areas by @Machy8 in https://github.com/stylify/packages/pull/242
- Configurator cleanup by @Machy8 in https://github.com/stylify/packages/pull/243
📦 Compiler
- `return this` was removed from `configure` and `addMacro` method
- Css variables are now enabled by default and all variables are now exported as CSS variables. Also when used within a a property value as `$someVariable` it is converted to `var(--someVariable)`.
- `replaceVariablesByCssVariables` was renamed to `cssVariablesEnabled`. The `cssVariablesEnabled` option accepts a boolean value that disables CSS variables if the `false` value is passed as value.
- `selectorsAreas` now expect regular expressions instead of strings
- ```js
- // 0.5
- const compilerConfig = {
- selectorsAreas: [
- + 10 more
📦 Macros
- The `this` object within the macro callback now contains the compiler instance
- Instead of `selectorProperties.add()` return an object with `properties: values`
- Matches `getCapture()` method now returns undefined for a default value if capture was not found instead of empty string. This improves comparison for `macroMatch.getCapture(0) ?? `
- `hasCapture` method has been removed
- ```js
- // 0.5
- const compilerConfig = {
- macros: {
- + 18 more
📦 Components
- The `this` object within the component callback now contains the compiler instance
- Component definition now receives RegExpMatch instead of an array of matches. Instead of `matches[0]` use `getCapture(0)`. Matches indexes are now shorter by 1: the `fullMatch` is the whole reg exp match, and captures contain only additional captures:
- `matches[0]` => `match.fullMatch`
- `matches[1]` is now `match.getCapture(0)`
- ```js
- // 0.5
- const compilerConfig = {
- components: {
- + 7 more
📦 Helpers
- The `this` object within the helper callback now contains the compiler instance
📦 Configurator
- All methods except `getExistingConfigFiles` were removed. This method returns paths to existing config files.
📦 Compiler hooks
- `compiler:newMacroMatch`: Now receives `Record<string, string>` instead of `SelectorProperties` object
📦 @stylify/bundler
- `cssVarsDirPath`, `sassVarsDirPath`, `lessVarsDirPath`, `stylusVarsDirPath` were renamed to `cssVarsExportPath`, `sassVarsExportPath`, `lessVarsExportPath`, `stylusVarsExportPath`. It accepts direct file path (like `./path/to/vars.css`) to which it will be saved, or only a directoy path `./path/to/cssDir`. If no file name is provided, the `stylify-variables` file name will be used with correct suffix.
📋 What's Changed
- feat: reexport bundler hooks from packages by @Machy8 in https://github.com/stylify/packages/pull/240
- Fix matching and mangling collisions by @Machy8 in https://github.com/stylify/packages/pull/241
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.32...v0.5.33
📋 What's Changed
- Pnpm by @Machy8 in https://github.com/stylify/packages/pull/145
- Add showBundlesStats option by @Machy8 in https://github.com/stylify/packages/pull/234
- Add bundler logs directory option by @Machy8 in https://github.com/stylify/packages/pull/235
- Smallfixes by @Machy8 in https://github.com/stylify/packages/pull/237
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.31...v0.5.32
📋 What's Changed
- Fix typo by @MilesPernicious in https://github.com/stylify/packages/pull/225
- Call getElementById('id') instead of querySelector('#id') by @MilesPernicious in https://github.com/stylify/packages/pull/226
- Tunning24 by @Machy8 in https://github.com/stylify/packages/pull/230
✨ New Contributors
- @MilesPernicious made their first contribution in https://github.com/stylify/packages/pull/225
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.30...v0.5.31
**Full Changelog**: https://github.com/stylify/packages/compare/v0.5.29...v0.5.30 **Related issues** https://github.com/stylify/packages/issues/223
📋 What's Changed
- feat: Add importDefaultBundle option for disabling defult bundle import by @Machy8 in https://github.com/stylify/packages/pull/222
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.28...v0.5.29
📋 What's Changed
- External variables tunning, Svelte matching area, Astro fix on Windows by @Machy8 in https://github.com/stylify/packages/pull/216
- Bundler configuration hot reload by @Machy8 in https://github.com/stylify/packages/pull/207
- Windows fixes by @Machy8 in https://github.com/stylify/packages/pull/219
- Stylify
- Indented CSS variable in generated CSS
- Bundler
- Config hot reloading
- Added restart method
- + 13 more
📋 What's Changed
- refactoring: Default preset refactoring by @Machy8 in https://github.com/stylify/packages/pull/200
- Pass mangledSelectorsPrefix and selectorsPrefix into unplugin by @Machy8 in https://github.com/stylify/packages/pull/203
- Update to 0.5.27 by @Machy8 in https://github.com/stylify/packages/pull/205
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.26...v0.5.27
Fixes of duplicated areas mangling **Full Changelog**: https://github.com/stylify/packages/compare/v0.5.25...v0.5.26
📋 What's Changed
- `mangledSelectorsPrefix` and `selectorsPrefix` can be used to prevent collision with already existing selectors
- Mangled blocks are without new lines and duplicated spaces. This makes the output look prettier.
- Mangling can handle escaped areas for example within yaml files
- Mangled selectors tunning, Astro v2 tests by @Machy8 in https://github.com/stylify/packages/pull/199
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.24...v0.5.25
📋 Changes
- Fixed cached results reset in Stylify Compiler.
- Added stop method in the Bundler.
📋 What's Changed
- Mangling by @Machy8 in https://github.com/stylify/packages/pull/189
- External variables content option by @Machy8 in https://github.com/stylify/packages/pull/193
- Mangling fixes, Twig match areas, Tunning by @Machy8 in https://github.com/stylify/packages/pull/194
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.22...v0.5.23
📋 What's Changed
- Pseudo classes tokenization by @Machy8 in https://github.com/stylify/packages/pull/187
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.21...v0.5.22
📋 What's Changed
- Fixes15 by @Machy8 in https://github.com/stylify/packages/pull/179
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.20...v0.5.21
📋 Changes
- Bug fixes in Stylify Cache
📋 What's Changed
- Fixes13 by @Machy8 in https://github.com/stylify/packages/pull/176
- Fixes14 by @Machy8 in https://github.com/stylify/packages/pull/177
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.18...v0.5.19
📋 What's Changed
- Fix similar screens matching by @Machy8 in https://github.com/stylify/packages/pull/175
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.17...v0.5.18
📋 What's Changed
- Fixes4 by @Machy8 in https://github.com/stylify/packages/pull/173
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.16...v0.5.17
Bugfixes + Typehint fixes **Full Changelog**: https://github.com/stylify/packages/compare/v0.5.15...v0.5.16
✨ External variables feature
- ```js
- const stylifyConfig = {
- compiler: {
- externalVariables: [
- // Simple string check
- 'test',
- // Flexible function check. Return true if matched. Otherwise return undefined or nothing.
- (variable) => {
- + 7 more
📋 Changes
- Fixed watching for directories with special characters.
- Used chokidar for watching directories instead of fs.watch, because the watching system is simply a huge mess.
📋 Changes
- Fix: Bundler: Already normalized path should not be normalized again
✨ Features
- Now you can define Dynamic Components.
- With this feature, you can create components, that changes style based on matches from regular expression
- For example:
- `title--large title--$red`
- ```js
- const compilerConfig = {
- components: {
- // title--$red
- + 8 more
📋 What's Changed
- Dynamic components by @Machy8 in https://github.com/stylify/packages/pull/165
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.11...v0.5.12
✨ Features
- Added screen and pseudo classes group `md:{font-size:24px;margin-bottom:8px} lg:hover:{color:purple;scale:1.4}`
- Utilities, that are not matched within a content are not generated even though they have been added within component or custom selector
- Removed unnecessary escaping of `-` and `_` in generated CSS
- Characters aliases such as `_` can be now escaped `\_`, so the `_` is preserved: `[.some\_\_selector]{color:blue}` => this will not replace underscores
📋 What's Changed
- Optimization tunning by @Machy8 in https://github.com/stylify/packages/pull/159
- Multiple properties can be wrapped into pseudo class or screen group by @Machy8 in https://github.com/stylify/packages/pull/160
- Aliases escaping by @Machy8 in https://github.com/stylify/packages/pull/164
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.10...v0.5.11
📋 Changes
- Removed isRoot from bundler file when processed
📋 Changes
- Bug fixes in Bundler watch task
📋 What's Changed
- Added bundler initialized hook. This allows you to get initialized Bundler from anywhere within the app.
- Fix bundler watch command by @Machy8 in https://github.com/stylify/packages/pull/157
- Full Changelog: https://github.com/stylify/packages/compare/v0.5.7...v0.5.8
