[Docs] Brand marks for cookbook recipes and their architecture diagrams - #693
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Two cookbook trigger recipes are built on Cursor Automations and n8n. The Glean icon set has no mark for either, so both fall back to a generic glyph. Carried the same way as Lovable: a static SVG plus a BRAND_ICON_SRC entry, non-adaptive so each mark keeps its own colours -- the tile pastel has no dark-mode override, and recolouring a trademark to currentColor is an alteration most brand guidelines forbid. n8n publishes a lockup, so the wordmark paths are removed and the logomark centred in a square viewBox. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ashish-kumar2-glean
force-pushed
the
ashish2/0819-cookbook-brand-icons
branch
from
August 19, 2026 04:45
b2e0186 to
aa676fd
Compare
ashish-kumar2-glean
marked this pull request as ready for review
August 19, 2026 04:52
Architecture nodes went straight to getIcon(name, 'glean'), so a brand key returned null and rendered nothing -- the same fallback the recipe cards already handle via BRAND_ICON_SRC. Extracts ArchNodeIcon, which resolves a brand mark first and then falls through to the Glean set and the category default. Its own component because the brand path needs useBaseUrl, which cannot be called inside the nodes' map. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Official Invertocat from github.githubassets.com: single path, flat #24292E, square viewBox, 12.6:1 against every category pastel. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Extracting ArchNodeIcon collapsed the final branch and changed the no-icon-no-category fallback from feather Box to glean-app. No node in the current registry hits it, but it was an unintended behaviour change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ashish-kumar2-glean
requested review from
aaryan-srivastava-glean and
chris-freeman-glean
August 19, 2026 05:49
Adds four marks the trigger recipes need for their architecture diagrams. All four are registered adaptive: false -- Gmail and Calendar are multi-colour, Gong is a trademark purple, and Glean Trigger carries a solid blue field, so forcing currentColor would destroy each of them. ArchNodeIcon previously hardcoded emphasized nodes to the Glean wordmark 'whatever icon it declares'. A trigger node wants the Glean Trigger lockup, so the guard is now 'emphasized && !brand': an emphasized node still falls back to the wordmark unless it names a brand icon of its own. Existing emphasized nodes declare no icon, so none of them change. The recipes that consume these keys are in gleanwork/glean-cookbook#47. getIcon returns null for an unknown key, so this must merge first or those nodes render blank.
aaryan-srivastava-glean
approved these changes
Aug 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cookbook recipes built on third-party products fall back to a generic glyph today — the Glean icon set is a product glyph set, not a brand one, so it has no mark for any of them.
Adds seven marks the way Lovable is already carried, and makes them resolve in architecture diagrams as well as on cards.
Marks
cursor.svg#26251en8n.svggithub.svg#24292Egmail.svggong.svg#8039DFgoogle-calendar.svgglean-trigger.svg#343CEDComponent changes
src/components/Cookbook/brandIcons.ts— sevenBRAND_ICON_SRCentries.src/components/Cookbook/categories.tsx— exportAdaptiveBrandIconfor reuse.src/components/Cookbook/RecipeLayout.tsx— two changes, both described below.Brand marks resolve in architecture nodes.
CategoryTileresolves a recipe'siconthroughBRAND_ICON_SRCfirst, but architecture nodes calledgetIcon(node.icon, 'glean')directly. A brand key there returnednulland rendered nothing, so a mark would appear on the card and silently vanish from the diagram.ArchNodeIconnow resolves brand mark → Glean set → category default. It is a separate component because the brand path needsuseBaseUrl, which cannot be called from inside the nodes'.map().Emphasized nodes can name their own mark. The guard was
if (node.emphasized)— always the Glean wordmark, "whatever icon it declares". A trigger node wants the Glean Trigger lockup instead, so it is nownode.emphasized && !brand. Every existing emphasized node declares no icon, so none of them change.Why non-adaptive
All seven are registered
adaptive: false. Gmail and Calendar are multi-colour, Gong is a trademark purple, and Glean Trigger carries a solid blue field — forcingcurrentColorwould destroy each of them. For the flat marks the reason is the one Lovable already sits on: the category tile's pastel background has no dark-mode override, so a flat dark mark reads in either theme on its own colours, and recolouring a trademark is an alteration most brand guidelines forbid.Contrast against the category pastels: Cursor 13.2:1, GitHub 12.6:1.
Consumed by gleanwork/glean-cookbook#47
That PR points the four trigger recipes' architecture nodes at
gmail,gong,google-calendarandglean-trigger. This PR must merge first —getIconreturnsnullfor an unknown key, so the reverse order leaves those nodes rendering blank. The emphasized-node change above is also what makes itsglean-triggerassignments take effect at all.Verification
Built the site against this branch plus #47 and confirmed each page renders its marks:
icon-usage.test.tspasses; production build clean.