Skip to content

feat: add Respira icon - #343

Open
webmyc wants to merge 1 commit into
lobehub:masterfrom
webmyc:add-respira-icon
Open

feat: add Respira icon#343
webmyc wants to merge 1 commit into
lobehub:masterfrom
webmyc:add-respira-icon

Conversation

@webmyc

@webmyc webmyc commented Jun 27, 2026

Copy link
Copy Markdown

Summary

Adds the Respira icon. Respira lets AI agents (Claude, ChatGPT, Cursor, Codex) safely edit live WordPress sites across 16 page builders through MCP — https://respira.press

What's included

Follows the existing icon conventions (Mono, Color, Avatar, Text, TextColor, Combine, index.ts, style.ts, index.md) and is registered in src/icons.ts:

  • Mono / Color — the Respira mandala symbol (stroke-based; currentColor and brand emerald #10B981)
  • Avatar — the symbol on the brand emerald background
  • Text — the Respira for WordPress wordmark in currentColor (themeable)
  • TextColor — the wordmark with Respira adaptive (currentColor) and for WordPress in the brand green
  • Combine — symbol + wordmark

Brand assets and guidelines: https://www.respira.press/brand

Happy to adjust naming, colors, or crop the wordmark viewBox to taste.

@sourcery-ai sourcery-ai 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.

Sorry @webmyc, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 39bb4852ca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/icons.ts
export { default as Relace, type CompoundedIcon as RelaceProps } from './Relace';
export { default as Replicate, type CompoundedIcon as ReplicateProps } from './Replicate';
export { default as Replit, type CompoundedIcon as ReplitProps } from './Replit';
export { default as Respira, type CompoundedIcon as RespiraProps } from './Respira';

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Add the React Native counterpart for Respira

This makes Respira available from the web package, but the React Native package is left out of sync: I checked packages/react-native/src/icons and packages/react-native/src/index.ts, and there is no Respira icon or export. Because the RN package advertises near-identical API coverage and the conversion workflow explicitly detects web icons missing from RN, @lobehub/icons-rn users will not be able to import the newly added icon until the RN conversion/export is added as well.

Useful? React with 👍 / 👎.

@webmyc

webmyc commented Jun 28, 2026

Copy link
Copy Markdown
Author

Added the React Native counterpart for Respira, generated with bun run auto-converter-web-icons-to-rn, so it now ships in @lobehub/icons-rn alongside the web package (one export line in packages/react-native/src/index.ts plus the generated src/icons/Respira/). That resolves the note about the missing RN icon.

The only remaining red check is the Vercel preview deploy ("Authorization required to deploy"), which is the standard external-fork gate and needs a maintainer to authorize. Happy to adjust anything else needed for merge.

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eb352530bc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


const Icon = memo<RNIconProps>(({ size = 24, style, ...rest }) => {
return (
<Svg height={size} style={style} viewBox="0 0 24 24" width={size} {...rest}>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Respect the RN mono icon color

When this component is used via <Respira.Avatar />, RNIconAvatar passes color={AVATAR_COLOR} into Mono, but the circles never consume that color or any stroke attributes; in react-native-svg they render as filled black shapes by default. This makes the RN avatar/default mono icon show a black filled blob instead of the web icon's currentColor/white stroked mark.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Good catch, thanks. Fixed in 25b1542: the circles are now wrapped in <G fill="none" stroke={color} strokeWidth={1.7}> and Mono takes a color prop (default #000000), so RNIconAvatar passing AVATAR_COLOR (#fff) renders a white stroked mark instead of a black fill. Now matches the web Mono.


const Icon = memo<RNIconProps>(({ size = 24, style, ...rest }) => {
return (
<Svg height={size} style={style} viewBox="0 0 24 24" width={size} {...rest}>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the brand stroke in RN color icon

For <Respira.Color /> and Combine type="color", this drops the web icon's fill="none", brand stroke={COLOR_PRIMARY}, and stroke width, so the RN circles render as default filled black circles rather than the emerald outlined symbol. Importing COLOR_PRIMARY and applying the same fill/stroke settings keeps the RN package in parity with the web package.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Fixed in 25b1542: Color now imports COLOR_PRIMARY and renders <G fill="none" stroke={COLOR_PRIMARY} strokeWidth={1.7}>, so the RN color icon shows the emerald outline instead of default-filled black circles, matching the web Color.

@webmyc

webmyc commented Jul 2, 2026

Copy link
Copy Markdown
Author

Both Codex P2s addressed in 25b1542 (RN Mono/Color now stroke via a <G fill="none" stroke=… strokeWidth={1.7}> wrapper, matching the web package).

Heads-up on the root cause for whenever it's useful: the rn-conversion converter only translates filled icons (it keys off fill="currentColor", strips fill="none", and has no stroke/strokeWidth handling). Respira looks to be the first purely stroked icon, so the generated RN components dropped the stroke and rendered as black fills. I corrected the two generated files by hand here; a stroke-aware pass in the converter would be a sensible follow-up so future outline icons convert cleanly. Happy to open a separate PR for that if you'd like.

@webmyc

webmyc commented Jul 5, 2026

Copy link
Copy Markdown
Author

Quick bump — is there anything else needed on my end for merge, or is the Vercel preview-deploy authorization ("Authorization required to deploy") the only remaining blocker? That one needs a maintainer to approve from your side.

Also still happy to open the stroke-aware rn-conversion PR mentioned above if useful, just didn't want to add more moving parts while this one's under review.

@webmyc

webmyc commented Jul 16, 2026

Copy link
Copy Markdown
Author

bump: both review points are addressed and CI is green here and on #343. on #343 the only red mark is the Vercel preview asking for maintainer authorization on fork deploys, which i cannot grant from my side. @canisminor1990 when you have a minute, could you authorize or dismiss that preview so the Respira icon can land? #352 fixes the RN converter for stroked icons generally, so other outline-style brand icons benefit too.

Adds the Respira icon following the existing conventions: Mono, Color,
Avatar, Text, TextColor, Combine, index.ts, style.ts, index.md, plus
registration in src/icons.ts and src/toc.json.

Respira lets AI agents edit live WordPress sites through MCP.
https://respira.press
@webmyc

webmyc commented Aug 11, 2026

Copy link
Copy Markdown
Author

i have rebased this on current master and reduced it to the web icon only: 11 files, one commit, matching the shape of the icon PRs that have been merging here (src/Respira/*, plus the src/icons.ts and src/toc.json registrations). nothing else is touched.

i also want to correct something i said earlier, because i was wrong and it probably wasted your time. i kept pointing at the red Vercel check as the blocker. it is not. #348, #322 and #299 all merged carrying the identical Vercel — Authorization required to deploy failure, so that status is just what every fork PR looks like here. sorry for the noise in the earlier comments.

the real difference was that this PR had grown to 20 files across two packages, including hand-edited generated React Native output. that is not a rubber stamp, and it should not have been bundled in here. the merged icon PRs contain no RN files at all, so it was never needed for this to land.

the RN side is preserved on a branch and depends on #352, which fixes the rn-conversion converter for stroked icons. once that lands the RN files can be generated properly rather than maintained by hand, and i will open that separately. no need to consider it here.

@canisminor1990 this should be a straightforward one now whenever you next sweep the icon queue.

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.

1 participant