feat: control room hero, SEO/AEO optimization and design system fixes

Hero: replace particle field with cobe globe (Capricorn view, multi-axis drag, reduced-motion safe), telemetry HUD with pointer parallax, particle text build effect, Space Grotesk display font. SEO: short titles with template, PT-BR accents, twitter cards on dynamic cases, escaped JSON-LD via lib/jsonld.ts, CSP report-only, 25 service FAQs answer-first. Design: fix TW4 layered reset killing spacing utilities, literal @theme tokens, mobile hero overflow, header overlap, empty case cards. Remove framer-motion (unified on motion/react), header version badge, phone number from hero CTA. Production build verified (24 static pages).
This commit is contained in:
Evandro Fonseca Junior committed 2026-08-27 10:55:21 -03:00
1 parent 0920370f30
commit b791b7de9e
94 files changed
+2621 -2889

No files matched your search

+2 -1
View File
@@ -1,7 +1,8 @@
"use client";
import React, { useRef, useEffect, useCallback, useMemo } from "react";
import { gsap } from "gsap";
import { InertiaPlugin } from "gsap/InertiaPlugin";
import type React from "react";
import { useCallback, useEffect, useMemo, useRef } from "react";
gsap.registerPlugin(InertiaPlugin);
+3 -2
View File
@@ -1,6 +1,7 @@
"use client";
import { Renderer, Program, Mesh, Color, Triangle } from "ogl";
import React, { useEffect, useRef, useMemo, useCallback } from "react";
import { Color, Mesh, Program, Renderer, Triangle } from "ogl";
import type React from "react";
import { useCallback, useEffect, useMemo, useRef } from "react";
type Vec2 = [number, number];
+2 -2
View File
@@ -1,7 +1,7 @@
"use client";
import React, { useState, useEffect } from "react";
import { motion, AnimatePresence } from "framer-motion";
import { AnimatePresence, motion } from "motion/react";
import React, { useEffect, useState } from "react";
import { cn } from "@/lib/utils";
interface RotatingTextProps {
+2 -1
View File
@@ -1,5 +1,6 @@
"use client";
import React, { useRef, useEffect } from "react";
import type React from "react";
import { useEffect, useRef } from "react";
type CanvasStrokeStyle = string | CanvasGradient | CanvasPattern;
+5 -5
View File
@@ -1,15 +1,15 @@
"use client";
import { gsap } from "gsap";
import {
ElementType,
createElement,
type ElementType,
useCallback,
useEffect,
useMemo,
useRef,
useState,
createElement,
useMemo,
useCallback,
} from "react";
import { gsap } from "gsap";
interface TextTypeProps {
className?: string;
+3 -3
View File
@@ -1,15 +1,15 @@
"use client";
import { cva, type VariantProps } from "class-variance-authority";
import type { MotionProps } from "motion/react";
import {
type MotionValue,
motion,
MotionValue,
useMotionValue,
useSpring,
useTransform,
} from "motion/react";
import type { MotionProps } from "motion/react";
import React, { PropsWithChildren, useRef } from "react";
import React, { type PropsWithChildren, useRef } from "react";
import { cn } from "@/lib/utils";
+3 -2
View File
@@ -1,8 +1,9 @@
"use client";
import { cn } from "@/lib/utils";
import { motion } from "motion/react";
import React, { useEffect, useId, useRef, useState } from "react";
import type React from "react";
import { useEffect, useId, useRef, useState } from "react";
import { cn } from "@/lib/utils";
/**
* DotPattern Component Props
+1 -1
View File
@@ -1,6 +1,6 @@
"use client";
import createGlobe, { COBEOptions } from "cobe";
import createGlobe, { type COBEOptions } from "cobe";
import { useMotionValue, useSpring } from "motion/react";
import { useEffect, useRef } from "react";