From 8b12e51bc5aa7e7f507d5251938624c1e63efcca Mon Sep 17 00:00:00 2001 From: Evandro Fonseca Junior Date: Sat, 5 Sep 2026 14:20:54 -0300 Subject: [PATCH] feat: refine portfolio showcase, services and quality lab Align the notebook browser with the physical LCD, refresh real project captures and navigation, simplify service content, and stabilize hero hydration. --- README.md | 12 +- app/components/Header.test.tsx | 70 +- app/components/Header.tsx | 11 +- app/components/Hero.reducedMotion.test.tsx | 201 ++---- app/components/Hero.tsx | 5 +- app/components/LighthouseMetrics.test.tsx | 29 + app/components/LighthouseMetrics.tsx | 396 ++++++++--- app/components/WorkModalities.tsx | 25 +- .../cinematic/CinematicHome.test.tsx | 146 +++-- app/components/cinematic/CinematicHome.tsx | 44 +- .../cinematic/ScrollVelocityText.tsx | 7 +- .../cinematic/useHomeFragmentNavigation.ts | 125 ++++ app/components/story/NotebookBrowser.test.tsx | 143 +++- app/components/story/NotebookBrowser.tsx | 307 +++++++-- app/components/story/NotebookFallback.tsx | 7 +- app/components/story/NotebookStage3D.test.tsx | 66 +- app/components/story/NotebookStage3D.tsx | 194 ++++-- app/components/story/NotebookStory.test.tsx | 54 +- app/components/story/NotebookStory.tsx | 142 ++-- app/components/story/notebookProjects.test.ts | 7 +- app/components/story/notebookProjects.ts | 12 +- app/components/story/notebookTimeline.test.ts | 171 ++--- app/components/story/notebookTimeline.ts | 256 +++----- app/globals.css | 614 ++++++++++++++++-- app/servicos/[slug]/opengraph-image.tsx | 4 +- app/servicos/[slug]/page.test.tsx | 23 +- app/servicos/[slug]/page.tsx | 105 +-- app/servicos/opengraph-image.tsx | 6 +- app/servicos/page.tsx | 72 +- lib/site-content.test.ts | 8 - lib/site-content.ts | 396 +++++------ public/assets/notebook/as-servicos.webp | Bin 0 -> 83638 bytes public/assets/notebook/nutriscan.webp | Bin 0 -> 39930 bytes public/assets/notebook/sc-plus.webp | Bin 0 -> 110116 bytes public/assets/notebook/sev-modaintima.webp | Bin 0 -> 133328 bytes 35 files changed, 2359 insertions(+), 1299 deletions(-) create mode 100644 app/components/LighthouseMetrics.test.tsx create mode 100644 app/components/cinematic/useHomeFragmentNavigation.ts create mode 100644 public/assets/notebook/as-servicos.webp create mode 100644 public/assets/notebook/nutriscan.webp create mode 100644 public/assets/notebook/sc-plus.webp create mode 100644 public/assets/notebook/sev-modaintima.webp diff --git a/README.md b/README.md index 2c0d4a3..a86d8de 100644 --- a/README.md +++ b/README.md @@ -66,17 +66,19 @@ Todas as dependências diretas estão fixadas em versões exatas no manifesto; o | `/cases/sc-plus` | Case SC Plus Aquicultura. | | `/cases/gcc-installer` | Case MinGW GCC Installer. | | `/cases/as-servicos` | Case AS Serviços. | -| `/servicos` | Índice dos seis serviços. | +| `/servicos` | Índice dos seis serviços, com explicações de uso e acesso ao detalhamento técnico. | | `/servicos/criacao-de-sites` | Criação de sites. | -| `/servicos/engenharia-de-software` | Engenharia de software. | +| `/servicos/engenharia-de-software` | Sistemas web e aplicativos mobile sob medida. | | `/servicos/consultoria-nextjs` | Consultoria Next.js. | -| `/servicos/tauri-rust` | Desenvolvimento Tauri e Rust. | +| `/servicos/tauri-rust` | Aplicativos desktop para Windows e Linux, com compatibilidade definida por projeto. | | `/servicos/integracao-hardware-software-iot` | Integração de hardware, software e IoT. | | `/servicos/arquitetura-de-software` | Arquitetura de software. | | `/curriculo` | Currículo em HTML, com download de `/Profile.pdf`. | O App Router também gera `/manifest.webmanifest`, `/robots.txt`, `/sitemap.xml`, `/opengraph-image`, `/icon.svg` e `/favicon.ico`. Caminhos desconhecidos usam a página 404 do projeto. Não há API route ativa. +As páginas de serviços mantêm escopo, exemplos ilustrativos e etapas visíveis; tecnologias e decisões de implementação ficam em um `
` nativo. Sobre e Contato apontam para `/#about` e `/#contact`, com ajuste de chegada após a definição do layout do notebook. + ## Comportamento da aplicação ### Conteúdo e project health @@ -87,7 +89,9 @@ Em produção, a renderização só lê o snapshot versionado e não consulta de ### 3D progressivo e movimento reduzido -O hero 3D é carregado no cliente a partir de `1024px`, sem `prefers-reduced-motion: reduce` e sem ponteiro coarse. O notebook 3D exige mais de `1024px`, hover disponível e as mesmas condições de movimento e ponteiro. Nos demais casos, o notebook entrega a navegação HTML completa sem WebGL ou movimento. No notebook 3D, o loop de renderização só permanece ativo enquanto a seção cruza o viewport e a página está visível. +O hero 3D é carregado no cliente a partir de `1024px`, sem `prefers-reduced-motion: reduce` e sem ponteiro coarse. O notebook 3D exige mais de `1024px`, hover disponível e as mesmas condições de movimento e ponteiro. Nos demais casos, o notebook entrega a navegação HTML completa sem WebGL ou movimento. No desktop, tampa, tela, abas e cursor seguem o mesmo progresso de scroll; a cena renderiza sob demanda e pausa fora do viewport ou com a página oculta. + +As quatro capturas desktop reais ficam em `public/assets/notebook/`, em WebP de 1600 × 1000. A troca aguarda a decodificação da próxima imagem, mantendo a anterior visível durante o carregamento ou uma falha. ### Contato diff --git a/app/components/Header.test.tsx b/app/components/Header.test.tsx index 65b5f7a..b6978a1 100644 --- a/app/components/Header.test.tsx +++ b/app/components/Header.test.tsx @@ -1,5 +1,6 @@ import { fireEvent, render, screen, within } from "@testing-library/react"; -import type { ReactNode } from "react"; +import { type ReactNode, useEffect } from "react"; +import { useHomeFragmentNavigation } from "./cinematic/useHomeFragmentNavigation"; import { Header } from "./Header"; jest.mock("motion/react", () => { @@ -26,6 +27,21 @@ jest.mock("motion/react", () => { return { motion, useReducedMotion: () => false }; }); +function HomeWithHeader() { + const onLayoutReady = useHomeFragmentNavigation(); + useEffect(() => { + onLayoutReady(); + }, [onLayoutReady]); + return ( + <> +
+
+

Sobre

+
+ + ); +} + describe("Header", () => { it("exposes the primary navigation and the existing CV asset", () => { render(
); @@ -50,9 +66,14 @@ describe("Header", () => { const cvLink = screen.getByRole("link", { name: "Download CV" }); expect(cvLink).toHaveAttribute("href", "/Profile.pdf"); expect(cvLink).toHaveAttribute("download", "Evandro_Fonseca_Junior_CV.pdf"); - expect( - screen.getByRole("navigation", { name: "Navegação principal" }), - ).toHaveClass("site-header-nav"); + expect(screen.getByRole("link", { name: "Sobre" })).toHaveAttribute( + "href", + "/#about", + ); + expect(screen.getByRole("link", { name: "Contato" })).toHaveAttribute( + "href", + "/#contact", + ); }); it("announces and controls the mobile menu", () => { @@ -61,17 +82,12 @@ describe("Header", () => { const menuButton = screen.getByRole("button", { name: "Abrir menu" }); expect(menuButton).not.toHaveAttribute("aria-controls"); expect(menuButton).toHaveAttribute("aria-expanded", "false"); - expect(menuButton).toHaveClass("site-header-menu-toggle"); expect( screen.queryByRole("navigation", { name: "Navegação mobile" }), ).not.toBeInTheDocument(); fireEvent.click(menuButton); - expect(screen.getByRole("button", { name: "Fechar menu" })).toHaveAttribute( - "aria-controls", - "site-navigation-menu", - ); expect(screen.getByRole("button", { name: "Fechar menu" })).toHaveAttribute( "aria-expanded", "true", @@ -79,29 +95,41 @@ describe("Header", () => { const mobileNavigation = screen.getByRole("navigation", { name: "Navegação mobile", }); - expect(mobileNavigation).toHaveAttribute("id", "site-navigation-menu"); - expect(mobileNavigation).toHaveAttribute("aria-hidden", "false"); + expect( + document.getElementById(menuButton.getAttribute("aria-controls") ?? ""), + ).toBe(mobileNavigation); - const closeButton = screen.getByRole("button", { name: "Fechar menu" }); - fireEvent.keyDown(closeButton, { key: "Escape" }); + const mobileLink = within(mobileNavigation).getByRole("link", { + name: "Sobre", + }); + mobileLink.focus(); + fireEvent.keyDown(mobileLink, { key: "Escape" }); const openButton = screen.getByRole("button", { name: "Abrir menu" }); expect(openButton).toHaveAttribute("aria-expanded", "false"); expect(document.activeElement).toBe(openButton); }); - it("returns focus after closing the menu from a mobile link", () => { - render(
); + it("closes the mobile menu without taking focus away from a home destination", () => { + window.history.replaceState(null, "", "/"); + render(); fireEvent.click(screen.getByRole("button", { name: "Abrir menu" })); const mobileNavigation = screen.getByRole("navigation", { name: "Navegação mobile", }); - fireEvent.click( - within(mobileNavigation).getByRole("link", { name: "Home" }), - ); + const mobileLink = within(mobileNavigation).getByRole("link", { + name: "Sobre", + }); + mobileLink.focus(); + fireEvent.click(mobileLink); - const openButton = screen.getByRole("button", { name: "Abrir menu" }); - expect(openButton).toHaveAttribute("aria-expanded", "false"); - expect(document.activeElement).toBe(openButton); + expect(screen.getByRole("button", { name: "Abrir menu" })).toHaveAttribute( + "aria-expanded", + "false", + ); + expect( + screen.queryByRole("navigation", { name: "Navegação mobile" }), + ).not.toBeInTheDocument(); + expect(screen.getByRole("region", { name: "Sobre" })).toHaveFocus(); }); }); diff --git a/app/components/Header.tsx b/app/components/Header.tsx index 8ec18be..f4f4540 100644 --- a/app/components/Header.tsx +++ b/app/components/Header.tsx @@ -15,16 +15,14 @@ export function Header() { const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const menuButtonRef = useRef(null); - const closeMobileMenu = () => { - setMobileMenuOpen(false); - menuButtonRef.current?.focus(); - }; + const closeMobileMenu = () => setMobileMenuOpen(false); const handleMenuKeyDown = (event: KeyboardEvent) => { if (event.key !== "Escape") return; event.preventDefault(); closeMobileMenu(); + menuButtonRef.current?.focus(); }; return ( @@ -119,7 +117,10 @@ export function Header() { href={CV_URL} download={CV_DOWNLOAD_NAME} className="ds-link ds-link-accent mt-sp-2 inline-flex rounded-sm font-semibold" - onClick={closeMobileMenu} + onClick={() => { + closeMobileMenu(); + menuButtonRef.current?.focus(); + }} strength={0.15} > Download CV diff --git a/app/components/Hero.reducedMotion.test.tsx b/app/components/Hero.reducedMotion.test.tsx index a08797d..5420634 100644 --- a/app/components/Hero.reducedMotion.test.tsx +++ b/app/components/Hero.reducedMotion.test.tsx @@ -1,166 +1,59 @@ -import { render, screen } from "@testing-library/react"; -import type { ReactNode } from "react"; - +import { act } from "@testing-library/react"; +import { useReducedMotion } from "motion/react"; +import { hydrateRoot, type Root } from "react-dom/client"; +import { renderToString } from "react-dom/server"; import Hero from "./Hero"; -jest.mock("next/dynamic", () => () => { - const DynamicComponent = () =>
; - DynamicComponent.displayName = "MockHeroScene"; - return DynamicComponent; -}); - -jest.mock("motion/react", () => { - const React = require("react"); - const MotionStateContext = React.createContext({ - initial: undefined, - animate: undefined, - }); - - const resolveOpacity = ( - value: unknown, - variants: Record | undefined, - ) => { - const state: unknown = - typeof value === "string" ? variants?.[value] : value; - if ( - state && - typeof state === "object" && - "opacity" in state && - typeof state.opacity === "number" - ) { - return state.opacity; - } - return undefined; - }; - - const motion = new Proxy( - {}, - { - get: (_, tag: string) => { - const Component = ({ - children, - initial, - animate, - variants, - transition: _transition, - whileHover: _whileHover, - whileTap: _whileTap, - style, - ...props - }: { - children?: ReactNode; - initial?: unknown; - animate?: unknown; - variants?: Record; - style?: Record; - } & Record) => { - const inherited = React.useContext(MotionStateContext); - const effectiveInitial = - initial === undefined ? inherited.initial : initial; - const effectiveAnimate = - animate === undefined ? inherited.animate : animate; - const opacity = resolveOpacity( - effectiveInitial === false ? effectiveAnimate : effectiveInitial, - variants, - ); - const element = React.createElement( - tag, - { - ...props, - style: opacity === undefined ? style : { ...style, opacity }, - }, - children, - ); - - return React.createElement( - MotionStateContext.Provider, - { - value: { - initial: effectiveInitial, - animate: effectiveAnimate, - }, - }, - element, - ); - }; - Component.displayName = `motion.${tag}`; - return Component; - }, - }, - ); - - return { - AnimatePresence: ({ children }: { children: React.ReactNode }) => children, - motion, - useInView: () => true, - useReducedMotion: () => true, - useMotionValue: (initial: number) => ({ - get: () => initial, - set: jest.fn(), - }), - useSpring: ( - value: { get: () => number; set: (v: number) => void }, - _config: unknown, - ) => value, - useTransform: ( - value: { get: () => number; set: (v: number) => void }, - _input: number[], - _output: number[], - ) => value, - }; -}); - -jest.mock("cobe", () => ({ - __esModule: true, - default: jest.fn(() => ({ - destroy: jest.fn(), - })), +jest.mock("motion/react", () => ({ + ...jest.requireActual("motion/react"), + useReducedMotion: jest.fn(), +})); +jest.mock("next/dynamic", () => () => () => null); +jest.mock("./cinematic/ControlRoomGlobe", () => ({ + ControlRoomGlobe: () => null, +})); +jest.mock("./cinematic/HeroStarfield", () => ({ + HeroStarfield: () => null, })); -function mockMatchMedia(matches: boolean) { - Object.defineProperty(window, "matchMedia", { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches, - media: query, +afterEach(() => { + jest.restoreAllMocks(); +}); + +it.each([false, true])( + "hydrates without attribute mismatches when reduced motion resolves to %s", + async (reducedMotion) => { + jest.spyOn(window, "matchMedia").mockImplementation((media) => ({ + media, + matches: media === "(prefers-reduced-motion: reduce)" && reducedMotion, onchange: null, addListener: jest.fn(), removeListener: jest.fn(), addEventListener: jest.fn(), removeEventListener: jest.fn(), dispatchEvent: jest.fn(), - })), - }); -} + })); + const preference = jest.mocked(useReducedMotion); + preference.mockReturnValue(null); + const container = document.createElement("div"); + container.innerHTML = renderToString(); + document.body.append(container); -describe("Hero reduced motion", () => { - beforeEach(() => { - mockMatchMedia(true); - }); - - afterEach(() => { - jest.restoreAllMocks(); - }); - - it("shows active copy and actions immediately without animation timers", () => { - render(); - - const visibleContent = [ - screen.getByText(/Disponível para novas oportunidades/i), - screen.getByRole("heading", { - level: 1, - name: /engenharia de software para sistemas/i, - }), - screen.getByRole("button", { - name: /conversar sobre uma oportunidade/i, - }), - screen.getByRole("link", { name: /ver casos selecionados/i }), - screen.getByRole("link", { name: /download cv/i }), - ]; - - for (const element of visibleContent) { - expect(element).toBeVisible(); + preference.mockReturnValue(reducedMotion); + const consoleErrors = jest.spyOn(console, "error").mockImplementation(); + const recoverableErrors: unknown[] = []; + let root: Root | undefined; + try { + await act(async () => { + root = hydrateRoot(container, , { + onRecoverableError: (error) => recoverableErrors.push(error), + }); + }); + expect(recoverableErrors).toEqual([]); + expect(consoleErrors.mock.calls).toEqual([]); + } finally { + await act(async () => root?.unmount()); + container.remove(); } - expect(screen.queryByTestId("hero-scene")).not.toBeInTheDocument(); - }); -}); + }, +); diff --git a/app/components/Hero.tsx b/app/components/Hero.tsx index 6200706..0bb22dc 100644 --- a/app/components/Hero.tsx +++ b/app/components/Hero.tsx @@ -1,8 +1,9 @@ "use client"; -import { motion, useReducedMotion, type Variants } from "motion/react"; +import { motion, type Variants } from "motion/react"; import dynamic from "next/dynamic"; import { useEffect, useRef, useState } from "react"; +import { useReducedMotion } from "@/app/hooks/useReducedMotion"; import { shouldLoadHeroScene } from "@/app/lib/should-load-hero-scene"; import { CV_URL } from "@/lib/site-navigation"; import { buildWhatsAppUrl } from "@/lib/whatsapp"; @@ -89,7 +90,7 @@ function getGreeting(message: string) { export default function Hero() { const heroRef = useRef(null); - const shouldReduceMotion = useReducedMotion() ?? true; + const shouldReduceMotion = useReducedMotion(); const [shouldRenderHeroScene, setShouldRenderHeroScene] = useState(false); const [isHeroVisible, setIsHeroVisible] = useState(true); diff --git a/app/components/LighthouseMetrics.test.tsx b/app/components/LighthouseMetrics.test.tsx new file mode 100644 index 0000000..d5e83e6 --- /dev/null +++ b/app/components/LighthouseMetrics.test.tsx @@ -0,0 +1,29 @@ +import { render, screen, within } from "@testing-library/react"; +import userEvent from "@testing-library/user-event"; +import LighthouseMetrics from "./LighthouseMetrics"; + +it("updates the inspection criteria while preserving keyboard navigation", async () => { + const user = userEvent.setup(); + render(); + + const report = screen.getByRole("region", { name: "Inspeção de qualidade" }); + expect(screen.getByRole("radio", { name: /Performance/ })).toBeChecked(); + expect(within(report).getByRole("list")).toHaveTextContent(/JavaScript/); + + const accessibility = screen.getByRole("radio", { name: /Acessibilidade/ }); + await user.click(accessibility); + expect(accessibility).toHaveFocus(); + expect(within(report).getByRole("list")).toHaveTextContent(/teclado/); + + await user.keyboard("{ArrowRight}"); + expect(screen.getByRole("radio", { name: /Boas práticas/ })).toBeChecked(); + expect(within(report).getByRole("list")).toHaveTextContent(/consentimento/); + + await user.keyboard("{ArrowRight}"); + expect(screen.getByRole("radio", { name: /SEO/ })).toBeChecked(); + expect(within(report).getByRole("list")).toHaveTextContent(/Sitemap/); + + await user.keyboard("{ArrowRight}"); + expect(screen.getByRole("radio", { name: /Performance/ })).toBeChecked(); + expect(within(report).getByRole("list")).toHaveTextContent(/JavaScript/); +}); diff --git a/app/components/LighthouseMetrics.tsx b/app/components/LighthouseMetrics.tsx index acbe717..c779ac9 100644 --- a/app/components/LighthouseMetrics.tsx +++ b/app/components/LighthouseMetrics.tsx @@ -1,115 +1,343 @@ "use client"; -import { motion } from "motion/react"; -import { useReducedMotion } from "@/app/hooks/useReducedMotion"; -import { Section } from "./Section"; +import { useState } from "react"; const METRICS = [ { - score: 100, + id: "performance", label: "Performance", + code: "LCP / INP / CLS", + title: "O essencial chega primeiro.", description: - "Cada milissegundo conta. Tempos de carregamento instantâneos retêm mais usuários, aumentam a conversão e garantem que a interface pareça nativa.", + "O carregamento começa pelo que importa. Imagens, fontes e JavaScript precisam trabalhar a favor da experiência, não competir com ela.", + checks: [ + "Conteúdo principal com prioridade de carregamento", + "Dimensões reservadas para evitar saltos de layout", + "JavaScript carregado onde faz diferença", + ], + caption: "Em foco: o conteúdo principal e a estabilidade da página.", }, { - score: 100, + id: "accessibility", label: "Acessibilidade", + code: "TECLADO / FOCO / SEMÂNTICA", + title: "A interface inclui mais pessoas.", description: - "Acesso universal. Contraste perfeito, navegação por teclado e semântica adequada garantindo o uso por todos os perfis e mitigando riscos.", + "Uma boa interface não exige um jeito único de navegar. Teclado, leitores de tela e preferências de movimento fazem parte do projeto.", + checks: [ + "Foco visível e navegação por teclado", + "Controles com nomes e estrutura semântica", + "Contraste legível e movimento reduzido", + ], + caption: + "Em foco: controles reconhecíveis e um caminho claro pelo teclado.", }, { - score: 100, - label: "Best Practices", + id: "practices", + label: "Boas práticas", + code: "HTTPS / PRIVACIDADE / DEPENDÊNCIAS", + title: "Confiança também se constrói.", description: - "Código seguro e moderno. Uso das APIs mais recentes, prevenção inteligente contra vulnerabilidades comuns e front-end limpo.", + "Cuidar da entrega também é cuidar dos dados, das dependências e dos limites do navegador. Segurança não se resume a uma nota.", + checks: [ + "Conexões seguras e políticas do navegador", + "Analytics condicionado ao consentimento", + "Dependências verificadas e atualizadas", + ], + caption: "Em foco: a conexão e os limites de acesso aos dados.", }, { - score: 100, + id: "seo", label: "SEO", + code: "HTML / METADATA / INDEXAÇÃO", + title: "Conteúdo pronto para ser encontrado.", description: - "Rankeamento orgânico superior. Estrutura impecável para indexação precisa pelos motores de busca e otimização para crawlers sociais.", + "Estrutura antes de promessas. Conteúdo claro, títulos coerentes e dados estruturados ajudam pessoas e buscadores a entender cada página.", + checks: [ + "Títulos, descrições e URLs canônicas", + "HTML semântico e conteúdo rastreável", + "Sitemap e dados estruturados factuais", + ], + caption: "Em foco: a estrutura que dá contexto ao conteúdo.", }, ]; +const BLUEPRINT = ( + +); + export default function LighthouseMetrics() { - const shouldReduceMotion = useReducedMotion(); + const [active, setActive] = useState(METRICS[0]); return ( -
-
- {METRICS.map((metric, i) => ( - - {/* The Ring Container */} -
- -
- {metric.score} -
-
+
+
+
+

Quality & Performance

+

+ Engenharia de ponta a ponta. + Qualidade em cada camada. +

+

+ Sistemas precisam mais do que uma boa aparência. Explore as + decisões que tornam uma interface rápida, acessível, confiável e + fácil de encontrar. +

+ + Conversar sobre a qualidade do seu projeto + +
- {/* Content Details */} -
-

- {metric.label} -

-

- {metric.description} -

+
+
+ Laboratório de qualidade + Modelo interativo
- - ))} + {BLUEPRINT} +
+ {METRICS.map((metric) => ( + + {metric.caption} + + ))} +
+
+
+ +
+ Escolha um aspecto da qualidade + {METRICS.map((metric) => ( + + ))} +
+ +

+ Selecione um pilar para explorar. No teclado, use as setas. +

+ +
+ {METRICS.map((metric) => ( +
+
+

{metric.code}

+

{metric.title}

+

{metric.description}

+
+
    + {metric.checks.map((check) => ( +
  • + + {check} +
  • + ))} +
+
+ ))} +
+ +

+ Metas de qualidade, não uma auditoria em tempo real. Resultados + Lighthouse variam conforme página, dispositivo e condições do teste. +

-
+ ); } diff --git a/app/components/WorkModalities.tsx b/app/components/WorkModalities.tsx index d4e7aed..10e0323 100644 --- a/app/components/WorkModalities.tsx +++ b/app/components/WorkModalities.tsx @@ -199,22 +199,23 @@ export function WorkModalities() { return (
-
Páginas de serviço
+
O que você pode contratar

- Especialidades organizadas por intenção de busca + Uma solução para a sua rotina, não uma lista de tecnologias.

- Se você chegou buscando uma stack, um tipo de consultoria ou um - contexto técnico específico, aqui está o caminho mais direto para - a página certa. + Apresentar sua empresa na internet, organizar a operação, criar um + aplicativo ou conectar ferramentas. Veja exemplos, etapas e + limites de cada serviço; os detalhes técnicos estão disponíveis + nas páginas para quem quiser aprofundar.

- Ver hub de serviços + Conhecer todos os serviços
@@ -235,12 +236,12 @@ export function WorkModalities() { -
+
{service.label}
-
+
{service.description}
diff --git a/app/components/cinematic/CinematicHome.test.tsx b/app/components/cinematic/CinematicHome.test.tsx index a7d7701..d0ae9bd 100644 --- a/app/components/cinematic/CinematicHome.test.tsx +++ b/app/components/cinematic/CinematicHome.test.tsx @@ -1,61 +1,103 @@ -import { render, screen } from "@testing-library/react"; -import CinematicHome from "./CinematicHome"; +import { act, fireEvent, render, screen } from "@testing-library/react"; +import { useHomeFragmentNavigation } from "./useHomeFragmentNavigation"; -jest.mock("next/dynamic", () => { - const labels = [ - "About", - "Skills", - "Experience", - "WorkModalities", - "Contact", - "LighthouseMetrics", - "Footer", - "ScrollVelocityText", - "SectionDivider", - ]; - let index = 0; +function HomeNavigation() { + const onLayoutReady = useHomeFragmentNavigation(); + return ( + <> + + Sobre + Contato +
+ +
+
+ +
+ + ); +} - return () => { - const label = labels[index++] ?? "DynamicSection"; - return function DynamicMock() { - return
{label}
; - }; - }; +const originalScrollIntoView = HTMLElement.prototype.scrollIntoView; + +beforeEach(() => { + window.history.replaceState(null, "", "/"); + HTMLElement.prototype.scrollIntoView = jest.fn(); }); -jest.mock("../Hero", () => () =>
); -jest.mock("../Projects", () => () => ( -
-)); -jest.mock("../story/NotebookStory", () => () => ( -
-)); +afterEach(() => { + window.history.replaceState(null, "", "/"); + if (originalScrollIntoView) { + HTMLElement.prototype.scrollIntoView = originalScrollIntoView; + } else { + Reflect.deleteProperty(HTMLElement.prototype, "scrollIntoView"); + } +}); -describe("CinematicHome", () => { - it("renders each primary section directly in the published order", () => { - const { container } = render( - , - ); - const main = container.querySelector("main"); - const sectionNames = [ - "Hero", - "NotebookStory", - "About", - "Skills", - "Experience", - "Projects", - "LighthouseMetrics", - "WorkModalities", - "Contact", - ]; - const sectionIds = sectionNames.map((name) => `home-section-${name}`); - const directSections = Array.from(main?.children ?? []).filter((element) => - sectionIds.includes(element.getAttribute("data-testid") ?? ""), - ); +describe("home fragment navigation", () => { + it("waits for the notebook layout on fragment arrival, then never steals focus on refresh", () => { + window.history.replaceState(null, "", "/#contact"); + render(); + const contact = screen.getByRole("region", { name: "Contato" }); + expect(contact).not.toHaveFocus(); - expect(screen.getAllByTestId("home-section-NotebookStory")).toHaveLength(1); + fireEvent.click( + screen.getByRole("button", { name: "Establish notebook layout" }), + ); + expect(contact).toHaveFocus(); + screen.getByRole("button", { name: "Read biography" }).focus(); + fireEvent.click( + screen.getByRole("button", { name: "Establish notebook layout" }), + ); expect( - directSections.map((section) => section.getAttribute("data-testid")), - ).toEqual(sectionIds); + screen.getByRole("button", { name: "Read biography" }), + ).toHaveFocus(); + }); + + it("abandons a pending arrival when the visitor intentionally scrolls", () => { + window.history.replaceState(null, "", "/#about"); + render(); + const message = screen.getByRole("button", { name: "Send message" }); + message.focus(); + fireEvent.wheel(window, { deltaY: 200 }); + fireEvent.click( + screen.getByRole("button", { name: "Establish notebook layout" }), + ); + expect(message).toHaveFocus(); + }); + + it("keeps repeated same-fragment links native while moving focus to the destination", () => { + window.history.replaceState(null, "", "/#about"); + render(); + fireEvent.click( + screen.getByRole("button", { name: "Establish notebook layout" }), + ); + const link = screen.getByRole("link", { name: "Sobre" }); + link.focus(); + expect(fireEvent.click(link)).toBe(true); + expect(screen.getByRole("region", { name: "Sobre" })).toHaveFocus(); + link.focus(); + expect(fireEvent.click(link)).toBe(true); + expect(screen.getByRole("region", { name: "Sobre" })).toHaveFocus(); + link.focus(); + fireEvent.click(link, { ctrlKey: true }); + expect(link).toHaveFocus(); + }); + + it("does not resurrect a stale fragment when the URL changes before readiness", () => { + window.history.replaceState(null, "", "/#about"); + render(); + const message = screen.getByRole("button", { name: "Send message" }); + message.focus(); + act(() => { + window.history.replaceState(null, "", "/#contact"); + window.dispatchEvent(new HashChangeEvent("hashchange")); + }); + fireEvent.click( + screen.getByRole("button", { name: "Establish notebook layout" }), + ); + expect(message).toHaveFocus(); }); }); diff --git a/app/components/cinematic/CinematicHome.tsx b/app/components/cinematic/CinematicHome.tsx index 99e8ebe..5e183c6 100644 --- a/app/components/cinematic/CinematicHome.tsx +++ b/app/components/cinematic/CinematicHome.tsx @@ -1,43 +1,23 @@ "use client"; -import dynamic from "next/dynamic"; import type { PortfolioExperience, PortfolioProjectView, PortfolioSkillCategory, } from "@/lib/portfolio-data"; +import About from "../About"; +import Contact from "../Contact"; +import Experience from "../Experience"; +import Footer from "../Footer"; import Hero from "../Hero"; +import LighthouseMetrics from "../LighthouseMetrics"; import Projects from "../Projects"; -import { SectionLoading } from "../SectionLoading"; +import Skills from "../Skills"; import NotebookStory from "../story/NotebookStory"; - -const About = dynamic(() => import("../About"), { - loading: () => , -}); -const Skills = dynamic(() => import("../Skills"), { - loading: () => , -}); -const Experience = dynamic(() => import("../Experience"), { - loading: () => , -}); -const WorkModalities = dynamic( - () => import("../WorkModalities").then((mod) => mod.WorkModalities), - { loading: () => }, -); -const Contact = dynamic(() => import("../Contact"), { - loading: () => , -}); -const LighthouseMetrics = dynamic(() => import("../LighthouseMetrics"), { - loading: () => , -}); -const Footer = dynamic(() => import("../Footer")); - -const ScrollVelocityText = dynamic(() => import("./ScrollVelocityText"), { - ssr: false, -}); -const SectionDivider = dynamic(() => import("./SectionDivider"), { - ssr: false, -}); +import { WorkModalities } from "../WorkModalities"; +import ScrollVelocityText from "./ScrollVelocityText"; +import SectionDivider from "./SectionDivider"; +import { useHomeFragmentNavigation } from "./useHomeFragmentNavigation"; export default function CinematicHome({ projects, @@ -48,6 +28,8 @@ export default function CinematicHome({ experiences: PortfolioExperience[]; skillCategories: PortfolioSkillCategory[]; }) { + const onLayoutReady = useHomeFragmentNavigation(); + return (
@@ -58,7 +40,7 @@ export default function CinematicHome({
- + diff --git a/app/components/cinematic/ScrollVelocityText.tsx b/app/components/cinematic/ScrollVelocityText.tsx index a293b8c..43e78a0 100644 --- a/app/components/cinematic/ScrollVelocityText.tsx +++ b/app/components/cinematic/ScrollVelocityText.tsx @@ -17,14 +17,11 @@ export default function ScrollVelocityText({ }: ScrollVelocityTextProps) { const trackId = useId(); const [isPaused, setIsPaused] = useState(false); - const [shouldReduceMotion, setShouldReduceMotion] = useState( - () => - typeof window !== "undefined" && - window.matchMedia("(prefers-reduced-motion: reduce)").matches, - ); + const [shouldReduceMotion, setShouldReduceMotion] = useState(false); useEffect(() => { const media = window.matchMedia("(prefers-reduced-motion: reduce)"); + setShouldReduceMotion(media.matches); const updatePreference = (event: MediaQueryListEvent) => { setShouldReduceMotion(event.matches); }; diff --git a/app/components/cinematic/useHomeFragmentNavigation.ts b/app/components/cinematic/useHomeFragmentNavigation.ts new file mode 100644 index 0000000..f584f21 --- /dev/null +++ b/app/components/cinematic/useHomeFragmentNavigation.ts @@ -0,0 +1,125 @@ +"use client"; + +import { useCallback, useEffect, useRef } from "react"; + +function fragmentTarget(hash: string) { + if (!hash) return null; + try { + return document.getElementById(decodeURIComponent(hash.slice(1))); + } catch { + return null; + } +} + +function focusFragment(target: HTMLElement) { + if (!target.hasAttribute("tabindex")) target.tabIndex = -1; + target.focus({ preventScroll: true }); +} + +/** Correct only an outstanding arrival; ordinary links and history keep native scrolling. */ +export function useHomeFragmentNavigation() { + const ready = useRef(false); + const resolveArrival = useRef<(() => void) | null>(null); + + useEffect(() => { + const navigation = performance.getEntriesByType?.("navigation")[0] as + | PerformanceNavigationTiming + | undefined; + // A history restoration owns its saved position, not the URL's old fragment. + let pending = + navigation?.type === "back_forward" ? "" : window.location.hash; + + const resolve = () => { + if (!ready.current || !pending) return; + const hash = pending; + pending = ""; + if (hash !== window.location.hash) return; + const target = fragmentTarget(hash); + if (!target) return; + focusFragment(target); + target.scrollIntoView({ block: "start", behavior: "instant" }); + }; + + const cancelArrival = () => { + pending = ""; + }; + const onKeyDown = (event: KeyboardEvent) => { + if ( + [ + "ArrowUp", + "ArrowDown", + "PageUp", + "PageDown", + "Home", + "End", + " ", + "Tab", + ].includes(event.key) + ) { + cancelArrival(); + } + }; + const onClick = (event: MouseEvent) => { + if ( + event.defaultPrevented || + event.button !== 0 || + event.metaKey || + event.ctrlKey || + event.shiftKey || + event.altKey + ) + return; + const link = + event.target instanceof Element + ? event.target.closest("a[href]") + : null; + if ( + !(link instanceof HTMLAnchorElement) || + link.hasAttribute("download") || + (link.target && link.target !== "_self") + ) + return; + const url = new URL(link.href); + if ( + url.origin !== window.location.origin || + url.pathname !== window.location.pathname || + url.search !== window.location.search + ) + return; + const target = fragmentTarget(url.hash); + if (!target) return; + pending = ready.current ? "" : url.hash; + // Capture before a mobile menu removes its activated link. Do not cancel navigation. + focusFragment(target); + }; + const onHashChange = () => { + if (pending && pending !== window.location.hash) cancelArrival(); + if (!ready.current) return; + const target = fragmentTarget(window.location.hash); + if (target) focusFragment(target); + }; + + resolveArrival.current = resolve; + resolve(); + document.addEventListener("click", onClick, true); + window.addEventListener("hashchange", onHashChange); + window.addEventListener("wheel", cancelArrival, { passive: true }); + window.addEventListener("touchmove", cancelArrival, { passive: true }); + window.addEventListener("keydown", onKeyDown); + window.addEventListener("pointerdown", cancelArrival, { passive: true }); + return () => { + resolveArrival.current = null; + document.removeEventListener("click", onClick, true); + window.removeEventListener("hashchange", onHashChange); + window.removeEventListener("wheel", cancelArrival); + window.removeEventListener("touchmove", cancelArrival); + window.removeEventListener("keydown", onKeyDown); + window.removeEventListener("pointerdown", cancelArrival); + }; + }, []); + + return useCallback(() => { + ready.current = true; + resolveArrival.current?.(); + }, []); +} diff --git a/app/components/story/NotebookBrowser.test.tsx b/app/components/story/NotebookBrowser.test.tsx index 504a891..716d9db 100644 --- a/app/components/story/NotebookBrowser.test.tsx +++ b/app/components/story/NotebookBrowser.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from "@testing-library/react"; +import { act, fireEvent, render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { getFeaturedProjects } from "@/lib/portfolio-data"; import NotebookBrowser, { type NotebookBrowserProps } from "./NotebookBrowser"; @@ -24,6 +24,15 @@ function renderBrowser(overrides: Partial = {}) { ); } +function imageFor(container: HTMLElement, index: number) { + const source = new URL(projects[index].screenshotSrc, document.baseURI).href; + const image = Array.from(container.querySelectorAll("img")).find( + (candidate) => candidate.src === source, + ); + if (!image) throw new Error(`Missing screenshot for ${projects[index].id}`); + return image; +} + describe("NotebookBrowser", () => { it("renders the active project as an accessible tabpanel", () => { renderBrowser({ activeIndex: 1 }); @@ -42,12 +51,12 @@ describe("NotebookBrowser", () => { "Projeto ativo: SC Plus Aquicultura", ); }); - it("preloads the next screenshot and keeps a short outgoing crossfade", () => { + it("keeps decoded content visible and ignores a superseded decode", async () => { const view = renderBrowser(); - - expect( - view.container.querySelector(".notebook-screenshot-preload"), - ).toBeInTheDocument(); + await act(async () => { + fireEvent.load(imageFor(view.container, 0)); + }); + expect(screen.getByRole("img")).toHaveAccessibleName(/NutriScan/i); view.rerender( { onSelectTab={jest.fn()} />, ); + let finishDecode!: () => void; + imageFor(view.container, 1).decode = jest + .fn() + .mockResolvedValueOnce(undefined) + .mockImplementation( + () => + new Promise((resolve) => { + finishDecode = resolve; + }), + ); + await act(async () => { + fireEvent.load(imageFor(view.container, 1)); + }); + expect(screen.getByRole("img")).toHaveAccessibleName(/NutriScan/i); + + view.rerender( + , + ); + await act(async () => { + fireEvent.load(imageFor(view.container, 2)); + }); + expect(screen.getByRole("img")).toHaveAccessibleName(/SEV Moda Íntima/i); + await act(async () => { + finishDecode(); + }); + expect(screen.getByRole("img")).toHaveAccessibleName(/SEV Moda Íntima/i); + }); + + it("keeps the last capture with a truthful notice when the requested image fails", async () => { + const view = renderBrowser(); + await act(async () => { + fireEvent.load(imageFor(view.container, 0)); + }); + view.rerender( + , + ); + fireEvent.error(imageFor(view.container, 1)); + expect(screen.getByRole("img")).toHaveAccessibleName(/NutriScan/i); expect( - view.container.querySelector(".notebook-screenshot-outgoing"), + screen.getByText(/não foi possível carregar.*SC Plus/i), + ).toBeInTheDocument(); + expect(screen.getByRole("tabpanel")).toHaveAccessibleName(/SC Plus/i); + }); + + it("can reverse to an already-loaded outgoing image without another load event", async () => { + const view = renderBrowser(); + const first = imageFor(view.container, 0); + Object.defineProperties(first, { + complete: { value: true }, + naturalWidth: { value: 1280 }, + }); + await act(async () => { + fireEvent.load(first); + }); + view.rerender( + , + ); + await act(async () => { + fireEvent.load(imageFor(view.container, 1)); + }); + view.rerender( + , + ); + expect( + await screen.findByRole("img", { name: /NutriScan/i }), ).toBeInTheDocument(); }); it("moves between tabs with arrow keys and Home/End", async () => { @@ -172,35 +264,11 @@ describe("NotebookBrowser", () => { ).not.toBeInTheDocument(); }); - it("keeps the animated cursor decorative and never embeds an iframe", () => { - const { container } = renderBrowser({ - frame: { ...frame, cursorClicking: true }, + it("uses the selected tab to label the panel and decoded screenshot", async () => { + const view = renderBrowser({ activeIndex: 2 }); + await act(async () => { + fireEvent.load(imageFor(view.container, 2)); }); - const cursor = container.querySelector(".notebook-cursor"); - - expect(cursor).toHaveAttribute("aria-hidden", "true"); - expect(cursor).toHaveStyle({ left: "40%", top: "60%" }); - expect(cursor?.closest(".notebook-browser")).toBe( - container.querySelector(".notebook-browser"), - ); - expect(container.querySelector("iframe")).not.toBeInTheDocument(); - }); - - it("marks only the selected tab as pressed by the choreographed cursor", () => { - const { container } = renderBrowser({ - activeIndex: 1, - frame: { ...frame, cursorClicking: true }, - }); - const tabs = container.querySelectorAll(".notebook-tab"); - - expect(tabs[1]).toHaveAttribute("data-cursor-clicking", "true"); - expect(tabs[0]).toHaveAttribute("data-cursor-clicking", "false"); - expect(tabs[2]).toHaveAttribute("data-cursor-clicking", "false"); - expect(tabs[3]).toHaveAttribute("data-cursor-clicking", "false"); - }); - - it("uses the selected tab to label the panel and screenshot", () => { - renderBrowser({ activeIndex: 2 }); const tab = screen.getAllByRole("tab")[2]; const panel = screen.getByRole("tabpanel"); @@ -209,6 +277,9 @@ describe("NotebookBrowser", () => { expect(tab).toHaveAttribute("aria-controls", panel.id); expect(panel).toHaveAttribute("aria-labelledby", tab.id); expect(image).toHaveAccessibleName(/SEV Moda Íntima/i); - expect(image).toHaveAttribute("src", "/assets/prints/print-sev.png"); + expect(image).toHaveProperty( + "src", + new URL(projects[2].screenshotSrc, document.baseURI).href, + ); }); }); diff --git a/app/components/story/NotebookBrowser.tsx b/app/components/story/NotebookBrowser.tsx index a666938..79fa9ff 100644 --- a/app/components/story/NotebookBrowser.tsx +++ b/app/components/story/NotebookBrowser.tsx @@ -1,17 +1,31 @@ "use client"; import Image from "next/image"; -import { useEffect, useRef, useState } from "react"; +import { + type Ref, + useCallback, + useEffect, + useImperativeHandle, + useLayoutEffect, + useRef, + useState, +} from "react"; import type { NotebookProject } from "./notebookProjects"; import type { NotebookFrame } from "./notebookTimeline"; +type CursorFrame = Pick< + NotebookFrame, + "cursorVisible" | "cursorX" | "cursorY" | "cursorClicking" +>; +export type NotebookBrowserHandle = { + updateFrame: (frame: CursorFrame) => void; +}; + export type NotebookBrowserProps = { projects: NotebookProject[]; activeIndex: number; - frame: Pick< - NotebookFrame, - "cursorVisible" | "cursorX" | "cursorY" | "cursorClicking" - >; + frame: CursorFrame; + ref?: Ref; onSelectTab: (index: number) => void; interactive?: boolean; }; @@ -31,28 +45,167 @@ export default function NotebookBrowser({ frame, onSelectTab, interactive = true, + ref, }: NotebookBrowserProps) { const selectedIndex = clampIndex(activeIndex, projects.length); const selectedProject = selectedIndex >= 0 ? projects[selectedIndex] : undefined; - const previousIndexRef = useRef(selectedIndex); - const [outgoingIndex, setOutgoingIndex] = useState(null); + const rootRef = useRef(null); + const cursorRef = useRef(null); + const cursorFrame = useRef(frame); + const tabPoints = useRef>([]); + const browserSize = useRef({ width: 0, height: 0 }); + const [displayed, setDisplayed] = useState(null); + const [outgoing, setOutgoing] = useState(null); + const [failedSrc, setFailedSrc] = useState(null); + const requestedSrc = selectedProject?.screenshotSrc; + const requestRef = useRef(requestedSrc); + const requestVersion = useRef(0); + const displayedRef = useRef(displayed); + const mounted = useRef(true); + useLayoutEffect(() => { + requestRef.current = requestedSrc; + requestVersion.current += 1; + setFailedSrc(null); + }, [requestedSrc]); useEffect(() => { - const previousIndex = previousIndexRef.current; - if (previousIndex === selectedIndex) return undefined; + mounted.current = true; + return () => { + mounted.current = false; + }; + }, []); - previousIndexRef.current = selectedIndex; - setOutgoingIndex(previousIndex >= 0 ? previousIndex : null); - const timeout = window.setTimeout(() => setOutgoingIndex(null), 180); - return () => window.clearTimeout(timeout); - }, [selectedIndex]); + // Only the immediate neighbours are fetched; the browser cache handles reuse. + useEffect(() => { + const images = [projects[selectedIndex - 1], projects[selectedIndex + 1]] + .filter((project): project is NotebookProject => Boolean(project)) + .map((project) => { + const image = new window.Image(); + image.decoding = "async"; + image.src = project.screenshotSrc; + return image; + }); + return () => { + images.forEach((image) => { + image.removeAttribute("src"); + }); + }; + }, [projects, selectedIndex]); - const outgoingProject = - outgoingIndex !== null ? projects[outgoingIndex] : undefined; - const nextProject = - selectedIndex >= 0 && projects.length > 1 - ? projects[(selectedIndex + 1) % projects.length] - : undefined; + const updateFrame = useCallback((next: CursorFrame) => { + cursorFrame.current = next; + const cursor = cursorRef.current; + const points = tabPoints.current; + if (!cursor || points.length === 0) return; + const position = Math.max( + 0, + Math.min(points.length - 1, next.cursorX * points.length - 0.5), + ); + const left = Math.floor(position); + const right = Math.min(left + 1, points.length - 1); + const blend = position - left; + const entry = Math.max(0, Math.min(1, (0.95 - next.cursorY) / 0.65)); + const tabX = points[left].x + (points[right].x - points[left].x) * blend; + const tabY = points[left].y + (points[right].y - points[left].y) * blend; + const x = browserSize.current.width * 0.5 * (1 - entry) + tabX * entry; + const y = browserSize.current.height * 0.95 * (1 - entry) + tabY * entry; + cursor.style.transform = `translate3d(${x}px, ${y}px, 0) scale(${next.cursorClicking ? 0.88 : 1})`; + cursor.style.opacity = next.cursorVisible ? "1" : "0"; + cursor.classList.toggle("is-clicking", next.cursorClicking); + }, []); + useImperativeHandle(ref, () => ({ updateFrame }), [updateFrame]); + useLayoutEffect(() => { + const root = rootRef.current; + if (!root) return undefined; + const measure = () => { + browserSize.current = { + width: root.clientWidth, + height: root.clientHeight, + }; + const points = []; + for (const project of projects) { + const tab: HTMLButtonElement | null = + root.querySelector( + `#notebook-tab-${toDomId(project.id)}`, + ); + if (!tab) continue; + let x = tab.offsetWidth / 2; + let y = tab.offsetHeight / 2; + let element: HTMLElement | null = tab; + while (element && element !== root) { + x += element.offsetLeft; + y += element.offsetTop; + element = element.offsetParent as HTMLElement | null; + } + points.push({ x, y }); + } + tabPoints.current = points; + updateFrame(cursorFrame.current); + }; + measure(); + if (!("ResizeObserver" in window)) return undefined; + const observer = new ResizeObserver(measure); + observer.observe(root); + return () => observer.disconnect(); + }, [projects, updateFrame]); + useLayoutEffect(() => { + updateFrame(frame); + }, [frame, updateFrame]); + + const revealImage = useCallback( + async (image: HTMLImageElement, project: NotebookProject) => { + const version = requestVersion.current; + try { + if (typeof image.decode === "function") await image.decode(); + } catch { + if ( + mounted.current && + version === requestVersion.current && + requestRef.current === project.screenshotSrc + ) { + setFailedSrc(project.screenshotSrc); + } + return; + } + if ( + !mounted.current || + version !== requestVersion.current || + requestRef.current !== project.screenshotSrc + ) + return; + if (displayedRef.current?.screenshotSrc === project.screenshotSrc) return; + setOutgoing( + window.matchMedia?.("(prefers-reduced-motion: reduce)").matches + ? null + : displayedRef.current, + ); + displayedRef.current = project; + setDisplayed(project); + setFailedSrc(null); + }, + [], + ); + useLayoutEffect(() => { + if (!selectedProject) return; + // A quick reversal can select the still-mounted outgoing image: no new load event. + const source = new URL(selectedProject.screenshotSrc, document.baseURI) + .href; + const image = Array.from( + rootRef.current?.querySelectorAll("img") ?? [], + ).find((item) => item.src === source); + if (image?.complete && image.naturalWidth > 0) { + void revealImage(image, selectedProject); + } + }, [selectedProject, revealImage]); + + const imageProjects = [outgoing, displayed, selectedProject].filter( + (project, index, list): project is NotebookProject => + Boolean(project) && + list.findIndex( + (item) => item?.screenshotSrc === project?.screenshotSrc, + ) === index, + ); + const waiting = displayed?.screenshotSrc !== requestedSrc; const interactionProps = interactive ? {} : { @@ -81,7 +234,7 @@ export default function NotebookBrowser({ event.preventDefault(); event.currentTarget.parentElement ?.querySelectorAll('[role="tab"]') - [nextIndex]?.focus(); + [nextIndex]?.focus({ preventScroll: true }); onSelectTab(nextIndex); } @@ -106,6 +259,7 @@ export default function NotebookBrowser({ {...interactionProps} className="notebook-browser" data-testid="notebook-browser" + ref={rootRef} > -
- {outgoingProject ? ( - - ) : null} - {`Captura - {nextProject ? ( - +
+ {imageProjects.map((project) => { + const current = + project.screenshotSrc === displayed?.screenshotSrc; + const previous = + project.screenshotSrc === outgoing?.screenshotSrc; + return ( + {current { + void revealImage(event.currentTarget, project); + }} + onError={() => { + if (project.screenshotSrc === requestRef.current) + setFailedSrc(project.screenshotSrc); + }} + onAnimationEnd={() => { + if (current) setOutgoing(null); + }} + /> + ); + })} + {waiting ? ( +

+ {failedSrc === requestedSrc + ? `Não foi possível carregar a captura de ${selectedProject.title}.` + : `Carregando captura de ${selectedProject.title}…`} + {displayed + ? ` Exibindo ${displayed.title} enquanto isso.` + : null} +

) : null}
- {frame.cursorVisible ? ( -
); } diff --git a/app/components/story/NotebookFallback.tsx b/app/components/story/NotebookFallback.tsx index 7d6bca3..6e03cb9 100644 --- a/app/components/story/NotebookFallback.tsx +++ b/app/components/story/NotebookFallback.tsx @@ -7,6 +7,7 @@ import type { NotebookProject } from "./notebookProjects"; export type NotebookFallbackProps = { projects: NotebookProject[]; initialIndex?: number; + onSelectTab?: (index: number) => void; }; function clampIndex(index: number, length: number): number { @@ -17,6 +18,7 @@ function clampIndex(index: number, length: number): number { export default function NotebookFallback({ projects, initialIndex = 0, + onSelectTab, }: NotebookFallbackProps) { const [activeIndex, setActiveIndex] = useState(() => clampIndex(initialIndex, projects.length), @@ -39,7 +41,10 @@ export default function NotebookFallback({ cursorX: 0, cursorY: 0, }} - onSelectTab={setActiveIndex} + onSelectTab={(index) => { + setActiveIndex(index); + onSelectTab?.(index); + }} projects={projects} />
diff --git a/app/components/story/NotebookStage3D.test.tsx b/app/components/story/NotebookStage3D.test.tsx index 079b97a..ab9e7e6 100644 --- a/app/components/story/NotebookStage3D.test.tsx +++ b/app/components/story/NotebookStage3D.test.tsx @@ -4,6 +4,7 @@ import { getFeaturedProjects } from "@/lib/portfolio-data"; import NotebookStage3D, { getNotebookLidRotation, type NotebookStage3DProps, + updateNotebookScreenMatrix, } from "./NotebookStage3D"; import { selectNotebookProjects } from "./notebookProjects"; @@ -36,6 +37,7 @@ const props: NotebookStage3DProps = { isVisible: true, onSelectTab: jest.fn(), progress: { current: 0.56 }, + requestRender: { current: null }, projects, }; @@ -58,6 +60,50 @@ describe("getNotebookLidRotation", () => { }); }); +it("keeps browser corners on the physical LCD after opening and resizing", () => { + const matrix = new THREE.Matrix4(); + const rig = new THREE.Group(); + rig.position.set(0, -0.45, 0); + const hinge = new THREE.Group(); + hinge.position.set(0, 0.16, -1.06); + rig.add(hinge); + const lcd = new THREE.Object3D(); + lcd.position.set(0, -0.028, 1.1); + lcd.rotation.x = Math.PI / 2; + hinge.add(lcd); + const domWidth = 800; + const domHeight = (domWidth * 1.86) / 2.8; + + for (const size of [ + { width: 939.390625, height: 738, lidAngle: 74 }, + { width: 1123.375, height: 629.75, lidAngle: 112 }, + ]) { + const camera = new THREE.PerspectiveCamera(30, size.width / size.height); + camera.position.set(0, 1.65, 5.7); + camera.rotation.x = -0.19; + hinge.rotation.x = getNotebookLidRotation(size.lidAngle); + updateNotebookScreenMatrix(matrix, lcd, camera, size); + + for (const [u, v] of [ + [0, 0], + [1, 0], + [1, 1], + [0, 1], + ]) { + const expected = new THREE.Vector3((u - 0.5) * 2.8, (0.5 - v) * 1.86, 0) + .applyMatrix4(lcd.matrixWorld) + .project(camera); + const actual = new THREE.Vector3( + u * domWidth, + v * domHeight, + 0, + ).applyMatrix4(matrix); + expect(actual.x).toBeCloseTo(((expected.x + 1) * size.width) / 2, 6); + expect(actual.y).toBeCloseTo(((1 - expected.y) * size.height) / 2, 6); + } + } +}); + describe("NotebookStage3D", () => { beforeEach(() => { jest.spyOn(console, "error").mockImplementation(() => undefined); @@ -66,26 +112,6 @@ describe("NotebookStage3D", () => { afterEach(() => { jest.restoreAllMocks(); }); - it("renders the procedural laptop and the browser surface", () => { - const { container } = render(); - - expect(screen.getByTestId("notebook-stage")).toBeInTheDocument(); - expect(screen.getByTestId("mock-canvas")).toBeInTheDocument(); - expect(screen.getByTestId("notebook-browser")).toBeInTheDocument(); - expect( - screen.getAllByTestId("mock-roundedbox").length, - ).toBeGreaterThanOrEqual(5); - expect(container.querySelector("canvas")).not.toBeInTheDocument(); - }); - - it("pauses the renderer when the stage is outside the viewport", () => { - render(); - - expect(screen.getByTestId("mock-canvas")).toHaveAttribute( - "data-frameloop", - "never", - ); - }); it("returns usable browser content when the stage boundary fails", () => { const onStageError = jest.fn(); diff --git a/app/components/story/NotebookStage3D.tsx b/app/components/story/NotebookStage3D.tsx index b6462cc..dea9eed 100644 --- a/app/components/story/NotebookStage3D.tsx +++ b/app/components/story/NotebookStage3D.tsx @@ -1,18 +1,18 @@ "use client"; import { Html, RoundedBox } from "@react-three/drei"; -import { Canvas, useFrame } from "@react-three/fiber"; +import { Canvas, useFrame, useThree } from "@react-three/fiber"; import { Component, type ReactNode, + type RefObject, useEffect, useLayoutEffect, useMemo, useRef, - useState, } from "react"; import * as THREE from "three"; -import NotebookBrowser from "./NotebookBrowser"; +import NotebookBrowser, { type NotebookBrowserHandle } from "./NotebookBrowser"; import NotebookFallback from "./NotebookFallback"; import type { NotebookProject } from "./notebookProjects"; import { getNotebookFrame, type NotebookFrame } from "./notebookTimeline"; @@ -21,6 +21,7 @@ type ProgressRef = { current: number }; export type NotebookStage3DProps = { progress: ProgressRef; + requestRender: { current: (() => void) | null }; projects: NotebookProject[]; activeIndex: number; onSelectTab: (index: number) => void; @@ -28,7 +29,7 @@ export type NotebookStage3DProps = { onStageError?: () => void; }; -type NotebookSceneProps = Omit; +type NotebookSceneProps = NotebookStage3DProps; /** * Maps the timeline lid angle onto the hinge rotation. 0° = closed (lid @@ -42,11 +43,10 @@ export function getNotebookLidRotation(lidAngle: number): number { return radians === 0 ? 0 : -radians; } -// The laptop is built procedurally in world units and the rig stays at scale -// 1 so the DOM overlay (drei Html transform) aligns with the physical screen. +// The laptop and its DOM screen share the same world-space geometry. const RIG_POSITION: [number, number, number] = [0, -0.45, 0]; -const CAMERA_POSITION: [number, number, number] = [0, 2, 7.4]; -const CAMERA_ROTATION: [number, number, number] = [-0.2, 0, 0]; +const CAMERA_POSITION: [number, number, number] = [0, 1.65, 5.7]; +const CAMERA_ROTATION: [number, number, number] = [-0.19, 0, 0]; const BASE = { width: 3.2, height: 0.16, depth: 2.2 }; const HINGE: [number, number, number] = [0, 0.16, -1.06]; @@ -63,7 +63,55 @@ const KEYBOARD_Z_START = -0.9; const KEYBOARD_Y = 0.185; const SPACEBAR_Z = 0.12; -const SCREEN_DOM_DISTANCE_FACTOR = 2.2; +const SCREEN_DOM_WIDTH = 800; +const SCREEN_DOM_HEIGHT = + (SCREEN_DOM_WIDTH * SCREEN_GLASS.depth) / SCREEN_GLASS.width; +const SCREEN_PIXELS_TO_WORLD = new THREE.Matrix4() + .makeScale( + SCREEN_GLASS.width / SCREEN_DOM_WIDTH, + -SCREEN_GLASS.width / SCREEN_DOM_WIDTH, + 1, + ) + .setPosition(-SCREEN_GLASS.width / 2, SCREEN_GLASS.depth / 2, 0); +const SCREEN_ORIGIN: [number, number] = [0, 0]; +const getScreenOrigin = () => SCREEN_ORIGIN; + +export function updateNotebookScreenMatrix( + matrix: THREE.Matrix4, + screen: THREE.Object3D, + camera: THREE.Camera, + size: { width: number; height: number }, +): THREE.Matrix4 { + screen.updateWorldMatrix(true, false); + camera.updateMatrixWorld(); + const halfWidth = size.width / 2; + const halfHeight = size.height / 2; + // One pixel-space matrix keeps CSS paint and hit-testing on the LCD plane. + matrix + .set( + halfWidth, + 0, + 0, + halfWidth, + 0, + -halfHeight, + 0, + halfHeight, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + ) + .multiply(camera.projectionMatrix) + .multiply(camera.matrixWorldInverse) + .multiply(screen.matrixWorld) + .multiply(SCREEN_PIXELS_TO_WORLD); + return matrix.multiplyScalar(1 / matrix.elements[15]); +} type LaptopMaterials = { chassis: THREE.MeshStandardMaterial; @@ -111,9 +159,11 @@ function createLaptopMaterials(): LaptopMaterials { } function setLaptopOpacity(materials: LaptopMaterials, opacity: number) { - for (const material of Object.values(materials)) { - material.opacity = opacity; - } + materials.chassis.opacity = opacity; + materials.keys.opacity = opacity; + materials.dark.opacity = opacity; + materials.accent.opacity = opacity; + materials.screen.opacity = opacity; } function disposeLaptopMaterials(materials: LaptopMaterials) { @@ -217,48 +267,71 @@ function LaptopLid({ materials }: { materials: LaptopMaterials }) { radius={0.02} smoothness={2} /> - - - ); } function ScreenSurface({ frame, + material, projects, activeIndex, onSelectTab, }: { - frame: NotebookFrame; + frame: RefObject; + material: THREE.MeshStandardMaterial; projects: NotebookProject[]; activeIndex: number; onSelectTab: (index: number) => void; }) { + const screen = useRef(null); + const surface = useRef(null); + const browser = useRef(null); + const projection = useMemo(() => new THREE.Matrix4(), []); + useFrame(({ camera, size }) => { + if (surface.current && screen.current) { + updateNotebookScreenMatrix(projection, screen.current, camera, size); + surface.current.style.transform = `matrix3d(${projection.elements.join(",")})`; + surface.current.style.opacity = String(frame.current.screenOpacity); + surface.current.inert = frame.current.screenOpacity < 0.95; + surface.current.setAttribute( + "aria-hidden", + String(frame.current.screenOpacity < 0.95), + ); + } + browser.current?.updateFrame(frame.current); + }); return ( - -
- 0.05} - onSelectTab={onSelectTab} - projects={projects} - /> -
- + + + + +
+ +
+ + ); } @@ -267,33 +340,34 @@ function NotebookScene({ onSelectTab, progress, projects, + requestRender, + isVisible, }: NotebookSceneProps) { const lidRig = useRef(null); - const smoothProgress = useRef(progress.current); - const elapsedForDom = useRef(0); - const [frame, setFrame] = useState(() => - getNotebookFrame(progress.current, projects.length), - ); + const frame = useRef(getNotebookFrame(progress.current, projects.length)); const materials = useMemo(createLaptopMaterials, []); + const invalidate = useThree((state) => state.invalidate); useEffect(() => () => disposeLaptopMaterials(materials), [materials]); + useEffect(() => { + requestRender.current = isVisible ? invalidate : null; + if (isVisible) invalidate(); + return () => { + requestRender.current = null; + }; + }, [invalidate, isVisible, requestRender]); - useFrame((_, delta) => { - smoothProgress.current += - (progress.current - smoothProgress.current) * Math.min(1, delta * 8); - const nextFrame = getNotebookFrame(smoothProgress.current, projects.length); - + useFrame(() => { + const nextFrame = getNotebookFrame( + progress.current, + projects.length, + frame.current, + ); if (lidRig.current) { lidRig.current.rotation.x = getNotebookLidRotation(nextFrame.lidAngle); } setLaptopOpacity(materials, nextFrame.deviceOpacity); - - elapsedForDom.current += delta; - if (elapsedForDom.current >= 1 / 24) { - elapsedForDom.current = 0; - setFrame(nextFrame); - } - }); + }, -1); return ( @@ -307,6 +381,7 @@ function NotebookScene({ @@ -348,19 +423,14 @@ class NotebookStageBoundary extends Component< }} className="notebook-story-canvas" dpr={[1, 1.5]} - frameloop={this.props.isVisible ? "always" : "never"} + frameloop={this.props.isVisible ? "demand" : "never"} gl={{ alpha: true, antialias: true, powerPreference: "high-performance", }} > - + ); } diff --git a/app/components/story/NotebookStory.test.tsx b/app/components/story/NotebookStory.test.tsx index 4ede3f5..acda9e4 100644 --- a/app/components/story/NotebookStory.test.tsx +++ b/app/components/story/NotebookStory.test.tsx @@ -1,10 +1,6 @@ import { act, render, screen, waitFor } from "@testing-library/react"; import { getFeaturedProjects } from "@/lib/portfolio-data"; -import NotebookStory, { - canUseNotebook3D, - getNotebookRunwayVh, - getNotebookSeekProgress, -} from "./NotebookStory"; +import NotebookStory, { canUseNotebook3D } from "./NotebookStory"; const mockNotebookStage = jest.fn(({ isVisible }: { isVisible: boolean }) => (
@@ -135,15 +131,10 @@ describe("NotebookStory", () => { await waitFor(() => expect(screen.getByTestId("notebook-stage")).toBeInTheDocument(), ); - expect( - screen.getByLabelText("Projetos em produção no notebook"), - ).toHaveAttribute("data-notebook-runway-vh", "520"); }); it("stays paused when the tab returns while the section is offscreen", async () => { - const addEventListener = jest.spyOn(document, "addEventListener"); - const removeEventListener = jest.spyOn(document, "removeEventListener"); - const { unmount } = render(); + render(); const stage = await screen.findByTestId("notebook-stage"); expect(stage).toHaveAttribute("data-is-visible", "false"); @@ -163,18 +154,6 @@ describe("NotebookStory", () => { setDocumentHidden(false); act(() => document.dispatchEvent(new Event("visibilitychange"))); expect(stage).toHaveAttribute("data-is-visible", "false"); - - expect( - addEventListener.mock.calls.filter( - ([type]) => type === "visibilitychange", - ), - ).toHaveLength(1); - unmount(); - expect( - removeEventListener.mock.calls.filter( - ([type]) => type === "visibilitychange", - ), - ).toHaveLength(1); }); it("returns to the static fallback when the viewport loses desktop eligibility", async () => { render(); @@ -208,12 +187,6 @@ describe("NotebookStory", () => { ); }); - it("scales the runway from the number of projects", () => { - expect(getNotebookRunwayVh(1)).toBe(400); - expect(getNotebookRunwayVh(4)).toBe(520); - expect(getNotebookRunwayVh(99)).toBe(4320); - }); - it("requires desktop hover input without reduced motion", () => { const matchMedia = (query: string) => ({ @@ -245,27 +218,4 @@ describe("NotebookStory", () => { screen.queryByRole("tab", { name: /Twins Lab/i }), ).not.toBeInTheDocument(); }); - - it("maps tab seeks inside the browse window without a second scroll engine", () => { - const first = getNotebookSeekProgress(0, 4); - const middle = getNotebookSeekProgress(2, 4); - const last = getNotebookSeekProgress(3, 4); - - expect(first).toBeGreaterThanOrEqual(0.44); - expect(first).toBeLessThan(0.78); - expect(middle).toBeGreaterThan(first); - expect(last).toBeLessThan(0.78); - expect(getNotebookSeekProgress(99, 4)).toBeLessThan(0.78); - }); - - it("does not register a global scroll listener", () => { - const addEventListener = jest.spyOn(window, "addEventListener"); - mockMatchMedia({ reduced: true }); - - render(); - - expect( - addEventListener.mock.calls.some(([type]) => type === "scroll"), - ).toBe(false); - }); }); diff --git a/app/components/story/NotebookStory.tsx b/app/components/story/NotebookStory.tsx index facac9d..6fb4234 100644 --- a/app/components/story/NotebookStory.tsx +++ b/app/components/story/NotebookStory.tsx @@ -6,19 +6,17 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import type { PortfolioProjectView } from "@/lib/portfolio-data"; import NotebookFallback from "./NotebookFallback"; import { selectNotebookProjects } from "./notebookProjects"; -import { getNotebookFrame } from "./notebookTimeline"; +import { getNotebookFrame, getNotebookSeekProgress } from "./notebookTimeline"; const NotebookStage3D = dynamic(() => import("./NotebookStage3D"), { ssr: false, }); -const BROWSE_START = 0.44; -const BROWSE_END = 0.78; - type CapabilityWindow = Pick; export type NotebookStoryProps = { projects: PortfolioProjectView[]; + onLayoutReady?: () => void; }; export function canUseNotebook3D(view: CapabilityWindow): boolean { @@ -36,18 +34,7 @@ export function getNotebookRunwayVh(tabCount: number): number { 1, Number.isFinite(tabCount) ? Math.floor(tabCount) : 1, ); - return 360 + count * 40; -} - -export function getNotebookSeekProgress( - index: number, - tabCount: number, -): number { - const count = Math.max(0, Math.floor(tabCount)); - if (count < 1) return BROWSE_START; - const safeIndex = Math.min(Math.max(Math.floor(index), 0), count - 1); - const slot = (BROWSE_END - BROWSE_START) / count; - return BROWSE_START + slot * (safeIndex + 0.5); + return 220 + count * 85; } function clampIndex(index: number, length: number): number { @@ -55,13 +42,22 @@ function clampIndex(index: number, length: number): number { return Math.min(Math.max(index, 0), length - 1); } -export default function NotebookStory({ projects }: NotebookStoryProps) { +export default function NotebookStory({ + projects, + onLayoutReady, +}: NotebookStoryProps) { const notebookProjects = useMemo( () => selectNotebookProjects(projects), [projects], ); const sectionRef = useRef(null); const progressRef = useRef(0); + const requestRenderRef = useRef<(() => void) | null>(null); + const seekRef = useRef<((progress: number) => void) | null>(null); + const layoutReadyRef = useRef(onLayoutReady); + const failedRef = useRef(false); + const frameRef = useRef(getNotebookFrame(0, notebookProjects.length)); + const [capabilityResolved, setCapabilityResolved] = useState(false); const activeIndexRef = useRef(notebookProjects.length > 0 ? 0 : -1); const [engine, setEngine] = useState(false); const [sectionIntersects, setSectionIntersects] = useState(false); @@ -69,12 +65,21 @@ export default function NotebookStory({ projects }: NotebookStoryProps) { () => typeof document === "undefined" || !document.hidden, ); const [activeIndex, setActiveIndex] = useState(activeIndexRef.current); + useEffect(() => { + layoutReadyRef.current = onLayoutReady; + }, [onLayoutReady]); + useEffect(() => { + if (!engine && capabilityResolved) layoutReadyRef.current?.(); + }, [engine, capabilityResolved]); useEffect(() => { const updateEngine = () => { const nextEngine = - notebookProjects.length > 0 && canUseNotebook3D(window); + !failedRef.current && + notebookProjects.length > 0 && + canUseNotebook3D(window); if (!nextEngine) setSectionIntersects(false); setEngine(nextEngine); + setCapabilityResolved(true); }; updateEngine(); if (typeof window.matchMedia !== "function") return undefined; @@ -108,7 +113,9 @@ export default function NotebookStory({ projects }: NotebookStoryProps) { useEffect(() => { const section = sectionRef.current; - if (!engine || !section || !("IntersectionObserver" in window)) { + if (!engine || !section) return undefined; + if (!("IntersectionObserver" in window)) { + setSectionIntersects(true); return undefined; } @@ -139,33 +146,58 @@ export default function NotebookStory({ projects }: NotebookStoryProps) { gsap.registerPlugin(ScrollTrigger); const context = gsap.context(() => { const driver = { value: 0 }; + const applyProgress = () => { + progressRef.current = driver.value; + const nextIndex = getNotebookFrame( + driver.value, + notebookProjects.length, + frameRef.current, + ).activeTabIndex; + if (nextIndex !== activeIndexRef.current) { + activeIndexRef.current = nextIndex; + setActiveIndex(nextIndex); + } + requestRenderRef.current?.(); + }; const timeline = gsap.timeline({ defaults: { ease: "none" }, + onUpdate: applyProgress, scrollTrigger: { trigger: sectionRoot, start: "top top", end: "bottom bottom", - scrub: 0.85, + scrub: true, invalidateOnRefresh: true, - onUpdate: (self) => { - progressRef.current = self.progress; - const nextIndex = getNotebookFrame( - self.progress, - notebookProjects.length, - ).activeTabIndex; - if (nextIndex >= 0 && nextIndex !== activeIndexRef.current) { - activeIndexRef.current = nextIndex; - setActiveIndex(nextIndex); - } - }, + onRefresh: () => layoutReadyRef.current?.(), }, }); timeline.to(driver, { duration: 1, value: 1 }); + seekRef.current = (progress) => { + const trigger = timeline.scrollTrigger; + if (!trigger) return; + // Instant overrides the site's smooth CSS scrolling: no tour of intermediate tabs. + window.scrollTo({ + top: trigger.start + (trigger.end - trigger.start) * progress, + behavior: "instant", + }); + ScrollTrigger.update(); + timeline.progress(progress); + applyProgress(); + }; + timeline.scrollTrigger?.refresh(); }, sectionRoot); - cleanup = () => context.revert(); + cleanup = () => { + seekRef.current = null; + context.revert(); + }; } - void setupTimeline(); + void setupTimeline().catch(() => { + if (!cancelled) { + failedRef.current = true; + setEngine(false); + } + }); return () => { cancelled = true; cleanup(); @@ -173,47 +205,38 @@ export default function NotebookStory({ projects }: NotebookStoryProps) { }, [engine, notebookProjects.length]); const handleStageError = useCallback(() => { + failedRef.current = true; setEngine(false); }, []); - const seekToTab = useCallback( - (index: number) => { - const section = sectionRef.current; - if (!section || notebookProjects.length < 1) return; - - const rect = section.getBoundingClientRect(); - const sectionTop = (window.scrollY || window.pageYOffset) + rect.top; - const runwayDistance = Math.max( - section.offsetHeight - window.innerHeight, - 0, - ); - const target = - sectionTop + - runwayDistance * - getNotebookSeekProgress(index, notebookProjects.length); - window.scrollTo({ top: target, behavior: "smooth" }); - }, - [notebookProjects.length], - ); - const handleSelectTab = useCallback( (index: number) => { const safeIndex = clampIndex(index, notebookProjects.length); if (safeIndex < 0) return; activeIndexRef.current = safeIndex; setActiveIndex(safeIndex); - seekToTab(safeIndex); + if (engine) { + seekRef.current?.( + getNotebookSeekProgress(safeIndex, notebookProjects.length), + ); + } }, - [notebookProjects.length, seekToTab], + [engine, notebookProjects.length], ); if (!engine) { return (
0 ? " notebook-story-pending" : ""}`} data-testid="notebook-story" id="story" + ref={sectionRef} + style={ + { + "--notebook-runway": `${getNotebookRunwayVh(notebookProjects.length)}vh`, + } as CSSProperties + } >
@@ -224,7 +247,11 @@ export default function NotebookStory({ projects }: NotebookStoryProps) { tecnologias em produção.

- +
); @@ -265,6 +292,7 @@ export default function NotebookStory({ projects }: NotebookStoryProps) { onSelectTab={handleSelectTab} onStageError={handleStageError} progress={progressRef} + requestRender={requestRenderRef} projects={notebookProjects} />
diff --git a/app/components/story/notebookProjects.test.ts b/app/components/story/notebookProjects.test.ts index 63b8a71..64ce009 100644 --- a/app/components/story/notebookProjects.test.ts +++ b/app/components/story/notebookProjects.test.ts @@ -7,7 +7,7 @@ import { selectNotebookProjects } from "./notebookProjects"; const projectsFixture = getFeaturedProjects(null); describe("selectNotebookProjects", () => { - it("returns the four ordered projects with local screenshots", () => { + it("returns featured projects in notebook order", () => { const result = selectNotebookProjects(projectsFixture); expect(result.map((project) => project.id)).toEqual([ @@ -16,11 +16,6 @@ describe("selectNotebookProjects", () => { "sev-modaintima", "as-servicos", ]); - expect( - result.every((project) => - project.screenshotSrc.startsWith("/assets/prints/"), - ), - ).toBe(true); }); it("omits a project when its screenshot mapping is missing", () => { diff --git a/app/components/story/notebookProjects.ts b/app/components/story/notebookProjects.ts index 9f3605b..dda3c1b 100644 --- a/app/components/story/notebookProjects.ts +++ b/app/components/story/notebookProjects.ts @@ -9,6 +9,8 @@ export type NotebookProject = { demoCheckedAt: PortfolioProjectView["demoCheckedAt"]; technologies: string[]; screenshotSrc: string; + screenshotWidth: number; + screenshotHeight: number; }; const NOTEBOOK_ORDER = [ @@ -22,10 +24,10 @@ const SCREENSHOT_BY_PROJECT_ID: Record< (typeof NOTEBOOK_ORDER)[number], string > = { - nutriscan: "/assets/prints/print-nutriscan.png", - "sc-plus": "/assets/prints/print-scplus.png", - "sev-modaintima": "/assets/prints/print-sev.png", - "as-servicos": "/assets/prints/print-asservicos.png", + nutriscan: "/assets/notebook/nutriscan.webp", + "sc-plus": "/assets/notebook/sc-plus.webp", + "sev-modaintima": "/assets/notebook/sev-modaintima.webp", + "as-servicos": "/assets/notebook/as-servicos.webp", }; function isApprovedDemoUrl( @@ -58,6 +60,8 @@ export function selectNotebookProjects( demoCheckedAt: project.demoCheckedAt, technologies: [...project.technologies], screenshotSrc, + screenshotWidth: 1600, + screenshotHeight: 1000, }, ]; }); diff --git a/app/components/story/notebookTimeline.test.ts b/app/components/story/notebookTimeline.test.ts index e85fc1a..d0d2b78 100644 --- a/app/components/story/notebookTimeline.test.ts +++ b/app/components/story/notebookTimeline.test.ts @@ -1,126 +1,75 @@ -import { getNotebookFrame } from "./notebookTimeline"; +import { getNotebookFrame, getNotebookSeekProgress } from "./notebookTimeline"; -describe("getNotebookFrame", () => { - it("clamps progress below zero and starts with a closed device", () => { - expect(getNotebookFrame(-1, 4)).toMatchObject({ - phase: "approach", - lidAngle: 0, - activeTabIndex: -1, - cursorVisible: false, - }); +describe("notebook choreography", () => { + it("opens and boots before browsing, then blanks the display before closing", () => { + const frames = Array.from({ length: 1001 }, (_, index) => + getNotebookFrame(index / 1000, 4), + ); + const phases = [...new Set(frames.map((frame) => frame.phase))]; + expect(phases).toEqual([ + "approach", + "open", + "boot", + "cursor-in", + "browse", + "hold", + "close", + ]); + for (const frame of frames) { + if (frame.phase === "open") expect(frame.screenOpacity).toBe(0); + if (frame.cursorVisible) expect(frame.screenOpacity).toBe(1); + if (frame.phase === "close" && frame.lidAngle < 112) + expect(frame.screenOpacity).toBe(0); + } + expect(getNotebookFrame(-1, 4).lidAngle).toBe(0); + expect(getNotebookFrame(2, 4).lidAngle).toBe(0); }); - it("clamps progress above one and ends with a closed device", () => { - expect(getNotebookFrame(2, 4)).toMatchObject({ - phase: "close", - lidAngle: 0, - activeTabIndex: -1, - cursorVisible: false, - }); - }); - - it("keeps the phase boundaries deterministic", () => { - expect(getNotebookFrame(0.1, 4).phase).toBe("open"); - expect(getNotebookFrame(0.25, 4).phase).toBe("boot"); - expect(getNotebookFrame(0.34, 4).phase).toBe("cursor-in"); - expect(getNotebookFrame(0.44, 4).phase).toBe("browse"); - expect(getNotebookFrame(0.78, 4).phase).toBe("hold"); - expect(getNotebookFrame(0.87, 4).phase).toBe("close"); - }); - - it("opens the lid before the browser starts", () => { - const frame = getNotebookFrame(0.22, 4); - - expect(frame.phase).toBe("open"); - expect(frame.lidAngle).toBeGreaterThan(0); - expect(frame.screenOpacity).toBe(0); - }); - - it("boots the screen before the cursor enters", () => { - expect(getNotebookFrame(0.25, 4).screenOpacity).toBe(0); - expect(getNotebookFrame(0.34, 4).screenOpacity).toBe(1); - expect(getNotebookFrame(0.4, 4).cursorVisible).toBe(true); - }); - - it("turns the screen off before the lid closes", () => { - const screenOff = getNotebookFrame(0.9, 4); - const closing = getNotebookFrame(0.95, 4); - - expect(screenOff).toMatchObject({ - phase: "close", - lidAngle: 112, - screenOpacity: 0, - }); - expect(closing.screenOpacity).toBe(0); - expect(closing.lidAngle).toBeGreaterThan(0); - expect(closing.lidAngle).toBeLessThan(112); - }); - - it("selects each tab only inside the browse window", () => { - expect(getNotebookFrame(0.43, 4).activeTabIndex).toBe(-1); - expect(getNotebookFrame(0.48, 4).activeTabIndex).toBe(0); - expect(getNotebookFrame(0.57, 4).activeTabIndex).toBe(1); - expect(getNotebookFrame(0.67, 4).activeTabIndex).toBe(2); - expect(getNotebookFrame(0.76, 4).activeTabIndex).toBe(3); - }); - - it("holds the final tab until the closing phase", () => { - expect(getNotebookFrame(0.84, 4)).toMatchObject({ - phase: "hold", - activeTabIndex: 3, - cursorVisible: true, - }); - expect(getNotebookFrame(0.88, 4)).toMatchObject({ - phase: "close", - activeTabIndex: -1, - cursorVisible: false, - }); - }); - - it("emits a deterministic cursor click pulse for each tab", () => { - const first = getNotebookFrame(0.475, 4); - const later = getNotebookFrame(0.56, 4); - - expect(first.cursorClicking).toBe(true); - expect(later.cursorClicking).toBe(true); - expect(first.cursorX).toBeGreaterThanOrEqual(0); - expect(first.cursorX).toBeLessThanOrEqual(1); - expect(first.cursorY).toBeGreaterThanOrEqual(0); - expect(first.cursorY).toBeLessThanOrEqual(1); - }); - - it("moves the cursor between tab targets instead of teleporting", () => { - const previous = getNotebookFrame(0.525, 4); - const moving = getNotebookFrame(0.532, 4); - const target = getNotebookFrame(0.56, 4); - - expect(moving.cursorX).toBeGreaterThan(previous.cursorX); - expect(moving.cursorX).toBeLessThan(target.cursorX); - expect(moving.cursorY).toBe(target.cursorY); - }); - - it("lands the click pulse on the center of the selected tab", () => { - for (const progress of [0.475, 0.56, 0.65, 0.735]) { - const frame = getNotebookFrame(progress, 4); - expect(frame.cursorClicking).toBe(true); - expect(frame.cursorX).toBeCloseTo((frame.activeTabIndex + 0.5) / 4, 6); + it("keeps the previous project until cursor arrival, including reverse scroll", () => { + const frames = Array.from({ length: 10001 }, (_, index) => + getNotebookFrame(index / 10000, 4), + ); + for (let selected = 1; selected < 4; selected += 1) { + const arrival = frames.findIndex( + (frame) => frame.activeTabIndex === selected, + ); + const before = getNotebookFrame((arrival - 1) / 10000, 4); + const atClick = frames[arrival]; + expect(before.activeTabIndex).toBe(selected - 1); + expect(before.cursorClicking).toBe(false); + expect(atClick.cursorClicking).toBe(true); + expect(atClick.cursorX).toBeCloseTo((selected + 0.5) / 4); + const reversed = getNotebookFrame((arrival - 2) / 10000, 4); + expect(reversed.activeTabIndex).toBe(selected - 1); + expect(reversed.cursorX).toBeLessThan(atClick.cursorX); + expect(reversed.cursorX).toBeGreaterThan((selected - 0.5) / 4); } }); - it("tracks the real number of tabs", () => { - expect(getNotebookFrame(0.68, 2).cursorX).toBeCloseTo(0.75, 6); - expect(getNotebookFrame(0.6, 3).cursorX).toBeCloseTo(0.5, 6); + it("seeks directly into a readable hold for the requested project", () => { + for (const count of [1, 4]) { + for (let index = 0; index < count; index += 1) { + const progress = getNotebookSeekProgress(index, count); + const frame = getNotebookFrame(progress, count); + expect(frame.activeTabIndex).toBe(index); + expect(frame.screenOpacity).toBe(1); + expect(frame.cursorClicking).toBe(false); + expect(getNotebookFrame(progress + 0.03, count).activeTabIndex).toBe( + index, + ); + } + } + expect( + getNotebookFrame(getNotebookSeekProgress(99, 4), 4).activeTabIndex, + ).toBe(3); }); - it("is deterministic when rewound to the same progress", () => { - expect(getNotebookFrame(0.61, 4)).toEqual(getNotebookFrame(0.61, 4)); - }); - - it("does not expose an invalid tab when there are no projects", () => { + it("does not expose a tab or cursor for empty or invalid project counts", () => { expect(getNotebookFrame(0.6, 0)).toMatchObject({ activeTabIndex: -1, cursorVisible: false, cursorClicking: false, }); + expect(getNotebookFrame(0.6, Number.NaN).activeTabIndex).toBe(-1); }); }); diff --git a/app/components/story/notebookTimeline.ts b/app/components/story/notebookTimeline.ts index 8c51fc8..8095023 100644 --- a/app/components/story/notebookTimeline.ts +++ b/app/components/story/notebookTimeline.ts @@ -19,197 +19,99 @@ export type NotebookFrame = { cursorClicking: boolean; }; +const OPEN_START = 0.06; +const BOOT_START = 0.18; +const CURSOR_START = 0.23; +const BROWSE_START = 0.3; +const BROWSE_END = 0.84; +const CLOSE_START = 0.9; +const CLOSE_LID_START = 0.93; const OPEN_ANGLE = 112; -const BROWSE_START = 0.44; -const BROWSE_END = 0.78; -const HOLD_END = 0.87; -const CLOSE_LID_START = 0.9; -const TAB_CLICK_Y = 0.3; -const PARK = { x: 0.5, y: 0.95 }; +const ARRIVAL = 0.18; function clamp(value: number, min: number, max: number): number { return Math.min(Math.max(value, min), max); } -function normalizeProgress(progress: number): number { - return clamp(Number.isFinite(progress) ? progress : 0, 0, 1); +function between(value: number, start: number, end: number): number { + return clamp((value - start) / (end - start), 0, 1); } -function interpolate(from: number, to: number, progress: number): number { - return from + (to - from) * clamp(progress, 0, 1); -} - -function getPhase(progress: number): NotebookPhase { - if (progress < 0.1) return "approach"; - if (progress < 0.25) return "open"; - if (progress < 0.34) return "boot"; - if (progress < BROWSE_START) return "cursor-in"; - if (progress < BROWSE_END) return "browse"; - if (progress < HOLD_END) return "hold"; - return "close"; -} - -function getActiveTabIndex( - progress: number, +export function getNotebookSeekProgress( + index: number, tabCount: number, - phase: NotebookPhase, ): number { - if ( - tabCount < 1 || - phase === "approach" || - phase === "open" || - phase === "boot" || - phase === "cursor-in" || - phase === "close" - ) { - return -1; - } - - if (phase === "hold") { - return tabCount - 1; - } - - const browseProgress = - (progress - BROWSE_START) / (BROWSE_END - BROWSE_START); - return clamp(Math.floor(browseProgress * tabCount), 0, tabCount - 1); -} - -function tabCenterX(index: number, tabCount: number): number { - if (tabCount < 1) return PARK.x; - return (index + 0.5) / tabCount; -} - -function getCursorPoint( - progress: number, - phase: NotebookPhase, - activeTabIndex: number, - tabCount: number, -): { x: number; y: number } { - if (phase === "cursor-in") { - const cursorProgress = (progress - 0.34) / 0.1; - return { - x: interpolate(PARK.x, tabCenterX(0, tabCount), cursorProgress), - y: interpolate(PARK.y, TAB_CLICK_Y, cursorProgress), - }; - } - - if (activeTabIndex < 0) { - return { ...PARK }; - } - - const target = { x: tabCenterX(activeTabIndex, tabCount), y: TAB_CLICK_Y }; - if (phase !== "browse" || activeTabIndex === 0) return target; - - const browseProgress = - (progress - BROWSE_START) / (BROWSE_END - BROWSE_START); - const slotProgress = browseProgress * tabCount - activeTabIndex; - const previous = { - x: tabCenterX(activeTabIndex - 1, tabCount), - y: TAB_CLICK_Y, - }; - const moveProgress = clamp(slotProgress / 0.36, 0, 1); - - return { - x: interpolate(previous.x, target.x, moveProgress), - y: target.y, - }; -} - -function isCursorClicking( - progress: number, - phase: NotebookPhase, - tabCount: number, -): boolean { - if ( - tabCount < 1 || - phase === "approach" || - phase === "open" || - phase === "boot" || - phase === "close" - ) { - return false; - } - - if (phase === "cursor-in") { - return progress >= 0.43; - } - - if (phase === "hold") { - return false; - } - - const browseProgress = - (progress - BROWSE_START) / (BROWSE_END - BROWSE_START); - const slotProgress = (browseProgress * tabCount) % 1; - return slotProgress >= 0.36 && slotProgress < 0.5; + const count = Number.isFinite(tabCount) + ? Math.max(0, Math.floor(tabCount)) + : 0; + if (!count) return BROWSE_START; + const selected = clamp( + Number.isFinite(index) ? Math.floor(index) : 0, + 0, + count - 1, + ); + return ( + BROWSE_START + ((BROWSE_END - BROWSE_START) * (selected + 0.6)) / count + ); } +/** One reversible clock. Each tab arrives/clicks before its long reading hold. */ export function getNotebookFrame( progress: number, tabCount: number, + target?: NotebookFrame, ): NotebookFrame { - const normalizedProgress = normalizeProgress(progress); - const normalizedTabCount = Math.max(0, Math.floor(tabCount)); - const phase = getPhase(normalizedProgress); - const activeTabIndex = getActiveTabIndex( - normalizedProgress, - normalizedTabCount, - phase, - ); - const isApproach = normalizedProgress < 0.1; - const isOpening = phase === "open"; - const isBooting = phase === "boot"; - const isClosing = phase === "close"; - const lidAngle = isOpening - ? interpolate(0, OPEN_ANGLE, (normalizedProgress - 0.1) / 0.15) - : isClosing - ? normalizedProgress < CLOSE_LID_START - ? OPEN_ANGLE - : interpolate( - OPEN_ANGLE, - 0, - (normalizedProgress - CLOSE_LID_START) / (1 - CLOSE_LID_START), - ) - : normalizedProgress >= 0.25 - ? OPEN_ANGLE - : 0; - const screenOpacity = isBooting - ? interpolate(0, 1, (normalizedProgress - 0.25) / 0.09) - : normalizedProgress >= 0.34 && !isClosing - ? 1 - : isClosing - ? interpolate( - 1, - 0, - (normalizedProgress - HOLD_END) / (CLOSE_LID_START - HOLD_END), - ) - : 0; - const deviceOpacity = isApproach - ? interpolate(0, 1, normalizedProgress / 0.1) - : isClosing - ? interpolate(1, 0.92, (normalizedProgress - HOLD_END) / (1 - HOLD_END)) - : 1; - const cursorVisible = - (phase === "cursor-in" || phase === "browse" || phase === "hold") && - normalizedTabCount > 0; - const { x: cursorX, y: cursorY } = getCursorPoint( - normalizedProgress, - phase, - activeTabIndex, - normalizedTabCount, - ); - - return { - phase, - lidAngle, - deviceOpacity, - screenOpacity, - activeTabIndex, - cursorVisible, - cursorX, - cursorY, - cursorClicking: - cursorVisible && - isCursorClicking(normalizedProgress, phase, normalizedTabCount), - }; + const p = clamp(Number.isFinite(progress) ? progress : 0, 0, 1); + const count = Number.isFinite(tabCount) + ? Math.max(0, Math.floor(tabCount)) + : 0; + const phase: NotebookPhase = + p < OPEN_START + ? "approach" + : p < BOOT_START + ? "open" + : p < CURSOR_START + ? "boot" + : p < BROWSE_START + ? "cursor-in" + : p < BROWSE_END + ? "browse" + : p < CLOSE_START + ? "hold" + : "close"; + const slot = between(p, BROWSE_START, BROWSE_END) * count; + const destination = clamp(Math.floor(slot), 0, Math.max(0, count - 1)); + const local = slot - destination; + const moving = phase === "browse" && destination > 0 && local < ARRIVAL; + const activeTabIndex = !count ? -1 : moving ? destination - 1 : destination; + const travel = between(local, 0, ARRIVAL); + const cursorTab = moving + ? destination - 1 + travel * travel * (3 - 2 * travel) + : destination; + const entry = between(p, CURSOR_START, BROWSE_START); + const frame = target ?? ({} as NotebookFrame); + frame.phase = phase; + frame.lidAngle = + OPEN_ANGLE * + between(p, OPEN_START, BOOT_START) * + (1 - between(p, CLOSE_LID_START, 1)); + frame.deviceOpacity = between(p, 0, OPEN_START); + frame.screenOpacity = + between(p, BOOT_START, CURSOR_START) * + (1 - between(p, CLOSE_START, CLOSE_LID_START)); + frame.activeTabIndex = activeTabIndex; + frame.cursorVisible = count > 0 && p >= CURSOR_START && p < CLOSE_START; + frame.cursorX = count + ? phase === "cursor-in" + ? 0.5 + (0.5 / count - 0.5) * entry + : (cursorTab + 0.5) / count + : 0.5; + frame.cursorY = phase === "cursor-in" ? 0.95 - 0.65 * entry : 0.3; + frame.cursorClicking = + count > 0 && + phase === "browse" && + (destination === 0 + ? local < 0.07 + : local >= ARRIVAL && local < ARRIVAL + 0.07); + return frame; } diff --git a/app/globals.css b/app/globals.css index 61c21c1..7e6a7cb 100644 --- a/app/globals.css +++ b/app/globals.css @@ -82,10 +82,6 @@ html { scroll-padding-top: 68px; } -html [id] { - scroll-margin-top: 68px; -} - .site-header-nav, .site-header-cv, .site-header-version { @@ -230,8 +226,6 @@ textarea { .ds-section { padding: clamp(72px, 9vw, 112px) clamp(24px, 6vw, 64px); border-bottom: 1px solid var(--border); - content-visibility: auto; - contain-intrinsic-size: auto 600px; } .ds-section:nth-of-type(even):not(.ds-section-dark) { @@ -1056,7 +1050,15 @@ textarea { .notebook-story-runway { position: relative; - min-height: var(--notebook-runway, 520vh); + min-height: var(--notebook-runway, 560vh); +} + +@media (min-width: 1025px) and (hover: hover) and (pointer: fine) and ( + prefers-reduced-motion: no-preference + ) { + .notebook-story-pending { + min-height: var(--notebook-runway, 560vh); + } } .notebook-story-sticky { @@ -1066,15 +1068,15 @@ textarea { height: 100dvh; min-height: 100dvh; place-items: center; - padding: clamp(40px, 7vw, 96px) clamp(20px, 6vw, 80px); + padding: 32px clamp(20px, 3vw, 48px); } .notebook-story-grid { display: grid; - grid-template-columns: minmax(180px, 0.44fr) minmax(0, 1fr); + grid-template-columns: minmax(160px, 0.24fr) minmax(0, 1fr); align-items: center; - gap: clamp(28px, 6vw, 96px); - width: min(1240px, 100%); + gap: clamp(20px, 3vw, 48px); + width: min(1440px, 100%); } .notebook-story-copy { @@ -1116,7 +1118,7 @@ textarea { position: relative; display: grid; min-width: 0; - min-height: min(62vw, 680px); + height: min(82dvh, 780px); place-items: center; } @@ -1144,19 +1146,91 @@ textarea { } .notebook-screen-surface { - width: min(660px, 68vw); pointer-events: auto; - min-width: 280px; overflow: hidden; border-radius: 2px; - transform: translateZ(0); + transform-origin: 0 0; } .notebook-screen-surface .notebook-browser { width: 100%; + height: 100%; box-shadow: none; } +.notebook-screen-surface .notebook-browser { + display: flex; + flex-direction: column; +} + +.notebook-screen-surface .notebook-browser-bar { + min-height: 26px; +} + +.notebook-screen-surface .notebook-browser-body { + display: flex; + flex: 1; + min-height: 0; + flex-direction: column; + padding: 10px 14px; +} + +.notebook-screen-surface .notebook-browser-heading { + display: none; +} + +.notebook-screen-surface .notebook-tablist { + margin-top: 0; +} + +.notebook-screen-surface .notebook-panel { + flex: 1; + min-height: 0; + grid-template-columns: 1fr; + grid-template-rows: minmax(0, 1fr) auto; + gap: 10px; + margin-top: 10px; +} + +.notebook-screen-surface .notebook-panel .notebook-screenshot-wrap { + grid-row: 1; + align-self: stretch; + width: 100%; + min-height: 0; + aspect-ratio: auto; +} + +.notebook-screen-surface .notebook-panel-copy { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + column-gap: 12px; + align-items: center; +} + +.notebook-screen-surface .notebook-panel-copy h3 { + font-size: 20px; +} + +.notebook-screen-surface .notebook-panel-copy > p { + grid-column: 1; + margin-top: 4px; + font-size: 12px; +} + +.notebook-screen-surface .notebook-panel-copy ul { + grid-column: 1; + margin-top: 6px; +} + +.notebook-screen-surface .notebook-panel-copy > a, +.notebook-screen-surface .notebook-panel-copy > span { + grid-column: 2; + grid-row: 1 / 4; + max-width: 180px; + margin-top: 0; + font-size: 11px; +} + .notebook-fallback { width: min(1080px, 100%); margin: 0 auto; @@ -1241,7 +1315,8 @@ textarea { .notebook-tablist { display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); + grid-auto-flow: column; + grid-auto-columns: minmax(0, 1fr); gap: 1px; margin-top: var(--sp-5); border-block: 1px solid rgba(244, 242, 237, 0.12); @@ -1274,8 +1349,9 @@ textarea { color: var(--white); } -.notebook-tab[data-cursor-clicking="true"] { - transform: scale(0.97); +.notebook-tab:focus-visible { + outline: 2px solid var(--slash); + outline-offset: -3px; } .notebook-tab-number { @@ -1296,12 +1372,16 @@ textarea { .notebook-panel { display: grid; - grid-template-columns: minmax(140px, 0.35fr) minmax(0, 1fr); - align-items: center; - gap: clamp(20px, 3vw, 36px); + grid-template-columns: 1fr; + align-items: start; + gap: var(--sp-6); margin-top: var(--sp-6); } +.notebook-panel-copy { + order: 2; +} + .notebook-panel-copy h3 { color: var(--white); font-family: var(--font-display); @@ -1375,38 +1455,43 @@ textarea { .notebook-screenshot-wrap { position: relative; overflow: hidden; - aspect-ratio: 16 / 9; + aspect-ratio: 8 / 5; border: 1px solid rgba(244, 242, 237, 0.16); background: var(--paper-dark); } +.notebook-screenshot-status { + position: absolute; + z-index: 2; + inset: auto 0 0; + padding: 10px 14px; + background: rgba(10, 10, 10, 0.92); + color: var(--paper); + font-size: 12px; + line-height: 1.4; +} + .notebook-screenshot-wrap img { display: block; width: 100%; height: 100%; object-fit: contain; } -.notebook-screenshot-current, -.notebook-screenshot-outgoing { +.notebook-screenshot { position: absolute; inset: 0; } .notebook-screenshot-current { - z-index: 0; - animation: notebook-screenshot-in 180ms ease both; + z-index: 1; + animation: notebook-screenshot-in 220ms ease both; } .notebook-screenshot-outgoing { z-index: 0; - animation: notebook-screenshot-out 180ms ease both; } -.notebook-screenshot-wrap img.notebook-screenshot-preload { - position: absolute; - z-index: -1; - width: 1px; - height: 1px; +.notebook-screenshot-pending { opacity: 0; pointer-events: none; } @@ -1420,35 +1505,26 @@ textarea { } } -@keyframes notebook-screenshot-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - .notebook-cursor { position: absolute; + top: 0; + left: 0; z-index: 3; - width: 15px; - height: 20px; - border: 2px solid var(--white); - background: var(--ink); - box-shadow: 2px 2px 0 var(--slash); + width: 28px; + height: 36px; + overflow: visible; + opacity: 0; pointer-events: none; - transform: translate(-50%, -45%) rotate(-18deg); - transition: - width 120ms ease, - height 120ms ease, - box-shadow 120ms ease; + transform-origin: 1px 1px; + filter: drop-shadow(1px 2px 1px rgba(0, 0, 0, 0.4)); } -.notebook-cursor.is-clicking { - width: 12px; - height: 16px; - box-shadow: 1px 1px 0 var(--slash); +.notebook-cursor-pulse { + opacity: 0; +} + +.notebook-cursor.is-clicking .notebook-cursor-pulse { + opacity: 0.7; } @media (max-width: 1024px) { @@ -1500,6 +1576,7 @@ textarea { } .notebook-tablist { + grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); } @@ -1528,8 +1605,431 @@ textarea { transition: none; animation: none; } +} - .notebook-tab[data-cursor-clicking="true"] { - transform: none; +/* Interactive quality laboratory — scoped to the Lighthouse section. */ +.quality-lab { + --quality-muted: color-mix(in srgb, var(--paper) 72%, transparent); + --quality-line: color-mix(in srgb, var(--paper) 18%, transparent); + color: var(--paper); +} + +.quality-intro { + display: grid; + grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.3fr); + gap: var(--sp-12); + align-items: center; + margin-bottom: var(--sp-10); +} + +.quality-copy .ds-eyebrow { + color: var(--slash); + margin-bottom: var(--sp-5); +} + +.quality-copy .ds-section-title { + max-width: 16ch; +} + +.quality-copy h2 span { + display: block; + color: var(--slash); +} + +.quality-copy > p:not(.ds-eyebrow) { + max-width: 44ch; + margin: var(--sp-6) 0; + color: var(--quality-muted); + font-size: 15px; + line-height: 1.8; +} + +.quality-copy .ds-link { + white-space: normal; + line-height: 1.7; +} + +.quality-visual { + min-width: 0; + border: 1px solid var(--quality-line); +} + +.quality-visual-label { + display: flex; + justify-content: space-between; + gap: var(--sp-4); + border-bottom: 1px solid var(--quality-line); + padding: var(--sp-4); + color: var(--quality-muted); + font: 10px / 1.5 var(--font-mono); + text-transform: uppercase; + letter-spacing: 0.06em; +} + +.quality-visual-label span:first-child { + color: var(--paper); +} + +.quality-blueprint { + display: block; + width: 100%; + height: auto; +} + +.quality-dimensions { + stroke: var(--quality-line); +} + +.quality-dimensions text { + fill: var(--quality-muted); + stroke: none; + font: 9px var(--font-mono); +} + +.quality-browser-frame { + fill: var(--ink); + stroke: color-mix(in srgb, var(--paper) 38%, transparent); +} + +.quality-wire { + stroke: color-mix(in srgb, var(--paper) 30%, transparent); +} + +.quality-browser-dots { + fill: var(--quality-muted); +} + +.quality-address { + fill: var(--quality-muted); + font: 10px var(--font-mono); +} + +.quality-browser-heading { + fill: var(--paper); + font: 700 24px var(--font-display); +} + +.quality-browser-button { + fill: var(--slash-dim); + stroke: color-mix(in srgb, var(--slash) 50%, transparent); +} + +.quality-browser-button-label { + fill: var(--paper); + font: 9px var(--font-mono); +} + +.quality-layer { + stroke: var(--slash); + stroke-width: 1.2px; + opacity: 0; + transition: opacity 180ms ease-out; +} + +.quality-layer text { + fill: var(--slash); + stroke: none; + font: 10px var(--font-mono); +} + +.quality-layer circle { + fill: var(--slash); +} + +.quality-highlight { + fill: color-mix(in srgb, var(--slash) 5%, transparent); +} + +.quality-focus-frame { + stroke-width: 2px; + stroke-dasharray: 5 3; +} + +.quality-lab[data-inspection="performance"] [data-layer="performance"], +.quality-lab[data-inspection="accessibility"] [data-layer="accessibility"], +.quality-lab[data-inspection="practices"] [data-layer="practices"], +.quality-lab[data-inspection="seo"] [data-layer="seo"] { + opacity: 1; +} + +.quality-annotation { + fill: var(--ink); + stroke: none; +} + +@media (prefers-reduced-motion: no-preference) { + .quality-lab[data-inspection="performance"] + [data-layer="performance"] + .quality-trace, + .quality-lab[data-inspection="accessibility"] + [data-layer="accessibility"] + .quality-trace, + .quality-lab[data-inspection="practices"] + [data-layer="practices"] + .quality-trace, + .quality-lab[data-inspection="seo"] [data-layer="seo"] .quality-trace { + stroke-dasharray: 1; + animation: quality-trace 650ms ease-out; + } +} + +@keyframes quality-trace { + from { + stroke-dashoffset: 1; + } + to { + stroke-dashoffset: 0; + } +} + +.quality-visual figcaption { + display: grid; + min-height: 64px; + border-top: 1px solid var(--quality-line); + padding: var(--sp-4); + color: var(--quality-muted); + font-size: 12px; + line-height: 1.65; +} + +/* Overlapping hidden panels reserve the tallest content without fixed heights. */ +.quality-visual figcaption span, +.quality-report { + grid-area: 1 / 1; +} + +.quality-visual figcaption span[aria-hidden="true"], +.quality-report[aria-hidden="true"] { + visibility: hidden; +} + +.quality-report-stack { + display: grid; +} + +.quality-controls { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + min-width: 0; + border: 0; +} + +.quality-control { + position: relative; + min-width: 0; + cursor: pointer; +} + +.quality-control input { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + opacity: 0; + cursor: pointer; +} + +.quality-control-content { + display: flex; + flex-direction: column; + gap: var(--sp-3); + height: 100%; + padding: var(--sp-5); + border: 1px solid var(--quality-line); + border-top-width: 2px; + transition: + background-color 180ms ease-out, + border-color 180ms ease-out; +} + +.quality-control + .quality-control .quality-control-content { + border-left: 0; +} + +.quality-control:hover .quality-control-content { + background: color-mix(in srgb, var(--paper) 5%, transparent); +} + +.quality-control input:checked + .quality-control-content { + border-top-color: var(--slash); + background: var(--slash-dim); +} + +.quality-control input:focus-visible + .quality-control-content { + outline: 2px solid var(--slash); + outline-offset: 4px; +} + +.quality-control-name { + display: flex; + align-items: center; + gap: var(--sp-2); + font-size: 15px; + font-weight: 600; +} + +.quality-control-name::before { + content: ""; + width: 7px; + height: 7px; + flex-shrink: 0; + border: 1px solid currentColor; + border-radius: 50%; +} + +.quality-control input:checked + span .quality-control-name::before { + background: var(--slash); + border-color: var(--slash); +} + +.quality-control-target { + display: flex; + align-items: baseline; + gap: var(--sp-2); + color: var(--quality-muted); + font: 11px / 1.2 var(--font-mono); +} + +.quality-control-target strong { + margin-left: auto; + color: var(--paper); + font-size: 36px; + font-weight: 500; + font-variant-numeric: tabular-nums; +} + +.quality-control input:checked + span strong { + color: var(--slash); +} + +.quality-hint, +.quality-disclaimer { + color: var(--quality-muted); + font-size: 12px; + line-height: 1.8; +} + +.quality-hint { + margin-top: var(--sp-4); +} + +.quality-report { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); + align-items: start; + gap: var(--sp-12); + min-height: 240px; + padding: var(--sp-8) 0; + border-bottom: 1px solid var(--quality-line); +} + +.quality-code { + color: var(--slash); + font: 10px / 1.8 var(--font-mono); + letter-spacing: 0.04em; + overflow-wrap: anywhere; +} + +.quality-report h3 { + margin: var(--sp-2) 0 var(--sp-3); + font: 600 clamp(20px, 2.4vw, 28px) / 1.2 var(--font-display); + letter-spacing: -0.025em; +} + +.quality-report-copy > p:last-child { + max-width: 60ch; + color: var(--quality-muted); + font-size: 14px; + line-height: 1.8; +} + +.quality-report ul { + list-style: none; + margin: 0; + padding: 0; +} + +.quality-report li { + display: flex; + gap: var(--sp-3); + padding: var(--sp-3) 0; + border-bottom: 1px solid var(--quality-line); + font-size: 13px; + line-height: 1.65; +} + +.quality-report li span { + color: var(--slash); +} + +.quality-disclaimer { + margin-top: var(--sp-5); + max-width: 90ch; +} + +@media (max-width: 1000px) { + .quality-intro { + grid-template-columns: 1fr; + gap: var(--sp-8); + } + + .quality-copy .ds-section-title, + .quality-copy > p:not(.ds-eyebrow) { + max-width: 650px; + } + + .quality-visual { + width: min(100%, 720px); + } +} + +@media (max-width: 680px) { + .quality-controls { + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: var(--sp-2); + } + + .quality-control + .quality-control .quality-control-content { + border-left: 1px solid var(--quality-line); + } + + .quality-control-content { + padding: var(--sp-4) var(--sp-3); + } + + .quality-control-name { + font-size: 13px; + } + + .quality-control-target strong { + font-size: 28px; + } + + .quality-visual-label { + padding: var(--sp-3); + font-size: 9px; + } + + .quality-report { + grid-template-columns: 1fr; + gap: var(--sp-4); + min-height: 350px; + } +} + +@media (max-width: 360px) { + .quality-control-content { + padding-inline: var(--sp-2); + } + + .quality-control-name { + font-size: 12px; + } +} + +@media (prefers-reduced-motion: reduce) { + .quality-layer, + .quality-control-content { + transition: none; } } diff --git a/app/servicos/[slug]/opengraph-image.tsx b/app/servicos/[slug]/opengraph-image.tsx index dc380d4..de010f5 100644 --- a/app/servicos/[slug]/opengraph-image.tsx +++ b/app/servicos/[slug]/opengraph-image.tsx @@ -40,8 +40,8 @@ export default async function Image({ return new ImageResponse( , OG_SIZE, ); diff --git a/app/servicos/[slug]/page.test.tsx b/app/servicos/[slug]/page.test.tsx index 33f3948..280b690 100644 --- a/app/servicos/[slug]/page.test.tsx +++ b/app/servicos/[slug]/page.test.tsx @@ -91,10 +91,18 @@ it("renders answer-first consulting, reciprocal case links and minimal schema", }); const { container } = render(ui); - const heading = screen.getByRole("heading", { level: 1 }); const answer = screen.getByText(service.answer); expect(answer).toBeVisible(); - expect(heading.nextElementSibling).toBe(answer); + for (const item of [ + ...service.outcomes, + ...service.examples, + ...service.process, + ]) { + expect(screen.getByText(item)).toBeVisible(); + } + for (const detail of service.technicalDetails) { + expect(screen.getByText(detail)).not.toBeVisible(); + } const primaryCtas = screen.getAllByRole("link", { name: service.ctaLabel, @@ -201,11 +209,6 @@ it("renders answer-first consulting, reciprocal case links and minimal schema", it("keeps hub cards and structured items aligned", () => { const { container } = render(); - const heading = screen.getByRole("heading", { level: 1 }); - expect(heading.nextElementSibling).toHaveTextContent( - /desenvolvimento.+consultoria.+engenharia de software/i, - ); - const visibleBreadcrumb = screen.getByRole("navigation", { name: "Breadcrumb", }); @@ -225,7 +228,7 @@ it("keeps hub cards and structured items aligned", () => { "BreadcrumbList", ]); const itemList = graph[1] as { - itemListElement: Array<{ position: number; url: string }>; + itemListElement: Array<{ position: number; url: string; name: string }>; }; expect(itemList.itemListElement.map(({ position }) => position)).toEqual([ 1, 2, 3, 4, 5, 6, @@ -236,7 +239,9 @@ it("keeps hub cards and structured items aligned", () => { expect([...structuredUrls].sort()).toEqual( publicServiceHrefs.map((href) => `${siteUrl}${href}`).sort(), ); - const visibleCards = screen.getAllByRole("link", { name: "Abrir página" }); + const visibleCards = itemList.itemListElement.map(({ name }) => + screen.getByRole("link", { name }), + ); const visibleHrefs = visibleCards.map((link) => link.getAttribute("href")); expect(visibleHrefs).toHaveLength(6); expect(new Set(visibleHrefs).size).toBe(6); diff --git a/app/servicos/[slug]/page.tsx b/app/servicos/[slug]/page.tsx index ecccd2f..c70826c 100644 --- a/app/servicos/[slug]/page.tsx +++ b/app/servicos/[slug]/page.tsx @@ -147,11 +147,8 @@ export default async function ServicePage({ params }: ServicePageProps) {
-
Para quem faz sentido
-

- Contextos em que esse serviço encaixa melhor -

-
    +

    Para quem faz sentido

    +
      {service.audience.map((item) => (
    • {item}
    • ))} @@ -159,11 +156,8 @@ export default async function ServicePage({ params }: ServicePageProps) {
-
O que muda
-

- Resultados que eu busco destravar -

-
    +

    O que podemos entregar

    +
      {service.outcomes.map((item) => (
    • {item}
    • ))} @@ -176,48 +170,59 @@ export default async function ServicePage({ params }: ServicePageProps) {
      -
      -
      Como eu estruturo
      -

      Processo de trabalho

      -
        - {service.process.map((step, index) => ( -
      1. - - {index + 1} - +
        +
        Da conversa à entrega
        +

        Como trabalhamos

        +
          + {service.process.map((step) => ( +
        1. {step}
        2. ))}
        -
        -
        Stack e repertório
        -

        - Tecnologias e capacidades envolvidas -

        +
        +
        Possibilidades de uso
        +

        Imagine na sua rotina

        - A stack entra como meio para resolver o problema certo, com - critério de manutenção, observabilidade e evolução do produto. + Exemplos ilustrativos para ajudar a explicar o serviço, não + projetos já entregues. O seu escopo será definido na conversa.

        -
          - {service.stack.map((item) => ( - - {item} - +
            + {service.examples.map((example) => ( +
          • {example}
          • ))}
      +
      +
      + + Detalhes técnicos e tecnologias + +
      +
        + {service.technicalDetails.map((detail) => ( +
      • {detail}
      • + ))} +
      +

      + Tecnologias consideradas neste serviço. A seleção depende do + problema e do ambiente; não é uma lista obrigatória para todo + projeto. +

      +
        + {service.stack.map((item) => ( +
      • + {item} +
      • + ))} +
      +
      +
      +
      @@ -226,11 +231,12 @@ export default async function ServicePage({ params }: ServicePageProps) {

      Casos relacionados

      - Projetos que reforçam esse tipo de entrega + Projetos para conhecer meu trabalho

      - Alguns exemplos de contexto técnico em que esse serviço se - conecta a entregas reais. + Referências de problemas e soluções relacionados. Cada projeto + usa as tecnologias indicadas no próprio case; não representa + todas as plataformas ou tecnologias oferecidas neste serviço.

@@ -246,7 +252,7 @@ export default async function ServicePage({ params }: ServicePageProps) {

    {caseStudy.stack.map((item) => ( -
  • +
  • {item}
  • ))} @@ -265,7 +271,7 @@ export default async function ServicePage({ params }: ServicePageProps) { target="_blank" rel="noreferrer" > - Abrir projeto + Abrir projeto: {caseStudy.title} ) : null} {caseStudy.githubUrl ? ( @@ -275,7 +281,7 @@ export default async function ServicePage({ params }: ServicePageProps) { target="_blank" rel="noreferrer" > - Ver código + Ver código: {caseStudy.title} ) : null}
@@ -290,12 +296,13 @@ export default async function ServicePage({ params }: ServicePageProps) {
Próximo passo

- Se esse serviço parece aderente ao seu contexto, a conversa - inicial já pode ser objetiva. + Conte o que você precisa resolver.

- Traga o sistema, o gargalo e o objetivo de negócio. Eu estruturo a - leitura técnica e indico o caminho mais seguro para avançar. + Pode ser uma ideia, uma tarefa que toma tempo ou um sistema que + precisa melhorar. Não é preciso chegar com uma solução técnica. + Atendo a partir de Garuva, no Norte de Santa Catarina, e + remotamente.

, OG_SIZE, ); diff --git a/app/servicos/page.tsx b/app/servicos/page.tsx index 3454b07..3fcca7f 100644 --- a/app/servicos/page.tsx +++ b/app/servicos/page.tsx @@ -1,15 +1,14 @@ import type { Metadata } from "next"; import Link from "next/link"; import HeroBackground from "@/app/components/cinematic/HeroBackground"; -import MagneticButton from "@/app/components/cinematic/MagneticButton"; import { safeJsonLd } from "@/lib/jsonld"; import { buildBreadcrumbList } from "@/lib/seo"; import { serviceHubLinks, siteName, siteUrl } from "@/lib/site-content"; const pageUrl = `${siteUrl}/servicos`; -const pageTitle = "Serviços de Engenharia de Software e Consultoria Técnica"; +const pageTitle = "Sites, Sistemas Web e Aplicativos Mobile e Desktop"; const pageDescription = - "Desenvolvimento e consultoria em engenharia de software, Next.js, Tauri, Rust, arquitetura e integração hardware + software para produtos e sistemas críticos."; + "Desenvolvimento de sites, sistemas web, aplicativos mobile e desktop para Windows e Linux. Integrações, melhorias e consultoria para o seu negócio."; export const metadata: Metadata = { title: pageTitle, @@ -80,13 +79,15 @@ export default function ServicesIndexPage() { -

Hub de serviços

-

- Serviços de engenharia de software para contextos técnicos de alta - exigência. +

Serviços de desenvolvimento

+

+ Da presença na internet ao sistema que move seu negócio.

- {pageDescription} + Sites e sistemas web, aplicativos mobile e aplicativos desktop + para Windows e Linux. Também integro ferramentas e melhoro + software que já está em uso. Começamos pelo que você precisa + resolver, não pela tecnologia.

@@ -94,25 +95,50 @@ export default function ServicesIndexPage() {
-
- {serviceHubLinks.map((service) => ( -
-
Serviço especializado
-

{service.label}

-

{service.description}

-
- - Abrir página - +
+

O que você precisa fazer?

+

+ Conheça as possibilidades abaixo. Cada serviço explica para quem + faz sentido, exemplos de uso, escopo e etapas de trabalho. Os + detalhes técnicos ficam disponíveis para aprofundar a conversa. +

+
+
+ {serviceHubLinks.map((service, index) => ( +
+
+ +

+ + {service.label} + +

+

{service.description}

))}
+
+

+ Ainda não sabe qual caminho seguir? +

+

+ Conte como funciona sua rotina e o que gostaria de mudar. + Definimos juntos a primeira entrega, as plataformas atendidas e os + limites do projeto antes de fechar a proposta. +

+ + Conversar sobre minha ideia + +
diff --git a/lib/site-content.test.ts b/lib/site-content.test.ts index 8ded29e..1fc6fe2 100644 --- a/lib/site-content.test.ts +++ b/lib/site-content.test.ts @@ -80,14 +80,6 @@ it("derives the exact related service set from the existing relationship", () => ); }); -it("gives every service a direct answer and consulting CTA", () => { - for (const service of servicePages) { - expect(service.answer.trim().length).toBeGreaterThan(40); - expect(service.ctaIntent).toBe("consulting"); - expect(service.ctaHref).toBe("/#contact"); - } -}); - it("resolves every declared related case ID", () => { const caseIds = new Set(caseStudies.map(({ id }) => id)); const unresolved = servicePages.flatMap(({ slug, relatedCaseIds }) => diff --git a/lib/site-content.ts b/lib/site-content.ts index 0ea7c9b..997e949 100644 --- a/lib/site-content.ts +++ b/lib/site-content.ts @@ -56,6 +56,8 @@ export interface ServicePageContent { audience: string[]; outcomes: string[]; process: string[]; + examples: string[]; + technicalDetails: string[]; stack: string[]; ctaIntent: "consulting"; ctaLabel: string; @@ -79,271 +81,291 @@ export interface CaseStudyContent { export const servicePages: ServicePageContent[] = [ { slug: "criacao-de-sites", - navLabel: "Criação de Sites", + navLabel: "Sites profissionais", eyebrow: "Presença digital", - seoTitle: "Criação de Sites e Sistemas Web com Next.js", + seoTitle: "Criação de Sites Profissionais e Institucionais", metaDescription: - "Criação de sites institucionais e sistemas web responsivos, com acessibilidade, performance e SEO técnico considerados desde a implementação.", - headline: "Criação de sites institucionais e sistemas web com Next.js.", + "Sites profissionais para apresentar serviços, produtos e canais de contato. Desenvolvimento responsivo com acessibilidade e SEO técnico, em escopo definido.", + headline: "Um site que explica seu negócio.", answer: - "Crio sites institucionais e sistemas web em Next.js, com escopo definido por objetivos, páginas, integrações e requisitos de acessibilidade, performance e SEO técnico. Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota.", + "Crio sites para apresentar sua empresa, mostrar o que você oferece e facilitar o contato. O projeto considera leitura no celular e no computador, conteúdo, páginas e funcionalidades combinadas antes do desenvolvimento.", intro: - "Desenvolvo sites e sistemas web responsivos com estrutura técnica para indexação e evolução do produto, sempre dentro do escopo acordado para conteúdo e integrações.", + "Apresente seu negócio na internet com um site profissional: serviços, produtos, portfólio e caminhos claros para entrar em contato.", audience: [ - "Empresas e profissionais que ainda não têm site ou precisam substituir uma experiência lenta e desatualizada.", - "Negócios que precisam organizar conteúdo e fundamentos técnicos para busca orgânica sem criar páginas locais artificiais.", - "Marcas que precisam de um site institucional rápido, com boa performance e pronto para escalar para um sistema web completo.", + "Empresas e profissionais que ainda não têm site ou precisam substituir uma presença desatualizada.", + "Negócios que querem explicar seus serviços sem depender apenas das redes sociais.", + "Equipes que precisam organizar páginas, conteúdo e contato em um endereço próprio.", ], outcomes: [ - "Site institucional rápido, responsivo e com boa nota em Core Web Vitals.", - "Estrutura de SEO técnico (title, metadata, dados estruturados e sitemap) desde o lançamento.", - "Presença digital pronta para captar clientes que pesquisam por serviços na sua cidade.", - "Base de código organizada, fácil de evoluir para loja, sistema ou painel administrativo.", + "Páginas com uma sequência clara: o que você faz, para quem e como entrar em contato.", + "Layout adaptado a celular e computador, com atenção à leitura e à navegação.", + "Publicação e orientação de uso dentro do escopo; domínio, hospedagem, produção de conteúdo e manutenção são combinados na proposta.", + ], + examples: [ + "Um site institucional para uma prestadora de serviços, com apresentação, áreas de atuação e contato.", + "Um catálogo para mostrar produtos e receber consultas, sem assumir uma loja com pagamento on-line.", + "Uma página de campanha para explicar uma oferta e orientar o próximo passo.", ], process: [ - "Levantamento do objetivo do site, público local e páginas necessárias.", - "Definição de estrutura, conteúdo e palavras-chave locais relevantes.", - "Implementação em Next.js com foco em performance, acessibilidade e SEO.", - "Publicação, configuração de domínio e orientação sobre indexação no Google.", + "Conversamos sobre o negócio, o público e o que o visitante precisa conseguir fazer.", + "Combinamos páginas, conteúdo, referências visuais, responsabilidades e orçamento.", + "Você acompanha a construção e revisa conteúdo e navegação em etapas.", + "Publicamos após a revisão e definimos o que entra em suporte ou evolução posterior.", + ], + technicalDetails: [ + "Implementação com Next.js e TypeScript, escolhendo renderização e carregamento conforme o conteúdo e as integrações.", + "HTML semântico, navegação por teclado, imagens dimensionadas e avaliação de carregamento orientam acessibilidade e performance.", + "Metadados, URLs canônicas, sitemap e dados estruturados quando aplicáveis ajudam a interpretação do site pelos buscadores; não garantem posição no Google.", ], stack: ["Next.js", "TypeScript", "Tailwind CSS", "SEO técnico", "Vercel"], ctaIntent: "consulting", - ctaLabel: "Conversar sobre o projeto", + ctaLabel: "Conversar sobre meu site", ctaHref: "/#contact", relatedCaseIds: ["sc-plus", "nutriscan"], faq: [ { - question: "Quanto custa um site profissional?", + question: "Quanto custa e o que preciso ter pronto?", answer: - "O custo de um site profissional depende do escopo: número de páginas, funcionalidades, integrações e exigências de SEO técnico e performance. Um site institucional enxuto custa menos do que um sistema web completo. Eu prefiro definir o orçamento depois de entender o objetivo do projeto, em uma conversa inicial sem compromisso.", + "O orçamento depende das páginas, conteúdo, funcionalidades e integrações. Podemos começar com uma conversa sobre seu negócio; nela definimos quem fornece textos, imagens e acessos, além dos custos de domínio e hospedagem.", }, { - question: "Site sob medida ou WordPress: qual escolher?", + question: "O site também funciona no celular?", answer: - "Escolha WordPress quando o conteúdo muda toda semana e alguém da equipe precisa publicar sem ajuda técnica; escolha um site sob medida quando performance, SEO técnico e evolução futura pesam mais. Sites feitos sob medida em Next.js carregam mais rápido, têm menos superfície de manutenção e escalam para sistema web sem migração. Para muitos negócios locais, o sob medida compensa pela velocidade e pela longevidade.", + "Sim, a proposta considera um site responsivo, acessado pelo navegador no celular e no computador. Isso não equivale a um aplicativo instalado; se você precisa de um app, avaliamos esse escopo separadamente.", }, { - question: "Você faz manutenção de site depois do lançamento?", + question: "Posso contratar melhorias depois da publicação?", answer: - "Sim. Além do lançamento, eu estruturo projetos pensando na manutenção do site: atualizações de dependências, ajustes de conteúdo, monitoramento de performance e evolução incremental de funcionalidades. Um site profissional não termina na publicação; ele precisa continuar rápido, seguro e bem posicionado. Por isso a entrega inclui orientação sobre indexação no Google e uma base de código organizada, fácil de evoluir.", - }, - { - question: "Como funciona o atendimento local e remoto?", - answer: - "Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota. O trabalho segue conversa inicial, levantamento de escopo e entregas acompanhadas de perto; qualquer estratégia local é definida a partir da atuação real de cada negócio.", + "Sim. Ajustes de conteúdo, novas páginas, manutenção e novas funcionalidades podem ser combinados em continuidade. O que está incluído na entrega inicial e no suporte fica definido na proposta.", }, ], }, { slug: "engenharia-de-software", - navLabel: "Engenharia de Software", - eyebrow: "Serviço principal", - seoTitle: "Engenharia de Software para Produtos e Sistemas Críticos", + navLabel: "Sistemas web e aplicativos mobile", + eyebrow: "Engenharia de software", + seoTitle: "Desenvolvimento de Sistemas Web e Aplicativos Mobile", metaDescription: - "Engenharia de software para evolução de produtos, integrações complexas e sistemas críticos. Entrega ponta a ponta com foco em arquitetura clara, estabilidade e velocidade de execução.", - headline: - "Engenharia de software para evoluir produto sem aumentar o caos técnico.", + "Sistemas web e aplicativos mobile sob medida, integração entre ferramentas e evolução de software existente. Escopo, plataformas e entregas definidos por projeto.", + headline: "Sistemas e apps para o seu trabalho.", answer: - "Atuo no diagnóstico, arquitetura, implementação e sustentação de produtos e sistemas, com entregáveis e limites definidos pelo risco técnico e pelo recorte acordado. Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota.", + "Desenvolvo sistemas web, usados no navegador, e aplicativos mobile para celular. Também conecto ferramentas e evoluo sistemas existentes. Definimos juntos os usuários, as funções, as plataformas atendidas e a primeira entrega útil para o negócio.", intro: - "Atuo em discovery, arquitetura, implementação e sustentação de software para equipes que precisam entregar com previsibilidade, sem sacrificar clareza técnica nem operação.", + "Organize a operação com um sistema web ou aplicativo mobile sob medida. Conecte ferramentas, reduza tarefas repetidas ou melhore um sistema que já existe.", audience: [ - "Times que já tem produto em operação e precisam voltar a ganhar velocidade.", - "Empresas que sofrem com integrações, retrabalho e backlog técnico acumulado.", - "Operações em que confiabilidade e continuidade pesam mais do que velocidade teatral.", + "Empresas que controlam processos em planilhas, mensagens e ferramentas que não conversam entre si.", + "Negócios que precisam de um sistema interno, área de clientes ou aplicativo para uso no celular.", + "Equipes com software em operação que precisam corrigir problemas e continuar evoluindo.", ], outcomes: [ - "Arquitetura mais legível para manter e escalar.", - "Entrega incremental com menos retrabalho entre produto e engenharia.", - "Integrações mais robustas entre sistemas, APIs e fluxos internos.", - "Base técnica preparada para crescer sem depender de improviso constante.", + "Uma primeira versão com as funções prioritárias, em vez de tentar resolver toda a operação de uma vez.", + "Fluxos para consultar, registrar e compartilhar informações, com acessos definidos por perfil.", + "Escopo explícito para web ou mobile: dispositivos, sistemas operacionais, uso sem internet e distribuição são avaliados na proposta, não presumidos.", + ], + examples: [ + "Um sistema web para acompanhar pedidos e atendimentos em uma única tela.", + "Um aplicativo mobile para uma equipe consultar tarefas e registrar visitas pelo celular.", + "Uma integração para transferir dados entre o sistema de vendas e outra ferramenta, sem digitação duplicada.", ], process: [ - "Diagnóstico do contexto técnico, do risco e do gargalo principal.", - "Definição do recorte de entrega com prioridades e trade-offs claros.", - "Implementação com rastreabilidade, code review e critério de produção.", - "Handoff ou continuidade com documentação e próximo ciclo recomendado.", + "Entendemos a rotina atual, quem usa o sistema e onde estão as dificuldades.", + "Escolhemos o primeiro fluxo a entregar e combinamos plataformas, integrações e critérios de aceitação.", + "Construímos em etapas curtas, com demonstrações e revisão de quem vai usar.", + "Validamos no ambiente combinado e entregamos orientações para operação, manutenção e próximos passos.", + ], + technicalDetails: [ + "A arquitetura parte das regras do negócio, dos limites entre módulos e dos contratos de API. Migrações e integrações consideram os dados e o sistema já em uso.", + "Autorização por perfil, validação no servidor, tratamento de falhas e testes dos fluxos críticos entram conforme os riscos do projeto.", + "A experiência profissional declarada inclui Web e Mobile. A tecnologia mobile é definida após avaliar dispositivos e recursos necessários; os cases abaixo não comprovam um framework mobile específico.", ], stack: ["Next.js", "TypeScript", "Node.js", "PostgreSQL", "APIs REST"], ctaIntent: "consulting", - ctaLabel: "Conversar sobre o projeto", + ctaLabel: "Conversar sobre meu sistema ou app", ctaHref: "/#contact", relatedCaseIds: ["nutriscan", "reddit-explorer", "sc-plus"], faq: [ { - question: - "Como contratar um desenvolvedor para integração de sistemas?", + question: "Preciso saber qual tecnologia usar?", answer: - "Procure um desenvolvedor que comece pelo diagnóstico: entender os dois sistemas, os dados envolvidos e o impacto de falha antes de escrever código. Peça clareza sobre contratos de API, tratamento de erros e observabilidade, não apenas prazo. Na integração de sistemas, o critério principal é reduzir risco operacional; um profissional que explica trade-offs com honestidade costuma entregar com mais previsibilidade.", + "Não. Começamos pelo que as pessoas precisam fazer. Um sistema web pode resolver o uso pelo navegador; um aplicativo mobile pode fazer sentido quando a rotina exige recursos do celular. A escolha vem depois de entender o contexto.", }, { - question: "Quanto custa desenvolver um sistema sob medida?", + question: "Você também trabalha com sistemas que já existem?", answer: - "O investimento em um sistema sob medida acompanha a complexidade: regras de negócio, integrações, volume de usuários e requisitos de confiabilidade. Antes de qualquer proposta, eu faço um diagnóstico do contexto para dimensionar o recorte certo e evitar pagar por complexidade desnecessária. Assim o orçamento reflete o problema real, e não uma estimativa genérica por hora ou por tela.", + "Sim. Posso diagnosticar problemas, integrar ferramentas, corrigir fluxos e implementar novas funções. Primeiro avaliamos a base atual e os riscos para definir uma mudança que não dependa de reescrever tudo.", }, { - question: "Você trabalha com sistemas legados?", + question: "O aplicativo inclui publicação em lojas?", answer: - "Sim. Parte do trabalho de engenharia de software é justamente evoluir sistemas legados sem parar a operação: mapear acoplamentos, estabilizar pontos críticos e migrar aos poucos, com testes e rastreabilidade. Nem todo legado precisa ser reescrito; muitas vezes a decisão certa é isolar o que funciona e modernizar o que trava a entrega. O diagnóstico define esse recorte antes de qualquer refatoração.", - }, - { - question: "Como funciona o início do trabalho com você?", - answer: - "Tudo começa com uma conversa objetiva sobre o contexto: o produto, o gargalo e o risco. Depois disso eu proponho um recorte de entrega com prioridades e trade-offs claros, e a implementação segue com code review e critério de produção. Você acompanha o progresso em ciclos curtos, com documentação e handoff estruturado ao final de cada etapa.", + "A forma de distribuição precisa ser avaliada no projeto. Plataformas, contas, requisitos de terceiros e eventual publicação são definidos antes da contratação; não fazem parte de uma promessa genérica de entrega.", }, ], }, { slug: "consultoria-nextjs", - navLabel: "Consultoria Next.js", - eyebrow: "Stack especializada", - seoTitle: "Consultoria Next.js para Produtos, SEO e Performance", + navLabel: "Melhorias em sites e sistemas Next.js", + eyebrow: "Consultoria Next.js", + seoTitle: "Consultoria Next.js para Sites e Sistemas", metaDescription: - "Consultoria Next.js para App Router, SEO técnico, performance, arquitetura e evolução de produto. Ideal para projetos que precisam escalar sem perder clareza e Core Web Vitals.", - headline: - "Consultoria Next.js para produto, performance e SEO técnico sem gambiarra.", + "Diagnóstico e melhorias em sites e sistemas Next.js: carregamento, navegação, SEO técnico e manutenção. Prioridades explicadas e implementação em escopo definido.", + headline: "Seu projeto Next.js pode funcionar melhor.", answer: - "A consultoria Next.js cobre App Router, separação entre server e client, metadata, performance e arquitetura, com diagnóstico e implementação limitados ao escopo combinado. Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota.", + "Analiso sites e sistemas feitos em Next.js para entender lentidão, falhas ou dificuldades de manutenção. Você recebe prioridades explicadas, um plano de correção e, quando contratado, a implementação das melhorias.", intro: - "Ajudo equipes a usar Next.js com mais critério arquitetural, melhor separação entre server e client, e foco real em performance, indexação e experiência de produto.", + "Seu site ou sistema Next.js está lento, apresenta falhas ou ficou difícil de manter? Identifique a causa e organize as melhorias antes de investir em mais mudanças.", audience: [ - "Produtos em Next.js que perderam clareza com o crescimento da base.", - "Sites e plataformas que dependem de SEO técnico e performance para converter.", - "Times que precisam migrar, estabilizar ou revisar arquitetura App Router.", + "Empresas com um site ou sistema em Next.js que não está atendendo bem seus usuários.", + "Equipes que precisam de apoio para investigar falhas, carregamento ou indexação.", + "Responsáveis por um produto que precisam entender o que corrigir primeiro e por quê.", ], outcomes: [ - "Estrutura mais consistente para App Router, Server Components e dados.", - "Melhoras práticas em title, metadata, schema, semântica e links internos.", - "Redução de gargalos em renderização, bundle e fetch.", - "Base mais pronta para crescer sem regressão de SEO ou UX.", + "Diagnóstico com problemas observados, impacto para o usuário e prioridades.", + "Plano de correção que distingue ajustes pontuais de mudanças maiores.", + "Implementação ou acompanhamento do time, conforme a contratação; metas de performance dependem da medição e do contexto, sem promessa de ranking.", + ], + examples: [ + "Investigar por que uma página demora a abrir no celular.", + "Corrigir navegação e informações de páginas que não são interpretadas corretamente pelos buscadores.", + "Ajudar uma equipe a incluir novas funções sem tornar o sistema mais difícil de manter.", ], process: [ - "Auditoria de arquitetura, rotas, metadata e performance.", - "Priorização das correções de maior impacto comercial e técnico.", - "Implementação ou acompanhamento do time interno nas partes críticas.", - "Validação final com build, semântica e consistência entre páginas.", + "Você apresenta os sintomas, o objetivo e os acessos necessários para a análise.", + "Investigo o projeto e explico as causas encontradas e suas consequências.", + "Combinamos prioridades e o formato: diagnóstico, correções ou apoio ao time.", + "Reavaliamos os fluxos alterados e registramos as orientações de continuidade.", ], - stack: ["Next.js", "React", "TypeScript", "Tailwind CSS", "SEO técnico"], + technicalDetails: [ + "Revisão de App Router, fronteiras entre Server e Client Components, estratégias de renderização, cache e busca de dados.", + "Investigação de Core Web Vitals, tamanho do JavaScript, imagens e requisições; correções são comparadas com medições do cenário afetado.", + "Auditoria de metadados, canônicas, sitemap, dados estruturados e links internos, preservando URLs e requisitos de indexação nas mudanças.", + ], + stack: ["Next.js", "React", "TypeScript", "Tailwind", "SEO técnico"], ctaIntent: "consulting", - ctaLabel: "Solicitar consultoria", + ctaLabel: "Conversar sobre meu projeto Next.js", ctaHref: "/#contact", relatedCaseIds: ["nutriscan", "twins-lab", "sc-plus"], faq: [ { - question: "Next.js vale a pena para site institucional?", + question: "Não sei se meu site usa Next.js. Posso conversar?", answer: - "Vale, principalmente quando o site institucional precisa competir por busca orgânica. Next.js entrega renderização no servidor, Core Web Vitals bons e controle fino de metadata e dados estruturados, fatores que pesam no ranking. Para um site simples demais, pode ser mais stack do que o necessário; para quem quer performance, SEO técnico e caminho para evoluir a plataforma, é uma escolha sólida.", + "Sim. Traga o endereço do site e o problema percebido. Identificamos o contexto e se essa consultoria é adequada antes de combinar uma análise mais profunda.", }, { - question: "Quando faz sentido contratar uma consultoria de Next.js?", + question: "A consultoria inclui corrigir o código?", answer: - "Faz sentido quando o projeto cresceu e o time perdeu clareza: rotas confusas, mistura excessiva entre client e server, queda de performance ou regressão de SEO. Uma consultoria Next.js audita arquitetura e metadata, prioriza as correções de maior impacto e implementa junto com o time interno nas partes críticas. O retorno aparece em build mais previsível, indexação estável e menos retrabalho.", + "Pode incluir. Um diagnóstico pontual, a implementação das correções e o acompanhamento de um time são formatos diferentes. A proposta deixa claro quais deles entram e como a entrega será avaliada.", }, { - question: "Quanto custa uma consultoria de Next.js?", + question: "Precisa substituir o site inteiro?", answer: - "Depende do formato de trabalho: uma auditoria pontual de arquitetura e performance tem peso diferente de um acompanhamento contínuo ou da implementação completa das correções. O que define o investimento é o tamanho da base, o número de rotas críticas e a urgência dos gargalos. Depois de uma leitura inicial do projeto, eu consigo propor um escopo com expectativa clara de esforço.", - }, - { - question: "Como funciona a consultoria remota?", - answer: - "Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota. A consultoria à distância combina auditoria documentada, sessões de alinhamento com o time e implementação guiada nas partes críticas do escopo.", + "Não necessariamente. A análise busca a causa do problema e o menor conjunto de mudanças que atende ao objetivo. Uma migração só é recomendada quando os benefícios e os riscos justificam o trabalho.", }, ], }, { slug: "tauri-rust", - navLabel: "Tauri + Rust", - eyebrow: "Desktop e performance", - seoTitle: "Desenvolvimento Tauri e Rust para Apps Desktop", + navLabel: "Aplicativos desktop para Windows e Linux", + eyebrow: "Aplicativos desktop", + seoTitle: "Aplicativos Desktop para Windows e Linux com Tauri e Rust", metaDescription: - "Desenvolvimento com Tauri e Rust para apps desktop mais leves, seguros e eficientes. Consultoria técnica para produtos que precisam de performance, integração local e distribuição confiável.", - headline: - "Tauri e Rust para apps desktop mais leves, seguros e prontos para operar.", + "Desenvolvimento de aplicativos desktop para Windows e Linux com Tauri e Rust. Ferramentas locais, arquivos e integrações com compatibilidade definida por projeto.", + headline: "Aplicativos para Windows e Linux.", answer: - "Desenvolvo e avalio aplicativos desktop com Tauri, Rust e interface web quando integração local, distribuição e controle de recursos justificam essa arquitetura. Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota.", + "Desenvolvo aplicativos desktop para trabalhar no computador, lidar com arquivos e integrar recursos locais. Windows e Linux são plataformas oferecidas; as versões, distribuições e funções compatíveis são definidas e validadas no escopo de cada projeto.", intro: - "Uso Tauri e Rust quando o produto precisa de executável desktop com footprint menor, melhor controle do ambiente local e mais previsibilidade do que stacks mais pesadas.", + "Crie uma ferramenta para Windows ou Linux: organize arquivos, execute rotinas locais ou conecte o computador aos sistemas da empresa.", audience: [ - "Produtos desktop que precisam integrar recursos do sistema operacional.", - "Ferramentas internas com demanda por distribuição leve e manutenção simples.", - "Times avaliando migração de stack desktop ou construindo um MVP técnico robusto.", + "Empresas que precisam de uma ferramenta instalada, em vez de depender apenas do navegador.", + "Equipes que trabalham com arquivos, processamento local ou recursos do computador.", + "Produtos que precisam avaliar uma aplicação desktop nova ou a evolução de uma ferramenta existente.", ], outcomes: [ - "Aplicações desktop com melhor eficiência de recursos.", - "Fluxos locais e integrações nativas com critério técnico mais alto.", - "Arquitetura preparada para distribuição, atualização e manutenção.", - "Menos atrito entre interface moderna e motor de execução confiável.", + "Uma interface para executar as tarefas locais prioritárias e entender o resultado de cada operação.", + "Compatibilidade acordada para Windows e/ou Linux, incluindo versões, distribuições e dependências necessárias.", + "Instalação, atualizações, permissões e uso sem internet tratados no escopo; suportar uma plataforma não significa compatibilidade automática com todas as outras.", + ], + examples: [ + "Um aplicativo para conferir e organizar arquivos antes de enviá-los a outro sistema.", + "Uma ferramenta interna que executa uma rotina no computador e mostra seu andamento.", + "Uma interface local para acessar dados ou recursos que não estão disponíveis em um site comum.", ], process: [ - "Definição da necessidade real de desktop e do papel de Rust no produto.", - "Desenho da arquitetura entre frontend, camada nativa e distribuição.", - "Implementação dos fluxos críticos com foco em confiabilidade e ergonomia.", - "Empacotamento, validação e estratégia de evolução do aplicativo.", + "Entendemos a tarefa e confirmamos se um aplicativo instalado faz mais sentido que um sistema web.", + "Definimos Windows e/ou Linux, ambientes de uso, acesso a arquivos e integrações necessárias.", + "Construímos e demonstramos os fluxos principais nos ambientes combinados.", + "Validamos instalação e operação e entregamos as instruções e a estratégia de atualização acordadas.", + ], + technicalDetails: [ + "Tauri conecta uma interface web a comandos nativos em Rust. Permissões e acesso a arquivos devem ser limitados ao necessário, com validação na fronteira entre interface e sistema.", + "Empacotamento e dependências do WebView variam por sistema. Integrações nativas precisam ser verificadas por alvo; o mesmo código não elimina trabalho específico de Windows ou Linux.", + "O case GCC Installer abaixo é uma referência de automação desktop em Python/Tkinter e Win32 API no Windows. Não é uma implementação em Tauri/Rust nem comprovação de implantação em Linux.", ], stack: [ "Tauri", "Rust", "TypeScript", - "Desktop apps", - "System integration", + "Desktop Apps", + "System Integration", ], ctaIntent: "consulting", - ctaLabel: "Conversar sobre o projeto", + ctaLabel: "Conversar sobre meu aplicativo desktop", ctaHref: "/#contact", relatedCaseIds: ["gcc-installer"], faq: [ { - question: "Vale a pena criar app desktop com Tauri e Rust?", + question: "O mesmo aplicativo pode funcionar em Windows e Linux?", answer: - "Vale quando o aplicativo precisa ser leve, seguro e próximo do sistema operacional. Apps desktop em Tauri usam o WebView do próprio sistema em vez de embutir um navegador inteiro, o que reduz bastante o tamanho do executável e o consumo de memória. Rust entra onde há processamento local crítico. Se o produto é só um formulário em janela, talvez uma web app resolva.", + "Pode ser projetado para os dois, mas isso precisa fazer parte do escopo. Versões, distribuições Linux, recursos locais e dependências são definidos e testados separadamente. Não presumo que uma entrega para Windows já esteja pronta para Linux.", }, { - question: "Tauri ou Electron: qual escolher?", + question: "O aplicativo funciona sem internet?", answer: - "Prefira Tauri quando distribuição leve, segurança e consumo de recursos importam: o executável final é muito menor porque reaproveita o WebView do sistema. Electron ainda faz sentido quando o time já domina Node.js e precisa de ecossistema maduro. Em projetos novos que exigem integração nativa e desempenho, eu costumo recomendar Tauri com lógica crítica em Rust e interface web moderna.", + "Funções locais podem ser projetadas para isso. Login remoto, sincronização e serviços externos podem continuar dependendo de conexão. Identificamos cada necessidade antes de prometer operação sem internet.", }, { - question: "Rust é difícil de manter para times pequenos?", + question: "Você já tem um case desktop público?", answer: - "Rust tem curva de aprendizado real, mas a manutenção tende a ficar mais fácil no longo prazo: o compilador elimina categorias inteiras de bugs antes da produção. Para times pequenos, a estratégia é usar Rust apenas na camada que justifica o investimento, como integração com o sistema, performance e segurança, e manter a interface em TypeScript. Assim a complexidade fica onde traz retorno.", - }, - { - question: "Como funciona o atendimento para aplicativos desktop?", - answer: - "Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota. O fluxo cobre arquitetura, definição do papel de Rust, implementação dos fluxos críticos e estratégia de distribuição e atualização do executável.", + "Sim: GCC Installer, uma ferramenta Windows feita em Python, Tkinter e Win32 API. Ela demonstra trabalho com rotinas locais e instalação, não uma entrega anterior em Tauri, Rust ou Linux.", }, ], }, { slug: "integracao-hardware-software-iot", - navLabel: "Hardware + Software + IoT", - eyebrow: "Produtos conectados", - seoTitle: "Integração Hardware + Software e IoT", + navLabel: "Integração de equipamentos e sistemas", + eyebrow: "Hardware, software e IoT", + seoTitle: "Integração de Equipamentos, Sistemas e IoT", metaDescription: - "Integração hardware + software, IoT e fluxos conectados para produtos e operações críticas. Da coleta de dados ao painel, com APIs, telemetria e arquitetura de software confiável.", - headline: - "Integração hardware + software para produtos conectados que precisam operar de verdade.", + "Integração entre equipamentos e software para consultar dados e acompanhar operações. Viabilidade, interfaces e tratamento de falhas definidos por projeto.", + headline: "Dados dos equipamentos no seu sistema.", answer: - "Estruturo integrações entre dispositivos, backend, banco e interfaces, com contratos, tratamento de falhas e documentação definidos para o fluxo necessário. Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota.", + "Conecto equipamentos e software para transformar leituras e eventos em informação útil para a operação. Primeiro avaliamos o que cada dispositivo permite acessar; a integração depende dessas interfaces e dos requisitos de segurança e funcionamento.", intro: - "Atuo na camada que costuma quebrar primeiro: a fronteira entre dispositivo, backend, painel e operação. Estruturo esses fluxos para que dados, comando e observabilidade funcionem como produto, não como remendo.", + "Leve informações de equipamentos para um sistema ou painel. Acompanhe leituras e eventos sem depender apenas de registros manuais.", audience: [ - "Empresas com dispositivos, sensores ou equipamentos conectados ao software.", - "Operações que dependem de telemetria, dashboards e troca de dados em tempo real.", - "Times que precisam ligar produto digital a processos físicos com confiabilidade.", + "Operações que registram manualmente informações disponíveis em sensores ou equipamentos.", + "Empresas que precisam reunir dados físicos e informações de seus sistemas.", + "Equipes que querem avaliar a viabilidade de um produto conectado antes de ampliar o projeto.", ], outcomes: [ - "Fluxos mais robustos entre dispositivo, API, banco e interface.", - "Menos perda de contexto entre operação física e produto digital.", - "Arquitetura com observabilidade e manutenção mais previsível.", - "Base melhor para evoluir IA, automação ou analytics em cima dos dados.", + "Um caminho definido entre a informação do equipamento e a tela de quem precisa usá-la.", + "Tratamento combinado para falta de conexão, leituras inválidas e outras falhas relevantes.", + "Escopo condicionado a protocolos, documentação e acesso ao equipamento; compra de hardware, instalação física e certificações não são presumidas.", + ], + examples: [ + "Um painel para consultar leituras de sensores compatíveis.", + "Um registro de eventos de uma máquina para apoiar o acompanhamento da operação.", + "Uma prova de conceito para verificar se um equipamento consegue trocar dados com o sistema existente.", ], process: [ - "Mapeamento de sinal, eventos, integrações e pontos de falha.", - "Definição de contratos entre hardware, backend e interfaces.", - "Implementação do fluxo com testes e tratamento de exceções relevantes.", - "Entrega com documentação de operação, limites e próximo passo.", + "Mapeamos equipamentos, dados disponíveis e a decisão que essas informações precisam apoiar.", + "Verificamos documentação, formas de conexão e limites do ambiente.", + "Implementamos um fluxo delimitado e avaliamos as falhas relevantes com os acessos combinados.", + "Entregamos instruções de operação, limites conhecidos e próximos passos.", + ], + technicalDetails: [ + "A descoberta identifica APIs, arquivos, portas seriais ou protocolos expostos pelo equipamento; a escolha depende da interface realmente disponível.", + "Contratos de dados, validação, persistência, reconexão e rastreamento de falhas organizam o fluxo entre dispositivo, backend e painel. WebSockets entram apenas quando há necessidade de atualização contínua.", + "Twins Lab é um simulador/protótipo documentado. Ele ilustra uma interface para processo físico, mas não comprova integração com equipamento real, WebSockets ou resultado industrial.", ], stack: [ "IoT", @@ -353,61 +375,64 @@ export const servicePages: ServicePageContent[] = [ "Integração de sistemas", ], ctaIntent: "consulting", - ctaLabel: "Conversar sobre o projeto", + ctaLabel: "Avaliar minha integração", ctaHref: "/#contact", relatedCaseIds: ["twins-lab"], faq: [ { - question: "Como integrar equipamentos e sistemas legados?", + question: "Qualquer equipamento pode ser conectado?", answer: - "Comece mapeando o que o equipamento realmente expõe: portas seriais, sinais digitais, arquivos, protocolos industriais ou APIs antigas. A partir desse inventário, eu desenho uma camada de integração com contratos claros entre hardware, backend e interfaces, com tratamento de falha e observabilidade desde o primeiro dia. Sistemas legados raramente precisam ser substituídos; quase sempre precisam ser conectados com segurança.", + "Não é possível garantir sem avaliar. Precisamos saber quais dados e interfaces ele disponibiliza, se há documentação e quais restrições existem no ambiente. Essa avaliação pode concluir que a integração não é viável no escopo pretendido.", }, { - question: "O que é integração hardware e software na prática?", + question: "É necessário trocar os sistemas existentes?", answer: - "É fazer o dado físico virar informação útil: o sensor registra, o backend valida e armazena, o painel mostra e o comando volta para o equipamento quando necessário. Na prática, isso envolve telemetria, WebSockets ou filas para tempo real, contratos de API e tratamento dos casos em que o dispositivo cai. Quando essa fronteira é bem desenhada, a operação física e o produto digital falam a mesma língua.", + "Nem sempre. Podemos avaliar uma camada de integração que aproveita o que já funciona. O caminho depende das interfaces disponíveis, da confiabilidade exigida e dos riscos para a operação.", }, { - question: "Vale a pena investir em IoT na indústria?", + question: "É possível começar pequeno?", answer: - "Vale quando existe dado físico hoje desperdiçado: leitura manual, planilha isolada ou decisão por estimativa. Projetos de IoT podem transformar esse dado em telemetria e painéis, mas o investimento só compensa quando a integração é tratada como produto, com observabilidade e manutenção previstas.", - }, - { - question: "Como funciona um projeto de integração com você?", - answer: - "O projeto começa com o mapeamento de sinal, eventos, integrações existentes e pontos de falha. Em seguida eu defino os contratos entre hardware, backend e interfaces, implemento o fluxo com testes e tratamento das exceções relevantes, e entrego com documentação de operação, limites conhecidos e próximo passo recomendado. Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota.", + "Sim. Um equipamento, uma leitura ou um fluxo pode servir para avaliar viabilidade antes de ampliar o projeto. Os critérios dessa avaliação são combinados para não confundir um protótipo com uma solução pronta para toda a operação.", }, ], }, { slug: "arquitetura-de-software", - navLabel: "Arquitetura de Software", + navLabel: "Diagnóstico e arquitetura de software", eyebrow: "Diagnóstico e decisão", - seoTitle: "Arquitetura de Software e Consultoria Técnica", + seoTitle: "Diagnóstico e Arquitetura de Software", metaDescription: - "Arquitetura de software para reduzir complexidade, destravar evolução e organizar integrações críticas. Consultoria técnica para produtos que precisam de direção antes de mais código.", - headline: - "Arquitetura de software para times que precisam de clareza antes de acelerar.", + "Diagnóstico de software para entender falhas, organizar prioridades e planejar evolução. Arquitetura com riscos, alternativas e plano de mudança explicado.", + headline: "Entenda o problema antes de mudar tudo.", answer: - "Realizo diagnóstico de arquitetura com leitura da base, fluxos e integrações, seguido por riscos, trade-offs e um plano de transição executável para o escopo analisado. Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota.", + "Analiso como um sistema está organizado e por que ficou difícil de manter ou evoluir. Você recebe um diagnóstico explicado, prioridades e um plano de mudança para decidir o que corrigir, preservar ou substituir.", intro: - "Quando o problema não é falta de código, mas excesso de acoplamento, retrabalho e decisão mal distribuída, a arquitetura certa devolve velocidade, leitura e confiança ao time.", + "Quando cada mudança no sistema vira um problema, obtenha um diagnóstico e um plano para evoluir sem decidir no escuro ou reescrever tudo por impulso.", audience: [ - "Produtos que cresceram rápido e perderam legibilidade técnica.", - "Times travados entre refatorar tudo ou seguir acumulando dívida.", - "Operações com muitas dependências, integrações ou regras sensíveis.", + "Empresas que dependem de um sistema e não conseguem entender o custo ou o risco das mudanças.", + "Equipes que enfrentam falhas recorrentes, integrações frágeis ou dificuldade para entregar novas funções.", + "Responsáveis por um produto que precisam comparar caminhos antes de investir numa migração.", ], outcomes: [ - "Mapa claro dos gargalos e do risco técnico real.", - "Prioridades de arquitetura ligadas a impacto de negócio.", - "Plano executável de refatoração, estabilização ou reestruturação.", - "Mais qualidade de decisão entre produto, engenharia e operação.", + "Um mapa dos problemas encontrados e de como afetam o produto e a operação.", + "Alternativas com benefícios, limitações e riscos explicados para apoiar a decisão.", + "Plano de execução por prioridades; implementar as mudanças ou acompanhar o time depende do formato contratado.", + ], + examples: [ + "Investigar por que alterar uma função provoca falhas em outras partes do sistema.", + "Comparar manter, modernizar aos poucos ou substituir uma ferramenta antiga.", + "Organizar um plano para conectar novos sistemas sem aumentar a confusão da operação.", ], process: [ - "Leitura da base, fluxos, integrações e dores do time.", - "Diagnóstico escrito com pontos de risco, oportunidades e trade-offs.", - "Proposta de arquitetura alvo e plano de transição realista.", - "Acompanhamento da execução ou handoff estruturado para o time interno.", + "Conversamos com quem usa e mantém o sistema e reunimos os acessos e materiais necessários.", + "Analiso a base e os fluxos relevantes para o problema, sem ampliar a investigação sem motivo.", + "Apresento o diagnóstico e comparo as alternativas com o time e os responsáveis pelo negócio.", + "Entrego o plano priorizado e, se combinado, acompanho sua execução.", + ], + technicalDetails: [ + "Análise de dependências, fronteiras entre módulos, contratos de API, fluxos de dados e pontos de falha para localizar acoplamento e riscos.", + "A arquitetura proposta considera carga, consistência de dados, operação, segurança e capacidade real do time, evitando distribuir um sistema sem necessidade.", + "Migrações são divididas em etapas verificáveis, com estratégia de transição e reversão quando aplicável. As decisões registram os trade-offs, não apenas um diagrama final.", ], stack: [ "Arquitetura de software", @@ -417,29 +442,24 @@ export const servicePages: ServicePageContent[] = [ "Sistemas críticos", ], ctaIntent: "consulting", - ctaLabel: "Solicitar diagnóstico", + ctaLabel: "Conversar sobre um diagnóstico", ctaHref: "/#contact", relatedCaseIds: ["nutriscan", "twins-lab", "reddit-explorer"], faq: [ { - question: "Quando investir em arquitetura de software?", + question: "Preciso ter uma equipe técnica para contratar?", answer: - "Invista quando o custo de mudança começou a crescer mais rápido que o valor entregue: toda feature demora, todo deploy assusta e a dívida técnica vira pauta constante. Arquitetura de software vale o investimento nesse ponto, porque organiza acoplamento, integrações e responsabilidades antes que o problema multiplique. Antes do primeiro produto validado, geralmente basta uma base simples e bem separada.", + "Não, mas a análise precisa de acesso ao sistema e às pessoas ou materiais que expliquem seu funcionamento. O resultado é apresentado com consequências para o negócio e detalhes que uma equipe técnica possa usar.", }, { - question: "O que é dívida técnica e como resolver?", + question: "O diagnóstico sempre recomenda reescrever o sistema?", answer: - "Dívida técnica é o acúmulo de decisões rápidas que hoje custam velocidade: código duplicado, acoplamento excessivo, falta de testes e integrações frágeis. Ela se resolve com diagnóstico antes de refatoração: mapear os gargalos reais, priorizar o que trava entrega e operação, e evoluir em incrementos seguros. Reescrever tudo raramente é a resposta; a maioria dos sistemas melhora com transição planejada.", + "Não. Preservar o que funciona e mudar pontos específicos pode ser o caminho mais adequado. As alternativas são comparadas com base nos problemas observados, nos riscos e na capacidade de executar a mudança.", }, { - question: "Como funciona um diagnóstico de arquitetura?", + question: "O que é entregue ao final?", answer: - "Eu leio a base de código, os fluxos, as integrações e as dores do time, e devolvo um diagnóstico escrito com pontos de risco, oportunidades e trade-offs explícitos. A partir dele vem a proposta de arquitetura alvo e um plano de transição realista, priorizado por impacto de negócio. O formato funciona tanto para times internos quanto para fundadores técnicos conduzindo a própria evolução.", - }, - { - question: "Como funciona a consultoria de arquitetura remota?", - answer: - "Base em Garuva, atendimento a projetos no Norte de Santa Catarina e atuação remota. O diagnóstico e o acompanhamento funcionam à distância com leitura técnica, alinhamentos e handoff documentado para o time responsável.", + "Um diagnóstico documentado com problemas, prioridades, alternativas e plano de mudança para o escopo analisado. Profundidade, reuniões e eventual acompanhamento da implementação são definidos na proposta.", }, ], }, @@ -699,7 +719,7 @@ export const caseStudies: CaseStudyContent[] = [ export const serviceHubLinks = servicePages.map((service) => ({ href: `/servicos/${service.slug}`, label: service.navLabel, - description: service.metaDescription, + description: service.intro, })); export function getServicePage(slug: string) { diff --git a/public/assets/notebook/as-servicos.webp b/public/assets/notebook/as-servicos.webp new file mode 100644 index 0000000000000000000000000000000000000000..3ca357af26da9dc8c57320a57419b76e2bbe171d GIT binary patch literal 83638 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 MOuW96GC-yR0NWo$)c^nh literal 0 HcmV?d00001 diff --git a/public/assets/notebook/nutriscan.webp b/public/assets/notebook/nutriscan.webp new file mode 100644 index 0000000000000000000000000000000000000000..5fb1d9550b62a99a64b2a176a1739aefa776c752 GIT binary patch literal 39930 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 literal 0 HcmV?d00001 diff --git a/public/assets/notebook/sc-plus.webp b/public/assets/notebook/sc-plus.webp new file mode 100644 index 0000000000000000000000000000000000000000..0a5e5b65fa442e3ccfc44bde16f6b9c81ccf5f79 GIT binary patch literal 110116 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⪙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�yUBzgqFJ>azlZ z{los)L;w`g7IGo*&HvWAx1KU*(x?%G)wDG3#=Zs?T<&)Xnu5k0r-+`9G^GWiyjpry z(uX@KZTC}k3|Qvz47N{7_f|HNXvB;u{o`o;K`1B|Jf>ht24$Jtr=v6|a)3EySIE++-hR&47Q%xNcG?wDvc3&7dBF1L2P&KF%&E-cX)ws#XmtICM<4I;e zymU<_s6(QzOcLp>SdRtQJ!dEaeE^+?TJ`YL60B4Qo;p;FN}4aUQB(3P>Z){wnZ7ey zL`x*?M9d-zZEK7bGV}dU)x_5LJD{;u3#F&}!x+fk1(!ICvkSqgq%tZ=1y~5cO~dul z>+B1>#KZ1BG2;Dn@abqbm!~}nft81Uvv`RVCyIs0`2#&#C>B22SNJH`*TLQL#_yIy zk#&rS+9AZ)!&gVV7efVi?h2)ls@at+LqFY4dHg}giH-)J5WnBO)zbCl2pD%*STh#H zF1nq*aNHXHI6}D48u{-}!WgWOS;@^etOgW1f`38j>s{UaJ_|9? zsYs8+DpM?TGp8O@QB#IaKCctsS}`P~LS zlsBJ2l^`>dS$3y^gF`=_wBKewgir!-#VRS*y%qK5%M9a^Yq^%HFrWciP~`#~7N0FO z+EO9%V=jZ>&smq36QTX6Q(H(2(m?!V+`TX3728lVBAfdae$SD3QxI-P5OcCE8palfwK+dsmkxNe7w6N&^l2o{ zIyI?_el=t{SqGWy^Z?#3g&aCYfrE{#_SIAE}AVM_}Y>4+;UJHZUfpf22YDL z!EPw5p1y}5$H<(dMHHeAt9$$!wRQ>xt_mjuSuHG<2NLfOgq;$Nwuno)B7n$57%$J{-(D6=R|ZcO3G-03U>G7Ju1c^# zbaL>lu7ph0P0ufsscq=7S-(7^*tDVWM$2QpORORXu@=IEwlxZbgIUh*=mj``K2$Q* zilO@Q$qV&ay)0#5$)|; zHq=|rLHt9jVYDvT{A=+%!#%EVG|@%sb)b z5y~ycvezkZvEfIq+BN`=9FH0z*V+ELQ3L_*KIXnM-BoXHy!D~_8ym5xRQcbsFb5&N z=L{|r_Yhb;_p}sFy~jolw_A9ELcTC?84R>b!OAnpEN_HAg=;nQuruI8hoOey&q5La zqI8x^v}T$2x5xu)=Hj}NgFnr?3ed_CX81mYF;kWEp9Fdu`NJ^HOJxNh5kPhe;2-H{ z=fbUzx+9nF%WK2#j6ly14_tWj{ULOVch|q!0%xeA5(^N*R*aqLZavo+L2MT>+B~Ip zahm2T_^hV&V(zY`bA9#NA!spVMDrx!!~V{84x4WOEpI#@gmT$=|8I^``0OXmh{a91 zMjXx?sJ{9RUy$Jtzi>uy1g4SGbCk5&Q6M{r7`#3=pdkBY9x%?jn*?d*5eY!`8Lj{& zgn|s~1q_POw6_l0o@_iy9^H~6t>XwhL4)>@HOhK-ZX`M|*f`WE0>LhqJ2?Qb<5md? z)%;5p9jhHe(StavLsZ(P>f#NO7&?qKxdIzUM?{NAa31@oJvquh{Bzb_nRs|%e`eP{!-;@lJ`=4IdsYzyW}{zS zHRA7O$*5(loDLn$PyMyn(_Ioaw&w5Z3Fp+zn9Ez=`<;kyc1d+-*NcQ&qaHI_5^sly zEQlyf)_4)eVredVeGK?)QkfyMjRH4WjL>%X=*7J=mPWf-_0K1Eb?1gY6$Mxkv+ff> zVLrIQRKvk-@*lfr)@q&gLnappMM;6=S?R9+rby!_oIzg6OU-{{Q8+xTbCXHV;%lo#@5 zuWviJe`Y$@8An6#J+2!sGQcac7>pQZYQv35yU6}S+C%ZN6%JGCQy)-ixpCK=iX|l1 zVA?WR$jk%oH+&6CZ{}N90Z^SznS4iCYM$N^LBsP}st1oGv}IvNi>{gBP4MNNng?3@ zACmDpv8EMqHh86}rN!W)RI$#i7t>z&y9jOCK|=18_w`;Jrd%lavr!O>@eygr7HAV$ zOJe=}BRXgFvuidDBsM8%pWRtpD&yUiE95)r_Fyc*8EW?X1B5&#_5q^u5zP$cY zm7K+3P6X?jNvND%c}@Q71ZuDWNiZ=VPd@@ZQc1iqFbE^u>6;Bb?b84p%`X-ZJV(v0 zK>Y=JtEU{p)gx|!(8E4xs+S4Ku_c%K4g|p=1EL2ptS5dW>wXb+j1B5UDzN~ZhC#r1 z*%eBE&735M*V7|>{t zZ(AB8V3Xa1*j!Pw)-n+o+h<*yE|g~pnwE$)n)-#)L1s<+7To=3{Dlq(pa%+9DeSUs zw_2_rB0xj?Tc_LRRYNwBiFwYJk%FQIHV}Qv1WS9jVgRawOpssugJFnU-xC@uo-98K zb(UecBB%w+3xLu}w&Kaa*AH9U8ZI$vJ#j(U-wVq@3&X)>Q-|G}GUjU!{)I5W1yOUAxae#N&x zS^ptJki3vonYNKiL1G07G)S5aczqx9r5ZP4w_tT#T8*XGkky;Sd5XVXZ}0sNRwulz zG(TZlDDetX)nzYX+|L(`xPycc9XV^dZOihicKkv)2>8pdrPN8_#+g8pQ_a*(UGeC`?dPQWH_ zNWdLZ<$eg$;VJoe=%#-cMmyTU5m+D-=*t>{eLj%C7vUU;-5H}!d!)tLvoPb(!l-7? z({K9KpRrnTm9Y7W)3Im&H0Mh$Nacgoh zRia3kS3AvMNTMXm_*&EEb?HNWz&|X!pA*a0Y`)I+oD{tn?FFlyGVn|tN$1ayQ|sVm ztl8cDaQNiWlse@!KB3v43x?#bn(5l3r8In>)n9h#GWMC=ha-~vE;7Q=Brr~~RX~6# zj(*41wttKGb@d3k4LaF*5LQkWnbDW>j}=XIH7i;Av8Pc_zl>eX`ld57pszl+iKOX$ zLX5c6CRH57c3v*oKhyEOow^J5#?v)>x!I z}Sc zwCdLG-}c@rEIP-3N!fsdZl8M&aJ2)rtNPCo1$=Y2pkA&d-okt49JMJxS^9?W-L_}{vrBnEc8-ZpAfP2QA< z0CkH#k>h%6zopL|a}7bGsewsO-(t5KP_-T9W(Orv z6C4nMdc%U=xKZAff79hw^TTjo*l|duSfZWo+kO_(Xsg(F8Bq5JJZU*0>#p{?D)>`} zeqwRq_SGDuooUR{1#vLCC-g&_TubA`gB+uN52b+N=EjuN7YGkhhtaH8DQ77`Yvkof zr<9yW@PpE@;|54K?x@i%!~7N8zWchbs3S@)qu1D%H=;p4P{c zb0=hj#HzHq0P0jb{$XCLh1pNbvJsQiKGC^ljK(h>5V)mpg(PDOn${k=FrN$z_v0?8 zVNA*p!f$$)bkN7cGpMgh8F!fr0??I_HD(=#iHmiiC*(QVv^ff?wRbnB7k8wv%W~gI z_!{=^Y%@mGxQs6~ROU>6;BJGV?88>w^^JjrWc4`MN;G6ytsIhJdK&n2uJ`aU%}WV8ump`p4zFl2zHD3Cjz2 znm3rd*}raLzDtbK;6>ral-j?#_pyfDDv?-dd1V+5Lz%A`H8{(o6Fb=+o~j#Pah!rl z!#xxV@`^N3z&^d=$nZ=?GP;1on2#uU72e!wv-)ez8}Pd9oCaajy}dPN`ziU9Q-(j=-1UI z9o54H?EX!G`TU3`SKGW!Se4(>z$;%frdzKWyXM2ss+ABC18UUY)Jihj;P$F)xRO6ie`b1AG)^F8rpb_tLB*^S+N>$ce@? zN@8UY(&-2i0tR`_;^1rSCvUwC$ z?n3~S)&3|j1GjgN6%tYh?jUZs+WL`*Vd93o;C=z^BPX&ox0~OwxUC6#YaKZuKz-vj zX7NsjhRM9j)UNsi-O;vvR|qhVCbZRtUc> z(BBMKX_byM1dH}dM%fDVw-V|AD5I)6S9~7a52ac(K-B--GB|-=SO7NI_JMFPmq16G zI5n&seJEb^u$8hNEr;O$@uF*?hi|8jz9O>skGv$=EY-d{E%DH!C$h958&4;tAG40`?c5}i5Q-m_uCWq_x_J^ulUH-}p zFeNNeVn}a7D&Sx$E|M@5RYB1XLgZOGIIp*%7wH+bNoHpM|tW#kOWW(* zJ09l;$Ze?k-X$r#b~Ga>|DoH-z5LzgFpzU*(sdf>aspf==)MF;4ZNP_G3)y(@dGMq zX=@}Yi(vHU&`%J7z*a}wWzTlZJ!uG+G_RSP4~LfJ+!hj=`aC!%iviXW)iLEi_Ij-a zi2+UU-Fh_u5TLh(%$9cQ3gt{?r7~+WVSI5Cif@2o5wUFfl|wIp_XJ*z4NXZC9kQcq zdHH5DKfXZcdefz*HzXiyd~`PSt%HZ#S4b_Tuh?U@+T}>238Q1-2p5V|9IMBE?SHJ+ zWoX@5DtPrbEDFS=mY;?Sx-D@We?=$?PwCob*hIzhR?(TvIRPT+e}e?R^S!sQsC+Xe zcJKD25YFwsf^eWs0e^<0R*x(2R%NopWeiLQVi)AK9nb7^tvo-d5K^{v3CeunTkFi2 z)8{->gQ1p;;)?u!C6i-l@qvo(Z7)cSrHTYs?x{8roo~UcFjRxmc2r}WK99yUef&DO z-vku#Q<*VNoih_a*{N<_P}E)nu*O?AjI20Eo_md=9%yZ>9hs4#MLxV897-{6 z1nlZfto^wQ^7t5fJ~vLHI_w`rREZYXG2~-Ug|(Qn?Dg``VjV0jHr*+1pYUe1(j+|< zPthwgA(x(s___Apun{b8kyV8fq#Zo&(8}GmQj^3wQH@;I9)7F82KV>hin>WGuSJ8( z=UxEz)~{Z+lqh{-S#v7hok~*i7>o8gS){zr2{)P8dk@G19Zv64Tq?Epg8J!TtS3d& z$rydp!Ysff;3L^SA3pr5>2SCkHt^e7qU>uX|BcHTCYytYWu6|}Lk{C3Q3JZ27znQ9 z=|2=93YbyZ`gx^X1**0C@5)9CR2#&;$1%H{LQeU%p=#EiHGn%v;LTDmt?F#b4|WI)>d#E)ymus1O*-okCxD7&~ABY-J%;Gp>-KnUN}gwu$+U>xbn z_n+co)pBa8(Kt0G zPtvBsjQshS>lQsRc~bDL60AAGc!Yx)n@VTcZ%L+$Hs-$@TiLQ7y=br=+b;y!b=L#9 z3HITsbY7DcNNm1FJaKzB+u=!jSx(%(Ng$M76Bd4$%6G>Ht6lcxQz_cv63(sWhoI>G zfX|4vt4Z`fJa3sHO(mSK2|cndO)$#hIjF{;DqVD0qz)AV7e^b0o94a3y9Bxg1Y+=F zx3A7zg{Y;bkuRT(9eRDI$rlHx07b%HiK*xfHA|uZ)-hSOSo$;>& z7&}1(Ya+ln6(bszqBcCv58#e7N;F1d+yWFt^YW}4u_1z(Tm+SlBXHQHeOt+fTN|T1 z6M7+R&xK;m(7NM9a4pSSf*qeRuEy3~9r{52^6$IBwKGUP`vN!gL{u5*$?&X0brqBa zp_ulbUZS&^LB!nTS{?~8_Vrhw+xIprTE_~+CjA8dYd~NqW>Ytr zy!z?q#_l|dZfyPGQlwei6tl#I-`bt7H;geS9q7DbwM7%0JGRUH#@fGQ*7G*kZP*&I zwHFuOQ7|^+5SW$goIJ0*-k!5fjUfS2mY}uw=xJUzzJ33ULwYSx2x!GERjPg2N_|*K zA2d%rrP)q?WIFwAykVy;V8{?26Z^@)=g@6fXZ{$sz)CF1u{ALCA{IKZs?+fZB8Pcy zvvX1lw5ULriGn8ye&%WBa`8a`W|Y?`oLF+efXH+J(kRX`C15kZg=X-;ZBa(m3uX(`vI1WI72lN5gywI|s=)jP4{5(Qg1dCs;zmPkX7!&KB32ti zr%t%UOv3_Qj#)7g0Fk<4U50xg!$a^2SQ`jY+b@0dCJ$(w$M}2l6%G&-HBl0?#Vgfi z>K+x~;Jr~(KaZ>BLEU~K$v0h5!~43{XT7NGG`37x=Zvebs{)SPY=APR|yRXjn2CFaul7xzn94*`0h;ZlfUE z-_4!T^@76C9{a9*vAq>SO(G!T`#R)qckwdGIH`WnB+SN&B9JtKIYyz1zI7=?cZ+22{(-b_@gTf_?4du|P#2dLod+Ar-o2n}cgTE%-N*e}%eRvQ% zs}@dc#CGeXp1^)%m=1|NRUHSMvo+*h9P1X!tL<(XG#PrwS;{aT1tK2tt=z$XdgA1!FFx_p0~%~KU4=2KRsyc`uTBbSD@fiS+gvb#S9H z)q$c#-ke!%!MSGrmJe;9AaMh*FM2_;#Pn8&)0TOPTc}}rf1UTK1}S(6!Wc=RCzQ_j zF;)y$jmIOJjcuuVPXZEOGV&+K&RNLo!K#$=dlB60*e(iN^E1hVdD&>~etW&Yw6Q7fB5bB@ZKt`9&q zFNdD13o-G^x-|WqEj>q0N|w)9;)k0EKOoGKFI9*v#%rL!1I(I2v8V-#C>|K$Q$A)_ zL>>ShN0J^u0)Gq0I6Oc9`n*x#bc(m+sZ^2Cl42w>1IxMrv0VbV*M|L+3vqJUW5*8a z8tc#mO3(5p)*uE@`tjqM)!*h*bD?Y=#^>-t7$2>#asVvrxU4DZd(p|RZ7n$8*dK~K zXS`x3-+!ZjFL_P5d176l6bFC%LtxHPE7EUl7K5+iOH~wLmpCQmG5j6Ke3x%i1B`u` z-e6svy2E>O?2x?C&m!^L=IPw2?#+H@;m60L3@)Whcf>2_^dOvq{DW+&fpY;WSZjfj zqp!4ICs(kY#p35{m00Fu>%VC4_2aDTGs=j@r~Y}TbU_Y7L!jfel~1mJ?&z4Hah@wEhlQ=OX;X{kvQUbHwnCUErdhYla>IYULI~E*$P8GAnN~HLC7cWjLV8y74S4-B zL#*UtAm6qcSemL2Vp&`t;j*FIexCh@Uw~c-i^h; zCnUpg*D01Pr>{7u=I#%Co;~-o?iS92urQ+E@QI)27;_UHUF~(6@-N<%#p2-F#Nkkvq8GQm#vu zWf+)!Gy2>~yn|W2?{=x)CAzWfKh^M$L8AA9G#OpV?<3FS!pOUj1yec#yy!UqKv##q z!-Z#%Qh^IMfDO0w=N|6CX?j0Yc+ipTO*5eOpA6ooF-{;Dv~IS^9w!$a1>AQ};kZjF zwWRS_N(W7O)~qS3I!sm?7T^Cx6%B0mc{Xrn)_*o5>HU?llc|J4Lv3N02B@k6uc*Tv zx!=1lV0JV~J4w@rQAR=kAuplw@*6&!gk+|tWlR-svCsx63enRl3)o~YSapkr9L!c9 z(`MH%W8;Sox=1Qjygkf>?Ghv z;`QLSyxX(?@Qkj(RC>r9FIYr!I5(f#{s$mfKy{#m1|_K&gwKY`Cx} z9;6#Dn=Z8vt$>TspDIEQbD@$D`my&OkEgrp>V`0SG(*!gXA1a!F?@BruZwY_B9~6tGYY za8r-o6*G)#XdUFi6x5f!G$Dg5v|>bu3eJgbkAa)Nk7G&lXe)lU=A+6a(D6UsR&~_i z+x;>!@krst*&ylfdjJu6rT$k{?OhYsCq(Q$ca%uGq!jT6RrB?_Ndb43N*ZVJxFk0Z zN#)bAp(-PEF^(Jq83|M^t5Qt$+hq2ZNVN`Y4L^0T2964=a19`K27tvozUq;%$75E( z@rC>!4fE+PtYo!Lsxbb>2=5YM(V7NzXel3ef3*|9V2mzz66=nohb1pe3>eemcuD*MfoKg)UvlYwZR^0L$L1*c^b|)g{!`&lqo%;Fih1 zUWGXNJ>pRVH0|LHwFgt>2eALI*P}BXvM3{SI)A|CV8QCA+e*URvVd)hZo$K2hL4qC zGCX;KZ~f&NvNy2xK;X^t?Z7j&60Ie*M*iXMQy90=k9@fdsvPi_W9yXRuT#FW$d@QE zRyG{lE+%8R5{vz(Bvo_|-y-(NZ2Ys7c-@vC}U zgRZ7wncli>D4o9jGJZRinGflxLO`ILB^KeQp}cm!>Us}(t!#5Mih{7y=Ub+80M2iA zIQ_Me2>ij$A|pf7$8NvhHbY`$ml@bne>g z)7+Lg5%kNw#X7JC=)4#EfQ+m(DSGgL#0K0;q_m{Fi{7GYT_KkD#f6@?GjaZDX1uji zx8_B#K0E`z-=<%X($L1q5Ee$E5fq!ZWS_otHRdd7@;R3_kvpO$Zw0wg2B zr_pPri%?QVe00A6r;hQUL3!x1Q&pm=2Q83hG-S!32LyMUQuS8D&6^mx1ESSC4v_`Z zMkH~)HCb}qwVw=BI$@C(6+wO^52zyJ!rRa&6=Ey72-r6m*?PmFMRvwJ*_+^MKj0x~ zk9A=WwlwDF2A8tjwWtAeaH+mCRI@>6*xbS+r}h$DuUvmYOkdDiYVMEX+zjwc_%lqO z1~qXeXsUG`2X(<)X}^SF*;8>XF*H&bM-m4?v7u(K*TCV{{6(ARs1`*yYA`u!~jp3dh)<{ zw5{*gQG4?n3`N!9n~bgI^HkOp@fiMnXyr3_x|-Rbj8-zIsz$qiUz{uE_G?BpoiVe+ zkk{M6zcjxyTpu6}c^{i(GsAXVD4A6+jz<9LyKV|u$K|eQBbiwYvZ!$(2MyeBkK5<% zpE(+85MOfm(6x=*Dt?%us)7VFz*I2xdzsZ|K^MSjuPYd*j$o`iCQ zxTD&^g^L{?JCsy7?R|sE@P)Ep@1B$ZBnH?%`wn9Rv^$JVA;GzgNL$x8 zTYon^4*AsafJJq^nv9^L8IEusz5$`MXbL2P&hP@J|5HVEsmnbgfoow(r=79xhmv5z z{=VHJeuRT)u$YYLe3vXUm!)$K|L=gs#MhV*RV`p5E$0|eSqYM!yuVE2_d8`Iyyv&e zBl?tf{{vhDG&@284(0Dbo(@$X-MB3EAG(*U1iYUoRTlMkPUuaxR0JwCS;VH?Om^mSawr7Okt{ z;Fa~wr$JrWNA!O9P4fK%gYx>G3Ss>tQQW0OQa@!pMm$fp%!IRyOvzi5fv z@yIo!bo!6IKz1h`SUx8XDY!^*Hv)&${9zXoms_J!&Q5PAhltQgy1?T~gw5>BcwQZk zm@tesA;gs_K@A*UfbNCbzt;vwSUs93$nmB0z_c0_tGqvcNeKH9If_44*w&j1fR>i{ zE6g}W2L|LnJ$M^&q|h!4Ru>2uEC0*=nRXv zPhr$fD@Yuyql;Pr!eL$m69Zndf%hf9zN9>|Rbj<7mU%;dFe~N!5i>6a*^O&4Y%_1a1STq{@L=gDezN5%}W!iIv00_FmpekY`f5usRP{ zD&!j}@gN+cMG5(_SjpLNiPYsg%)e7-GgvNI-^ld9c=~&f?;q-=?o3kNp`N-m4w3dI zN1?Kd&5}KqUM~edSz1~kZ!YO=F)P=H0~AV*hy3*VLsG`Py4Q$et1}GS(eG!~pEpkB zlIp2hnYO3b;U%tF`3H!;aUN%ajEa3F=9hI+C%PNar6rXJCYBe#Gm*8qawZYCGfIdQxZbx+53G856 zMIDNV2{9KTfUwYN0cjGihX$LBqiiTmul%@5H@4}w={)F`PNz=X)O*h}#ybOwUoipqr%ew$e&Q)D zPEc#=F8D9x5`|+{aVoGwng#Li&h9ZQ7dB*dj4~26Xd{of^3AMh;p9(kSag8@$-Lwu zohi%|A;+Q1(I(7P@q4krenC4^MKC~%>l=P2RPwB^0U%-aUqi$@R!I>&?4vL6>Gx^A z4RiQrnaR5M4Ev}S`L}Fe^0f+zAF~6{VnI)Bg(Xsx@OBOAD(!sb=NbQqRCmxA@>5KcupBFJV3eZVx zrFoTvaL+hxR2{Y8`YFt-F0||^FPW4}52yON4e{h@gDV!>{A~0#zJHhj@LkNN#qKW( z-UvrAuW;no_MPK$C=CqiQ|Cj~1E>_;b##sZQnLi6-n>Dbtno}Zfz#-%XuN$4r_hZM zl_j+N4;#q25Lu*8>*@B$iy>Wfr7?6JlT(v61PFda^^aFJ^f?{uL6O`^RzR2eTiX#Z z;(ZY7ZOD5#p>LEi6vWkauxO`NlkdjUAuI7W(jh^gy3cykR(tX#2@hvD7(9W1gkd{G zgSCM~?jcWVcHvahzXVrbG5K4w|lsOYOJw`pOK5F4WtPO;HVzFSOgTAfcSlJijE*q8ipKPvX zL}#z5aO5277Fy(GFT#QdKye^micuk}Hn6Ye9WEziy`izB`_pK9SiZ})3qSknUH-6} zCu%EWHV|r!Wwe1jOKSx>K!QxiPduH(+eO&|g&~fGl4^1B*JqF`iG|Mo{;s6^0-d8X z1X;d0L4Jl+moB6ozY#$@5}BFmQ2AU}C0aely%wm}8!}fR#zwgVWJdh<9fm83IhMY8 znwa?*D6Jzb0JCm%m^n?ql8?X#AR`V9`;lUQA0%7?9q=)E`F$?iY9D3quHMcK%QCS! z20r*z_!hcF8wx3nc6$;QPnKoZXkuu1bRbliQr=Tah1zMFhc-vV)PF0WHqbQ(x7x zQ>2?G78*sLJOG0@=OAqwM0UF*#(ncxZ1HY=MWbuCC!*o~pCOGBSnnM%Pq-?&?9Ogk^+r{Hd zO>Ruy;iD{0*UNX1x0j8PwapTtP16Pb`L=MKU%Yd*a+QO*DRGHx7cj(#5?bENhAQ!{ zAqk!%Q#Q?qvZqCiX4C*&s{#&aSbnwY+MX_f7xa^8xt}p z^@^weTo{Ymaa4KS|EqOkH~1VqYpu5z28$zrbzd@_`?^K!~5+skkl~* zH6ZL3c#f}r8~ch+*xb9{?H;umIv{CO2RQAy4iC@N zhmcoV3Zg#SaJwVyLS62WWiBkm;}^&}rV4>?1P!se4iKO&(=_Go;_WYK@duKBGG};4 zJjwH~z^Cu4ID1;^IEM<<$Sq->gYA15Ae{gYZ5XMA1V>*yIMJU~*~32LS-zPiSk#D2 zU$n185HYq`)|1KaX9GsA*DL|u!G`)%48l-g>Q2{a^)_Vn7{kp>h^g-&xYATs zXa~p9*+F1>pTt*kRBLxJ$vg-&XF^KAXtsZqHC%~k5kX=2a}D-SH!NVzTKj?XQJ^oS zmij~@{L?OmHs}XJ)z3#NgNkY7q{$eJK$TOd-ch%uCR>K<>t;fhQ&wN%^~wXs)n5ng z83VF35(v>2qZ-TMl)TMUhqf+qSmtT9yNHrD`S+Hb=PTu#iN=y3#}r zU#}W`8abNLoN^V}lRsRZ-}eWBA++hd2Yt~hsu$WL-bjNNKqIXNaV0+Gkh%Bv zPo{&5`Qt3#@wIy$$;cI8_Z)<-w`Tctd-SJe(Je_PJq^C@uybRVanU(9!L#~XJn!b* zeK){{yEu>(PtL6r1ZQ;9ZlvhIF}Ilm7<;IsLvyftMhw*r89KCY8-axRM#N(F_K_4D zU}Xdex$E6=cNf;r1s!J275RTM#n)TK2c7%^W#54?isE$`-ULl^R-B~wq^13RC)ija z%=QP3k?Li-cA+a_0^#`f)`vCK7!sm6za0&3@rZ;@Z(=bJfiv(u`1z(cecxl3+s;`%#Bng5=D)c=@f8it8o9k-#%ftH7JoebW zC~OvwLm%-Bzv<1680A4r!=+*&Av-QIumSC2L4T(&-AsYL~7l%Mk4 zfzxh^1d0owTPBeAVit`I_io!PIY{6$HbRs z%9P=zxmcCk-^Nw$OJ*R%iEK2TnQXcD*awrQS_W^42b^S%dCSS3H(j!)d5J-9*es5S z=SS&=ySirlaG53RyL{hW08!Ofj)Eq~VXuXHaFstvPpuu(U{U9vCKV3Hf|5zz)E_9^ zJfqdX6C2d2{!(ey%-Gj9a!6cN(PU{@!IkWpRXV!G(ZWAQ?vx4mG!%@3kiR+0m~8z9 zBIcCJ{LNJWmz1PHoBi;H4dm!D1BE(@4F=B5{nN3p2jEb7HnKcR)}wY@m(ei4XDwVp z#Wkb1K6TTPl~|17a5_#N@_s>~O*OGZl#cM`TfTbyD1)ni1- zZ$d{-1P@pflGl3LL)|S%GEjA@sXEP=!QisISEnxiRjoOSWwFUOK;kg#YQ;qc zs&NGy!oRE5Htt7I@{QDfSKL2uitEpNaWf?VG&whnbXJI@Vd1Sx01viDZX5=}*NssZ z)>myR`5RNJ;b5N5pPFz3Xwkk0{MH|yF|f1GbIdMYU(_S)G>M3xC|cmec#~`BETxlP zIC7U#84Zw&7pw*E>4pqbf_ zoBbOOXxFfZ1XGE^auvB!Yq#w!;@#26&KMNrRDmm|RP@RNwg^1hdAKsTLr&ndtW9p}zdA#Td|~2H zn^*z37&e&ls3r)ch^TlcP`k4+)}5tRsvwp)lb%D$+LIA6@9B^AVf;2gP{0Lxy{0p& zN2UD-ci_z4HlKMV9BVnZB!{U^re)8WmV-`!UJMzw0Rmi`T32gZ__a>kCSOIxVexkJ z)PBa4uQum29#Iz~=3jJ`XLiz9H7mO+B%y+j^HZ=G#E-6GAQ7KG#6}HX=)_WXVg^YV zC0rMTa*xp;)`{{Gtp=~AhDms&wD?D0_xrGwLFjzMGdH#S*Lm{uT7&{^TmF>%-{x0%O^lD1&qMB zxp9u?K?hm{75g7^W}-%>3lbY;Byek%0f)(e`c{^r@o@`C54w@$->S@ z?gn^`T7ZA(FVb|+x;dWmy1_U0uMbv84k5_!=res-8vHO(_jlYGb`oAX`akIdTW69U zaL%4I_P{fsA%^G>-jMNY(%*+xTlBb5^HNwi6|ul~JjkT?u&n9S&`j%ru}S93s!I9I1QoB>r;o7UDh9 zQ!#1ahCqmdl`qEOBDqtAT0+NGrD56Jf?j9aTUHZ;Oto{Z1@5iig}F65*u@FS`3OHD zo3Q32bcS?rnVm+jr%;msJNTRWNfFOjRLj?hSn2Tu9wVI7AXI54kPU9CS6Xmd_Oq-a z8)}qHSU++8f<1-_HNEX>6MA2t4mh)h*Ag$nL7h)PJ8^iN z!40-u{!d>wPtxU)mbsE5Ji>oC!(;IOs_?`Wv2ceGGG)48F7>R{;`^MpkN+SS8w@U|G>ZeV$iQf zlfjxf#l@yU)+0H17)L%cAv3Be=&z0@o2Q9mfqO`VsmmOsr3OHJX(&ZjTB??*#PWj@ z2%YPLD4I6R{z&en^jwIrLh#)3JW8^+Jj|l{Dr`s_l`&|P3@Mg;4*-opQ+_2Zz)|E0 z%*J`vgB*{Vo-m=nx;S>kmyyLbmW}mga~!v5OU==c^YM?F97j%2*mk@P z8cge+_bXhI8OZfx=RxV2vG^EZ<*!Gkp0vK-q=tlGdyYGR0D!delOH(+Q~hm1k-`JA~!MW!-3Wtfi87{e{CiNW{K<U^ z#&NfDrQ`_q5FiragPFXJ5>r+#z*wd#-Syq?Z6r9D(Q)37`t(%_9UvHd^zKZ%XPw+k zx4*VWfbpZIq6cF>PM2KqJNMp7Tn`rtHP|_b|B*`VF8ID}S7-3m(;ByIS)T(Af#rVC zt0{1l`yyqLXn|Kh926Fv%i?l6z+?b=1kL*-_3*_;mA?V|j11@*;XKZ{vJ?=O{jO}~ zQ4b->&y!>XHigNlUXoXr5u+fQjvns*V8aoxb%IU&&Vk5#k!MGrh9FF+lf+cpu3fFRWOxaBhrx_{I9H9t_d-6Ky? zSppMuu<%96Vs7t!{_9RfFrS}r?(%w3LH%R3#%Qu?x`}y2-%&mIJLi1zu-*;YU?(t~ zGX#yh_g~n%&Qa@d_P|{9SfQr%!XERq{~}1X%jX{*)iH3#^C*D^^nJ9OBf!|Yd<4V4 zuOuRcL?DDHB;T*^%+bOlOiZ>hXq7gX6pJe36$H6iDEsl=+`+8U_pjIcM8#<|POO?3 zj$aNnT)quff8z?iwh!L?B*6x!i_8p{^S9kEFjMz=;%j(}I6GY6xLtIYbZTT~14H^d zF{8J_XFG;r4I}!KfD$ADF>fzSxG)lwWlBSTbd0U)p^i%J*6R8#J^|D&FCH!J(KwGb z8I=_;i4cL4-WcZ&68ySieku@bPc`k&nj$Kdb5}aUrI1i0U&*X+R2kAPUaWcLkeWMY xVUcN`gLH9?!f+7gfbyy5@+JW+N2PEHfB*mh00000000000000000000004;0B_IF* literal 0 HcmV?d00001 diff --git a/public/assets/notebook/sev-modaintima.webp b/public/assets/notebook/sev-modaintima.webp new file mode 100644 index 0000000000000000000000000000000000000000..bcc3f70beb7bd51a1433f17a785fde954f7fc419 GIT binary patch literal 133328 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

TQ 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

X3RMe)49B06N` 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