feat: rebrand a Manual de Identidad Visual v1.0

Migra todo el sitio a la marca oficial aprobada por la dueña:
- Logotipo cre≡er (el símbolo ≡ reemplaza la 'e' central, en dorado)
- Paleta: Azul Profundo #0A1D5D + Dorado Estratégico #C4942E + Blanco + neutros
- Tipografía: Aptos (Inter como fallback web), fin del sistema híbrido Georgia/Inter
- Tagline 'CLARIDAD · DIRECCIÓN · CRECIMIENTO' + eslogan 'Estrategia que transforma.'

Componentes, tokens de Tailwind, lib/content.ts, docs (dueña-directrices + spec)
y tests actualizados. Typecheck, lint, 27/27 tests y build estática verdes.

Basado en docs/branding.jpeg (Manual v1.0, mayo 2026).
This commit is contained in:
erikgh committed 2026-07-28 10:51:48 -06:00
1 parent 8fdfc1be5c
commit 60d3f22e6b
22 files changed
+212 -181

No files matched your search

+2 -2
View File
@@ -1,7 +1,7 @@
type Variant = 'light' | 'dark';
const styles: Record<Variant, string> = {
light: 'bg-ink text-cream hover:bg-ink/90',
dark: 'bg-gold-bright text-ink hover:bg-gold-bright/90',
light: 'bg-azul-profundo text-white hover:bg-azul-profundo/90',
dark: 'bg-dorado text-white hover:bg-dorado/90',
};
export function CTA({ href, label, variant = 'light', className = '' }: { href: string; label: string; variant?: Variant; className?: string }) {
+5 -6
View File
@@ -9,15 +9,14 @@ const sizeClass: Record<Size, string> = {
};
export function Wordmark({ size = 'lg', onDark = false }: { size?: Size; onDark?: boolean }) {
const { before, accent, after, dot } = wordmark.parts;
const baseColor = onDark ? 'text-cream' : 'text-ink';
const goldColor = onDark ? 'text-gold-bright' : 'text-gold';
const { before, after } = wordmark.parts;
const baseColor = onDark ? 'text-white' : 'text-azul-profundo';
const goldColor = 'text-dorado';
return (
<span className={`font-serif italic font-bold tracking-tight leading-none ${sizeClass[size]} ${baseColor}`}>
<span className={`font-sans font-bold tracking-tight leading-none ${sizeClass[size]} ${baseColor}`}>
{before}
<span data-accent="true" className={`not-italic font-black ${goldColor}`}>{accent}</span>
<span data-accent="true" className={goldColor}>≡</span>
{after}
<span className={goldColor}>{dot}</span>
</span>
);
}
@@ -6,13 +6,13 @@ describe('<Wordmark />', () => {
it('renders the wordmark in lowercase', () => {
render(<Wordmark />);
const text = screen.getByText(/cre/).closest('span')?.textContent;
expect(text?.toLowerCase()).toBe('creeer.');
expect(text?.toLowerCase()).toBe('cre≡er');
});
it('renders the accent "e" separately for gold styling', () => {
it('renders the accent "≡" symbol separately for dorado styling', () => {
const { container } = render(<Wordmark />);
const accent = container.querySelector('[data-accent="true"]');
expect(accent).not.toBeNull();
expect(accent?.textContent).toBe('e');
expect(accent?.textContent).toBe('≡');
});
it('never renders uppercase CREEER', () => {
const { container } = render(<Wordmark />);