# partner-logos-styling > This skill should be used when the user asks to "add partner logos", "style client logos", "make logos uniform", "add company logos section", "trusted by logos", or needs to display multiple brand logos in a consistent, professional style on light or dark backgrounds. - Author: yusufesntrk - Repository: yusufesntrk/searched-website - Version: 20251224112704 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/yusufesntrk/searched-website - Web: https://mule.run/skillshub/@@yusufesntrk/searched-website~partner-logos-styling:20251224112704 --- --- name: partner-logos-styling description: This skill should be used when the user asks to "add partner logos", "style client logos", "make logos uniform", "add company logos section", "trusted by logos", or needs to display multiple brand logos in a consistent, professional style on light or dark backgrounds. --- # Partner Logos Styling Pattern für einheitliche Darstellung von Partner-/Kundenlogos in "Trusted by" oder "Our Clients" Sektionen. ## Das Problem Firmenlogos haben unterschiedliche: - Farben (bunt, einfarbig, dunkel, hell) - Formate (PNG, SVG, mit/ohne Transparenz) - Größen und Proportionen Ohne Vereinheitlichung wirkt die Logo-Sektion chaotisch und unprofessionell. ## Die Lösung: CSS Filter ### Variante 1: Schwarze Logos (für helle Hintergründe) ```tsx {name} ``` `brightness-0` macht jedes Logo komplett schwarz - unabhängig von der Originalfarbe. ### Variante 2: Weiße Logos (für dunkle Hintergründe) ```tsx {name} ``` `brightness-0 invert` macht Logos erst schwarz, dann invertiert zu weiß. ### Variante 3: Corporate Color (z.B. Blau) ```tsx {name} ``` Für spezifische Markenfarben den Filter mit einem Tool wie [CSS Filter Generator](https://codepen.io/sosuke/pen/Pjoqqp) generieren. ## Vollständiges Komponenten-Pattern ```tsx const PartnerLogos = () => { const partners = [ { name: "Company A", logo: "/logos/company-a.png" }, { name: "Company B", logo: "/logos/company-b.svg" }, { name: "Company C", initials: "C" }, // Fallback ohne Logo ]; return (
{/* Trust Headline */}

Vertraut von 10+ Unternehmen

{/* Logo Grid */}
{partners.map((partner) => (
{partner.logo ? ( {partner.name} ) : ( {partner.initials || partner.name} )}
))}
); }; ``` ## Styling-Details ### Container-Klassen | Klasse | Zweck | |--------|-------| | `h-10` | Einheitliche Container-Höhe | | `opacity-60` | Dezenter Normalzustand | | `hover:opacity-100` | Volle Sichtbarkeit bei Hover | | `transition-opacity duration-300` | Sanfte Animation | ### Logo-Klassen | Klasse | Zweck | |--------|-------| | `h-8 md:h-9` | Responsive Logo-Höhe | | `w-auto` | Proportionen beibehalten | | `object-contain` | Kein Cropping | | `brightness-0` | Schwarz (hell BG) | | `brightness-0 invert` | Weiß (dunkel BG) | ### Grid-Klassen | Klasse | Zweck | |--------|-------| | `flex flex-wrap` | Flexibles Wrapping | | `items-center justify-center` | Zentriert | | `gap-10 md:gap-14` | Großzügiger Abstand | ## Fallback für fehlende Logos Wenn ein Partner kein Logo hat, Initials oder Namen anzeigen: ```tsx {partner.logo ? ( ) : ( {partner.initials || partner.name} )} ``` ## Häufige Fehler vermeiden ### Fehler 1: Weiße Logos auf weißem Hintergrund ```tsx // FALSCH - unsichtbar auf hellem Hintergrund className="brightness-0 invert" // RICHTIG - schwarz auf hellem Hintergrund className="brightness-0" ``` ### Fehler 2: Unterschiedliche Logo-Höhen ```tsx // FALSCH - jedes Logo andere Größe className="w-24" // oder keine Höhe definiert // RICHTIG - einheitliche Höhe, auto Breite className="h-8 md:h-9 w-auto" ``` ### Fehler 3: Zu wenig Abstand ```tsx // FALSCH - Logos kleben zusammen className="gap-4" // RICHTIG - großzügiger Abstand className="gap-10 md:gap-14" ``` ### Fehler 4: Fehlender Hover-Effekt ```tsx // BESSER - mit subtiler Interaktion className="opacity-60 hover:opacity-100 transition-opacity" ``` ## Responsive Überlegungen - **Mobile:** Logos wrappen automatisch dank `flex-wrap` - **Tablet/Desktop:** Einzeilige Darstellung wenn möglich - **Große Screens:** `max-w-4xl` verhindert zu weite Streuung ## Barrierefreiheit - Immer `alt`-Attribut mit Firmennamen setzen - Opacity nicht unter 0.5 für ausreichenden Kontrast - Logos sollten auch ohne Farbe erkennbar sein (daher funktioniert brightness-0 gut)