Frontmatter
| id | 9288 |
| title | [Enhancement] Generic Theme Support for Icon and IconLink Grid Columns |
| state | Closed |
| labels | enhancementgrid |
| assignees | tobiu |
| createdAt | Feb 24, 2026, 11:48 AM |
| updatedAt | Feb 24, 2026, 11:54 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9288 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 24, 2026, 11:54 AM |
[Enhancement] Generic Theme Support for Icon and IconLink Grid Columns
tobiu assigned to @tobiu on Feb 24, 2026, 11:50 AM

tobiu
Feb 24, 2026, 11:50 AM
Input from Gemini 3.1 Pro:
✦ I have implemented the generic SCSS files and the
Base.mjsdocumentation.Six new SCSS files were created across
src,theme-neo-dark, andtheme-neo-lightto establish a generic 16px baseline forIconandIconLinkcolumns when rendered inside.neo-grid-cell.I also added an intent-driven JSDoc comment to
src/grid/column/Base.mjsdocumenting the "Non-Component Theme Injection" architectural pattern to ensure developers understand how and why this works.The changes are staged and ready for commit.
tobiu closed this issue on Feb 24, 2026, 11:54 AM
Context Currently,
Neo.grid.column.IconandNeo.grid.column.IconLinkrender their inner components using the defaultinheritfont-size fromNeo.component.Icon. When placed inside a grid (where the default text size is 13px), these icons often appear too small (e.g., social media icons or status badges).The Problem If an application wants to increase the size of these icons to 16px to make them legible within a grid, developers are forced to write custom, app-specific CSS overrides that target the
.neo-grid-celland the specific column classes (e.g.,.devindex-column-linkedin). This pollutes app-level SCSS and prevents a consistent, out-of-the-box experience.The Solution Leverage the architectural pattern where non-component grid columns (extending
core.Base) can still inject theme files viaafterSetWindowId().We will create generic SCSS files for these columns:
resources/scss/src/grid/column/Icon.scssresources/scss/src/grid/column/IconLink.scsstheme-neo-darkandtheme-neo-light.These files will define CSS variables like
--grid-column-icon-font-size: 16pxspecifically scoped within.neo-grid-cell, ensuring consistent 16px icons and properly aligned 13px labels for all Icon/IconLink columns across the framework, without affecting standalone components.