spb/trouve-ka Public
Trouve-KA — moteur de recherche web indépendant, Québec-first. Crawler distribué, index OpenSearch, ranking bilingue, galerie d'images. En prod : www.trouve-ka.com
Python 76.8%
TypeScript 15.7%
SQL 3.9%
Shell 1.4%
CSS 1.3%
Dockerfile 0.7%
1/**2 * Trouve-KA — wordmark « Trouve » + chip « KA » (signature Groupe KA)3 * Author: Simon-Pierre Boucher4 * Contact: contact@spboucher.ai5 */67import { cn } from "@/lib/utils";89interface WordmarkProps {10 /**11 * `header` : encre sur papier, chip encre/texte lime (hover rotate-0 via12 * `group` sur le lien parent). `footer` : papier sur encre, chip lime.13 * `hero` : géant, pour la homepage.14 */15 variant?: "header" | "footer" | "hero";16 className?: string;17}1819export function Wordmark({ variant = "header", className }: WordmarkProps) {20 const base =21 variant === "footer"22 ? "text-[26px] text-paper"23 : variant === "hero"24 ? "text-5xl text-ink sm:text-6xl"25 : "text-[21px] text-ink sm:text-[24px]";2627 return (28 <span29 className={cn(30 "gk-display inline-flex items-baseline gap-[5px] font-bold tracking-[-0.04em]",31 base,32 className,33 )}34 >35 Trouve36 {variant === "footer" ? (37 <span className="inline-block -rotate-2 rounded-md bg-lime px-[7px] pb-[2px] text-ink">38 KA39 </span>40 ) : variant === "hero" ? (41 <span className="inline-block -rotate-2 rounded-lg bg-ink px-3 pb-1 text-lime">42 KA43 </span>44 ) : (45 <span className="inline-block -rotate-2 rounded-md bg-ink px-[7px] pb-[2px] text-lime transition-transform duration-200 group-hover:rotate-0">46 KA47 </span>48 )}49 </span>50 );51}52