Skip to content

Commit deb6a07

Browse files
DS-372 :: Icon naming sync (#196)
* feat: add circle outline icons * chore(toolkit): prepare 4.8.1 release Bump the toolkit package for the circle outline icon addition. Refresh the changelog, upgrading guide, and release versioning docs for the standalone patch release. * docs(prompts): tighten PR readiness release rules Clarify that review units are independently releasable by default. Require release-impact assessment, versioning, changelog work, and release-contract checks before sign-off. * docs(prompts): refine merge readiness PR drafting Rename the workflow concept to merge readiness in the prompt copy and make the PR title/body guidance intentional instead of mechanically section-driven. * feat(icons): align public names with figma Hard-rename the toolkit and React icon surface to the current Figma names, including the sprite assets, docs gallery, and component/example usages. * chore(release): prepare 4.9.0 and 0.7.0 Document the breaking icon rename release across toolkit and react-components, update package versions, and refresh migration guidance. * chore(icons): sort gallery and story options Sort docs gallery names alphabetically within each icon category and keep Storybook icon dropdowns alphabetical for easier review. * chore(icons): preserve stepper number order Keep the Stepper gallery rows in 0 through 9 order while leaving the other icon categories alphabetical. * fix(icons): align HospitalOutline name with figma
1 parent 760f7b8 commit deb6a07

File tree

71 files changed

+403
-303
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+403
-303
lines changed

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,42 @@ We are following [Semantic Versioning](https://semver.org/spec/v2.0.0.html), as
66

77
## Monorepo Package Releases (`toolkit-v*`, `react-v*`)
88

9+
### 2026-04-09
10+
11+
#### @ourfuturehealth/toolkit 4.9.0 (`toolkit-v4.9.0`)
12+
13+
##### ⚠️ BREAKING CHANGES
14+
15+
- **Icon naming aligned with Figma**: hard-renamed the public toolkit icon names to the current design-system set with no backward-compatible aliases
16+
- `Done``Check`
17+
- `ExpandLess``ChevronUp`
18+
- `ExpandMore``ChevronDown`
19+
- `CalendarTodayOutlined``CalendarOutline`
20+
- `FmdGoodOutlined``LocationOutline`
21+
- `HospitalOutlined``HospitalOutline`
22+
- see [UPGRADING.md](UPGRADING.md#upgrading-to-v490--react-v070) for the full rename table
23+
24+
##### Changed
25+
26+
- Renamed the toolkit icon SVG files, manifest entries, sprite symbols, docs gallery entries, and current component/example usages to the Figma-aligned public names
27+
- Folded the earlier circle-outline addition into the renamed public surface as `AddCircleOutline` and `MinusCircleOutline`
28+
- Updated the icon docs page and contributor guidance to reflect the renamed toolkit and React icon APIs
29+
30+
#### @ourfuturehealth/react-components 0.7.0 (`react-v0.7.0`)
31+
32+
##### ⚠️ BREAKING CHANGES
33+
34+
- **React Icon names aligned with toolkit/Figma**: any React consumer using the old `Icon` names must migrate to the renamed public set
35+
- `Done``Check`
36+
- `AccessTime``ClockOutline`
37+
- `LinkedIn``Linkedin`
38+
- `HospitalOutlined``HospitalOutline`
39+
- see [UPGRADING.md](UPGRADING.md#upgrading-to-v490--react-v070) for the full rename table
40+
41+
##### Changed
42+
43+
- Updated the public React `Icon` stories/tests and current component consumers to use the renamed icon surface
44+
945
### 2026-03-30
1046

1147
#### @ourfuturehealth/toolkit 4.8.0 (`toolkit-v4.8.0`)

UPGRADING.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ This guide provides detailed migration instructions for upgrading between versio
88

99
| Version | Date | Breaking Changes | Migration Complexity |
1010
| ------------------------------------------------------- | ------------- | --------------------- | ------------------------------------- |
11+
| [v4.9.0 / React v0.7.0](#upgrading-to-v490--react-v070) | April 2026 | Icon naming sync | 🟡 Medium - Search/replace icon names |
1112
| [v4.8.0 / React v0.6.0](#upgrading-to-v480--react-v060) | March 2026 | No breaking changes | 🟢 Low - only relevant if you adopted the earlier TextInput prototype |
1213
| [v4.7.0 / React v0.5.0](#upgrading-to-v470--react-v050) | March 2026 | Card family realignment | 🟡 Medium - API migration recommended |
1314
| [v4.6.0 / React v0.4.0](#upgrading-to-v460--react-v040) | March 2026 | Tag default + naming | 🟡 Medium - Search/replace recommended |
@@ -18,6 +19,104 @@ This guide provides detailed migration instructions for upgrading between versio
1819

1920
---
2021

22+
## Upgrading to v4.9.0 / React v0.7.0
23+
24+
**Released:** April 2026
25+
**Affected packages:**
26+
27+
- `@ourfuturehealth/toolkit` v4.9.0+
28+
- `@ourfuturehealth/react-components` v0.7.0+
29+
30+
### Breaking Changes
31+
32+
Toolkit and React icon names now match the current Figma icon set directly. This is a hard rename with no backward-compatible aliases.
33+
34+
| Category | Previous name | New name |
35+
| -------- | ------------- | -------- |
36+
| DataValidation | `CancelOutlined` | `CancelOutline` |
37+
| DataValidation | `Done` | `Check` |
38+
| DataValidation | `AddCircleOutlineOutlined` | `AddCircleOutline` |
39+
| DataValidation | `RemoveCircle` | `MinusCircle` |
40+
| DataValidation | `RemoveCircleOutlineOutlined` | `MinusCircleOutline` |
41+
| Action | `AccountCircleOutlined` | `AccountCircleOutline` |
42+
| Action | `FileDownloadOutlined` | `FileDownloadOutline` |
43+
| Action | `FavoriteBorderOutlined` | `FavoriteOutline` |
44+
| Action | `CalendarTodayOutlined` | `CalendarOutline` |
45+
| Action | `CalendarToday` | `Calendar` |
46+
| Arrows | `ExpandLess` | `ChevronUp` |
47+
| Arrows | `ExpandMore` | `ChevronDown` |
48+
| Arrows | `East` | `ArrowRight` |
49+
| Arrows | `West` | `ArrowLeft` |
50+
| Graphical | `InfoOutlined` | `InfoOutline` |
51+
| Graphical | `WorkOutlined` | `WorkOutline` |
52+
| Graphical | `HealthCrossOutlined` | `HealthCrossOutline` |
53+
| Graphical | `ListAltOutlined` | `ListAltOutline` |
54+
| Graphical | `HealthAndSafetyOutlined` | `HealthAndSafetyOutline` |
55+
| Graphical | `ListAltCheckedOutlined` | `ListAltCheckedOutline` |
56+
| Graphical | `TestTubeOutlined` | `TestTubeOutline` |
57+
| Graphical | `AccessTime` | `ClockOutline` |
58+
| Graphical | `WatchLater` | `Clock` |
59+
| Graphical | `FmdGoodOutlined` | `LocationOutline` |
60+
| Graphical | `HospitalOutlined` | `HospitalOutline` |
61+
| Stepper | `LooksZero` | `ListZero` |
62+
| Stepper | `LooksOne` | `ListOne` |
63+
| Stepper | `LooksTwo` | `ListTwo` |
64+
| Stepper | `LooksThree` | `ListThree` |
65+
| Stepper | `LooksFour` | `ListFour` |
66+
| Stepper | `LooksFive` | `ListFive` |
67+
| Stepper | `LooksSix` | `ListSix` |
68+
| Stepper | `LooksSeven` | `ListSeven` |
69+
| Stepper | `LooksEight` | `ListEight` |
70+
| Stepper | `LooksNine` | `ListNine` |
71+
| Socials | `LinkedIn` | `Linkedin` |
72+
| Socials | `LinkedInHover` | `LinkedinHover` |
73+
74+
### Release Overview
75+
76+
This breaking release removes the older icon names and replaces them with the Figma-aligned public set across toolkit and React.
77+
78+
Current toolkit component templates, docs examples, React stories, and tests have already been moved to the renamed icon surface in this branch.
79+
80+
### Migration Steps
81+
82+
1. Search for old icon names in toolkit macros, Nunjucks data, React `Icon` props, and any manifest-driven tests.
83+
2. Replace each old name with the corresponding Figma-aligned name from the table above.
84+
3. Re-run any tests or visual checks that assert icon symbol ids or class names such as `ofh-icon--Done`.
85+
86+
#### Toolkit example
87+
88+
**Before (`toolkit-v4.8.0`):**
89+
90+
```njk
91+
{{ icon({ "name": "Done", "size": 24 }) }}
92+
{{ icon({ "name": "ExpandMore", "size": 24 }) }}
93+
```
94+
95+
**After (`toolkit-v4.9.0`):**
96+
97+
```njk
98+
{{ icon({ "name": "Check", "size": 24 }) }}
99+
{{ icon({ "name": "ChevronDown", "size": 24 }) }}
100+
```
101+
102+
#### React example
103+
104+
**Before (`react-v0.6.0`):**
105+
106+
```tsx
107+
<Icon name="AccessTime" size={24} />
108+
<Icon name="LinkedIn" size={24} />
109+
```
110+
111+
**After (`react-v0.7.0`):**
112+
113+
```tsx
114+
<Icon name="ClockOutline" size={24} />
115+
<Icon name="Linkedin" size={24} />
116+
```
117+
118+
---
119+
21120
## Upgrading to v4.8.0 / React v0.6.0
22121

23122
**Released:** March 2026

docs/contributing/material-icons.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -121,17 +121,20 @@ Example usage:
121121

122122
Core icon styles are in [`packages/toolkit/core/styles/_icons-material.scss`](../../packages/toolkit/core/styles/_icons-material.scss) and imported in [`packages/toolkit/core/all.scss`](../../packages/toolkit/core/all.scss).
123123

124-
### React components (future)
124+
### React components
125125

126-
Current status: the React package does not yet have a shared icon component.
126+
The React package now exposes a shared `Icon` component:
127127

128-
When React icon support is added, this doc should be updated with the final approach. Recommended baseline:
128+
- [`packages/react-components/src/components/Icon/Icon.tsx`](../../packages/react-components/src/components/Icon/Icon.tsx)
129+
- [`packages/react-components/src/components/Icon/Icon.stories.tsx`](../../packages/react-components/src/components/Icon/Icon.stories.tsx)
129130

130-
- Keep icon names aligned with toolkit `manifest.json`
131-
- Reuse the same icon semantics (`name`, `size`, decorative vs titled)
132-
- Decide implementation explicitly:
133-
- Sprite-based `<use>` approach (consistency with toolkit/docs), or
134-
- Build-time inlined SVG components
131+
React icon names should stay aligned with toolkit `manifest.json` and the generated sprite symbols.
132+
133+
Current React approach:
134+
135+
- Reuses the toolkit sprite semantics (`name`, `size`, responsive sizing, decorative vs titled)
136+
- Defaults to the bundled toolkit sprite asset and references symbols with `<use>`
137+
- Treats icon-name changes as consumer-facing API changes that must be documented in release notes and the upgrading guide
135138

136139
Related package: [`packages/react-components/`](../../packages/react-components/)
137140

@@ -172,7 +175,7 @@ Most icons should use `currentColor` to inherit CSS colors, but some icons need
172175

173176
**Icons that need brand colors preserved:**
174177

175-
- Social media icons (LinkedIn, X, Facebook, Youtube, Instagram, Tiktok) and their hover states
178+
- Social media icons (Linkedin, X, Facebook, Youtube, Instagram, Tiktok) and their hover states
176179
- `ArrowCircleRightColour` (uses `#011D4B` and `#FFC62C`)
177180

178181
**Solution**: For brand-colored icons, keep the original Figma fill colors. For all other icons, replace fill colors with `currentColor`.

docs/prompts/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ Use these prompts as a staged workflow when updating a component.
99
2. `component-validation-qa-template-prompt.md`
1010
Use once implementation is mostly done and you want an interactive manual QA pass with exact URLs and step-by-step validation.
1111
3. `component-pr-readiness-template-prompt.md`
12-
Use after QA passes, or when you want the final repo-wide cleanup, release-doc refresh, commit prep, and branch handoff.
12+
Use after QA passes, or when you want the final merge-readiness pass: repo-wide cleanup, release-doc refresh, commit prep, PR metadata, and branch handoff.
1313

1414
## Why These Are Separate
1515

1616
The implementation prompt and the two finish-up prompts ask the agent to work in different modes:
1717

1818
- implementation work should stay focused on design analysis and code changes
1919
- interactive QA should pause after each step and wait for pass/fail feedback
20-
- PR-readiness work should keep moving and clean up repo-wide surfaces without stopping after every check
20+
- merge-readiness work should keep moving and clean up repo-wide surfaces without stopping after every check
2121

2222
Keeping them separate makes the workflow easier to follow and reduces prompt ambiguity.

0 commit comments

Comments
 (0)