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

+3 -3
View File
@@ -4,11 +4,11 @@ import { footer } from '@/lib/content';
export function Footer() {
return (
<footer className="bg-bg-dark text-cream border-t border-cream/10">
<footer className="bg-azul-profundo text-white border-t border-white/10">
<Container className="flex flex-col items-center gap-3 py-10 text-center md:flex-row md:justify-between md:text-left">
<Wordmark size="sm" onDark />
<p className="text-sm text-muted-dark">{footer.tagline}</p>
<p className="text-xs text-muted-dark">{footer.legal}</p>
<p className="text-sm text-gris-medio">{footer.tagline}</p>
<p className="text-xs text-gris-medio">{footer.legal}</p>
</Container>
</footer>
);
+1 -1
View File
@@ -5,7 +5,7 @@ import { header } from '@/lib/content';
export function Header() {
return (
<header className="sticky top-0 z-50 border-b border-ink/10 bg-base/80 backdrop-blur">
<header className="sticky top-0 z-50 border-b border-azul-profundo/10 bg-white/80 backdrop-blur">
<Container className="flex items-center justify-between py-3">
<a href="#top" aria-label="creeer — inicio">
<Wordmark size="md" />
+1 -1
View File
@@ -5,7 +5,7 @@ import { Footer } from '../Footer';
describe('<Footer />', () => {
it('renders the tagline and the legal line', () => {
render(<Footer />);
expect(screen.getByText('tu estratega de crecimiento')).toBeInTheDocument();
expect(screen.getByText('CLARIDAD · DIRECCIÓN · CRECIMIENTO')).toBeInTheDocument();
expect(screen.getByText(/© 2026 creeer/)).toBeInTheDocument();
});
it('does not introduce a second h1', () => {
+1 -1
View File
@@ -5,7 +5,7 @@ import { Header } from '../Header';
describe('<Header />', () => {
it('renders the wordmark', () => {
const { container } = render(<Header />);
expect(container.textContent).toContain('creeer');
expect(container.textContent).toContain('cre≡er');
});
it('renders a persistent CTA linking to the contact section', () => {
render(<Header />);