Skip to content

feat(apollo-wind): add Logos page with brand and product logo library#390

Open
1980computer wants to merge 4 commits intomainfrom
feat/company-logos-and-products
Open

feat(apollo-wind): add Logos page with brand and product logo library#390
1980computer wants to merge 4 commits intomainfrom
feat/company-logos-and-products

Conversation

@1980computer
Copy link
Collaborator

@1980computer 1980computer commented Mar 23, 2026

Summary

  • Adds a new Logos page to the Storybook Theme section, positioned between Colors and Icons in the sidebar
  • Creates packages/apollo-core/src/icons/svg/brand-logo/ — a new dedicated folder for UiPath brand SVGs (favicon, logo-full-dark, logo-full-light, logo-icon-light)
  • Brand logos section displays 5 assets with theme-appropriate solid backgrounds: Logo Full Light (white bg), Logo Full Dark (dark bg), Logo Icon Dark (dark bg), App Icon & Favicon (white bg), Autopilot (dark bg, rendered inline with hardcoded colors)
  • Product logos section displays all 24 product SVGs from apollo-core plus 5 studio/agent desktop logos in a 3-column card grid
  • Each logo card has two side-by-side copy actions: Copy path (the SVG file path in the repo) and Copy import (a ready-to-paste import statement mapped to the published package path)
  • Updates storySort to reflect the new sidebar order: Colors → Logos → Icons → Spacing → Typography → Future

Test plan

  • Logos page appears in sidebar under Theme between Colors and Icons
  • Brand logos section shows all 5 cards with correct solid backgrounds
  • Autopilot logo renders visibly (orange + white stars on dark bg)
  • Product logos grid loads all logos from apollo-core
  • Copy path button copies the repo file path and shows "Copied!" feedback
  • Copy import button copies a valid import statement (e.g. import LogoFullLight from '@uipath/apollo-core/icons/svg/brand-logo/logo-full-light.svg';) and shows "Copied!" feedback
  • Both buttons render side by side on each card
  • Page renders correctly in both Future Dark and Future Light themes

🤖 Generated with Claude Code

Adds a new Logos page to the Theme section in Storybook, sitting between
Colors and Icons in the sidebar. The page provides a browsable library of
brand and product logos with one-click import path copying.

- Creates packages/apollo-core/src/icons/svg/brand-logo/ with favicon,
  logo-full-dark, logo-full-light, and logo-icon-light SVGs
- Brand logos section displays 5 assets (Logo Full Light, Logo Full Dark,
  Logo Icon Dark, App Icon & Favicon, Autopilot) each with theme-appropriate
  solid backgrounds; Autopilot rendered inline with hardcoded colors
- Product logos section loads all 24 SVGs from apollo-core via import.meta.glob
  plus 5 studio/agent desktop logos, displayed in a 3-column card grid
- Updates storySort to place Logos at root Theme level: Colors > Logos > Icons

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Mar 23, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (PT)
apollo-canvas 🟢 Ready Preview, Logs Mar 23, 2026, 01:37:23 PM
apollo-landing 🟢 Ready Preview, Logs Mar 23, 2026, 01:36:00 PM
apollo-ui-react 🟢 Ready Preview, Logs Mar 23, 2026, 01:36:01 PM
apollo-vertex 🟢 Ready Preview, Logs Mar 23, 2026, 01:37:00 PM
apollo-wind 🟢 Ready Preview, Logs Mar 23, 2026, 01:35:58 PM

@github-actions
Copy link

Dependency License Review

  • 1917 package(s) scanned
  • ✅ No license issues found
  • ⚠️ 3 package(s) excluded (see details below)
License distribution
License Packages
MIT 1682
ISC 89
Apache-2.0 56
BSD-3-Clause 28
BSD-2-Clause 23
BlueOak-1.0.0 8
MPL-2.0 5
MIT OR Apache-2.0 3
MIT-0 3
CC0-1.0 3
LGPL-3.0-or-later 2
(MIT OR Apache-2.0) 2
Unlicense 2
Python-2.0 1
CC-BY-4.0 1
(MPL-2.0 OR Apache-2.0) 1
Unknown 1
Artistic-2.0 1
(WTFPL OR MIT) 1
(BSD-2-Clause OR MIT OR Apache-2.0) 1
CC-BY-3.0 1
0BSD 1
(MIT OR CC0-1.0) 1
MIT AND ISC 1
Excluded packages
Package Version License Reason
@img/sharp-libvips-linux-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
@img/sharp-libvips-linuxmusl-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
khroma 2.1.0 Unknown MIT per GitHub repo, missing license field in package.json

);

const brandLogos = [
{ displayName: 'Logo Full Light', url: logoFullLightUrl, importPath: 'packages/apollo-core/src/icons/svg/brand-logo/logo-full-light.svg', bg: LIGHT_BG, preview: undefined },
Copy link
Contributor

@david-rios-uipath david-rios-uipath Mar 23, 2026

Choose a reason for hiding this comment

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

These are paths to the logos from within apollo-core, which other developers won't be able to use out of the box. To be consumable by other packages, we need to export the image so that consumers can import them like this: import { <SvgName> } @uipath/apollo-core/icons (e.g. import { Favicon } from '@uipath/apollo-core/icons').

You can do this by adding this code to packages/apollo-core/src/icons/index.ts (preferably right behind the // product-logo section:

// brand-logo
export { default as Favicon } from './svg/brand-logo/favicon.svg';
export { default as LogoFullDark } from './svg/brand-logo/logo-full-dark.svg';
export { default as LogoFullLight } from './svg/brand-logo/logo-full-light.svg';
export { default as LogoIconLight } from './svg/brand-logo/logo-icon-light.svg';

Copy link
Contributor

@david-rios-uipath david-rios-uipath Mar 23, 2026

Choose a reason for hiding this comment

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

As a result, the import path for every icon on this page should just be @uipath/apollo-core/icons. This means you can replace the importPath field in the brandLogos and productLogos arrays with 'componentName' (e.g. 'Favicon', 'LogoFullDark', etc.) to be used in the import path copies.

const [copied, setCopied] = React.useState(false);

const handleCopy = () => {
navigator.clipboard.writeText(importPath).then(() => {
Copy link
Contributor

Choose a reason for hiding this comment

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

If I were a developer clicking on "Copy import" here, I would want to get a line of code I can copy-paste.

Image

Assuming we're using correct paths, I'll just get @uipath/apollo-core/icons. I'd prefer import { <IconName> } from @uipath/apollo-core-icons.

Copy link
Contributor

Choose a reason for hiding this comment

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

e.g. assuming you replaced importPath with a field like componentName/iconComponentName, you could do something like this: import { ${componentName} } from '@uipath/apollo-core/icons'.

This would give the user import { Academy } from '@uipath/apollo-core/icons', which would work when they paste it into their code.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Agreed. Adding a secondary option is ideal. There are two consumer paths we are aimming for

  1. Current - The svg path in the repo
  2. Need to add - Usage in code

So instead of just one option (1) I can add the second in as well.

Copy link
Contributor

@david-rios-uipath david-rios-uipath Mar 23, 2026

Choose a reason for hiding this comment

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

sounds good. In my opinion, the options we have matter less than the correctness of the import path (e.g. @uipath/apollo-core/icons). Everything else is a nice-to-have 😄

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@david-rios-uipath pushed this update for your review : )

);

const brandLogos = [
{ displayName: 'Logo Full Light', url: logoFullLightUrl, importPath: 'packages/apollo-core/src/icons/svg/brand-logo/logo-full-light.svg', bg: LIGHT_BG, preview: undefined },
Copy link
Contributor

@david-rios-uipath david-rios-uipath Mar 23, 2026

Choose a reason for hiding this comment

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

Suggested change
{ displayName: 'Logo Full Light', url: logoFullLightUrl, importPath: 'packages/apollo-core/src/icons/svg/brand-logo/logo-full-light.svg', bg: LIGHT_BG, preview: undefined },
{ displayName: 'Logo Full Light', url: logoFullLightUrl, componentName: 'LogoFullLight', bg: LIGHT_BG, preview: undefined },

repeated for all icon entries

Copy link
Contributor

Choose a reason for hiding this comment

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

should the name of this file be logo-icon-dark.svg?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes, everything is setup identical to how we structure in Figma. This update just made it available in Storybook which we haven't had.

1980computer and others added 3 commits March 23, 2026 13:31
Each logo card now has two copy actions — Copy path (the SVG file path
in the repo) and Copy usage (a ready-to-use import statement mapped to
the published package path).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…bels

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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