feat(identidad): logos SVG oficiales, wordmark trazado y tokens del manual
El wordmark deja de depender del glifo tipográfico ≡ y pasa a un trazado SVG propio (SimboloTresLineas), que es lo que permite cumplir la instrucción de la dueña: que se lea como E, no como tres líneas sueltas. Incluye las tres versiones del logotipo (principal, negativa, secundaria) y alinea los tokens de color con el Manual de Identidad Visual v1.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
edf921eae7
commit
a9758a92f9
15 files changed
+287
-27
No files matched your search
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
html { scroll-behavior: smooth; }
|
html { scroll-behavior: smooth; }
|
||||||
body {
|
body {
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
color: #0A1D5D;
|
color: #0A1D3D;
|
||||||
font-family: var(--font-open-sans), system-ui, sans-serif;
|
font-family: var(--font-open-sans), system-ui, sans-serif;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
|
||||||
<rect width="64" height="64" rx="12" fill="#0A1D5D"/>
|
<rect width="64" height="64" rx="12" fill="#0A1D3D"/>
|
||||||
<g fill="#C4942E">
|
<g fill="#C4942E">
|
||||||
<rect x="13" y="13" width="38" height="8" rx="1.5"/>
|
<rect x="13" y="13" width="38" height="8" rx="1.5"/>
|
||||||
<rect x="13" y="28" width="38" height="8" rx="1.5"/>
|
<rect x="13" y="28" width="38" height="8" rx="1.5"/>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 346 B After Width: | Height: | Size: 346 B |
@@ -1,7 +1,10 @@
|
|||||||
type Variant = 'light' | 'dark';
|
type Variant = 'light' | 'dark' | 'ghost';
|
||||||
|
// Every variant carries border-2 so filled and outlined CTAs line up when
|
||||||
|
// they sit side by side.
|
||||||
const styles: Record<Variant, string> = {
|
const styles: Record<Variant, string> = {
|
||||||
light: 'bg-azul-profundo text-white hover:bg-azul-profundo/90',
|
light: 'border-2 border-transparent bg-azul-profundo text-white hover:bg-azul-profundo/90',
|
||||||
dark: 'bg-dorado text-white hover:bg-dorado/90',
|
dark: 'border-2 border-transparent bg-dorado text-white hover:bg-dorado/90',
|
||||||
|
ghost: 'border-2 border-azul-profundo text-azul-profundo hover:bg-azul-profundo hover:text-white',
|
||||||
};
|
};
|
||||||
|
|
||||||
export function CTA({ href, label, variant = 'light', className = '' }: { href: string; label: string; variant?: Variant; className?: string }) {
|
export function CTA({ href, label, variant = 'light', className = '' }: { href: string; label: string; variant?: Variant; className?: string }) {
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { useRef, useState, useEffect } from 'react';
|
||||||
|
import { motion } from 'framer-motion';
|
||||||
|
import { usePrefersReducedMotion } from '@/lib/motion';
|
||||||
|
|
||||||
|
// The manual's own description of the ≡ symbol, made literal: "las líneas van
|
||||||
|
// de muchas/desordenadas (complejidad) a pocas/alineadas (claridad)". Five
|
||||||
|
// uneven bars resolve, once in view, into the three clean aligned bars of the
|
||||||
|
// official icon (see app/icon.svg) — decorative, one-shot, never loops.
|
||||||
|
const FINAL = [
|
||||||
|
{ x: 13, y: 13, width: 38, height: 8 },
|
||||||
|
{ x: 13, y: 28, width: 38, height: 8 },
|
||||||
|
{ x: 13, y: 43, width: 38, height: 8 },
|
||||||
|
];
|
||||||
|
|
||||||
|
const BARS = [
|
||||||
|
{ from: { x: 6, y: 9, width: 22, height: 6, opacity: 0.9 }, to: FINAL[0] },
|
||||||
|
{ from: { x: 36, y: 15, width: 16, height: 5, opacity: 0.45 }, to: { x: 44, y: 17, width: 8, height: 5, opacity: 0 } },
|
||||||
|
{ from: { x: 16, y: 25, width: 30, height: 7, opacity: 0.9 }, to: FINAL[1] },
|
||||||
|
{ from: { x: 8, y: 37, width: 14, height: 5, opacity: 0.45 }, to: { x: 12, y: 39, width: 8, height: 5, opacity: 0 } },
|
||||||
|
{ from: { x: 20, y: 45, width: 26, height: 6, opacity: 0.9 }, to: FINAL[2] },
|
||||||
|
];
|
||||||
|
|
||||||
|
export function SimboloTresLineas({ className = '' }: { className?: string }) {
|
||||||
|
const reduced = usePrefersReducedMotion();
|
||||||
|
const ref = useRef<SVGSVGElement>(null);
|
||||||
|
const [inView, setInView] = useState(false);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const el = ref.current;
|
||||||
|
if (!el || reduced) return;
|
||||||
|
const observer = new IntersectionObserver(
|
||||||
|
([entry]) => {
|
||||||
|
if (entry.isIntersecting) {
|
||||||
|
setInView(true);
|
||||||
|
observer.unobserve(el);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ threshold: 0.4 },
|
||||||
|
);
|
||||||
|
observer.observe(el);
|
||||||
|
return () => observer.disconnect();
|
||||||
|
}, [reduced]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<svg ref={ref} viewBox="0 0 64 64" className={className} aria-hidden="true" focusable="false">
|
||||||
|
{BARS.map((bar, i) =>
|
||||||
|
reduced ? (
|
||||||
|
<rect key={i} {...bar.to} opacity={i === 1 || i === 3 ? 0 : 1} rx={1.5} fill="currentColor" />
|
||||||
|
) : (
|
||||||
|
<motion.rect
|
||||||
|
key={i}
|
||||||
|
rx={1.5}
|
||||||
|
fill="currentColor"
|
||||||
|
initial={bar.from}
|
||||||
|
animate={inView ? bar.to : bar.from}
|
||||||
|
transition={{ duration: 0.7, delay: i * 0.08, ease: [0.22, 1, 0.36, 1] }}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
)}
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,22 +1,59 @@
|
|||||||
import { wordmark } from '@/lib/content';
|
import { brandPillars } from '@/lib/content';
|
||||||
|
|
||||||
type Size = 'sm' | 'md' | 'lg' | 'xl';
|
type Size = 'sm' | 'md' | 'lg' | 'xl';
|
||||||
|
// Widths of the mark itself. sm/md match the optical size of the type-set
|
||||||
|
// wordmark they replaced; lg/xl are sized so the tagline stays legible at the
|
||||||
|
// manual's lockup proportions.
|
||||||
const sizeClass: Record<Size, string> = {
|
const sizeClass: Record<Size, string> = {
|
||||||
sm: 'text-xl',
|
sm: 'w-[72px]',
|
||||||
md: 'text-2xl',
|
md: 'w-[87px]',
|
||||||
lg: 'text-3xl',
|
lg: 'w-[200px] md:w-[260px]',
|
||||||
xl: 'text-5xl',
|
xl: 'w-[260px] md:w-[350px]',
|
||||||
};
|
};
|
||||||
|
|
||||||
export function Wordmark({ size = 'lg', onDark = false }: { size?: Size; onDark?: boolean }) {
|
// Logotype traced from the Manual de Identidad Visual v1.0 (Aptos Regular outlines,
|
||||||
const { before, after } = wordmark.parts;
|
// so the file carries no font dependency). Geometry measured off the manual:
|
||||||
|
// bar thickness = x-height/7, gap = 2x thickness, bar length = 0.845 x-height,
|
||||||
|
// and the ≡ occupies exactly one 'e' advance, spanning x-height to baseline.
|
||||||
|
const LETTERS =
|
||||||
|
'M68.5 153L68.5 153Q48.4 153 32.9 144.6Q17.5 136.1 8.7 119.2Q0 102.3 0 76.8L0 76.8Q0 51.3 8.6 34.2Q17.2 17.2 32.6 8.6Q48 0 68.5 0L68.5 0Q85.6 0 99.3 5.6Q113.1 11.2 121.3 22.5Q129.5 33.8 129.9 51.1L129.9 51.1L104.9 51.1Q104 36.9 94.6 28.7Q85.1 20.5 68.9 20.5L68.9 20.5Q47.4 20.5 36.7 35.3Q26.1 50.1 26.1 76.8L26.1 76.8Q26.1 94.6 30.8 106.9Q35.5 119.3 45.1 125.9Q54.6 132.5 68.9 132.5L68.9 132.5Q85.1 132.5 95.3 124.1Q105.5 115.7 105.9 99.4L105.9 99.4L131 99.4Q130.5 117.3 122.3 129.2Q114 141.2 99.9 147.1Q85.9 153 68.5 153M228.7 150.4L203.4 150.4L203.4 2.6L227.2 2.6L228.1 27.8Q234.3 16.2 245.4 8.5Q256.5 0.8 274.2 0.8L274.2 0.8L277.3 0.8L277.3 24L273.8 24Q262.7 24 254.4 26.9Q246 29.7 239.8 34.8Q233.6 39.9 228.7 46.6L228.7 46.6L228.7 150.4M400.7 153.1L400.7 153.1Q376.5 153.1 361.1 143.1Q345.7 133 338.3 115.6Q330.9 98.2 330.9 76.5L330.9 76.5Q330.9 53.9 338.1 36.7Q345.3 19.4 360.1 9.7Q374.9 0 397.6 0L397.6 0Q427.8 0 445 18.2Q462.1 36.4 462.1 70.6L462.1 70.6Q462.1 72.9 462 76Q461.8 79.1 461.5 80.4L461.5 80.4L356.2 80.4Q356.3 94.9 360.8 106.9Q365.3 119 375 126.3Q384.7 133.6 400.7 133.6L400.7 133.6Q417.7 133.6 427.2 125.6Q436.8 117.6 437.2 102.6L437.2 102.6L462.3 102.6Q461.8 118.2 454.2 129.5Q446.7 140.8 433 147Q419.3 153.1 400.7 153.1M356.3 61.9L356.3 61.9L437.1 61.9Q436.6 41.3 426.3 30.4Q416 19.4 397.6 19.4L397.6 19.4Q379.1 19.4 368.6 30.3Q358 41.1 356.3 61.9M791.9 153.1L791.9 153.1Q767.8 153.1 752.4 143.1Q737 133 729.5 115.6Q722.1 98.2 722.1 76.5L722.1 76.5Q722.1 53.9 729.3 36.7Q736.5 19.4 751.3 9.7Q766.1 0 788.9 0L788.9 0Q819.1 0 836.2 18.2Q853.4 36.4 853.4 70.6L853.4 70.6Q853.4 72.9 853.2 76Q853.1 79.1 852.8 80.4L852.8 80.4L747.5 80.4Q747.6 94.9 752.1 106.9Q756.6 119 766.3 126.3Q776 133.6 791.9 133.6L791.9 133.6Q808.9 133.6 818.5 125.6Q828 117.6 828.5 102.6L828.5 102.6L853.5 102.6Q853.1 118.2 845.5 129.5Q837.9 140.8 824.3 147Q810.6 153.1 791.9 153.1M747.6 61.9L747.6 61.9L828.4 61.9Q827.9 41.3 817.6 30.4Q807.3 19.4 788.9 19.4L788.9 19.4Q770.4 19.4 759.8 30.3Q749.3 41.1 747.6 61.9M951.4 150.4L926.1 150.4L926.1 2.6L949.9 2.6L950.8 27.8Q957 16.2 968.1 8.5Q979.2 0.8 997 0.8L997 0.8L1000 0.8L1000 24L996.5 24Q985.4 24 977.1 26.9Q968.7 29.7 962.5 34.8Q956.3 39.9 951.4 46.6L951.4 46.6L951.4 150.4';
|
||||||
|
const BARS = [2.6, 65.9, 129.3];
|
||||||
|
|
||||||
|
// Lockup geometry, in the same 1000-unit space as the letters (see manual):
|
||||||
|
// the tagline sits 0.7557 x-heights below the baseline, its cap height is
|
||||||
|
// 0.2047 x-heights, and it is justified to the exact width of the mark.
|
||||||
|
const MARK_HEIGHT = 153.14;
|
||||||
|
const TAG_BASELINE = 262.13;
|
||||||
|
const TAG_SIZE = 42.38; // cap height 30.26 / Open Sans capHeight-per-em 0.714
|
||||||
|
|
||||||
|
export function Wordmark({ size = 'lg', onDark = false, showTagline = false }: { size?: Size; onDark?: boolean; showTagline?: boolean }) {
|
||||||
const baseColor = onDark ? 'text-white' : 'text-azul-profundo';
|
const baseColor = onDark ? 'text-white' : 'text-azul-profundo';
|
||||||
const goldColor = 'text-dorado';
|
const pillars = [brandPillars.pillar1, brandPillars.pillar2, brandPillars.pillar3].map((p) => p.toUpperCase());
|
||||||
|
const label = showTagline ? `creeer — ${pillars.join(' · ')}` : 'creeer';
|
||||||
return (
|
return (
|
||||||
<span className={`font-sans font-bold tracking-tight leading-none ${sizeClass[size]} ${baseColor}`}>
|
<svg
|
||||||
{before}
|
viewBox={`0 0 1000 ${showTagline ? TAG_BASELINE : MARK_HEIGHT}`}
|
||||||
<span data-accent="true" className={goldColor}>≡</span>
|
className={`font-sans h-auto ${baseColor} ${sizeClass[size]}`}
|
||||||
{after}
|
role="img"
|
||||||
</span>
|
aria-label={label}
|
||||||
|
>
|
||||||
|
<path fill="currentColor" d={LETTERS} />
|
||||||
|
<g data-accent="true" className="fill-dorado">
|
||||||
|
{BARS.map((y) => (
|
||||||
|
<rect key={y} x="529.8" y={y} width="124.9" height="21.1" rx="10.6" />
|
||||||
|
))}
|
||||||
|
</g>
|
||||||
|
{showTagline && (
|
||||||
|
// textLength pins the tagline to the width of the mark, so the lockup
|
||||||
|
// holds its proportions whatever the rendered font does.
|
||||||
|
<text x="0" y={TAG_BASELINE} textLength="1000" lengthAdjust="spacing" fontSize={TAG_SIZE} fill="currentColor">
|
||||||
|
{pillars[0]}
|
||||||
|
<tspan className="fill-dorado"> · </tspan>
|
||||||
|
{pillars[1]}
|
||||||
|
<tspan className="fill-dorado"> · </tspan>
|
||||||
|
{pillars[2]}
|
||||||
|
</text>
|
||||||
|
)}
|
||||||
|
</svg>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -11,4 +11,22 @@ describe('<CTA />', () => {
|
|||||||
render(<CTA href="#contacto" label="x" />);
|
render(<CTA href="#contacto" label="x" />);
|
||||||
expect(screen.getByRole('link').getAttribute('href')).toBe('#contacto');
|
expect(screen.getByRole('link').getAttribute('href')).toBe('#contacto');
|
||||||
});
|
});
|
||||||
|
it('renders the ghost variant outlined, so it reads as secondary', () => {
|
||||||
|
render(<CTA href="#mecanismo" label="Ver cómo trabajo" variant="ghost" />);
|
||||||
|
const classes = screen.getByRole('link').className.split(/\s+/);
|
||||||
|
expect(classes).toContain('border-azul-profundo');
|
||||||
|
expect(classes).not.toContain('bg-azul-profundo'); // sólo se rellena en hover
|
||||||
|
expect(classes).toContain('hover:bg-azul-profundo');
|
||||||
|
});
|
||||||
|
it('keeps every variant the same height', () => {
|
||||||
|
const { container } = render(
|
||||||
|
<>
|
||||||
|
<CTA href="#a" label="a" variant="light" />
|
||||||
|
<CTA href="#b" label="b" variant="ghost" />
|
||||||
|
</>,
|
||||||
|
);
|
||||||
|
const [light, ghost] = Array.from(container.querySelectorAll('a'));
|
||||||
|
expect(light.className).toContain('border-2');
|
||||||
|
expect(ghost.className).toContain('border-2');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import { render } from '@testing-library/react';
|
||||||
|
import { describe, it, expect } from 'vitest';
|
||||||
|
import { SimboloTresLineas } from '../SimboloTresLineas';
|
||||||
|
|
||||||
|
describe('<SimboloTresLineas />', () => {
|
||||||
|
it('is decorative: hidden from assistive tech', () => {
|
||||||
|
const { container } = render(<SimboloTresLineas />);
|
||||||
|
expect(container.querySelector('svg')).toHaveAttribute('aria-hidden', 'true');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('renders five bars resolving toward the three-line symbol', () => {
|
||||||
|
const { container } = render(<SimboloTresLineas />);
|
||||||
|
expect(container.querySelectorAll('rect')).toHaveLength(5);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('takes its colour from currentColor, like the other brand graphics', () => {
|
||||||
|
const { container } = render(<SimboloTresLineas />);
|
||||||
|
container.querySelectorAll('rect').forEach((rect) => {
|
||||||
|
expect(rect).toHaveAttribute('fill', 'currentColor');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -3,20 +3,33 @@ import { describe, it, expect } from 'vitest';
|
|||||||
import { Wordmark } from '../Wordmark';
|
import { Wordmark } from '../Wordmark';
|
||||||
|
|
||||||
describe('<Wordmark />', () => {
|
describe('<Wordmark />', () => {
|
||||||
it('renders the wordmark in lowercase', () => {
|
it('exposes the brand name in lowercase as its accessible name', () => {
|
||||||
render(<Wordmark />);
|
render(<Wordmark />);
|
||||||
const text = screen.getByText(/cre/).closest('span')?.textContent;
|
expect(screen.getByRole('img', { name: 'creeer' })).toBeInTheDocument();
|
||||||
expect(text?.toLowerCase()).toBe('cre≡er');
|
|
||||||
});
|
});
|
||||||
it('renders the accent "≡" symbol separately for dorado styling', () => {
|
it('renders the "≡" as three separate bars for dorado styling', () => {
|
||||||
const { container } = render(<Wordmark />);
|
const { container } = render(<Wordmark />);
|
||||||
const accent = container.querySelector('[data-accent="true"]');
|
const accent = container.querySelector('[data-accent="true"]');
|
||||||
expect(accent).not.toBeNull();
|
expect(accent).not.toBeNull();
|
||||||
expect(accent?.textContent).toBe('≡');
|
expect(accent?.classList.contains('fill-dorado')).toBe(true);
|
||||||
|
expect(accent?.querySelectorAll('rect')).toHaveLength(3);
|
||||||
});
|
});
|
||||||
it('never renders uppercase CREEER', () => {
|
it('never renders uppercase CREEER', () => {
|
||||||
const { container } = render(<Wordmark />);
|
const { container } = render(<Wordmark showTagline />);
|
||||||
expect(container.textContent).not.toMatch(/CREEER/);
|
expect(container.textContent).not.toMatch(/CREEER/);
|
||||||
expect(container.textContent).not.toMatch(/Creeer/);
|
expect(container.textContent).not.toMatch(/Creeer/);
|
||||||
|
expect(screen.getByRole('img').getAttribute('aria-label')).toMatch(/^creeer\b/);
|
||||||
|
});
|
||||||
|
it('renders the tagline pillars with dorado separators, justified to the mark', () => {
|
||||||
|
const { container } = render(<Wordmark showTagline />);
|
||||||
|
const tagline = container.querySelector('text');
|
||||||
|
expect(tagline?.textContent).toBe('CLARIDAD · DIRECCIÓN · CRECIMIENTO');
|
||||||
|
expect(tagline?.getAttribute('textLength')).toBe('1000');
|
||||||
|
expect(tagline?.querySelectorAll('.fill-dorado')).toHaveLength(2);
|
||||||
|
});
|
||||||
|
it('omits the tagline unless asked, and shortens the viewBox accordingly', () => {
|
||||||
|
const { container } = render(<Wordmark />);
|
||||||
|
expect(container.querySelector('text')).toBeNull();
|
||||||
|
expect(container.querySelector('svg')?.getAttribute('viewBox')).toBe('0 0 1000 153.14');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -11,6 +11,8 @@
|
|||||||
"test:watch": "vitest"
|
"test:watch": "vitest"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"embla-carousel-autoplay": "^8.6.0",
|
||||||
|
"embla-carousel-react": "^8.6.0",
|
||||||
"framer-motion": "^11.18.2",
|
"framer-motion": "^11.18.2",
|
||||||
"next": "14.2.35",
|
"next": "14.2.35",
|
||||||
"react": "^18",
|
"react": "^18",
|
||||||
@@ -19,6 +21,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@testing-library/jest-dom": "^6.9.1",
|
"@testing-library/jest-dom": "^6.9.1",
|
||||||
"@testing-library/react": "^15.0.7",
|
"@testing-library/react": "^15.0.7",
|
||||||
|
"@testing-library/user-event": "^14.6.1",
|
||||||
"@types/node": "^20",
|
"@types/node": "^20",
|
||||||
"@types/react": "^18",
|
"@types/react": "^18",
|
||||||
"@types/react-dom": "^18",
|
"@types/react-dom": "^18",
|
||||||
|
|||||||
Generated
+53
@@ -8,6 +8,12 @@ importers:
|
|||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
embla-carousel-autoplay:
|
||||||
|
specifier: ^8.6.0
|
||||||
|
version: 8.6.0(embla-carousel@8.6.0)
|
||||||
|
embla-carousel-react:
|
||||||
|
specifier: ^8.6.0
|
||||||
|
version: 8.6.0(react@18.3.1)
|
||||||
framer-motion:
|
framer-motion:
|
||||||
specifier: ^11.18.2
|
specifier: ^11.18.2
|
||||||
version: 11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
@@ -27,6 +33,9 @@ importers:
|
|||||||
'@testing-library/react':
|
'@testing-library/react':
|
||||||
specifier: ^15.0.7
|
specifier: ^15.0.7
|
||||||
version: 15.0.7(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 15.0.7(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
|
'@testing-library/user-event':
|
||||||
|
specifier: ^14.6.1
|
||||||
|
version: 14.6.1(@testing-library/dom@10.4.1)
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^20
|
specifier: ^20
|
||||||
version: 20.19.43
|
version: 20.19.43
|
||||||
@@ -658,6 +667,12 @@ packages:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@testing-library/user-event@14.6.1':
|
||||||
|
resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==}
|
||||||
|
engines: {node: '>=12', npm: '>=6'}
|
||||||
|
peerDependencies:
|
||||||
|
'@testing-library/dom': '>=7.21.4'
|
||||||
|
|
||||||
'@tybys/wasm-util@0.10.3':
|
'@tybys/wasm-util@0.10.3':
|
||||||
resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==}
|
resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==}
|
||||||
|
|
||||||
@@ -1240,6 +1255,24 @@ packages:
|
|||||||
electron-to-chromium@1.5.393:
|
electron-to-chromium@1.5.393:
|
||||||
resolution: {integrity: sha512-kiDJdIUawuEIcp9XoICKp1iTYDEbgguIPq526N1Q7jIQDeQ3CqoMx71025PI/7E48Ddtw2HuWsVjY7afEgNxmg==}
|
resolution: {integrity: sha512-kiDJdIUawuEIcp9XoICKp1iTYDEbgguIPq526N1Q7jIQDeQ3CqoMx71025PI/7E48Ddtw2HuWsVjY7afEgNxmg==}
|
||||||
|
|
||||||
|
embla-carousel-autoplay@8.6.0:
|
||||||
|
resolution: {integrity: sha512-OBu5G3nwaSXkZCo1A6LTaFMZ8EpkYbwIaH+bPqdBnDGQ2fh4+NbzjXjs2SktoPNKCtflfVMc75njaDHOYXcrsA==}
|
||||||
|
peerDependencies:
|
||||||
|
embla-carousel: 8.6.0
|
||||||
|
|
||||||
|
embla-carousel-react@8.6.0:
|
||||||
|
resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==}
|
||||||
|
peerDependencies:
|
||||||
|
react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
|
||||||
|
|
||||||
|
embla-carousel-reactive-utils@8.6.0:
|
||||||
|
resolution: {integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==}
|
||||||
|
peerDependencies:
|
||||||
|
embla-carousel: 8.6.0
|
||||||
|
|
||||||
|
embla-carousel@8.6.0:
|
||||||
|
resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==}
|
||||||
|
|
||||||
emoji-regex@8.0.0:
|
emoji-regex@8.0.0:
|
||||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||||
|
|
||||||
@@ -3223,6 +3256,10 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.31
|
'@types/react': 18.3.31
|
||||||
|
|
||||||
|
'@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)':
|
||||||
|
dependencies:
|
||||||
|
'@testing-library/dom': 10.4.1
|
||||||
|
|
||||||
'@tybys/wasm-util@0.10.3':
|
'@tybys/wasm-util@0.10.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
@@ -3820,6 +3857,22 @@ snapshots:
|
|||||||
|
|
||||||
electron-to-chromium@1.5.393: {}
|
electron-to-chromium@1.5.393: {}
|
||||||
|
|
||||||
|
embla-carousel-autoplay@8.6.0(embla-carousel@8.6.0):
|
||||||
|
dependencies:
|
||||||
|
embla-carousel: 8.6.0
|
||||||
|
|
||||||
|
embla-carousel-react@8.6.0(react@18.3.1):
|
||||||
|
dependencies:
|
||||||
|
embla-carousel: 8.6.0
|
||||||
|
embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0)
|
||||||
|
react: 18.3.1
|
||||||
|
|
||||||
|
embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0):
|
||||||
|
dependencies:
|
||||||
|
embla-carousel: 8.6.0
|
||||||
|
|
||||||
|
embla-carousel@8.6.0: {}
|
||||||
|
|
||||||
emoji-regex@8.0.0: {}
|
emoji-regex@8.0.0: {}
|
||||||
|
|
||||||
emoji-regex@9.2.2: {}
|
emoji-regex@9.2.2: {}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 262.53" role="img" aria-labelledby="creeer-logo-title">
|
||||||
|
<title id="creeer-logo-title">cre≡er — Claridad · Dirección · Crecimiento</title>
|
||||||
|
<!-- Logotipo principal · Manual de Identidad Visual v1.0 (mayo 2026).
|
||||||
|
Trazado desde Aptos Regular; el archivo no depende de ninguna fuente.
|
||||||
|
Azul Profundo #0A1D3D (Pantone 2965 C) · Dorado Estratégico #C4942E (Pantone 872 C). -->
|
||||||
|
<g id="wordmark">
|
||||||
|
<path fill="#ffffff" d="M68.45 152.99L68.45 152.99Q48.42 152.99 32.94 144.57Q17.45 136.14 8.73 119.22Q0 102.3 0 76.8L0 76.8Q0 51.3 8.58 34.23Q17.15 17.15 32.56 8.58Q47.96 0 68.45 0L68.45 0Q85.6 0 99.34 5.62Q113.07 11.23 121.27 22.54Q129.47 33.85 129.92 51.15L129.92 51.15L104.88 51.15Q103.97 36.88 94.56 28.69Q85.15 20.49 68.91 20.49L68.91 20.49Q47.35 20.49 36.73 35.29Q26.11 50.09 26.11 76.8L26.11 76.8Q26.11 94.56 30.81 106.93Q35.52 119.3 45.08 125.9Q54.64 132.5 68.91 132.5L68.91 132.5Q85.15 132.5 95.32 124.08Q105.49 115.65 105.94 99.41L105.94 99.41L130.98 99.41Q130.53 117.32 122.26 129.24Q113.98 141.15 99.95 147.07Q85.91 152.99 68.45 152.99M228.72 150.41L203.37 150.41L203.37 2.58L227.2 2.58L228.11 27.78Q234.33 16.24 245.41 8.5Q256.49 0.76 274.25 0.76L274.25 0.76L277.29 0.76L277.29 23.98L273.79 23.98Q262.71 23.98 254.37 26.86Q246.02 29.75 239.8 34.83Q233.57 39.92 228.72 46.6L228.72 46.6L228.72 150.41M400.67 153.14L400.67 153.14Q376.54 153.14 361.13 143.05Q345.72 132.96 338.29 115.58Q330.85 98.2 330.85 76.5L330.85 76.5Q330.85 53.88 338.06 36.65Q345.27 19.43 360.07 9.71Q374.87 0 397.63 0L397.63 0Q427.84 0 444.99 18.21Q462.14 36.43 462.14 70.58L462.14 70.58Q462.14 72.85 461.99 75.96Q461.83 79.08 461.53 80.44L461.53 80.44L356.2 80.44Q356.35 94.86 360.83 106.93Q365.3 118.99 375.02 126.28Q384.73 133.56 400.67 133.56L400.67 133.56Q417.67 133.56 427.23 125.6Q436.79 117.63 437.25 102.6L437.25 102.6L462.29 102.6Q461.83 118.23 454.25 129.54Q446.66 140.85 433 147Q419.34 153.14 400.67 153.14M356.35 61.93L356.35 61.93L437.09 61.93Q436.64 41.28 426.32 30.36Q416 19.43 397.63 19.43L397.63 19.43Q379.12 19.43 368.57 30.28Q358.02 41.13 356.35 61.93M791.93 153.14L791.93 153.14Q767.79 153.14 752.39 143.05Q736.98 132.96 729.54 115.58Q722.11 98.2 722.11 76.5L722.11 76.5Q722.11 53.88 729.32 36.65Q736.53 19.43 751.33 9.71Q766.12 0 788.89 0L788.89 0Q819.09 0 836.24 18.21Q853.4 36.43 853.4 70.58L853.4 70.58Q853.4 72.85 853.24 75.96Q853.09 79.08 852.79 80.44L852.79 80.44L747.45 80.44Q747.61 94.86 752.08 106.93Q756.56 118.99 766.28 126.28Q775.99 133.56 791.93 133.56L791.93 133.56Q808.92 133.56 818.49 125.6Q828.05 117.63 828.5 102.6L828.5 102.6L853.55 102.6Q853.09 118.23 845.5 129.54Q837.91 140.85 824.25 147Q810.59 153.14 791.93 153.14M747.61 61.93L747.61 61.93L828.35 61.93Q827.9 41.28 817.58 30.36Q807.25 19.43 788.89 19.43L788.89 19.43Q770.37 19.43 759.82 30.28Q749.28 41.13 747.61 61.93M951.43 150.41L926.08 150.41L926.08 2.58L949.91 2.58L950.82 27.78Q957.05 16.24 968.13 8.5Q979.21 0.76 996.96 0.76L996.96 0.76L1000 0.76L1000 23.98L996.51 23.98Q985.43 23.98 977.08 26.86Q968.73 29.75 962.51 34.83Q956.29 39.92 951.43 46.6L951.43 46.6L951.43 150.41"/>
|
||||||
|
<g fill="#C4942E"><rect x="529.82" y="2.58" width="124.92" height="21.12" rx="10.56"/><rect x="529.82" y="65.94" width="124.92" height="21.12" rx="10.56"/><rect x="529.82" y="129.29" width="124.92" height="21.12" rx="10.56"/></g>
|
||||||
|
</g>
|
||||||
|
<g id="tagline">
|
||||||
|
<path fill="#ffffff" d="M14.43 262.53L14.43 262.53Q9.73 262.53 6.52 260.55Q3.3 258.58 1.65 255.09Q0 251.61 0 247.02L0 247.02Q0 242.43 1.65 238.93Q3.3 235.42 6.52 233.44Q9.73 231.46 14.43 231.46L14.43 231.46Q17.54 231.46 20.29 232.54Q23.04 233.62 24.88 235.83Q26.71 238.05 27.02 241.42L27.02 241.42L22.95 241.42Q22.68 239.15 21.44 237.68Q20.19 236.21 18.36 235.49Q16.52 234.77 14.43 234.77L14.43 234.77Q10.79 234.77 8.53 236.43Q6.27 238.09 5.24 240.86Q4.2 243.62 4.2 247.02L4.2 247.02Q4.2 250.39 5.24 253.16Q6.27 255.92 8.53 257.55Q10.79 259.18 14.43 259.18L14.43 259.18Q18.12 259.18 20.41 257.36Q22.71 255.54 23.07 251.92L23.07 251.92L27.16 251.92Q26.8 255.5 25.07 257.84Q23.34 260.19 20.59 261.36Q17.85 262.53 14.43 262.53M54.91 262.13L36.72 262.13L36.72 231.87L40.77 231.87L40.77 258.64L54.91 258.64L54.91 262.13M63.41 262.13L59.25 262.13L70.58 231.87L74.85 231.87L86.03 262.13L81.85 262.13L78.97 253.65L66.42 253.65L63.41 262.13M72.7 235.89L67.53 250.26L77.82 250.26L72.7 235.89M97.52 262.13L93.48 262.13L93.48 231.87L104.92 231.87Q107.55 231.87 109.7 232.7Q111.84 233.53 113.12 235.31Q114.41 237.08 114.41 239.91L114.41 239.91Q114.41 242.79 112.8 244.82Q111.19 246.84 108.09 247.56L108.09 247.56Q109.8 247.81 110.9 248.66Q112 249.51 112.73 250.96Q113.46 252.41 114 254.55L114 254.55L115.98 262.13L111.84 262.13L110.11 255.18Q109.66 253.31 109.04 252Q108.43 250.68 107.39 250Q106.36 249.31 104.63 249.31L104.63 249.31L97.52 249.31L97.52 262.13M97.52 235.24L97.52 245.94L104.4 245.94Q106.07 245.94 107.41 245.31Q108.76 244.68 109.56 243.49Q110.36 242.3 110.36 240.61L110.36 240.61Q110.36 238.07 108.86 236.65Q107.37 235.24 104.51 235.24L104.51 235.24L97.52 235.24M128.73 262.13L124.69 262.13L124.69 231.87L128.73 231.87L128.73 262.13M150.16 262.13L139.98 262.13L139.98 231.87L150.16 231.87Q154.91 231.87 158.26 233.65Q161.61 235.44 163.36 238.84Q165.11 242.23 165.11 247L165.11 247Q165.11 251.79 163.35 255.18Q161.59 258.58 158.24 260.35Q154.89 262.13 150.16 262.13L150.16 262.13M144.03 235.26L144.03 258.73L149.27 258.73Q153.24 258.73 155.83 257.46Q158.42 256.19 159.69 253.57Q160.96 250.95 160.96 246.97L160.96 246.97Q160.96 243.02 159.66 240.42Q158.37 237.82 155.77 236.54Q153.18 235.26 149.27 235.26L149.27 235.26L144.03 235.26M175.26 262.13L171.1 262.13L182.43 231.87L186.7 231.87L197.88 262.13L193.7 262.13L190.82 253.65L178.27 253.65L175.26 262.13M184.55 235.89L179.37 250.26L189.67 250.26L184.55 235.89M215.51 262.13L205.32 262.13L205.32 231.87L215.51 231.87Q220.25 231.87 223.6 233.65Q226.95 235.44 228.71 238.84Q230.46 242.23 230.46 247L230.46 247Q230.46 251.79 228.69 255.18Q226.93 258.58 223.58 260.35Q220.23 262.13 215.51 262.13L215.51 262.13M209.37 235.26L209.37 258.73L214.61 258.73Q218.59 258.73 221.17 257.46Q223.76 256.19 225.03 253.57Q226.3 250.95 226.3 246.97L226.3 246.97Q226.3 243.02 225.01 240.42Q223.71 237.82 221.12 236.54Q218.52 235.26 214.61 235.26L214.61 235.26L209.37 235.26M336.79 262.13L326.61 262.13L326.61 231.87L336.79 231.87Q341.54 231.87 344.89 233.65Q348.24 235.44 349.99 238.84Q351.74 242.23 351.74 247L351.74 247Q351.74 251.79 349.98 255.18Q348.21 258.58 344.86 260.35Q341.51 262.13 336.79 262.13L336.79 262.13M330.66 235.26L330.66 258.73L335.89 258.73Q339.87 258.73 342.46 257.46Q345.04 256.19 346.31 253.57Q347.58 250.95 347.58 246.97L347.58 246.97Q347.58 243.02 346.29 240.42Q345 237.82 342.4 236.54Q339.81 235.26 335.89 235.26L335.89 235.26L330.66 235.26M365.55 262.13L361.51 262.13L361.51 231.87L365.55 231.87L365.55 262.13M380.85 262.13L376.8 262.13L376.8 231.87L388.24 231.87Q390.87 231.87 393.02 232.7Q395.17 233.53 396.45 235.31Q397.73 237.08 397.73 239.91L397.73 239.91Q397.73 242.79 396.12 244.82Q394.52 246.84 391.41 247.56L391.41 247.56Q393.12 247.81 394.22 248.66Q395.33 249.51 396.06 250.96Q396.79 252.41 397.33 254.55L397.33 254.55L399.3 262.13L395.17 262.13L393.44 255.18Q392.99 253.31 392.37 252Q391.75 250.68 390.72 250Q389.68 249.31 387.95 249.31L387.95 249.31L380.85 249.31L380.85 262.13M380.85 235.24L380.85 245.94L387.73 245.94Q389.39 245.94 390.74 245.31Q392.09 244.68 392.89 243.49Q393.68 242.3 393.68 240.61L393.68 240.61Q393.68 238.07 392.19 236.65Q390.69 235.24 387.84 235.24L387.84 235.24L380.85 235.24M427.32 262.13L408.01 262.13L408.01 231.87L427.32 231.87L427.32 235.24L412.06 235.24L412.06 244.88L426.11 244.88L426.11 248.21L412.06 248.21L412.06 258.75L427.32 258.75L427.32 262.13M449.83 262.53L449.83 262.53Q445.13 262.53 441.92 260.55Q438.71 258.58 437.05 255.09Q435.4 251.61 435.4 247.02L435.4 247.02Q435.4 242.43 437.05 238.93Q438.71 235.42 441.92 233.44Q445.13 231.46 449.83 231.46L449.83 231.46Q452.94 231.46 455.69 232.54Q458.44 233.62 460.28 235.83Q462.11 238.05 462.42 241.42L462.42 241.42L458.35 241.42Q458.08 239.15 456.84 237.68Q455.59 236.21 453.76 235.49Q451.92 234.77 449.83 234.77L449.83 234.77Q446.19 234.77 443.93 236.43Q441.67 238.09 440.64 240.86Q439.6 243.62 439.6 247.02L439.6 247.02Q439.6 250.39 440.64 253.16Q441.67 255.92 443.93 257.55Q446.19 259.18 449.83 259.18L449.83 259.18Q453.52 259.18 455.Line truncated
|
||||||
|
<path fill="#ffffff" d="M277.78 253.79L277.78 253.79Q275.83 253.79 274.23 252.83Q272.63 251.88 271.68 250.26Q270.72 248.64 270.72 246.68L270.72 246.68Q270.72 244.73 271.68 243.13Q272.63 241.53 274.23 240.59Q275.83 239.65 277.78 239.65L277.78 239.65Q279.76 239.65 281.37 240.59Q282.97 241.53 283.93 243.13Q284.89 244.73 284.89 246.68L284.89 246.68Q284.89 248.64 283.93 250.26Q282.97 251.88 281.37 252.83Q279.76 253.79 277.78 253.79M633.02 253.79L633.02 253.79Q631.06 253.79 629.46 252.83Q627.87 251.88 626.91 250.26Q625.96 248.64 625.96 246.68L625.96 246.68Q625.96 244.73 626.91 243.13Q627.87 241.53 629.46 240.59Q631.06 239.65 633.02 239.65L633.02 239.65Q634.99 239.65 636.6 240.59Q638.21 241.53 639.16 243.13Q640.12 244.73 640.12 246.68L640.12 246.68Q640.12 248.64 639.16 250.26Q638.21 251.88 636.6 252.83Q634.99 253.79 633.02 253.79"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,14 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 262.53" role="img" aria-labelledby="creeer-logo-title">
|
||||||
|
<title id="creeer-logo-title">cre≡er — Claridad · Dirección · Crecimiento</title>
|
||||||
|
<!-- Logotipo principal · Manual de Identidad Visual v1.0 (mayo 2026).
|
||||||
|
Trazado desde Aptos Regular; el archivo no depende de ninguna fuente.
|
||||||
|
Azul Profundo #0A1D3D (Pantone 2965 C) · Dorado Estratégico #C4942E (Pantone 872 C). -->
|
||||||
|
<g id="wordmark">
|
||||||
|
<path fill="#0A1D3D" d="M68.45 152.99L68.45 152.99Q48.42 152.99 32.94 144.57Q17.45 136.14 8.73 119.22Q0 102.3 0 76.8L0 76.8Q0 51.3 8.58 34.23Q17.15 17.15 32.56 8.58Q47.96 0 68.45 0L68.45 0Q85.6 0 99.34 5.62Q113.07 11.23 121.27 22.54Q129.47 33.85 129.92 51.15L129.92 51.15L104.88 51.15Q103.97 36.88 94.56 28.69Q85.15 20.49 68.91 20.49L68.91 20.49Q47.35 20.49 36.73 35.29Q26.11 50.09 26.11 76.8L26.11 76.8Q26.11 94.56 30.81 106.93Q35.52 119.3 45.08 125.9Q54.64 132.5 68.91 132.5L68.91 132.5Q85.15 132.5 95.32 124.08Q105.49 115.65 105.94 99.41L105.94 99.41L130.98 99.41Q130.53 117.32 122.26 129.24Q113.98 141.15 99.95 147.07Q85.91 152.99 68.45 152.99M228.72 150.41L203.37 150.41L203.37 2.58L227.2 2.58L228.11 27.78Q234.33 16.24 245.41 8.5Q256.49 0.76 274.25 0.76L274.25 0.76L277.29 0.76L277.29 23.98L273.79 23.98Q262.71 23.98 254.37 26.86Q246.02 29.75 239.8 34.83Q233.57 39.92 228.72 46.6L228.72 46.6L228.72 150.41M400.67 153.14L400.67 153.14Q376.54 153.14 361.13 143.05Q345.72 132.96 338.29 115.58Q330.85 98.2 330.85 76.5L330.85 76.5Q330.85 53.88 338.06 36.65Q345.27 19.43 360.07 9.71Q374.87 0 397.63 0L397.63 0Q427.84 0 444.99 18.21Q462.14 36.43 462.14 70.58L462.14 70.58Q462.14 72.85 461.99 75.96Q461.83 79.08 461.53 80.44L461.53 80.44L356.2 80.44Q356.35 94.86 360.83 106.93Q365.3 118.99 375.02 126.28Q384.73 133.56 400.67 133.56L400.67 133.56Q417.67 133.56 427.23 125.6Q436.79 117.63 437.25 102.6L437.25 102.6L462.29 102.6Q461.83 118.23 454.25 129.54Q446.66 140.85 433 147Q419.34 153.14 400.67 153.14M356.35 61.93L356.35 61.93L437.09 61.93Q436.64 41.28 426.32 30.36Q416 19.43 397.63 19.43L397.63 19.43Q379.12 19.43 368.57 30.28Q358.02 41.13 356.35 61.93M791.93 153.14L791.93 153.14Q767.79 153.14 752.39 143.05Q736.98 132.96 729.54 115.58Q722.11 98.2 722.11 76.5L722.11 76.5Q722.11 53.88 729.32 36.65Q736.53 19.43 751.33 9.71Q766.12 0 788.89 0L788.89 0Q819.09 0 836.24 18.21Q853.4 36.43 853.4 70.58L853.4 70.58Q853.4 72.85 853.24 75.96Q853.09 79.08 852.79 80.44L852.79 80.44L747.45 80.44Q747.61 94.86 752.08 106.93Q756.56 118.99 766.28 126.28Q775.99 133.56 791.93 133.56L791.93 133.56Q808.92 133.56 818.49 125.6Q828.05 117.63 828.5 102.6L828.5 102.6L853.55 102.6Q853.09 118.23 845.5 129.54Q837.91 140.85 824.25 147Q810.59 153.14 791.93 153.14M747.61 61.93L747.61 61.93L828.35 61.93Q827.9 41.28 817.58 30.36Q807.25 19.43 788.89 19.43L788.89 19.43Q770.37 19.43 759.82 30.28Q749.28 41.13 747.61 61.93M951.43 150.41L926.08 150.41L926.08 2.58L949.91 2.58L950.82 27.78Q957.05 16.24 968.13 8.5Q979.21 0.76 996.96 0.76L996.96 0.76L1000 0.76L1000 23.98L996.51 23.98Q985.43 23.98 977.08 26.86Q968.73 29.75 962.51 34.83Q956.29 39.92 951.43 46.6L951.43 46.6L951.43 150.41"/>
|
||||||
|
<g fill="#C4942E"><rect x="529.82" y="2.58" width="124.92" height="21.12" rx="10.56"/><rect x="529.82" y="65.94" width="124.92" height="21.12" rx="10.56"/><rect x="529.82" y="129.29" width="124.92" height="21.12" rx="10.56"/></g>
|
||||||
|
</g>
|
||||||
|
<g id="tagline">
|
||||||
|
<path fill="#0A1D3D" d="M14.43 262.53L14.43 262.53Q9.73 262.53 6.52 260.55Q3.3 258.58 1.65 255.09Q0 251.61 0 247.02L0 247.02Q0 242.43 1.65 238.93Q3.3 235.42 6.52 233.44Q9.73 231.46 14.43 231.46L14.43 231.46Q17.54 231.46 20.29 232.54Q23.04 233.62 24.88 235.83Q26.71 238.05 27.02 241.42L27.02 241.42L22.95 241.42Q22.68 239.15 21.44 237.68Q20.19 236.21 18.36 235.49Q16.52 234.77 14.43 234.77L14.43 234.77Q10.79 234.77 8.53 236.43Q6.27 238.09 5.24 240.86Q4.2 243.62 4.2 247.02L4.2 247.02Q4.2 250.39 5.24 253.16Q6.27 255.92 8.53 257.55Q10.79 259.18 14.43 259.18L14.43 259.18Q18.12 259.18 20.41 257.36Q22.71 255.54 23.07 251.92L23.07 251.92L27.16 251.92Q26.8 255.5 25.07 257.84Q23.34 260.19 20.59 261.36Q17.85 262.53 14.43 262.53M54.91 262.13L36.72 262.13L36.72 231.87L40.77 231.87L40.77 258.64L54.91 258.64L54.91 262.13M63.41 262.13L59.25 262.13L70.58 231.87L74.85 231.87L86.03 262.13L81.85 262.13L78.97 253.65L66.42 253.65L63.41 262.13M72.7 235.89L67.53 250.26L77.82 250.26L72.7 235.89M97.52 262.13L93.48 262.13L93.48 231.87L104.92 231.87Q107.55 231.87 109.7 232.7Q111.84 233.53 113.12 235.31Q114.41 237.08 114.41 239.91L114.41 239.91Q114.41 242.79 112.8 244.82Q111.19 246.84 108.09 247.56L108.09 247.56Q109.8 247.81 110.9 248.66Q112 249.51 112.73 250.96Q113.46 252.41 114 254.55L114 254.55L115.98 262.13L111.84 262.13L110.11 255.18Q109.66 253.31 109.04 252Q108.43 250.68 107.39 250Q106.36 249.31 104.63 249.31L104.63 249.31L97.52 249.31L97.52 262.13M97.52 235.24L97.52 245.94L104.4 245.94Q106.07 245.94 107.41 245.31Q108.76 244.68 109.56 243.49Q110.36 242.3 110.36 240.61L110.36 240.61Q110.36 238.07 108.86 236.65Q107.37 235.24 104.51 235.24L104.51 235.24L97.52 235.24M128.73 262.13L124.69 262.13L124.69 231.87L128.73 231.87L128.73 262.13M150.16 262.13L139.98 262.13L139.98 231.87L150.16 231.87Q154.91 231.87 158.26 233.65Q161.61 235.44 163.36 238.84Q165.11 242.23 165.11 247L165.11 247Q165.11 251.79 163.35 255.18Q161.59 258.58 158.24 260.35Q154.89 262.13 150.16 262.13L150.16 262.13M144.03 235.26L144.03 258.73L149.27 258.73Q153.24 258.73 155.83 257.46Q158.42 256.19 159.69 253.57Q160.96 250.95 160.96 246.97L160.96 246.97Q160.96 243.02 159.66 240.42Q158.37 237.82 155.77 236.54Q153.18 235.26 149.27 235.26L149.27 235.26L144.03 235.26M175.26 262.13L171.1 262.13L182.43 231.87L186.7 231.87L197.88 262.13L193.7 262.13L190.82 253.65L178.27 253.65L175.26 262.13M184.55 235.89L179.37 250.26L189.67 250.26L184.55 235.89M215.51 262.13L205.32 262.13L205.32 231.87L215.51 231.87Q220.25 231.87 223.6 233.65Q226.95 235.44 228.71 238.84Q230.46 242.23 230.46 247L230.46 247Q230.46 251.79 228.69 255.18Q226.93 258.58 223.58 260.35Q220.23 262.13 215.51 262.13L215.51 262.13M209.37 235.26L209.37 258.73L214.61 258.73Q218.59 258.73 221.17 257.46Q223.76 256.19 225.03 253.57Q226.3 250.95 226.3 246.97L226.3 246.97Q226.3 243.02 225.01 240.42Q223.71 237.82 221.12 236.54Q218.52 235.26 214.61 235.26L214.61 235.26L209.37 235.26M336.79 262.13L326.61 262.13L326.61 231.87L336.79 231.87Q341.54 231.87 344.89 233.65Q348.24 235.44 349.99 238.84Q351.74 242.23 351.74 247L351.74 247Q351.74 251.79 349.98 255.18Q348.21 258.58 344.86 260.35Q341.51 262.13 336.79 262.13L336.79 262.13M330.66 235.26L330.66 258.73L335.89 258.73Q339.87 258.73 342.46 257.46Q345.04 256.19 346.31 253.57Q347.58 250.95 347.58 246.97L347.58 246.97Q347.58 243.02 346.29 240.42Q345 237.82 342.4 236.54Q339.81 235.26 335.89 235.26L335.89 235.26L330.66 235.26M365.55 262.13L361.51 262.13L361.51 231.87L365.55 231.87L365.55 262.13M380.85 262.13L376.8 262.13L376.8 231.87L388.24 231.87Q390.87 231.87 393.02 232.7Q395.17 233.53 396.45 235.31Q397.73 237.08 397.73 239.91L397.73 239.91Q397.73 242.79 396.12 244.82Q394.52 246.84 391.41 247.56L391.41 247.56Q393.12 247.81 394.22 248.66Q395.33 249.51 396.06 250.96Q396.79 252.41 397.33 254.55L397.33 254.55L399.3 262.13L395.17 262.13L393.44 255.18Q392.99 253.31 392.37 252Q391.75 250.68 390.72 250Q389.68 249.31 387.95 249.31L387.95 249.31L380.85 249.31L380.85 262.13M380.85 235.24L380.85 245.94L387.73 245.94Q389.39 245.94 390.74 245.31Q392.09 244.68 392.89 243.49Q393.68 242.3 393.68 240.61L393.68 240.61Q393.68 238.07 392.19 236.65Q390.69 235.24 387.84 235.24L387.84 235.24L380.85 235.24M427.32 262.13L408.01 262.13L408.01 231.87L427.32 231.87L427.32 235.24L412.06 235.24L412.06 244.88L426.11 244.88L426.11 248.21L412.06 248.21L412.06 258.75L427.32 258.75L427.32 262.13M449.83 262.53L449.83 262.53Q445.13 262.53 441.92 260.55Q438.71 258.58 437.05 255.09Q435.4 251.61 435.4 247.02L435.4 247.02Q435.4 242.43 437.05 238.93Q438.71 235.42 441.92 233.44Q445.13 231.46 449.83 231.46L449.83 231.46Q452.94 231.46 455.69 232.54Q458.44 233.62 460.28 235.83Q462.11 238.05 462.42 241.42L462.42 241.42L458.35 241.42Q458.08 239.15 456.84 237.68Q455.59 236.21 453.76 235.49Q451.92 234.77 449.83 234.77L449.83 234.77Q446.19 234.77 443.93 236.43Q441.67 238.09 440.64 240.86Q439.6 243.62 439.6 247.02L439.6 247.02Q439.6 250.39 440.64 253.16Q441.67 255.92 443.93 257.55Q446.19 259.18 449.83 259.18L449.83 259.18Q453.52 259.18 455.Line truncated
|
||||||
|
<path fill="#C4942E" d="M277.78 253.79L277.78 253.79Q275.83 253.79 274.23 252.83Q272.63 251.88 271.68 250.26Q270.72 248.64 270.72 246.68L270.72 246.68Q270.72 244.73 271.68 243.13Q272.63 241.53 274.23 240.59Q275.83 239.65 277.78 239.65L277.78 239.65Q279.76 239.65 281.37 240.59Q282.97 241.53 283.93 243.13Q284.89 244.73 284.89 246.68L284.89 246.68Q284.89 248.64 283.93 250.26Q282.97 251.88 281.37 252.83Q279.76 253.79 277.78 253.79M633.02 253.79L633.02 253.79Q631.06 253.79 629.46 252.83Q627.87 251.88 626.91 250.26Q625.96 248.64 625.96 246.68L625.96 246.68Q625.96 244.73 626.91 243.13Q627.87 241.53 629.46 240.59Q631.06 239.65 633.02 239.65L633.02 239.65Q634.99 239.65 636.6 240.59Q638.21 241.53 639.16 243.13Q640.12 244.73 640.12 246.68L640.12 246.68Q640.12 248.64 639.16 250.26Q638.21 251.88 636.6 252.83Q634.99 253.79 633.02 253.79"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,7 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 262.53" role="img" aria-labelledby="creeer-logo-title">
|
||||||
|
<title id="creeer-logo-title">cre≡er — Claridad · Dirección · Crecimiento</title>
|
||||||
|
<g id="wordmark">
|
||||||
|
<path fill="#0A1D3D" d="M68.45 152.99L68.45 152.99Q48.42 152.99 32.94 144.57Q17.45 136.14 8.73 119.22Q0 102.3 0 76.8L0 76.8Q0 51.3 8.58 34.23Q17.15 17.15 32.56 8.58Q47.96 0 68.45 0L68.45 0Q85.6 0 99.34 5.62Q113.07 11.23 121.27 22.54Q129.47 33.85 129.92 51.15L129.92 51.15L104.88 51.15Q103.97 36.88 94.56 28.69Q85.15 20.49 68.91 20.49L68.91 20.49Q47.35 20.49 36.73 35.29Q26.11 50.09 26.11 76.8L26.11 76.8Q26.11 94.56 30.81 106.93Q35.52 119.3 45.08 125.9Q54.64 132.5 68.91 132.5L68.91 132.5Q85.15 132.5 95.32 124.08Q105.49 115.65 105.94 99.41L105.94 99.41L130.98 99.41Q130.53 117.32 122.26 129.24Q113.98 141.15 99.95 147.07Q85.91 152.99 68.45 152.99M228.72 150.41L203.37 150.41L203.37 2.58L227.2 2.58L228.11 27.78Q234.33 16.24 245.41 8.5Q256.49 0.76 274.25 0.76L274.25 0.76L277.29 0.76L277.29 23.98L273.79 23.98Q262.71 23.98 254.37 26.86Q246.02 29.75 239.8 34.83Q233.57 39.92 228.72 46.6L228.72 46.6L228.72 150.41M400.67 153.14L400.67 153.14Q376.54 153.14 361.13 143.05Q345.72 132.96 338.29 115.58Q330.85 98.2 330.85 76.5L330.85 76.5Q330.85 53.88 338.06 36.65Q345.27 19.43 360.07 9.71Q374.87 0 397.63 0L397.63 0Q427.84 0 444.99 18.21Q462.14 36.43 462.14 70.58L462.14 70.58Q462.14 72.85 461.99 75.96Q461.83 79.08 461.53 80.44L461.53 80.44L356.2 80.44Q356.35 94.86 360.83 106.93Q365.3 118.99 375.02 126.28Q384.73 133.56 400.67 133.56L400.67 133.56Q417.67 133.56 427.23 125.6Q436.79 117.63 437.25 102.6L437.25 102.6L462.29 102.6Q461.83 118.23 454.25 129.54Q446.66 140.85 433 147Q419.34 153.14 400.67 153.14M356.35 61.93L356.35 61.93L437.09 61.93Q436.64 41.28 426.32 30.36Q416 19.43 397.63 19.43L397.63 19.43Q379.12 19.43 368.57 30.28Q358.02 41.13 356.35 61.93M791.93 153.14L791.93 153.14Q767.79 153.14 752.39 143.05Q736.98 132.96 729.54 115.58Q722.11 98.2 722.11 76.5L722.11 76.5Q722.11 53.88 729.32 36.65Q736.53 19.43 751.33 9.71Q766.12 0 788.89 0L788.89 0Q819.09 0 836.24 18.21Q853.4 36.43 853.4 70.58L853.4 70.58Q853.4 72.85 853.24 75.96Q853.09 79.08 852.79 80.44L852.79 80.44L747.45 80.44Q747.61 94.86 752.08 106.93Q756.56 118.99 766.28 126.28Q775.99 133.56 791.93 133.56L791.93 133.56Q808.92 133.56 818.49 125.6Q828.05 117.63 828.5 102.6L828.5 102.6L853.55 102.6Q853.09 118.23 845.5 129.54Q837.91 140.85 824.25 147Q810.59 153.14 791.93 153.14M747.61 61.93L747.61 61.93L828.35 61.93Q827.9 41.28 817.58 30.36Q807.25 19.43 788.89 19.43L788.89 19.43Q770.37 19.43 759.82 30.28Q749.28 41.13 747.61 61.93M951.43 150.41L926.08 150.41L926.08 2.58L949.91 2.58L950.82 27.78Q957.05 16.24 968.13 8.5Q979.21 0.76 996.96 0.76L996.96 0.76L1000 0.76L1000 23.98L996.51 23.98Q985.43 23.98 977.08 26.86Q968.73 29.75 962.51 34.83Q956.29 39.92 951.43 46.6L951.43 46.6L951.43 150.41"/>
|
||||||
|
<g fill="#C4942E"><rect x="529.82" y="2.58" width="124.92" height="21.12" rx="10.56"/><rect x="529.82" y="65.94" width="124.92" height="21.12" rx="10.56"/><rect x="529.82" y="129.29" width="124.92" height="21.12" rx="10.56"/></g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.1 KiB |
+3
-3
@@ -7,7 +7,7 @@ const config: Config = {
|
|||||||
colors: {
|
colors: {
|
||||||
// — Manual de Identidad Visual v1.0 (mayo 2026) —
|
// — Manual de Identidad Visual v1.0 (mayo 2026) —
|
||||||
// Colores principales
|
// Colores principales
|
||||||
'azul-profundo': '#0A1D5D', // Pantone 2965 C — texto, fondos oscuros, CTAs
|
'azul-profundo': '#0A1D3D', // Pantone 2965 C — texto, fondos oscuros, CTAs
|
||||||
'dorado': {
|
'dorado': {
|
||||||
DEFAULT: '#C4942E', // Pantone 872 C — acentos, títulos, símbolo ≡
|
DEFAULT: '#C4942E', // Pantone 872 C — acentos, títulos, símbolo ≡
|
||||||
},
|
},
|
||||||
@@ -16,8 +16,8 @@ const config: Config = {
|
|||||||
'gris-claro': '#F2F2F2', // fondos neutros, separadores
|
'gris-claro': '#F2F2F2', // fondos neutros, separadores
|
||||||
'gris-medio': '#AAAAAA', // texto secundario, placeholders
|
'gris-medio': '#AAAAAA', // texto secundario, placeholders
|
||||||
// Aliases semánticos (backward compat + legibilidad en componentes)
|
// Aliases semánticos (backward compat + legibilidad en componentes)
|
||||||
ink: '#0A1D5D', // texto principal
|
ink: '#0A1D3D', // texto principal
|
||||||
'bg-dark': '#0A1D5D', // secciones oscuras
|
'bg-dark': '#0A1D3D', // secciones oscuras
|
||||||
},
|
},
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
// Open Sans (OFL) vía next/font/google — lo más cercano a Aptos en open-source
|
// Open Sans (OFL) vía next/font/google — lo más cercano a Aptos en open-source
|
||||||
|
|||||||
@@ -18,6 +18,18 @@ if (typeof window !== 'undefined' && !('IntersectionObserver' in window)) {
|
|||||||
global.IntersectionObserver = IntersectionObserverStub;
|
global.IntersectionObserver = IntersectionObserverStub;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// jsdom lacks ResizeObserver; Embla Carousel (Carrusel primitive) needs it.
|
||||||
|
if (typeof window !== 'undefined' && !('ResizeObserver' in window)) {
|
||||||
|
class ResizeObserverStub {
|
||||||
|
observe() {}
|
||||||
|
unobserve() {}
|
||||||
|
disconnect() {}
|
||||||
|
}
|
||||||
|
// @ts-expect-error – installing stub on window
|
||||||
|
window.ResizeObserver = ResizeObserverStub;
|
||||||
|
global.ResizeObserver = ResizeObserverStub;
|
||||||
|
}
|
||||||
|
|
||||||
// jsdom lacks matchMedia; usePrefersReducedMotion() calls it in useEffect.
|
// jsdom lacks matchMedia; usePrefersReducedMotion() calls it in useEffect.
|
||||||
// Note: vitest's jsdom environment pre-defines `matchMedia` as an own property
|
// Note: vitest's jsdom environment pre-defines `matchMedia` as an own property
|
||||||
// set to `undefined`, so `'matchMedia' in window` is true even though it isn't
|
// set to `undefined`, so `'matchMedia' in window` is true even though it isn't
|
||||||
|
|||||||
Reference in new issue
Block a user