Skip to content

v2.0.0-rc.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 10 Jan 11:02
· 981 commits to rc since this release

New Features

  • @master/css.vue, including CSSProvider dac0ffd
  • Ambiguous shorthand support for config.values 7157d3b
  • Class Variant #191 3dd94ff
  • Integrate Master CSS Static Extraction in Vite way f461c83
  • Integrate Master CSS Static Extraction in Webpack way 761b902
  • Master CSS ESLint Plugin dfb66ee
  • Master CSS ESLint Plugin Config 91bce44
  • Master CSS Nuxt baf1e50
  • Master CSS Runtime, performs a single responsibility dac3834
  • Master CSS Server 970928b
  • Master CSS Server Nitro 72061c4
  • Master CSS static extractor for various raw text 2f51401
  • Master CSS Variables, resolved #283 c97de2f
  • Multiplier unit x and config.baseUnit #316 51bf4a2
  • Nested configuration for classes / mediaQueries cbd27ad
  • Pre-renders Master CSS class syntax in HTML 85d82a7
  • Smart conversion of units for factors in calc 6b7c08b
  • Theme Service 4e6ae25
  • Validator for Master CSS class syntax 73bfec1
Class Variant
Compiler
  • Option .additions for files scanned at startup 2364f92
  • Option .additions for files scanned at startup 3fac285
CSS
  • config.extends multiple configurations #180 5b080ae
  • config.keyframes generated on demand #181 ffcdef7
  • config.precedence for how to insert <style id="master"> into the DOM tree or HTML 357811f
  • config.themeDriver #177 797da10
  • gradient-text semantic + gradient() shorthand #167 fb92b98
  • mcss render .next/**/*.html command for things like Next.js #205 6e95826
  • vw vh max-vw max-vh min-vw min-vh semantics #124 ad024c4
  • Config colors support rgba() function #105 d6af6bf
  • Fallback invalid at-rules @.* to be themes #214 836e702
  • Fonts Configuration API, resolved #275 824d0ed
  • Independent theme API f14182e
  • Master CSS CLI 977daf5
  • Master CSS Variables bb3b660
  • Semantic fit = width:fit + height:fit #257 a199e34
  • Support BEM's double underscore naming #218 8c8586d
  • Support for converting unit-valued parameters in CSS functions 6cd038d
  • Support making all declarations important with config.important #131 ccbff2e
  • Support scoping all CSS rules with config.scope #133 c41baea #132
  • Support semantics and rules with animation keyframes #222 f2f8b87
React
  • CSSLazyProvider for lazy loading JIT engine fa97d0c
  • CSSProvider, useCSS 45dccb1
  • cve supports Boolean properties #247 c7b6c07
  • ThemeProvider Pass theme context, state, and switch() 8fbb553
  • Integrate Class Variant using React elements #191 277ee1d
Svelte
  • CSSProvider and LazyCSSProvider standardly register Master CSS in Svelte 6864e11
  • LazyCSSProvider for Progressive Rendering b5577b4
Syntax
  • A new shorthand max:WxH for max-width and max-height a2396d0
  • A new shorthand min:WxH for min-width and min-height 25c2398
  • A new shorthand WxH for width and height 1bb9e90
Vue
  • Class Variant Elements 2fa48d9
  • Register the theme service using ThemeServiceProvider f4dfaca

Performance Upgrades

  • Create CSSStyleRule based on different themes, resolved #303 #301 820705e
  • Improve rule parsing and transformation 04aa0e6
  • Share utilities instead of duplicate instantiations 2d263fb
Compiler
  • Prevent repeated validation of the same extraction 1a5663b
CSS
  • Improved variable syntax algorithm b866769
  • Make all exports tree-shakable 382bbe7
  • Merge all rules into one ( ↓ ~1KB Brotli ) ed72be5
  • Minify and improve border-color matching performance 0786e19
  • Minify and improve border-radius matching performance 59a693f
  • Minify and improve border-style matching performance 363edca
  • Minify and improve border-width matching performance 896132d
  • Minify and improve border matching performance 4115342
  • Minify and improve gap matching performance 7b68fb8
  • Minify and improve scroll-margin scroll-padding matching performance 636d46c
  • Separately bundle Node and Browser packages 73c1b82
  • Simplify CSS architecture ( ↓ ~2.5KB Brotli ) 22af8ac
  • Solve FOUC caused by pure JIT mode 853e154
ESLint
  • Use workers to share configuration and speed up expensive style calculations e66a680
Extractor Vite
  • Access the transform code to avoid reading the source file 95d1726
React
  • Resolve promises in parallel b1c0e08
  • Tree shakeable and more reliable automatic chunk splitting structure c229371
Server
  • Add decodeHTML function and fix class duplication dd5d607

Additions

  • class RuntimeCSS d54ad61
  • sizing design tokens for all related syntax 4eae683
  • Assign foreground variables to related rules 87fa6ba
  • Autofill solid to border-(left|right|top|bottom|x|y) syntax fe55383
CLI
Compiler
  • ignoredClasses fixedClasses ad6d076
  • ignoredClasses fixedClasses 9ed2efc
  • options.module for custom virtual module entry 5231b94
  • options.path Specify the custom compiler options file 634eb34
  • options.sources for specific sources, not excluded by options.exclude 5743de5
  • Exclude public dir ba21347
  • Option cwd and additions 1adf965
  • Read config file as default options 5ae96de
  • Support master.css.{js,mjs,cjs} config cad6297
  • Support master.css.{js,mjs,cjs} config d1beffe
CSS
  • extractClassesFromHTML() function e8f80b6
  • extractClassesFromHTML() method 0a58818
  • extractLatentClasses() function 3b89074
  • generateFromClasses() function 49cf346
  • generateFromHTML() function 8c6dc60
  • getSyncWithStoredThemeScript for <script> a97c981
  • mcss render '**/*.html' --analyze mode e9f14ca
  • renderHTML() function 37ee2f3
  • renderRules() method 0104b61
  • renderRulesFromHTML() method c1b022d
  • reorderForReadableClasses(classes) function 33e9ef1
  • rule.text for getting native CSS text 4ccf9c5
  • Auto create config file master.css.js after install 052cc0e
  • Selector shorthand :only for :only-child #266 371b83d
  • Variable syntax supports color tokens b5c8a69
ESLint
Language Service
  • Export language server completion getReturnItem function bdd05ba
  • Export Master CSS language server default settings #184 d1e67e8
Normal CSS
  • Eliminate click delays on touch devices 1ed5cf6
  • Make media elements responsive a8171cf
Theme Service
  • init() function to initialize ThemeService more concisely 1cc98fc
  • Complete destruction is optional 2f51ca2
Vscode Language Service

Updates

  • Don't output plugin as default 57cdf8d
  • Don't output plugin as default 697dc68
  • Fix the versions of all packages e2d4ed5
  • Fix the versions of all packages 6602d80
  • License ed674de
  • Migrate Master CSS Language Service in e077f22
  • Release notes b5f2e0a
CLI
  • Rename AOT options to compilerOptions f2a0dff
Compiler
  • Exclude non-classname strings like @typescript-eslint/no-empty-function 59db021
  • Exclude some non-classname strings 2f37440
  • Remove init() and use refresh() when config changed eef2c5b
  • Remove console log 754c875
  • Remove console log 1155bda
  • Rename.fixedClasses .ignoredClasses to .classes.fixed .classes.ignored 721da2b
CSS
  • render renderFromHTML renderIntoHTML arg c7a29d5
  • render renderFromHTML renderIntoHTML arg d7d6691
  • Insert master style before <link rel="styleSheet"> or <style> 1dd3f8b
  • Merged options.override options.observe into config e1f3744
Language Service
Vite
  • Scan sources and inject with virtual:master.css 1d87a67
  • Scan sources and inject with virtual:master.css 2f31a9d
Webpack
  • Scan sources and inject with master.css e6a8cc9
  • Scan sources and inject with master.css 2a0d7b7

Improvements

  • Autofill solid to outline and border, resolved #302 2c889a0
  • Configuration errors should not be ignored 83ef1cd
  • Make $(variable) have a fallback mechanism 9da7d35
  • Merge CoreLayer to Layer 5f3989e
  • No need to check for the existence of a syntax value 6eb8db5
  • Prefer animation names over variables, resolved #317 5fedc0b
  • Refactor media queries to use screen sizes tokens dd9dbbb
  • Remove unused variables size and simplify code 5619e66
  • Rename config.classes to config.styles 3328df1
  • Rename css.insertRules to css.render 2b454bd
  • Rename variables.box to variables.section 5101df4
  • Rename variables box-size to screen a798d99
  • Unify rules and variables using kebab-case, resolved #305 b4582db
  • Update CSSProvider to CSSRuntimeProvider a608a1d
  • Use globalThis to access master CSS related objects in various environments b8adf67
  • Use size:w|h, max:w|h, min:w|h instead of wxh, max:wxh, min:wxh da8331e
CLI
Compiler
  • mcss build --watch log e383c83
  • options.standalone optimized build tool and CLI 6df1ec6
  • Beautify console formats 3922855
  • Check the validity of CSS rules with stylelint caab954
  • Debug logs 52c8020
  • Default options.exclude 0912fbf
  • Export MasterCSSCompiler in a non-default way 3ad10f8
  • Initialize the compiler synchronously 626615d
  • Log format 7ed2712
  • Log outputs 5881df6
  • Log outputs 8be8fef
  • Simplify types 217cd80
  • Support master.css.{ts,js,mjs,cjs} configuration 1b5b0b7
CSS
  • animation-play-state: -> @play: #223 e01886d
  • border and outline default to solid when style is not specified #267 4aea676
  • config.keyframes and config.semantics are strictly restricted to camelCase 81e2eec
  • config.keyframes format 7461d4b
  • config.rules have no type hints 46154f3
  • config.rules interface feff1dc
  • MasterCSS, Rule methods f72fcd2
  • mcss render log brotil sized and rendered files #205 fe1b598
  • overflow:overlay #207 8d5d578
  • TextSize utility syntax with golden ratio ad57e41
  • TextSize utility syntax with golden-ratio line heights 26c94d3
  • Changed line height units of TextSize utility syntax to em for a more general visual 1b49fea
  • Do not extend config.keyframes deeply f5ab1e4
  • Export MasterCSS in a non-default way 8becfdb
  • Expose the css.observer property b8df93c
  • Extend getDocThemeInitScript default settings d00ad98
  • Increase text:size line height 0084d68
  • Increase line height diff for TextSize utility syntax 691625c
  • Initialization of Master CSS Runtime #249 493e091
  • Made color config syntax consistent with class syntax #264 20fa8fc
  • Make CSS variable syntax support color tokens, resolved #276 5fa9fa5
  • Make functions support color tokens to avoid broad matching feb990b
  • Merge config.values.x into config.rules.x.values and keep original config.values as global tokens 88d96c5
  • Merge config.viewports to config.mediaQueries #284 11e9bfa
  • Merge the spacing into margin and padding a4b8d21
  • Migrate @master/css-cli to @master/css 13a1ba0
  • Rename config.breakpoints to config.viewports and add the viewport 4xs f6f19ab
  • Rename config.breakpoints to config.viewports and add the viewport 4xs d766c3f
  • Rename config.functions[].native to config.functions[].name 4b48166
  • Rename config.keyframes to config.animations #268 2895a1c
  • Separate margin, padding rules e43b1b0
  • Simplify animation-direction values #220 a70f8c0
  • Simplify animation-fill-mode #228 e5d2fe5
  • Simplify animation-iteration-count #227 8c65635
  • Specify multiple theme colors on a single prop #263 af8b3f1
  • Specify theme variants in each config options #213 c912f70
  • Support values in calc() 0f1172f
  • Supports any color tokens eb7efc7
  • Type Config c25b482
  • Type-safe CoreLayer enum bbb30c6
  • Type-safe Layer enum 7d1197a
  • Use RegExp instead of String to define config.rules[].match 8b48d8c
  • Variable syntax falls back to native if not found f123054
  • Warning message for invalid class order b7d5f0d
ESLint
  • settings.functions -> settings.calleeMatching e2cc619
  • Arrange properties with the same rule name together 9644bdb
  • Export settings, recommended configuration a2e3b32
  • Move non-Master CSS classes to the front 2824d3e
  • Rules schema 20a093b
  • Support settings.functions using Regex d20a504
  • Support object functions like styled.h1 89039fe
Extractor
  • Add options.exclude d93dc68
  • Default .virtual/master.css virtual module and file output 735b273
  • Exclude dev sources 3e3e3d9
  • Virtual CSS mods are prefixed with virtual: by default to avoid confusion with real mods #200 d608e26
Extractor Vite
  • Automatically extract index.html according to transformIndexHtml 8ebe612
  • Update the virtual CSS hot module more stably 69ee216
Extrator
  • Built-in handling of changes to options, configurations, and sources 6560182
Language Server
  • Remove unused dependencies bd49fd3
Language Service
  • Remove unused dependencies and bundle vscode-css-languageservice b79919f
Normal CSS
  • Support modular import on demand e7451d9
React
  • useLazyCSS, useCSS ed5d375
  • Marked providers as 'use client' 6a7cf28
  • Rename ThemeProvider to ThemeServiceProvider a9330da
  • Standalone ThemeProvider d19d7d8
Theme Service
  • Destroy the theme service c07547e
  • Rename event theme to themeChange bdb8578
Vite
  • Scan and generate CSS rules based on the dependency tree 4f1c7b5
Webpack
  • Scan and generate CSS rules based on the dependency tree 591cdc9

Bug Fixes

  • border-top, border-bottom, border-left, border-right are incorrectly set to Native, should be NativeShorthand 151e456
  • initRuntime() is missing the default document 4009a13
  • initRuntime() is missing the default document 2bb34d9
  • outline:none doesn't work and autofill solid is deprecated, resolved #296 #299 f98bc57
  • require cache is not cleared in ESM 6bece4b
  • SyntaxError: Unexpected token 'export' #183 c639b1a
  • All elements under the pre node are not parsed 9d43396
  • Analyze values 3ea0d29
  • Build and dependencies 64dffda
  • Chalk dependency 0aff21c
  • Confusion when inserting keyframe and variable rules 3847a98
  • Dependencies @master/normal.css, @master/keyframes.css 3471cc9
  • Dependent versions of all packages in the workspace 70b6c0e
  • ESModule import/export path missing .mjs extension #183 bc6afd1
  • Global variables masterCSS, masterCSSs e0a8295
  • Incorrect rule index when parsing pre-generated CSS text b4e8aad
  • Missing support for double quotes " in property values 5c0cc2f
  • No known conditions for "." specifier in "@master/css-server" package a38f812
  • Package info cc05da1
  • Packing 6232291
  • Prevent % or indeterminate CSS variables from converting units 51f4118
  • Release assets 888a2d7
  • Rule prop typing fc6610e
  • Semantics Type fe47410
  • Side effects of CLI entry splitting a2a668e
  • The rule order is floating when state tokens are the same d0c4c98
  • Typo mix-blend-mode, shape-image-threshold d8b1eda
  • Usage is not cleared when disconnecting 6cd711b
  • Variable rules were incorrectly inserted into css.rules de8b966
  • Vite execution phase was too late causing Astro to not generate CSS bundles 131260d
CLI
  • Cannot find module '@master/css-compiler' #161 1731de2
  • Newly created files aren't detected while watching 3f84f8e
  • Use compiler.sources as watching path d1436a4
Compiler
  • options was incorrect after refreshing 0096392
  • require error in ES module 698278c
  • require error in ES module cf1e747
  • Accidentally extracted to paths/URLs ca5406f
  • Cannot find module require c8e1cd4
  • Cannot find module require 56b7d21
  • Cannot find module for config b5c7ad1
  • Cannot find module for config 07a84b1
  • Cannot read config causing hang 204f23c
  • Cannot read config causing hang 4364f59
  • Causes hang when extracting class names 909f678
  • Causes infinite loop when extracting class names cc42cee
  • Compiler parses and compiles comments with Vite #149 0cfa92e
  • Could not read master.css.js file 0eeac75
  • Exclude import strings when extracting class names 46117b3
  • Exclude import strings when extracting class names ffe4725
  • Exclude import strings when extracting class names 218b8c2
  • Exclude import strings when extracting class names 42a64a4
  • Exclude names such as @ts- when extracting classname 926913f
  • Exclude names such as @ts- when extracting classname ce4ed02
  • Exclude non-classname strings like $(size):calc(100%-20px) 674c28f
  • Exclude unclosed brackets when extracting class names #109 593ee21
  • Extract class names by config.classes 5d53f9a
  • Extract class names by configuration .classes a3daebf
  • Extract classname 64e775a
  • Extract group classes 602e9e9
  • Extract group classes ed30b34
  • Find complete string when extracting class names bb799e3
  • Find complete string when extracting class names eb62556
  • Group rule are not outputed 1a91797
  • Group rule are not outputed #88 691c9c7
  • Illegal configuration file path used in windows b1ebd54
  • Import user config file path problem 1053784
  • Missing specific format when extracting class names 17c2a92
  • Missing specific format when extracting class names 59bf2e4
  • Missing string block e394eb8
  • Missing string block 6e70944
  • Missing to extract some classnames like scale(.5)@sm dc9dfae
  • Missing translate() when extracting classname 1c6dfa9
  • Missing translate() when extracting classname 2b0f5db
  • Missing wxh classnames b63c75b
  • Missing wxh classnames d7e9f65
  • Read the new configuration instead of from the cache 9d7b031
  • Read the new configuration instead of from the cache 59d60b5
  • Strange behavior with breakpoints #111 4929a36
  • String extraction error when extracting classname a4186ca
  • String extraction error when extracting classname 032f225
  • Unified CSS file output directory access d1596fc
  • Wrong MasterCSS options d18b244
  • WxH class extraction error when extracting classname be65df5
  • WxH class extraction error when extracting classname 1ed85cb
CSS
  • @media and @supports doesn't transform | to #198 31b8e15
  • @media and @supports doesn't transform | to #198 7991510
  • &#x27; wasn't be decoded aff3f25 #x27
  • calc() with unit awareness doesn't work in group syntax #168 9affd98
  • calc transforms the value incorrectly 3a25252
  • calc transforms the value incorrectly e95f9e5
  • colorStarts mismatch bec7cb4
  • CSS is not defined 0e2f04d
  • css.refresh() throws Uncaught ReferenceError: style is not defined fe552af
  • Directory import '...providers' is not supported resolving ES modules imported from '...index.mjs' b5a673a
  • font:serif causes Maximum call stack size exceeded 8725cd8
  • foreground|fg missed CSS variables 4e96714
  • mcss command doesn't refresh when master.css-compiler config is changed 518f023
  • mcss command will refresh loop if resolvedConfigPath or resolvedOptionsPath is empty string e199664
  • observe(root) type error 01a3d05
  • override doesn't work cab1bd0
  • renderFromHTML decode class name before inserting 5f4dcbf
  • repeat() accidentally converted units #195 ce56692
  • root is not defined b06ced0
  • sheet.ownerNode is null sometimes 626cfc1
  • stroke wasn't matched 9f370a8
  • strokeWidth wasn't matched b9a9e31
  • theme.default doesn't work 3fe701b
  • TypeError: Cannot read properties of null (reading 'cssRules') 31ed9a6
  • TypeError: Vs is not a function 44caabc
  • Accidentally added undefined class name to <html> a2378b5
  • Automatically add negative values for number config.values #211 8a3239d
  • Buffer is not defined in non-Node environment bdccebe
  • CLI alias c56897a
  • CLI doesn't read the specified config path 9d5f3b0
  • Color configurations without dashes don't work f62fc62
  • Color token is judged as selector bd7db75
  • Color-related rules af15403
  • Colors with themes are not reflected in the classes #260 fce7282
  • Config definition 19e7693
  • Config types 0993a83
  • Declaring theme colors via the Group syntax with classes is invalid #138 571f092
  • Exception for empty '' in nested configs 7a13731
  • Extended configuration incorrectly 7806d0f
  • Flat object with keys containing das in config value 7df5a26
  • Function syntax with selectors generates incorrect rules #253 23f817c
  • Functions were incorrectly replaced with values d532d6a
  • Generated incorrect gap-x gap-y rules dd555cf
  • Generates incorrect keyframes rule 7d4160f
  • Google translated title="master" attribute value causing Hydration error 67daa57
  • If variable Rule prefix contains (), will throw error 2a726ad
  • Importing ESM causes Circular dependency e1abf9c
  • Incorrect @fade keyframe 0eccd0b
  • Incorrect cssRules sort 35fb0a0
  • Incorrect variable syntax CSS rules a46ec0f
  • Incorrectly matching value words 59389fa
  • Incorrectly rehydrated animation CSS rules, resolved #274 c1d6c4d
  • Invalid browser ESM version f61379a
  • Invalid rules are not excluded e6df763
  • Invalid unit value in shorthand e1e62bb
  • Mathematical fraction expression is not working e1f7b8c
  • Missed grid-rows match 21b8d88
  • Missed grid-template-columns and grid-template-rows default unit rem 43f53f3
  • Missed removing the logs for testing 15c8806
  • Missed the config.important default value 976e354
  • Missing order rule f116aec
  • Missing export CoreLayer enum 2958754
  • Missing runtime initialization of browser package 1bf520e
  • Normalize that () in calc is missing spaces #206 3f6ad02
  • Options was deprecated 7c7a4d6
  • Queried a non-Master CSS stylesheet incorrectly db236d3
  • Re-rendering HTML repeatedly injects CSS 388f420
  • Remix breaks after hydration #159 c15643e
  • Rules are inserted in unpredictable order f011929
  • Set config incorrectly when refreshing abeb2fe
  • Some rules are missing layer 4cf62d5
  • Support selector shorthands for group syntax 0da4dcc
  • The order of CSS rules insertion is not reliable 6adad14
  • Theme colors are not mapped #199 6ed4238
  • Type does not allow custom rule names e7f89af
  • Type error 158a195
  • Type parameter 'key' has a circular constraint c24d374
  • Unexpectedly treated toString as a valid class 92ef89c
  • Unsupported CSS properties in a group have no fallback 891e3f0
  • Web APIs in node env 5e16531
  • Wrong order of extended targets 2dbdebe
  • Wrong override config behavior 4e08b1c
CSS React
  • Client and server components shouldn't be bundled together, fixed #262 2b9ca7a
EsLint
ESLint
  • A template literal with interpolation cannot be sorted correctly 07daad2
  • Callees are not checked 83620cb
  • Cannot read properties of undefined (reading 'layer') 00b8020
  • Class attribute containing group class is ignored 8d3a672
  • Class ranges 7cc9964
  • Run fixes all @master/css/class-order problems causing wrong ordering 92e083d
  • Vue parse 7d630f6
Extractor
  • Make options accessible across environments fcb38d5
  • Miss extracting some strings f2fa8e4
  • Missed patterns to match filenames starting with a period 1fa97ea
  • Missing waiting for the watcher initialization 35ccd1a
  • Repeat to start watching 7966860
Extractor Vite
  • A path with parameters passed the check unexpectedly c1c9b3a
  • Accidentally enabling extractors during SSR 690bdb0
  • Changing fixed sources didn't trigger HMR a5309a7
  • CSS isn't expected to be injected into the chunk after vite build e1ad44e
  • HMR doesn't work when modifying master.css.* config or master.css-extractor.* options ec284ef
  • HMR will not be performed after modifying master.css.js e9f9f3c
  • Read a file that does not exist on reset 5b142a8
  • Read incorrect file path on reset 19d18b6
  • Vue/React environments don't have styles injected after server connection 865149c
Extractor Webpack
  • Module not found: Can't resolve '.virtual/master.css' d20d087
  • All mods aren't rebuilt on config/options reset aa77584
  • Static extraction doesn't work for HMR in Next.js 13 App #102 1452aa7
Language Service
  • Critical dependency 4577d8f
  • Certain syntaxes display wrong CSS rules #186 1ff15c3
  • Color parse eb25776
  • Incorrectly triggering the compiler to scan files 033ddaa
  • Language server path ece874a
  • Miss order:last and order:first suggestion 3c2d19e
  • Missed the @master/css.compiler dependency 8407c22
  • Parse color 1f8ef31
  • Publish to npm ba50868
  • Synchronous require cannot resolve module 'util' 796c452
  • Syntax highlighting is not working in Svelte #193 f286728
React
  • CSSProvider Types b1707c9
  • LazyLoadProvider Incorrectly importing configuration dynamically efbbcd0
  • ThemeProvider theme was not updated b15dd11
  • Incorrect lifecycle in CSS providers 6a2fbcd
  • Incorrect packing e69bf15
  • Infinite renders ff19f24
  • Matching classes were not added, fixed #271 307a7ee
  • Providers aren't exported correctly from the entry dc69ead
  • Repeat to initialize Master CSS 649429e
  • Repeat to initialize Master CSS on SSR 1118e97
  • Stored themes were unexpectedly cleared when the DOM was destroyed 7a3f17f
  • Typings 4f507e1
  • Undefined config module ad414fd
  • Wrong switch parameter f12c1bc
  • Wrong TypeScript compile option e0d99f0
Renderer
  • Cannot read properties of undefined (reading 'text') 72baccd
Server
  • Class names from HTML must be decoded beforehand 13e07c7
  • Missing decoding of React-specific &#x27; f1e5a3d #x27
  • Removing comments can break hydration, fixed #310 9ed3493
  • Use htmlparser2 instead of node-html-parser to reliably parse HTML d213c8b
Server Nitro
  • No such file or directory, open 'D:\a\css\css\packages\server\dist\index.mjs' 9a73eb8
Svelte
  • CSS HMR has no effect fd2eda6
  • Incorrect lifecycle in CSS providers d2fa878
  • Undefined config module ea561c4
Theme Service
  • _value and _current are not reset on destruction 3695626
  • Cannot find module 'src/core' from 'src/functions/init.ts' a66cf2f
  • matchMedia is not defined e185afd
  • options isn't exported from the entry c1aba13
  • Not updating when system theme preferences change 2c409a0
Vite
  • /master.css publicURL 3d2df78
  • /master.css publicURL 861722e
  • Cannot find file master.css on build start d6fddb2
  • Changing master.css.js won't update style by HMR 68b0480
  • Compiler sources error 100cb83
  • Dev server's index.html isn't scanned on startup 1a7ffd8
  • Entries aren't scanned on init 9d4009c
  • HMR isn't triggered when modifying configuration d29f38a
  • Modify the configuration with HMR c1787c3
  • Modify the configuration with HMR 2bac428
  • Move vite from deps to peerDeps fa76e7e
Vscode Language Service
VSCode Language Service
Vue
Webpack
  • Cannot read properties of undefined (reading '_value') ce01eae
  • options.module not applied b76b644
  • Compile source code instead of generated code 0eba434
  • Compile source code instead of generated code d3a649c
  • CSS virtual module has been read before initializing 3186391
  • Entries aren't scanned on init 8ae7f1c
  • HMR doesn't update correctly when changing configuration #153 a748e4a
  • Missed initialization of Master CSS Compiler 56a032d
  • No results reloaded on HMR 418acd5
  • No results reloaded on HMR 51de08e

Deprecations

  • Nested variable definitions to align rules 1ad1e7a
  • Use clsx instead of @techor/one-linear c0b4e39
Compiler
  • Use extractor instead of compiler bfde550
CSS
  • config.rules[].symbol #224 29afcd4
  • config.values c977641
  • extractClassesFromHTML function c1e1fe5
  • generateFromClasses function 7c68a1b
  • generateFromHTML function 4788cfa
  • renderHTML function ee1fcff
  • renderRules() 1c11b2c
  • renderRulesFromHTML() 625945e
  • sm:, sp: collision-prone syntax #256 7d32952
  • Continue to ensure <style id="master"> is inserted at the end of <head>, config.precedence is no longer required b7443a8
  • Depreciate config.theme 31cbaec
  • Forced insertion of <style id="master"> at the end of </head> causes too many side effects 480e95c
  • Remove Theme from @master/css 41c787d
  • Rename render() to generateFromClasses() 130d360
  • Rename renderFromHTML() to generateFromHTML() 184c170
  • Rename renderIntoHTML() to renderHTML() e345e44
  • Replace overflow semantic with overflowed e0d79b0
  • Semantic declarations for string types are no longer supported 9abb7b1
  • Use CONFIG_ESM_TEXT instead of CONFIG_TS_TEXT 467c39e
  • Use config.variables.fontFamily instead of config.fonts 8fd2381
  • Use the kebab-case to define config.semantics instead of camelCase 1273454
Extractor
  • Use new CSSExtractor({}, cwd) instead of new CSSExtractor({ cwd }) f4da0a2
Keyframes
  • Built into config.keyframes so deprecate @master/keyframes.css 5c0c987
React
  • Use the React.lazy instead of LazyCSSProvider c9d4f9b
Svelte
  • Use CSSProvider instead of LazyCSSProvider 9bd0c72
Theme Service
  • options.init in favor of manual initialization cbea12e
Vite
  • Use @master/css-extractor.vite instead of @master/css.vite 9b4e443
Webpack
  • Use @master/css-extractor.webpack instead of @master/css.webpack 626ee89

Documentation

README
Svelte
  • Import the master.css.* config file from the root, resolved #309 44d9930
  • Use svelte:component to provide CSS cc9a21c

Upgrades

Compiler
CSS
Play
  • Forgot to upgrade configuration variables b3fd8cd

Reversions

  • Revert Improve(Extractor): Virtual CSS mods are prefixed with `virtual:` by default to avoid confusion with real mods #200 `text` and prefix with .virtual: e6a6698 #200

Examples

  • Add Angular v17 example 10373e0
  • Add a Parcel example 47f3b47
  • Add Laravel with Static Extraction 802d53e
  • Add the Lit example bad7793
  • Add the Remix example e0b3097
  • Create the Angular example 41e27e0
  • Svelte kit dc0591d
  • Update Lit example f9d4af7
  • Update Next.js with Progressive Rendering 45a0e32
  • Update Next.js with Runtime Rendering 3c02281
  • Upgrade to Angular 17 + Progressive Rendering f680eb2
CSS
Lit
Next.js
  • Update CSSProvider registration 2b05b35
  • Upgrade to Next.js v13.4 App Router 1387b82
  • Upgrade to v13.1 884579f
  • With master.css.js configuration 8af0eb4
Next.js 13
  • Scan sources and inject with master.css 9ea6861
  • Scan sources and inject with master.css 0a99c47
  • Update to Next.js 13 123e92d
  • Update to Next.js 13 b6544a5
Nuxt
React
  • Use the latest Master CSS React API and add a theme switching example 9c38e84
  • Using ThemeProvider ff9a2c1
Svelte
  • Import the master.css.* config file from the root, resolved #309 6098004
  • Use svelte:component to provide CSS 20dd294
  • Use group feature {'{fg:red}>li:first'} 5b11ad8
  • Use group feature {'{fg:red}>li:first'} b20c59c
  • With master.css.js configuration 1936ace
Svelte Kit
  • Fix Cannot find module 'sorcery' 9b699ee
  • Renew project 0c49b0e
  • Update to stable MasterCSSVitePlugin b8302a2
  • Update to stable MasterCSSVitePlugin c7bda0f
  • Update to Svelte Kit v1 c9d9b80
  • Update to Svelte Kit v1 b6fecbc
Vite
Vue

Tests

CLI
CSS
Extractor Vite
  • Nuxt.js Static Extraction example e997c88
  • React Static Extraction example 5d609c2
  • Vite Static Extraction example 93712da
JIT
  • Make sure JIT mode doesn't throw errors on page load 648991a
Theme Service
Vite