Announcing Newlogic UI 4.3
March 24, 2026

Newlogic UI 4.3 is a focused release built around one goal: making the stack leaner and faster without changing what already works well in day-to-day development.
The biggest story in this version is the move of several packages to Rust-powered tooling and a reduction of dependencies by roughly half across the core stack. The result is a faster install, a faster dev loop, and less maintenance overhead in projects built on top of Newlogic UI.
A Leaner, Faster Toolchain
Vite 8
Newlogic UI 4.3 now supports Vite 8, continuing the shift toward Rust-powered tooling in the frontend ecosystem.
For Newlogic UI projects, this mainly means a faster and more modern foundation for development and builds, while keeping the developer experience familiar.
Another important detail in this release is that vite.css.transformer now defaults to lightningcss. In previous versions, this had to be configured manually because the default transformer still stayed on postcss.
This means one more Rust-powered part of the toolchain is available by default, with no extra setup needed.
Newlogic Core 4
This release also introduces Newlogic Core 4, where one of the biggest internal cleanups happened. The package now ships with significantly fewer dependencies, which was a major goal of this version.
Part of that work is a new heroicons Vite plugin. It replaces the previous manual src/icons.svg workflow. In vite dev mode, icons are automatically injected into the HTML, while production builds generate the final sprite into public/icons.svg.
The plugin also supports custom icon sets:
heroicons({
iconSets: {
'simpleicons-solid': ['src/icons/simpleicons', 'other-path'],
'icons-solid': 'src/icons/solid',
'icons-outline': 'src/icons/outline',
},
})Out of the box, the full Heroicons package is available, together with social icons from Simple Icons and Newlogic brand icons including newlogic-logomark and newlogic-logotype.
Usage stays simple:
<svg class="size-6">
<use href="#simpleicons-solid/facebook"></use>
</svg><svg class="size-6">
<use href="#heroicons-outline/academic-cap"></use>
</svg><svg class="size-6">
<use href="#icons-solid/newlogic-logotype"></use>
</svg>This removes one more manual step from projects and makes the icon pipeline easier to scale when multiple icon sources are needed.
Faster Email CSS Inlining
We also replaced vite-plugin-juice with vite-plugin-css-inline.
This new plugin has significantly fewer dependencies and uses a Rust-powered implementation, so email style generation is noticeably faster. This is not a major breaking change. From a DX perspective, the workflow stays the same, only the speed improves.
Oxlint Instead of ESLint
Another important tooling change is the move from ESLint to Oxlint.
This is a breaking change in configuration: eslint.config.js has been removed and replaced by .oxlintrc.json.
Oxlint is a Rust-based linter with a much faster runtime, and the rules used in the previous setup remain supported in the new default configuration. In practice, linting is now much faster while the expected output stays familiar.
Updated Defaults for the New Design System
Newlogic UI 4.3 also updates default colors, CSS values, fonts, and related styling tokens so they better match our latest Figma Design System.
This keeps fresh projects closer to the current Newlogic visual language from the start, with less setup required after installation.
Agent-Ready Project Setup
The AGENTS.md setup was updated to better support the new agentic development workflow.
When a project is installed, frontend skills are now automatically symlinked from Newlogic Core, so coding agents can work with a prepared set of project-aware capabilities out of the box.
Experimental winduum-email
This release also introduces winduum-email in an experimental form.
The long-term goal is to build a dedicated CSS framework focused on emails, including a set of base components tailored for email layouts. For now, this package mainly extracts the email CSS that previously lived inside Newlogic UI so it can exist as a separate dependency outside the project itself.
This is an early step, but it gives us a cleaner boundary between application UI and email-specific styling.
Smaller Changes
HeaderandFootercomponents can now be added viamain.json- updated default paths for
HeaderandFootercomponents - changed default asset paths for links and scripts in
layouts/default.latteanddata/main.json - added a new
Paginationcomponent - added a new
Marqueecomponent - dark theme is now disabled by default, but configurable via
data/main.json - added more layout configuration via
data/main.json - added
data/socials.jsonwith default social links - added the
x-imagestimulus controller
Newlogic UI 4.3 is not a complete rewrite. It is a cleanup release with a clear direction: fewer dependencies, faster tooling, and better defaults for the way we build modern backend-driven projects today.
Migration Guide from 4.2
If you are upgrading an existing project from Newlogic UI 4.2, the migration is fairly small and mostly focused on updating tooling.
1. Update dependencies
First, update your dependencies:
ncu -u
npm install2. Update dev dependencies without editing package.json manually
You can update the changed devDependencies with copy-paste commands:
npm remove -D @eslint/js @stylistic/eslint-plugin @stylistic/stylelint-config eslint npm-check-updates stylelint-config-standard
npm install -D @tailwindcss/vite viteThis is the effective change:
"devDependencies": {
"@eslint/js": "^9.39.2",
"@stylistic/eslint-plugin": "^5.7.0",
"@stylistic/stylelint-config": "^3.0.1",
"eslint": "^9.39.2",
"npm-check-updates": "^19.3.1",
"stylelint-config-standard": "^39.0.1",
"@tailwindcss/vite": "^4.2.2",
"vite": "^8.0.0"
},3. Replace ESLint scripts with Oxlint
In scripts, replace the old lint commands:
"scripts": {
"eslint": "eslint 'src/scripts/**/*.js'",
"eslint-fix": "eslint 'src/scripts/**/*.js' --fix",
"oxlint": "oxlint",
"oxlint-fix": "oxlint --fix"
},4. Update .gitlab-ci.yml
If your project uses the default GitLab CI setup, update the lint job list as well:
build-node:
stage: build
variables:
TESTS_BUILD: '["eslint", "stylelint"]'
TESTS_BUILD: '["oxlint", "stylelint"]'5. Replace root config files
Replace the old root configuration files with the new ones from this version:
- replace
.stylelintrcwith.stylelintrc.json - replace
eslint.config.jswith.oxlintrc.json
Or you can use the following contents directly.
.oxlintrc.json
{
"extends": ["./node_modules/@newlogic-digital/core/eslint-stylistic.json"],
"ignorePatterns": ["**/+.js"]
}.stylelintrc.json
{
"extends": ["./node_modules/@newlogic-digital/core/stylelint-config.json"],
"ignoreFiles": ["**/+.css"]
}After the migration, run your oxlint and stylelint checks and resolve any reported issues first. Only add local overrides for rules that are not already covered by the base config, so you avoid duplicating existing configuration.
6. Clean up scripts/main.js
When updating to Newlogic Core 4 and Vite 8, you can remove the following line from scripts/main.js as a cleanup:
import.meta.glob('/src/assets/**') With Newlogic Core 4, assets are handled automatically, so this line is no longer needed in main.js.
7. Replace the legacy agent setup
If your project still contains the old AI assistant setup, remove the .aiassistant directory and replace AGENTS.md with the version from the current release.
This aligns the project with the new agentic workflow and the current skill setup provided by Newlogic Core.
The Road to Newlogic UI 5
Newlogic UI 4.3 is also the first step toward Newlogic UI 5.
The next major version will continue the same direction even further, with more slimming across the stack. One of the biggest planned changes is the update to Winduum v3, where a large portion of JavaScript code will be removed thanks to a stronger focus on native browser functionality.
We are also planning to remove Stimulus from the default setup. It will be replaced by our new open source project, Webuum, which is built on native Web Components and is roughly 12x smaller than Stimulus.
The goal for v5 is simple: fewer dependencies, less JavaScript, and a stack that stays fast by default while moving closer to modern browser standards.