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:
1 parent
8fdfc1be5c
commit
60d3f22e6b
22 files changed
+212
-181
No files matched your search
@@ -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 }) {
|
||||
|
||||
@@ -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 />);
|
||||
|
||||
Reference in new issue
Block a user