Skip to content

fix: (core/blind and core/push-card) Refactor: Align Border Coloring and Outline Variants with Design System - #2520

Merged
nuke-ellington merged 35 commits into
mainfrom
ix-4047-blind-pushcard
Aug 10, 2026
Merged

nuke-ellington merged 35 commits into
mainfrom
ix-4047-blind-pushcard

Conversation

@1307-Dev

@1307-Dev 1307-Dev commented Apr 27, 2026 •

Copy link
Copy Markdown
Collaborator

💡 What is the current behavior?

No borders present for alarm, success, other validation variants.
Outline variant behavior is different from figma design.

GitHub Issue Number: #
Jira Ticket- IX-4047

🆕 What is the new behavior?

Added CSS changes to reflect figma design better

🏁 Checklist

A pull request can only be merged if all of these conditions are met (where applicable):

  • 🦮 Accessibility (a11y) features were implemented
  • 🗺️ Internationalization (i18n) - no hard coded strings
  • 📲 Responsiveness - components handle viewport changes and content overflow gracefully
  • 📕 Add or update a Storybook story
  • 📄 Documentation was reviewed/updated siemens/ix-docs
  • 🧪 Unit tests were added/updated and pass (pnpm test)
  • 📸 Visual regression tests were added/updated and pass (Guide)
  • 🧐 Static code analysis passes (pnpm lint)
  • 🏗️ Successful compilation (pnpm build, changes pushed)

👨‍💻 Help & support

Summary by CodeRabbit

  • Bug Fixes

    • Corrected blind and push-card border coloring to match the selected variant consistently.
    • Fixed blind collapsed and outline border alignment across all interactions.
    • Updated card accordion styling so expanded borders/backgrounds/hover/active states follow each variant.
  • UX Improvements

    • Improved accordion expand/collapse animation by switching to height/opacity transitions.
    • Refined expand-content border behavior and footer positioning/height for smoother expanded/collapsed layouts.

@changeset-bot

changeset-bot Bot commented Apr 27, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: af3743d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@siemens/ix Patch
@siemens/ix-angular Patch
@siemens/ix-docs Patch
@siemens/ix-react Patch
@siemens/ix-vue Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the styling for the blind and push-card components, introducing a new header wrapper and specific styles for various variants like outline, alarm, and warning. The feedback identifies that a changeset is required for these user-facing changes and that axe-based accessibility tests should be added to cover the new interaction states. Additionally, the border-radius calculations in both components should be corrected to ensure visual symmetry between the top and bottom corners.

@1307-Dev 1307-Dev changed the title feat: (core/blind and core/push-card) Added margin for variants and updated the outline variant to figma design. fix: (core/blind and core/push-card) Added margin for variants and updated the outline variant to figma design. Apr 27, 2026
1307-Dev and others added 8 commits April 28, 2026 04:28
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
@1307-Dev
1307-Dev marked this pull request as ready for review April 29, 2026 16:41
@netlify

netlify Bot commented May 22, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for ix-storybook ready!

Name Link
🔨 Latest commit af3743d
🔍 Latest deploy log https://app.netlify.com/projects/ix-storybook/deploys/6a79d15c5af6e8000820df15
😎 Deploy Preview https://deploy-preview-2520--ix-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@sonarqubecloud

Copy link
Copy Markdown

@coderabbitai

coderabbitai Bot commented Jun 22, 2026 •

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Updates variant-specific SCSS for ix-blind, ix-card-accordion, and ix-push-card to adjust border colors, radii, and expand/collapse behavior. Adds two patch changesets documenting the border-color updates.

Changes

Variant Border & Animation Styling

Layer / File(s) Summary
ix-blind variant border and transition rework
packages/core/src/components/blind/blind.scss, .changeset/brave-jeans-rule.md
Adds Sass list/map imports and a border map, rewrites outline and non-outline border handling, updates collapsed-state border width behavior, and records the patch changeset.
ix-card-accordion expand/collapse animation and variant border
packages/core/src/components/card-accordion/card-accordion.scss
Switches expand/collapse styling to height and opacity transitions, changes footer sizing/positioning, and applies conditional borders for non-filled/non-outline variants.
ix-push-card accordion variant wiring and changeset
packages/core/src/components/push-card/push-card.scss, .changeset/brave-jeans-rulez.md
Adds per-variant accordion theme variables, sets outline/filled background behavior, forces outline border colors, and records the patch changeset.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested reviewers: alexkaduk, nuke-ellington

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main changes: border coloring and outline variant styling in blind and push-card components.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ix-4047-blind-pushcard

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.changeset/brave-jeans-rule.md (1)

1-6: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add release-closing issue linkage to the changeset summary.

This changeset is tied to tracked work but lacks Fixes #<issue-number> in the summary, so release-time auto-closing will not happen per policy.

As per coding guidelines, "Include Fixes #<issue-number> syntax in changeset summary to automatically close linked GitHub issues when the changeset is released."

Suggested update
 ---
 "`@siemens/ix`": patch
 ---
 
-Color **ix-blind** borders accorindg to variant.
+Color **ix-blind** borders according to variant.
+Fixes #<issue-number>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/brave-jeans-rule.md around lines 1 - 6, The changeset summary in
the file is missing a `Fixes #<issue-number>` reference, which prevents the
automatic closing of linked GitHub issues upon release. Add the `Fixes
#<issue-number>` syntax to the changeset summary section (the text that
describes the change related to the ix-blind borders and variant coloring) to
ensure the associated GitHub issue is automatically closed when this changeset
is released, following the coding guidelines for changeset documentation.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/brave-jeans-rule.md:
- Line 5: The changeset summary in the brave-jeans-rule.md file contains a typo
on line 5 where "accorindg" is misspelled. Correct this spelling error by
replacing "accorindg" with "according" in the summary text that reads "Color
**ix-blind** borders accorindg to variant."

---

Outside diff comments:
In @.changeset/brave-jeans-rule.md:
- Around line 1-6: The changeset summary in the file is missing a `Fixes
#<issue-number>` reference, which prevents the automatic closing of linked
GitHub issues upon release. Add the `Fixes #<issue-number>` syntax to the
changeset summary section (the text that describes the change related to the
ix-blind borders and variant coloring) to ensure the associated GitHub issue is
automatically closed when this changeset is released, following the coding
guidelines for changeset documentation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7befa459-804d-4ab0-ac50-134e14c503e2

📥 Commits

Reviewing files that changed from the base of the PR and between 7c34939 and 32777b0.

⛔ Files ignored due to path filters (8)
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-basic-1-chromium---classic-dark-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-basic-1-chromium---classic-light-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-collapsed-1-chromium---classic-dark-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-collapsed-1-chromium---classic-light-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-custom-header-1-chromium---classic-dark-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-custom-header-1-chromium---classic-light-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/push-card/push-card.e2e.ts/push-card-basic-should-click-accordion-1-chromium---classic-dark-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/push-card/push-card.e2e.ts/push-card-basic-should-click-accordion-1-chromium---classic-light-linux.png is excluded by !**/*.png
📒 Files selected for processing (5)
  • .changeset/brave-jeans-rule.md
  • .changeset/brave-jeans-rulez.md
  • packages/core/src/components/blind/blind.scss
  • packages/core/src/components/card-accordion/card-accordion.scss
  • packages/core/src/components/push-card/push-card.scss

Comment thread .changeset/brave-jeans-rule.md Resolved
@1307-Dev 1307-Dev changed the title fix: (core/blind and core/push-card) Added margin for variants and updated the outline variant to figma design. fix: (core/blind and core/push-card) Refactor: Align Border Coloring and Outline Variants with Design System Jun 22, 2026
@flxlst09 flxlst09 added this to the 5.1.0 milestone Jun 25, 2026
@1307-Dev
1307-Dev requested a review from alexkaduk July 2, 2026 04:27
alexkaduk
alexkaduk previously approved these changes Jul 2, 2026

@nuke-ellington nuke-ellington left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Collapsed outline has a 1px blind-content
Screenshot 2026-07-02 at 17 49 28

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
packages/core/src/components/blind/blind.scss (1)

18-26: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Border token naming is inconsistent and may not match design spec.

alarm and warning use -bdr suffixed tokens (--theme-color-alarm-bdr, --theme-color-warning-bdr), but critical, info, success, neutral, and primary reference plain color tokens without a border-specific variant. This mirrors a previously flagged concern that border tokens don't fully match Jira/Figma. iX design tokens for borders typically use a dedicated *-bdr suffix pattern across all status colors, so the missing suffix on 5 of 7 entries looks like an oversight rather than an intentional choice.

🎨 Suggested consistent mapping (verify exact token names against Figma/theme package)
 $blind-status-border: (
   alarm: var(--theme-color-alarm-bdr),
-  critical: var(--theme-color-critical),
+  critical: var(--theme-color-critical-bdr),
   warning: var(--theme-color-warning-bdr),
-  info: var(--theme-color-info),
+  info: var(--theme-color-info-bdr),
-  success: var(--theme-color-success),
+  success: var(--theme-color-success-bdr),
-  neutral: var(--theme-color-neutral),
+  neutral: var(--theme-color-neutral-bdr),
-  primary: var(--theme-color-primary),
+  primary: var(--theme-color-primary-bdr),
 );
#!/bin/bash
# Check which "-bdr" token variants actually exist in the theme package
rg -n '\-\-theme-color-(critical|info|success|neutral|primary)(-bdr)?\b' --type=scss --type=css
rg -n '\-\-theme-color-.*-bdr' packages
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/core/src/components/blind/blind.scss` around lines 18 - 26, The
blind status border token map is inconsistent: `blind.scss` mixes
border-specific `*-bdr` tokens with plain color tokens in
`$blind-status-border`. Update the `$blind-status-border` entries in this map so
all status borders use the correct border-specific theme token naming, and
verify the exact token names against the theme package/design spec for
`critical`, `info`, `success`, `neutral`, and `primary` to match the existing
`alarm` and `warning` pattern.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@packages/core/src/components/blind/blind.scss`:
- Around line 18-26: The blind status border token map is inconsistent:
`blind.scss` mixes border-specific `*-bdr` tokens with plain color tokens in
`$blind-status-border`. Update the `$blind-status-border` entries in this map so
all status borders use the correct border-specific theme token naming, and
verify the exact token names against the theme package/design spec for
`critical`, `info`, `success`, `neutral`, and `primary` to match the existing
`alarm` and `warning` pattern.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: ad890823-d269-41dc-a9ce-18432cf28792

📥 Commits

Reviewing files that changed from the base of the PR and between 228bc96 and 2048337.

⛔ Files ignored due to path filters (5)
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-basic-1-chromium---classic-dark-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-basic-1-chromium---classic-light-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-collapsed-1-chromium---classic-dark-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-collapsed-1-chromium---classic-light-linux.png is excluded by !**/*.png
  • testing/visual-testing/__screenshots__/tests/blind/blind.e2e.ts/blind-custom-header-1-chromium---classic-light-linux.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • packages/core/src/components/blind/blind.scss

@1307-Dev

1307-Dev commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator Author

Collapsed outline has a 1px blind-content Screenshot 2026-07-02 at 17 49 28

Added fix for this and updated the snapshots

@nuke-ellington nuke-ellington left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

  • Now border color vanished during collapse animation
  • Please look at remaining open comments

@nuke-ellington nuke-ellington modified the milestones: 5.1.0, 5.2.0 Jul 7, 2026
@1307-Dev

1307-Dev commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author
  • Now border color vanished during collapse animation
  • Please look at remaining open comments

For the collapse-animation comment: the disappearing border was addressed without keeping a real border on the collapsed layout box. Now it fades with opacity during collapse.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
packages/core/src/components/card-accordion/card-accordion.scss (2)

104-118: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove dead margins on the absolutely positioned footer.

margin-top: auto and margin-bottom: 0px have no effect on an element with position: absolute. These are leftover from the previous flexbox-based layout.

♻️ Proposed fix
   .expand-content-footer {
     display: block;
     position: absolute;
     bottom: 0;
     left: 0;
     width: 100%;
     height: 1rem;
-
-    margin-top: auto;
-    margin-bottom: 0px;
-
     background-color: var(--theme-color-component-1);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/core/src/components/card-accordion/card-accordion.scss` around lines
104 - 118, Remove the dead margin rules from the absolutely positioned footer in
.expand-content-footer. Since this element uses position: absolute, drop the
leftover margin-top and margin-bottom declarations and keep the
positioning/layout styles that actually apply.

92-102: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Remove the duplicate .expand-content.show .expand-content-body rule.

The first rule (lines 92–96) sets display: none and overflow: hidden, both of which are immediately overridden by the second rule (lines 98–102) setting display: block and overflow: auto. Only color from the first rule survives. Merge them into a single rule.

♻️ Proposed fix
   .expand-content.show .expand-content-body {
-    display: none;
-    overflow: hidden;
-    color: var(--theme-color-std-text);
-  }
-
-  .expand-content.show .expand-content-body {
     display: block;
     overflow: auto;
     height: calc(14.75rem - 1rem);
+    color: var(--theme-color-std-text);
   }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/core/src/components/card-accordion/card-accordion.scss` around lines
92 - 102, The card accordion stylesheet has two duplicate `.expand-content.show
.expand-content-body` rules, and the first one is immediately overridden except
for `color`. Consolidate the behavior in `card-accordion.scss` by merging the
needed properties into a single `.expand-content.show .expand-content-body`
block so the final styles are defined once and the duplicate rule is removed.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/core/src/components/card-accordion/card-accordion.scss`:
- Line 82: The hardcoded expanded height value is duplicated in the card
accordion styles and should be replaced with a shared CSS custom property.
Define a custom property for the expanded height in card-accordion.scss and use
it in both the `.expand-content.show` rule and the `.expand-content-body` height
calculation so the value stays in sync and can be overridden easily.

---

Outside diff comments:
In `@packages/core/src/components/card-accordion/card-accordion.scss`:
- Around line 104-118: Remove the dead margin rules from the absolutely
positioned footer in .expand-content-footer. Since this element uses position:
absolute, drop the leftover margin-top and margin-bottom declarations and keep
the positioning/layout styles that actually apply.
- Around line 92-102: The card accordion stylesheet has two duplicate
`.expand-content.show .expand-content-body` rules, and the first one is
immediately overridden except for `color`. Consolidate the behavior in
`card-accordion.scss` by merging the needed properties into a single
`.expand-content.show .expand-content-body` block so the final styles are
defined once and the duplicate rule is removed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: cb764486-e130-4df9-8f36-31735fd217de

📥 Commits

Reviewing files that changed from the base of the PR and between 2048337 and 4a24d70.

📒 Files selected for processing (2)
  • packages/core/src/components/card-accordion/card-accordion.scss
  • packages/core/src/components/push-card/push-card.scss

@1307-Dev
1307-Dev requested a review from nuke-ellington July 19, 2026 12:12
@nuke-ellington nuke-ellington removed this from the 5.2.0 milestone Aug 6, 2026
@nuke-ellington nuke-ellington added this to the 5.2.0 milestone Aug 10, 2026
@sonarqubecloud

Copy link
Copy Markdown

@nuke-ellington
nuke-ellington merged commit 697b49f into main Aug 10, 2026
18 of 19 checks passed
@nuke-ellington
nuke-ellington deleted the ix-4047-blind-pushcard branch August 10, 2026 13:45
@github-actions github-actions Bot mentioned this pull request Aug 10, 2026
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.

4 participants