Styling of axpen libraries should be confined into a single dependency #891
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Technical Summary
This Pull Request implements a major architectural shift in how styling is handled across the AXOpen framework, moving towards a centralized, dependency-based approach using Tailwind CSS.
Centralized Styling Architecture
New Styling Project: A new project styling has been introduced to serve as the single source of truth for styles.
Tailwind CSS Integration: The framework now utilizes Tailwind CSS. This is evidenced by the addition of tailwind.css files, tailwind.config.js (implied), and build scripts (tailwind-build.ps1, tailwind-watch.ps1) within the new styling project.
Component Updates: Multiple existing Blazor components (e.g., components.abb.robotics, components.drives, etc.) now include tailwind.ps1 scripts and tailwind.css assets, indicating they consume this new centralized styling configuration.
Build System Enhancements
Node.js Provisioning: The BuildContext.cs (Cake build script) has been updated with a ProvisionNodeJs method.
It automatically detects if Node.js is installed.
If missing, it attempts to install it via winget or Chocolatey on Windows, and apt on Linux.
This ensures the build environment can execute the new Tailwind CSS build processes without manual setup.
New Component: AXOpen.Operon.Blazor
A new Blazor library AXOpen.Operon.Blazor has been added to the solution. This likely encapsulates the new "Operon" design system or specific UI components that leverage the new Tailwind styling.
Cleanup
Configuration Removal: Obsolete apax.yml configurations have been removed, streamlining the package definitions to align with the new dependency structure.
.gitignore Update: The .gitignore file was updated to properly exclude node_modules, preventing the committed
bloat from the new Node.js-based tooling.
closes #890