Skip to content

style: use semantic focus-ring token across components#2168

Merged
pixelflips merged 2 commits intodevelopfrom
style/focus-ring-tokens-v2
Feb 23, 2026
Merged

style: use semantic focus-ring token across components#2168
pixelflips merged 2 commits intodevelopfrom
style/focus-ring-tokens-v2

Conversation

@pixelflips
Copy link
Member

@pixelflips pixelflips commented Feb 20, 2026

Summary

  • Replace hardcoded var(--pine-color-purple-600) with var(--pine-color-focus-ring) in 10 component stylesheets
  • Add missing focus ring to breadcrumbs progressbar variant (was showing default browser outline)

Fixes DSS-91

Components Updated

button, choice, link, dropdown, pagination, breadcrumbs, nav, alert, status_icon, media_tile, hero

Test plan

  • Tab through each component to verify :focus-visible ring renders correctly
  • Confirm breadcrumbs progressbar variant shows focus ring without breaking underline
  • Confirm danger focus rings are unchanged
  • Confirm no remaining purple-600 in focus-ring contexts

@pixelflips pixelflips self-assigned this Feb 20, 2026
@pixelflips
Copy link
Member Author

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Feb 20, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link

coderabbitai bot commented Feb 20, 2026

No actionable comments were generated in the recent review. 🎉


📝 Walkthrough

Walkthrough

The pull request updates focus ring color tokens across multiple SCSS component files in the sage-assets package. Focus outline colors are changed from var(--pine-color-purple-600) to var(--pine-color-focus-ring) in components including alerts, breadcrumbs, buttons, choices, dropdowns, heroes, links, media tiles, navigation, pagination, and status icons. These changes affect focus-visible and focus-outline styling states without modifying component behavior or control flow.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is missing critical required sections: no Description section, no Screenshots section (recommended), no Testing in sage-lib section, and no Testing in kajabi-products section as specified in the repository template. Add the required Description, Testing in sage-lib, and Testing in kajabi-products sections following the repository template structure to enable proper QA verification.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely describes the main change: replacing hardcoded purple-600 color with a semantic focus-ring token across multiple components.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch style/focus-ring-tokens-v2

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Stylelint (17.3.0)
packages/sage-assets/lib/stylesheets/components/_breadcrumbs.scss

ConfigurationError: Could not find "stylelint-config-sass-guidelines". Do you need to install the package or use the "configBasedir" option?
at getModulePath (file:///usr/local/lib/node_modules/stylelint/lib/utils/getModulePath.mjs:29:9)
at loadExtendedConfig (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:241:21)
at extendConfig (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:208:25)
at augmentConfigBasic (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:73:26)
at augmentConfigFull (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:126:30)
at getConfigForFile (file:///usr/local/lib/node_modules/stylelint/lib/getConfigForFile.mjs:102:32)
at async resolveOptionValue (file:///usr/local/lib/node_modules/stylelint/lib/utils/resolveOptionValue.mjs:27:24)
at async standalone (file:///usr/local/lib/node_modules/stylelint/lib/standalone.mjs:202:19)

packages/sage-assets/lib/stylesheets/components/_button.scss

ConfigurationError: Could not find "stylelint-config-sass-guidelines". Do you need to install the package or use the "configBasedir" option?
at getModulePath (file:///usr/local/lib/node_modules/stylelint/lib/utils/getModulePath.mjs:29:9)
at loadExtendedConfig (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:241:21)
at extendConfig (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:208:25)
at augmentConfigBasic (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:73:26)
at augmentConfigFull (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:126:30)
at getConfigForFile (file:///usr/local/lib/node_modules/stylelint/lib/getConfigForFile.mjs:102:32)
at async resolveOptionValue (file:///usr/local/lib/node_modules/stylelint/lib/utils/resolveOptionValue.mjs:27:24)
at async standalone (file:///usr/local/lib/node_modules/stylelint/lib/standalone.mjs:202:19)

packages/sage-assets/lib/stylesheets/components/_choice.scss

ConfigurationError: Could not find "stylelint-config-sass-guidelines". Do you need to install the package or use the "configBasedir" option?
at getModulePath (file:///usr/local/lib/node_modules/stylelint/lib/utils/getModulePath.mjs:29:9)
at loadExtendedConfig (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:241:21)
at extendConfig (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:208:25)
at augmentConfigBasic (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:73:26)
at augmentConfigFull (file:///usr/local/lib/node_modules/stylelint/lib/augmentConfig.mjs:126:30)
at getConfigForFile (file:///usr/local/lib/node_modules/stylelint/lib/getConfigForFile.mjs:102:32)
at async resolveOptionValue (file:///usr/local/lib/node_modules/stylelint/lib/utils/resolveOptionValue.mjs:27:24)
at async standalone (file:///usr/local/lib/node_modules/stylelint/lib/standalone.mjs:202:19)

  • 8 others

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


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

@pixelflips pixelflips merged commit 2475423 into develop Feb 23, 2026
5 checks passed
@pixelflips pixelflips mentioned this pull request Feb 23, 2026
QuintonJason added a commit that referenced this pull request Feb 25, 2026
* chore(deps): bump @pine-ds/icons from 9.16.0 to 9.17.0 (#2166)

Bumps [@pine-ds/icons](https://github.com/Kajabi/pine-icons) from 9.16.0 to 9.17.0.
- [Release notes](https://github.com/Kajabi/pine-icons/releases)
- [Changelog](https://github.com/Kajabi/pine-icons/blob/main/CHANGELOG.md)
- [Commits](Kajabi/pine-icons@v9.16.0...v9.17.0)

---
updated-dependencies:
- dependency-name: "@pine-ds/icons"
  dependency-version: 9.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* style: use semantic focus-ring token across components (#2168)

* style: replace hardcoded purple-600 with focus-ring token

* style(breadcrumbs): add focus ring to progressbar variant

* feat(hero): add shadow prop (#2170)

* feat(hero): add shadow prop to React component and SCSS

* feat(hero): add shadow prop to Rails component

* docs(hero): add shadow prop documentation and preview examples

* fix(hero): quote 050 shadow key in SCSS map and fix alt text hyphenation

* fix(avatar): use semantic token (#2171)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Quinton Jason <quinton.jason@gmail.com>
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.

2 participants