Skip to content

Conversation

@PTKu
Copy link
Contributor

@PTKu PTKu commented Dec 1, 2025

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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

@PTKu PTKu linked an issue Dec 1, 2025 that may be closed by this pull request
PTKu added 9 commits December 1, 2025 15:31
- Introduced a new tailwind.css file to define custom styles.
- Added styles for various badge types: primary, success, warning, danger, and info.
- Created action button styles with hover effects and active states.
- Implemented shadow glow effects for different color themes.
- Configured dark theme support for border colors and animations.
Added the `AXOpen.Operon.Blazor` project to the solution files
(`AXOpen.sln` and `AXOpen.solution.sln`) under the new `styling`
folder. Updated build configurations and project dependencies
accordingly.

Refactored `axopen_core_blazor.csproj` and `axopen_data_blazor.csproj`
by adding necessary project references and removing unused `<None>`
item groups and redundant `<PropertyGroup>` entries.

Performed general cleanup and restructuring of the solution,
including the addition of `src` and `styling` folders, and removal
of redundant project references to improve maintainability.
Reordered build steps to improve efficiency:
- Added `DotNetBuildSettings.NoRestore` to skip redundant restores.
- Introduced explicit `DotNetRestore` for `AXOpen.proj`.
- Moved `BuildTailwindCss` to occur after dependency restoration.

Enhanced maintainability:
- Suppressed numerous compiler and system warnings to reduce build noise.
- Added conditional logic to control apax traversal creation based on build parameters.

Minor formatting improvements for readability.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Styling of axpen libraries should be confined into a single dependency

2 participants