Configuration
Jess reads config from a styles.config.{ts,js} file at your project root. Keep it small at first; grow it only when your build needs it.
// styles.config.js
export default {
options: {}
}
options
dynamic
Changes compilation mode so dynamic content is represented as CSS custom properties and patch-friendly output. Reach for this when you need runtime theme switching or app-level style updates.
module
Overrides whether Jess files compile as modules globally. By default, files named [filename].module.jess or [filename].m.jess are treated as modules and class names are hashed.
compile.plugins
Add compile-time plugins used by the compiler (for language/runtime extensions). This is separate from bundler plugins such as rollup-plugin-jess.
lint
Configure jess lint and the @jesscss/lint API.
// styles.config.js
export default {
lint: {
files: ['src/**/*.{css,less,scss,jess}'],
ignoreFiles: ['dist/**'],
reportSyntax: true,
rules: {
'property-no-unknown': 'error',
'length-zero-no-unit': 'warn',
'vendor-prefix': 'warn',
'compatible-vendor-prefixes': 'off',
'unknown-vendor-specific-properties': 'off',
'float': 'off',
'jess/no-suspicious-map-key-access': 'warn',
'jess/unsupported-sass-form': 'warn'
}
}
}
files supplies the default glob set when jess lint is run without positional
patterns. ignoreFiles excludes generated or vendored stylesheets.
reportSyntax controls whether parser diagnostics are surfaced through lint.
Per-rule values are off, warn, and error; null also disables a rule.
Jess uses Stylelint rule names where the rule intent is familiar and Jess-owned
namespaces for Jess-only checks.
Those rule names are the lint configuration surface; shared diagnostic codes are
still emitted in JSON for editor and tool integrations.
Jess lint uses this policy on top of shared diagnostics. Detection itself lives below the lint package, so a diagnostic can be reused by the CLI and the language service instead of being implemented twice.