Skip to content

Conversation

christian-byrne
Copy link
Contributor

@christian-byrne christian-byrne commented Oct 6, 2025

Summary

Applied stylelint auto-fixes and resolved manual CSS issues across 25 files to achieve full compliance with stylelint rules.

Changes

  • What: Auto-fixed 68 CSS issues (legacy color functions, font-weight keywords, shorthand properties, pseudo-element notation) and manually resolved 6 remaining issues (duplicate selectors, vendor prefix duplicates, font fallbacks, Vue v-bind whitelisting)
  • Config: Disabled no-descending-specificity rule (43 warnings require architectural CSS refactor)

Review Focus

Verify no visual regressions from modernized CSS syntax:

  • Modern color function notation: rgba(0, 0, 0, 0.5)rgb(0 0 0 / 50%)
  • Numeric font weights: bold/normal700/400
  • Pseudo-element double colons: :before → `::before

┆Issue is synchronized with this Notion page by Unito

@christian-byrne christian-byrne marked this pull request as ready for review October 6, 2025 19:37
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Oct 6, 2025
Copy link

github-actions bot commented Oct 6, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 10/08/2025, 01:21:11 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

Copy link

github-actions bot commented Oct 6, 2025

🎭 Playwright Test Results

⚠️ Tests passed with flaky tests

⏰ Completed at: 10/08/2025, 01:48:38 AM UTC

📈 Summary

  • Total Tests: 490
  • Passed: 459 ✅
  • Failed: 0
  • Flaky: 1 ⚠️
  • Skipped: 30 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 450 / ❌ 0 / ⚠️ 1 / ⏭️ 30
  • chromium-2x: View Report • ✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • chromium-0.5x: View Report • ✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • mobile-chrome: View Report • ✅ 6 / ❌ 0 / ⚠️ 0 / ⏭️ 0

🎉 Click on the links above to view detailed test results for each browser configuration.

christian-byrne and others added 5 commits October 7, 2025 13:28
Auto-fix 68 CSS issues found by stylelint:
- Convert legacy color functions (rgba() → rgb())
- Normalize font weights (bold/normal → 700/400)
- Use shorthand properties (top/right/bottom/left → inset)
- Add url() wrapper to @import statements
- Remove redundant shorthand values
- Fix pseudo-element notation (: → ::)

Remaining 45 issues require manual review:
- 44 descending specificity warnings
- 1 duplicate selector
- Disable no-descending-specificity (43 warnings, requires CSS refactor)
- Fix 2 duplicate selectors (merge into single declaration)
- Remove duplicate vendor prefix fallbacks (user-select, mask-image)
- Add font fallbacks for primeicons (sans-serif)
- Whitelist Vue v-bind() CSS function
Remove stylelint from ignoreDependencies and ignoreBinaries now that it's actively used.
Add tw-animate-css and tailwindcss to ignoreDependencies as they're used in CSS @import statements which knip doesn't detect.
@DrJKL DrJKL force-pushed the fix/stylelint-auto-fixes branch from 00f953b to cc44118 Compare October 7, 2025 22:01
@christian-byrne christian-byrne added the claude-review Add to trigger a PR code review from Claude Code label Oct 7, 2025
Copy link

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comprehensive PR Review

This review is generated by Claude. It may not always be accurate, as with human reviewers. If you believe that any of the comments are invalid or incorrect, please state why for each. For others, please implement the changes in one way or another.

Review Summary

PR: apply stylelint auto fixes (#5940)
Impact: 99 additions, 131 deletions across 25 files

Issue Distribution

  • Critical: 0
  • High: 2
  • Medium: 3
  • Low: 0

Category Breakdown

  • Architecture: 1 issue
  • Security: 0 issues
  • Performance: 0 issues
  • Code Quality: 4 issues

Key Findings

Architecture & Design

The PR applies stylelint auto-fixes which modernize CSS syntax but raise some architectural concerns. The decision to disable the no-descending-specificity rule sidesteps underlying CSS architecture issues that should ideally be addressed rather than suppressed.

Code Quality Considerations

Several modern CSS properties were introduced that have browser compatibility implications:

  • flex-flow and place-content shorthand properties (limited older browser support)
  • inset property usage (not supported in IE, partial older browser support)
  • Removal of explicit font-size declaration may cause visual regression

The color function modernization (rgba → rgb with slash notation) is correctly implemented and follows CSS Color Module Level 4 specification.

Integration Points

These CSS changes affect the visual presentation across multiple components including:

  • Node preview interfaces
  • Tree explorer drag-and-drop indicators
  • Workflow tab popovers
  • Design system color variables

Positive Observations

  • Proper modernization of color functions from rgba() to rgb() syntax
  • Correct conversion of pseudo-elements from :before to ::before
  • Appropriate margin shorthand optimizations
  • Proper numeric font-weight conversions (bold → 700)
  • Consistent application of stylelint rules across the codebase

References

Next Steps

  1. Address browser compatibility concerns for modern CSS properties
  2. Consider restoring explicit font-size declaration to prevent visual regression
  3. Evaluate whether to address underlying CSS specificity issues rather than disabling the rule
  4. Test visual output across supported browsers to ensure no regressions

This is a comprehensive automated review. For architectural decisions requiring human judgment, please request additional manual review.

- Remove `declaration-block-no-redundant-longhand-properties` stylelint rule
  to avoid browser compatibility issues with modern CSS shorthands
- Revert `flex-flow` and `place-content` back to longhand properties
  in NodePreview.vue for better browser support
- Revert `inset: 0` back to longhand `top/left/right/bottom` in
  TreeExplorer.vue for browser compatibility
- Update knip.config.ts CSS compiler to properly handle `url()` wrappers
  in @import statements
@christian-byrne
Copy link
Contributor Author

I removed the declaration-block-no-redundant-longhand-properties rule and reverted the relevant fixes - according to Claude, it forces us to use shorthand which is sometimes not super well supported and the tradeoff does not seem worth it.

@DrJKL
Copy link
Contributor

DrJKL commented Oct 8, 2025

I removed the declaration-block-no-redundant-longhand-properties rule and reverted the relevant fixes - according to Claude, it forces us to use shorthand which is sometimes not super well supported and the tradeoff does not seem worth it.

I generally prefer the shorthand, but we can always add rules incrementally later 🙂

DrJKL
DrJKL previously approved these changes Oct 8, 2025
- Revert all remaining `inset:` shorthands to longhand in design-system,
  SidebarHelpCenterIcon, menu.css, and PackCard
- Revert `flex-flow` and `place-content` to longhand in design-system
Comment on lines 749 to 752
top: 0 !important;
bottom: 0 !important;
left: auto !important;
right: 0 !important;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The importants still make me sad

@christian-byrne christian-byrne merged commit 8fc5464 into main Oct 8, 2025
40 of 41 checks passed
@christian-byrne christian-byrne deleted the fix/stylelint-auto-fixes branch October 8, 2025 01:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
claude-review Add to trigger a PR code review from Claude Code size:L This PR changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants