diff --git a/.gitignore b/.gitignore index 7a49e855..b39d5441 100644 --- a/.gitignore +++ b/.gitignore @@ -57,6 +57,7 @@ screens/ .superpowers/ .claude/ .agents/ +.worktrees/ skills-lock.json .astro/ diff --git a/apps/website/src/content.config.ts b/apps/website/src/content.config.ts index 41cbb3b4..91124bb3 100644 --- a/apps/website/src/content.config.ts +++ b/apps/website/src/content.config.ts @@ -1,8 +1,9 @@ -import { glob } from "astro/loaders"; -import { defineCollection, z } from "astro:content"; +import { glob } from 'astro/loaders'; +import { defineCollection } from 'astro:content'; +import { z } from 'astro/zod'; const icons = defineCollection({ - loader: glob({ base: "./src/content/icons", pattern: "**/*.{md,mdx}" }), + loader: glob({ base: './src/content/icons', pattern: '**/*.{md,mdx}' }), schema: z.object({ name: z.string(), description: z.string().optional(), @@ -28,19 +29,19 @@ const icons = defineCollection({ }); const docs = defineCollection({ - loader: glob({ base: "./src/content/docs", pattern: "**/*.{md,mdx}" }), + loader: glob({ base: './src/content/docs', pattern: '**/*.{md,mdx}' }), schema: z.object({ title: z.string(), description: z.string().optional(), order: z.number().default(0), - category: z.string().default("Getting Started"), + category: z.string().default('Getting Started'), categoryOrder: z.number().default(0), - badge: z.enum(["new", "updated", "beta"]).optional(), + badge: z.enum(['new', 'updated', 'beta']).optional(), }), }); const packs = defineCollection({ - loader: glob({ base: "./src/content/packs", pattern: "**/*.{md,mdx}" }), + loader: glob({ base: './src/content/packs', pattern: '**/*.{md,mdx}' }), schema: z.object({ title: z.string(), description: z.string(), diff --git a/apps/website/src/content/icons/airtable.mdx b/apps/website/src/content/icons/airtable.mdx index 4bc125d4..f395caff 100644 --- a/apps/website/src/content/icons/airtable.mdx +++ b/apps/website/src/content/icons/airtable.mdx @@ -13,4 +13,6 @@ tags: [ website: "https://airtable.com/" aliases: [] version: "1.0.0" +license: "https://airtable.com/company/tos" +brandGuidelines: "https://www.airtable.com/company/trademark-guidelines" --- diff --git a/apps/website/src/content/icons/angular.mdx b/apps/website/src/content/icons/angular.mdx index c6601325..1b54e08d 100644 --- a/apps/website/src/content/icons/angular.mdx +++ b/apps/website/src/content/icons/angular.mdx @@ -12,5 +12,7 @@ tags: [ website: "https://angular.io/" aliases: ["ng"] version: "1.0.0" +license: "https://github.com/angular/angular/blob/main/LICENSE" +brandGuidelines: "https://angular.dev/press-kit" popular: true --- \ No newline at end of file diff --git a/apps/website/src/content/icons/anthropic.mdx b/apps/website/src/content/icons/anthropic.mdx index e7d2812b..d1606aaf 100644 --- a/apps/website/src/content/icons/anthropic.mdx +++ b/apps/website/src/content/icons/anthropic.mdx @@ -11,5 +11,6 @@ tags: [ website: "https://www.anthropic.com/" aliases: ["claude"] version: "1.0.0" +license: "https://www.anthropic.com/legal/consumer-terms" badInDark: true --- diff --git a/apps/website/src/content/icons/astro.mdx b/apps/website/src/content/icons/astro.mdx index f8b3bb0f..8528d747 100644 --- a/apps/website/src/content/icons/astro.mdx +++ b/apps/website/src/content/icons/astro.mdx @@ -12,5 +12,7 @@ tags: [ website: "https://astro.build/" aliases: [] version: "1.0.0" +license: "https://github.com/withastro/astro/blob/main/LICENSE" +brandGuidelines: "https://astro.build/press/" badInDark: true --- diff --git a/apps/website/src/content/icons/aws.mdx b/apps/website/src/content/icons/aws.mdx index 9b8b8c99..07404d36 100644 --- a/apps/website/src/content/icons/aws.mdx +++ b/apps/website/src/content/icons/aws.mdx @@ -10,5 +10,7 @@ tags: [ ] website: "https://aws.amazon.com/" version: "1.0.0" +license: "https://aws.amazon.com/service-terms/" +brandGuidelines: "https://aws.amazon.com/trademark-guidelines/" popular: true --- \ No newline at end of file diff --git a/apps/website/src/content/icons/bun.mdx b/apps/website/src/content/icons/bun.mdx index 4c0b7b60..6ed79f45 100644 --- a/apps/website/src/content/icons/bun.mdx +++ b/apps/website/src/content/icons/bun.mdx @@ -11,4 +11,6 @@ tags: [ ] website: "https://bun.sh/" version: "1.0.0" +license: "https://github.com/oven-sh/bun/blob/main/LICENSE.md" +brandGuidelines: "https://bun.sh/press" --- diff --git a/apps/website/src/content/icons/chrome.mdx b/apps/website/src/content/icons/chrome.mdx index cc203dcf..83832daf 100644 --- a/apps/website/src/content/icons/chrome.mdx +++ b/apps/website/src/content/icons/chrome.mdx @@ -7,4 +7,6 @@ recommended: true tags: ["browser", "google"] aliases: ["google-chrome"] version: "1.0.0" +license: "https://www.google.com/chrome/terms/" +brandGuidelines: "https://www.google.com/permissions/logos-trademarks/" --- diff --git a/apps/website/src/content/icons/claude-code.mdx b/apps/website/src/content/icons/claude-code.mdx index e5773df0..71b24f03 100644 --- a/apps/website/src/content/icons/claude-code.mdx +++ b/apps/website/src/content/icons/claude-code.mdx @@ -6,6 +6,7 @@ featured: true tags: ["ai", "coding-assistant", "cli", "anthropic", "terminal", "agent"] website: "https://docs.anthropic.com/en/docs/claude-code" version: "1.0.0" +license: "https://github.com/anthropics/claude-code/blob/main/LICENSE.md" popular: true recommended: true --- diff --git a/apps/website/src/content/icons/claude.mdx b/apps/website/src/content/icons/claude.mdx index 20025ae2..560e7a49 100644 --- a/apps/website/src/content/icons/claude.mdx +++ b/apps/website/src/content/icons/claude.mdx @@ -6,4 +6,5 @@ recommended: true popular: true tags: ["ai", "assistant", "anthropic", "chatbot", "language-model"] version: "1.0.0" +license: "https://www.anthropic.com/legal/consumer-terms" --- diff --git a/apps/website/src/content/icons/clickhouse.mdx b/apps/website/src/content/icons/clickhouse.mdx index 66b5fbe7..bfba2cd4 100644 --- a/apps/website/src/content/icons/clickhouse.mdx +++ b/apps/website/src/content/icons/clickhouse.mdx @@ -8,4 +8,6 @@ tags: ["database", "analytics", "column-oriented", "big-data", "open-source"] website: "https://clickhouse.com/" aliases: ["ch"] version: "1.0.0" +license: "https://github.com/ClickHouse/ClickHouse/blob/master/LICENSE" +brandGuidelines: "https://clickhouse.com/legal/trademark-policy" --- diff --git a/apps/website/src/content/icons/cloudflare.mdx b/apps/website/src/content/icons/cloudflare.mdx index 0aa68f55..7c372ee1 100644 --- a/apps/website/src/content/icons/cloudflare.mdx +++ b/apps/website/src/content/icons/cloudflare.mdx @@ -8,4 +8,6 @@ tags: ["cdn", "security", "dns", "web-performance", "ddos-protection", "cloud"] website: "https://www.cloudflare.com/" aliases: ["cf"] version: "1.0.0" +license: "https://www.cloudflare.com/website-terms/" +brandGuidelines: "https://www.cloudflare.com/trademark/" --- diff --git a/apps/website/src/content/icons/css.mdx b/apps/website/src/content/icons/css.mdx index 25ba4b46..921ff822 100644 --- a/apps/website/src/content/icons/css.mdx +++ b/apps/website/src/content/icons/css.mdx @@ -8,4 +8,5 @@ tags: ["frontend", "web-development", "styling"] website: "https://www.w3.org/Style/CSS/" aliases: [] version: "1.0.0" +license: "https://www.w3.org/Consortium/Legal/copyright-software" --- diff --git a/apps/website/src/content/icons/cursor.mdx b/apps/website/src/content/icons/cursor.mdx index d563651e..588d8f35 100644 --- a/apps/website/src/content/icons/cursor.mdx +++ b/apps/website/src/content/icons/cursor.mdx @@ -8,5 +8,6 @@ tags: ["editor", "ide", "ai", "developer-tools"] website: "https://cursor.com/" aliases: [] version: "1.0.0" +license: "https://cursor.com/terms-of-service" badInDark: true --- diff --git a/apps/website/src/content/icons/datadog.mdx b/apps/website/src/content/icons/datadog.mdx index 8ac940a5..25fc4616 100644 --- a/apps/website/src/content/icons/datadog.mdx +++ b/apps/website/src/content/icons/datadog.mdx @@ -8,4 +8,6 @@ tags: ["monitoring", "observability", "devops", "cloud", "analytics"] website: "https://datadoghq.com" aliases: ["dd"] version: "1.0.0" +license: "https://www.datadoghq.com/legal/terms/" +brandGuidelines: "https://www.datadoghq.com/about/resources/" --- diff --git a/apps/website/src/content/icons/deepseek.mdx b/apps/website/src/content/icons/deepseek.mdx index a0de1ce6..2f41d164 100644 --- a/apps/website/src/content/icons/deepseek.mdx +++ b/apps/website/src/content/icons/deepseek.mdx @@ -7,4 +7,5 @@ popular: true tags: ["ai", "llm", "machine-learning", "open-source", "research"] website: "https://www.deepseek.com/" version: "1.0.0" +license: "https://github.com/deepseek-ai/DeepSeek-V3/blob/main/LICENSE-MODEL" --- diff --git a/apps/website/src/content/icons/discord.mdx b/apps/website/src/content/icons/discord.mdx index 90323293..1347a4f8 100644 --- a/apps/website/src/content/icons/discord.mdx +++ b/apps/website/src/content/icons/discord.mdx @@ -8,4 +8,6 @@ tags: ["communication", "chat", "community", "voice-chat"] website: "https://discord.com" aliases: [] version: "1.0.0" +license: "https://discord.com/terms" +brandGuidelines: "https://discord.com/branding" --- diff --git a/apps/website/src/content/icons/docker.mdx b/apps/website/src/content/icons/docker.mdx index 4eb4dfab..26ef978c 100644 --- a/apps/website/src/content/icons/docker.mdx +++ b/apps/website/src/content/icons/docker.mdx @@ -6,6 +6,8 @@ tags: ["containerization", "devops", "infrastructure", "cloud"] website: "https://docker.com" aliases: [] version: "1.0.0" +license: "https://www.docker.com/legal/docker-terms-service/" +brandGuidelines: "https://www.docker.com/company/newsroom/media-resources/" popular: true recommended: true --- diff --git a/apps/website/src/content/icons/elixir.mdx b/apps/website/src/content/icons/elixir.mdx index 8e723544..8d8ed491 100644 --- a/apps/website/src/content/icons/elixir.mdx +++ b/apps/website/src/content/icons/elixir.mdx @@ -8,4 +8,6 @@ tags: ["programming-language", "functional", "backend", "erlang"] website: "https://elixir-lang.org" aliases: [] version: "1.0.0" +license: "https://github.com/elixir-lang/elixir/blob/main/LICENSE" +brandGuidelines: "https://elixir-lang.org/trademarks.html" --- diff --git a/apps/website/src/content/icons/ffmpeg.mdx b/apps/website/src/content/icons/ffmpeg.mdx index b83c27c2..ace9fe55 100644 --- a/apps/website/src/content/icons/ffmpeg.mdx +++ b/apps/website/src/content/icons/ffmpeg.mdx @@ -8,4 +8,5 @@ recommended: true tags: ["multimedia", "video-processing", "audio-processing", "encoding"] website: "https://ffmpeg.org" version: "1.0.0" +license: "https://www.ffmpeg.org/legal.html" --- \ No newline at end of file diff --git a/apps/website/src/content/icons/figma.mdx b/apps/website/src/content/icons/figma.mdx index e207a352..db85e97d 100644 --- a/apps/website/src/content/icons/figma.mdx +++ b/apps/website/src/content/icons/figma.mdx @@ -8,4 +8,6 @@ popular: true tags: ["design", "ui", "ux", "prototyping", "collaboration"] website: "https://figma.com" version: "1.0.0" +license: "https://www.figma.com/legal/tos/" +brandGuidelines: "https://www.figma.com/using-the-figma-brand/" --- diff --git a/apps/website/src/content/icons/firefox.mdx b/apps/website/src/content/icons/firefox.mdx index 1dc551e2..74f0575d 100644 --- a/apps/website/src/content/icons/firefox.mdx +++ b/apps/website/src/content/icons/firefox.mdx @@ -8,4 +8,6 @@ recommended: true tags: ["browser", "web", "mozilla", "privacy", "open-source"] website: "https://blog.mozilla.org/opendesign/firefox-the-evolution-of-a-brand/" version: "1.0.0" +license: "https://www.mozilla.org/en-US/about/legal/terms/firefox/" +brandGuidelines: "https://www.mozilla.org/en-US/foundation/trademarks/list/" --- diff --git a/apps/website/src/content/icons/git.mdx b/apps/website/src/content/icons/git.mdx index bac415f3..afe204d2 100644 --- a/apps/website/src/content/icons/git.mdx +++ b/apps/website/src/content/icons/git.mdx @@ -5,6 +5,8 @@ aliases: [] icons: [git-icon, git] tags: ["version-control", "scm", "development", "open-source"] version: "1.0.0" +license: "https://github.com/git/git/blob/master/COPYING" +brandGuidelines: "https://git-scm.com/downloads/logos" popular: true recommended: true --- diff --git a/apps/website/src/content/icons/github-copilot.mdx b/apps/website/src/content/icons/github-copilot.mdx index 111f1d97..41bdc264 100644 --- a/apps/website/src/content/icons/github-copilot.mdx +++ b/apps/website/src/content/icons/github-copilot.mdx @@ -8,5 +8,7 @@ recommended: true tags: ["ai", "code-assistant", "github", "developer-tools", "machine-learning"] website: "https://copilot.github.com" version: "1.0.0" +license: "https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features" +brandGuidelines: "https://github.com/logos" badInDark: true --- diff --git a/apps/website/src/content/icons/github.mdx b/apps/website/src/content/icons/github.mdx index 5063b8e6..de3504b5 100644 --- a/apps/website/src/content/icons/github.mdx +++ b/apps/website/src/content/icons/github.mdx @@ -6,6 +6,8 @@ icons: [github-icon, github] tags: ["version-control", "git", "collaboration", "open-source", "development"] website: "https://github.com" version: "1.0.0" +license: "https://docs.github.com/en/site-policy/github-terms/github-terms-of-service" +brandGuidelines: "https://github.com/logos" popular: true recommended: true badInDark: true diff --git a/apps/website/src/content/icons/go.mdx b/apps/website/src/content/icons/go.mdx index dbded198..ad063b2b 100644 --- a/apps/website/src/content/icons/go.mdx +++ b/apps/website/src/content/icons/go.mdx @@ -6,6 +6,8 @@ icons: [go] tags: ["programming-language", "golang", "backend", "concurrent", "google"] website: "https://go.dev" version: "1.0.0" +license: "https://github.com/golang/go/blob/master/LICENSE" +brandGuidelines: "https://go.dev/brand" popular: true recommended: true --- diff --git a/apps/website/src/content/icons/google-gemini.mdx b/apps/website/src/content/icons/google-gemini.mdx index f5bc886a..2b98195f 100644 --- a/apps/website/src/content/icons/google-gemini.mdx +++ b/apps/website/src/content/icons/google-gemini.mdx @@ -8,4 +8,6 @@ recommended: true tags: ["ai", "language-model", "google", "artificial-intelligence", "nlp"] website: "https://gemini.google.com" version: "1.0.0" +license: "https://policies.google.com/terms" +brandGuidelines: "https://www.google.com/permissions/logos-trademarks/" --- diff --git a/apps/website/src/content/icons/hugging-face.mdx b/apps/website/src/content/icons/hugging-face.mdx index a45107a3..1a357697 100644 --- a/apps/website/src/content/icons/hugging-face.mdx +++ b/apps/website/src/content/icons/hugging-face.mdx @@ -8,4 +8,6 @@ tags: ["machine-learning", "ai", "nlp", "open-source"] website: "https://huggingface.co" aliases: ["hf"] version: "1.0.0" +license: "https://huggingface.co/terms-of-service" +brandGuidelines: "https://huggingface.co/brand" --- diff --git a/apps/website/src/content/icons/java.mdx b/apps/website/src/content/icons/java.mdx index f0af8056..83905a99 100644 --- a/apps/website/src/content/icons/java.mdx +++ b/apps/website/src/content/icons/java.mdx @@ -8,4 +8,6 @@ tags: ["programming-language", "backend", "jvm"] website: "https://www.java.com" aliases: [] version: "1.0.0" +license: "https://www.oracle.com/legal/terms.html" +brandGuidelines: "https://www.oracle.com/legal/trademarks.html" --- diff --git a/apps/website/src/content/icons/javascript.mdx b/apps/website/src/content/icons/javascript.mdx index e912257d..0f5c10c4 100644 --- a/apps/website/src/content/icons/javascript.mdx +++ b/apps/website/src/content/icons/javascript.mdx @@ -6,6 +6,7 @@ tags: ["programming-language", "frontend", "backend", "scripting"] website: "https://www.javascript.com" aliases: ["js"] version: "1.0.0" +license: "https://www.ecma-international.org/policies/by-ipr/ecma-text-copyright-policy/" popular: true recommended: true --- diff --git a/apps/website/src/content/icons/jest.mdx b/apps/website/src/content/icons/jest.mdx index c189b037..b311236b 100644 --- a/apps/website/src/content/icons/jest.mdx +++ b/apps/website/src/content/icons/jest.mdx @@ -8,4 +8,5 @@ tags: ["testing", "javascript", "frontend"] website: "https://jestjs.io/" aliases: [] version: "1.0.0" +license: "https://github.com/jestjs/jest/blob/main/LICENSE" --- diff --git a/apps/website/src/content/icons/kotlin.mdx b/apps/website/src/content/icons/kotlin.mdx index 5df9fec8..760b9c67 100644 --- a/apps/website/src/content/icons/kotlin.mdx +++ b/apps/website/src/content/icons/kotlin.mdx @@ -7,4 +7,6 @@ popular: true recommended: true tags: ["programming-language", "jvm", "android", "jetbrains", "java"] website: "https://kotlinlang.org/" +license: "https://github.com/JetBrains/kotlin/blob/master/license/LICENSE.txt" +brandGuidelines: "https://kotlinlang.org/foundation/guidelines.html" --- diff --git a/apps/website/src/content/icons/kubernetes.mdx b/apps/website/src/content/icons/kubernetes.mdx index 3cf6a4ca..01b797cf 100644 --- a/apps/website/src/content/icons/kubernetes.mdx +++ b/apps/website/src/content/icons/kubernetes.mdx @@ -6,6 +6,8 @@ icons: [kubernetes] tags: ["container", "orchestration", "devops", "cloud-native", "docker"] website: "https://kubernetes.io/" version: "1.0.0" +license: "https://github.com/kubernetes/kubernetes/blob/master/LICENSE" +brandGuidelines: "https://www.linuxfoundation.org/legal/trademark-usage" popular: true recommended: true --- diff --git a/apps/website/src/content/icons/langchain.mdx b/apps/website/src/content/icons/langchain.mdx index bcb340f2..bec6df12 100644 --- a/apps/website/src/content/icons/langchain.mdx +++ b/apps/website/src/content/icons/langchain.mdx @@ -7,4 +7,5 @@ popular: true tags: ["ai", "llm", "framework", "python", "javascript", "agents"] website: "https://www.langchain.com/" version: "1.0.0" +license: "https://github.com/langchain-ai/langchain/blob/master/LICENSE" --- diff --git a/apps/website/src/content/icons/laravel.mdx b/apps/website/src/content/icons/laravel.mdx index e4350648..c3b39693 100644 --- a/apps/website/src/content/icons/laravel.mdx +++ b/apps/website/src/content/icons/laravel.mdx @@ -8,4 +8,6 @@ recommended: true tags: ["php", "web-framework", "backend", "mvc", "eloquent"] website: "https://laravel.com/" version: "1.0.0" +license: "https://github.com/laravel/framework/blob/12.x/LICENSE.md" +brandGuidelines: "https://laravel.com/legal/trademark" --- diff --git a/apps/website/src/content/icons/mistral-ai.mdx b/apps/website/src/content/icons/mistral-ai.mdx index 790f2b8d..569983cb 100644 --- a/apps/website/src/content/icons/mistral-ai.mdx +++ b/apps/website/src/content/icons/mistral-ai.mdx @@ -8,4 +8,5 @@ tags: ["ai", "machine-learning", "language-model", "artificial-intelligence", "n website: "https://mistral.ai/" aliases: ["mistral ai"] version: "1.0.0" +license: "https://mistral.ai/terms" --- diff --git a/apps/website/src/content/icons/mongodb.mdx b/apps/website/src/content/icons/mongodb.mdx index 92584316..aeae8c25 100644 --- a/apps/website/src/content/icons/mongodb.mdx +++ b/apps/website/src/content/icons/mongodb.mdx @@ -8,4 +8,6 @@ recommended: true tags: ["database", "nosql", "document-database", "json", "backend"] website: "https://www.mongodb.com/" version: "1.0.0" +license: "https://www.mongodb.com/legal/terms-of-use" +brandGuidelines: "https://www.mongodb.com/legal/trademark-usage-guidelines" --- diff --git a/apps/website/src/content/icons/mysql.mdx b/apps/website/src/content/icons/mysql.mdx index 6bbac2fa..e3e945af 100644 --- a/apps/website/src/content/icons/mysql.mdx +++ b/apps/website/src/content/icons/mysql.mdx @@ -8,4 +8,6 @@ recommended: true tags: ["database", "sql", "rdbms", "oracle"] website: "https://www.mysql.com/" version: "1.0.0" +license: "https://github.com/mysql/mysql-server/blob/trunk/LICENSE" +brandGuidelines: "https://www.oracle.com/legal/trademarks.html" --- diff --git a/apps/website/src/content/icons/netlify.mdx b/apps/website/src/content/icons/netlify.mdx index 95862b7a..062f917f 100644 --- a/apps/website/src/content/icons/netlify.mdx +++ b/apps/website/src/content/icons/netlify.mdx @@ -8,4 +8,6 @@ recommended: true tags: ["hosting", "deployment", "jamstack", "cloud", "ci-cd"] website: "https://www.netlify.com/" version: "1.0.0" +license: "https://www.netlify.com/legal/terms-of-use/" +brandGuidelines: "https://www.netlify.com/press/" --- diff --git a/apps/website/src/content/icons/nextjs.mdx b/apps/website/src/content/icons/nextjs.mdx index d0e530d0..7a8dec25 100644 --- a/apps/website/src/content/icons/nextjs.mdx +++ b/apps/website/src/content/icons/nextjs.mdx @@ -6,6 +6,8 @@ icons: [nextjs-icon, nextjs] tags: ["react", "framework", "ssr", "frontend", "vercel", "fullstack"] website: "https://nextjs.org/" version: "1.0.0" +license: "https://github.com/vercel/next.js/blob/canary/license.md" +brandGuidelines: "https://vercel.com/design/brands" popular: true recommended: true badInDark: true diff --git a/apps/website/src/content/icons/nodejs.mdx b/apps/website/src/content/icons/nodejs.mdx index af57508a..7987c36d 100644 --- a/apps/website/src/content/icons/nodejs.mdx +++ b/apps/website/src/content/icons/nodejs.mdx @@ -6,6 +6,8 @@ icons: [nodejs-icon, nodejs] tags: ["javascript", "runtime", "server", "backend", "v8"] website: "https://nodejs.org/" version: "1.0.0" +license: "https://github.com/nodejs/node/blob/main/LICENSE" +brandGuidelines: "https://nodejs.org/en/about/branding/" popular: true recommended: true --- diff --git a/apps/website/src/layouts/Icon.astro b/apps/website/src/layouts/Icon.astro index 5f7b6927..c4b1423b 100644 --- a/apps/website/src/layouts/Icon.astro +++ b/apps/website/src/layouts/Icon.astro @@ -138,6 +138,28 @@ const related = await getRelatedIcons(slug, tags, 8); ) } + { + license && ( + + License + + ) + } + { + brandGuidelines && ( + + Brand + + ) + } { colorChips.map(({ hex, label }) => { const bucket = bucketForHex(hex);