Somos builders. IA nativa desde el día uno. Creemos que la próxima gran compañía de software no se va a parecer a la anterior.
Operamos liviano y entregamos software que funciona: Solutions para personas, Factory para productos, Labs para lo que viene, bajo una marca madre sobria y segura.
El sistema habla directo como builder: evidencia sobre poesía, claridad sobre ingenio, seguro sin teatro.
El sistema habla como un builder escribiendo: seguro, específico, nunca decorativo. Sin metáforas literarias prestadas de otros oficios. Abajo: cuatro principios, tres ejemplos de titulares, dos ejemplos de cuerpo y una tabla de frases prohibidas que existe porque nos preguntan, seguido.
Sonamos como alguien que construye escribiendo, no como marketing vendiendo. Sin metáforas prestadas de otros oficios. Las frases largas están bien cuando se las ganan; las listas sólo cuando los ítems son realmente paralelos.
Nombra la empresa. Nombra el número. Nombra el año. Nombra la tecnología. La abstracción es lo que se usa cuando no hay nada que decir.
“Shippeamos,” no “innovamos.” “Construimos,” no “apalancamos.” Lenguaje de alguien en teclado, no de alguien en reunión.
Sin titulares en title case. Sin mayúsculas para énfasis, excepto etiquetas mono. Sin signos de exclamación. Sin emoji. El trabajo carga el peso.
Sentence case + conteo concreto + estructura concreta. Title case + verbo abstracto suena corporativo y frío.
Número específico, resultado específico. La versión mala podría ser de cualquier empresa.
Nombra la relación y el modelo. La versión mala no dice nada.
Construimos una sola fuente de verdad en 11 semanas y recuperamos $340K en ingresos no facturados durante el primer trimestre de operación.
Our innovative solution helped the client achieve significant operational efficiencies and unlock new revenue streams.
Números reales, tiempo real. Los verbos vagos esconden que no hay nada que decir.
Dos founders. IA nativa desde el día uno. Un agente interno (NAVI) operando detrás de tres ramas.
A passionate team of seasoned professionals delivering best-in-class solutions globally.
Conteo concreto, modelo operativo concreto, estructura concreta. La densidad de buzzwords delata que estás escondiendo algo.
| No escribas | Escribe esto |
|---|---|
| Leverage synergies | Usa lo que tenemos. Combina X y Y. |
| Empower founders | Construye para founders. Ayuda a founders a shippear. |
| Unlock the power of | (describe qué hace) |
| Cutting-edge | (nombra la tecnología específica) |
| Game-changing | (nombra el cambio específico) |
| AI-powered | (no lo anuncies, muéstralo) |
| World-class | (entrega evidencia) |
| Best-in-class | (entrega evidencia) |
| Innovative solution | (di qué es realmente) |
| Seamless experience | (describe el flujo real) |
Cadet type foundry, BIPRK. Una display geométrica con calidez latinoamericana en sus curvas; la ‘a’ y la ‘g’ son discretamente imperfectas. Elegimos Syne porque es institucional en 700, juguetona en 800, y carga actitud builder.
Omnibus-Type, open source. Una grotesca con contraformas generosas que lee con calma en cualquier tamaño. Rigurosa sin ser fría, la voz de razón del sistema.
La tipografía de ingenieros, hecha por ingenieros. Mono carga coordenadas, labels, estado, código, timestamps y la estructura alrededor de la prosa editorial.
| Token | Fuente | Tamaño | Línea | Tracking | Peso | Uso |
|---|---|---|---|---|---|---|
| hero | Syne | clamp(80, 12vw, 200px) | 0.95 | -0.045em | 400 / 700 | Hero de marca, uno por página |
| h1 | Syne | clamp(64, 9vw, 144px) | 0.95 | -0.035em | 700 | Apertura de página |
| h2 | Syne | clamp(40, 5.2vw, 72px) | 1.05 | -0.02em | 400/700 mixto | Título de sección |
| h3 | Syne | 30px | 1.15 | -0.02em | 600 | Título de card |
| h4 | Syne | 22px | 1.2 | -0.02em | 600 | Sub-card |
| lead | Archivo | 19px | 1.7 | 0 | 400 | Párrafo de entrada |
| body | Archivo | 16px | 1.55 | 0 | 400 | Prosa |
| small | Archivo | 14px | 1.5 | 0 | 400 | Captions |
| micro | Archivo | 12px | 1.3 | 0.18em | 500 / UPPER | Botones, labels, nav |
| meta | JetBrains Mono | 11px | 1.4 | 0.08em | 400 / UPPER | Coordenadas, eyebrows, estado |
Dinnartec opera sobre oscuro. El fondo no es negro puro: es una tinta con 3% de calidez para que nunca se lea como default del navegador. Cada vertical tiene un solo color de acento, nunca mezclado con el acento de otra vertical en la misma composición.
| Acento | Sobre Ink (#0A0A0B) | Sobre Paper (#FAFAF7) | Uso aprobado | Uso evitado |
|---|---|---|---|---|
| Core paper | 19.87 : 1 · AAA | N/A | All text on ink. Borders. Icon strokes. | Large flood as a brand signal (it's type). |
| Solutions indigo-violet | 4.84 : 1 · AA-small | 3.90 : 1 · AA-large only | Accent text/rules on ink. Underlines. CTA bg. | Body text on paper. Small icons on paper. |
| Factory cobalt | 5.05 : 1 · AA-small | 3.72 : 1 · AA-large only | Status dots. Data accents. CTA bg. | Body text on paper. Small text on paper. |
| Labs steel | 7.53 : 1 · AAA-large · AA-small | 2.50 : 1 · FAIL | Code links. Citation marks. Diagram strokes. | Anything on paper. Steel fails on bone. Use ink variant. |
La inversión no es #ffffff. Es #F4F2EC, un hueso cálido. Ink pasa a #0A0A0B. Los acentos se profundizan un paso para contrastar sobre hueso: indigo-violet → #3D2D85, cobalt → #2A3FA0, steel → #3D4A5C. Oscuro es el default; claro es para papers de Labs con mucha lectura, PDFs e impresión.
El espacio generoso no se negocia. La contención se lee como confianza. Toda superficie vive sobre una grilla de 4px; todo container respira.
Mobile colapsa a 4 columnas. Tablet a 8. Desktop a 12. Las divisiones asimétricas (7/5, 5/7, 8/4) son preferibles a mitades perfectas.
| narrow | 960px | Papers de Labs, specs técnicas, legal. |
| default | 1320px | Marketing, producto. |
| wide | 1560px | Datos, dashboards, galerías. |
El gutter es max(24px, 3.2vw), escala con el viewport.
| Token | Min | Grilla | Hero típico |
|---|---|---|---|
| xs | 0 | 4 col, gutter 16px | hero @ 80px |
| sm | 640 | 6 col, gutter 20px | hero @ 96px |
| md | 960 | 8 col, gutter 24px | hero @ 128px |
| lg | 1280 | 12 col, gutter 32px | hero @ 168px |
| xl | 1600 | 12 col, gutter 48px | hero @ 200px |
Toda transición tiene una razón. Si no le dice algo al usuario, de dónde viene, qué entra, qué queda estable, no debería existir.
El motion cuenta causa y efecto. Si quitarlo no cambia lo que el usuario entiende, no debería existir.
El easing de entrada es generoso (expo-out, 520ms). El de salida es seco (expo-in, 200ms). Respeta el tiempo; no lo gastes en despedidas.
Usamos animación ligada al scroll para narrativas largas, una idea por sección, revelada en secuencia. Parallax está prohibido. Sólo posición, escala y opacidad.
Default. 80% de las transiciones. Calma, profesional, sin show.
Contenido entrando a página, scroll-reveal. Expo-out.
Contenido saliendo. Expo-in, arrastre lento, salida rápida.
Cambio de estado UI, hover, focus. Directo, sin overshoot.
Arcos ligados al scroll. El easing "cinemático".
Cuando prefers-reduced-motion: reduce está activo, preservamos fades de opacidad pero llevamos translate/scale/rotate a cero y reducimos duraciones a 1ms. El punto pulsante del edge rule se congela. Sin parallax, sin marquee, sin autoplay.
--paper--ink--paper-muted--edge-strong--ring--d-base--ease-precise.vertical-{accent}Un CTA primario por superficie. Las acciones secundarias van ghost o text-link. El ojo aterriza una vez, luego decide.
Dos primarios en la misma superficie. El usuario se pausa; la página ahora tiene dos opciones igual de fuertes en vez de una y un fallback.
Borde 1px, fondo ink-raised. Sin sombra, sin radius. La línea fina hace el trabajo.
El borde pasa de 10% a 22%. El fondo sube 3% hacia paper. 320ms, easing preciso.
El acento izquierdo de 2px señala qué vertical es dueña de la card.
--ink-raised--edge--edge-strong--s-10--d-base--ease-precise.card[data-v]Flujo vertical con gap consistente. Reemplaza <div style={{display:flex,flexDirection:column,gap:N}}>.
Grupo inline, hace wrap por defecto. align, justify, wrap as props.
display:flex,gap,flexWrapcols recibe un número (repeat) o un template string. responsive collapses to 1 col below 768px.
cols="2fr 1fr" for asymmetricgap uses the 4px scale: 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 40, 48.gap={4} = 16px. Default wrap on Cluster is true.<div>; pass style for one-off overrides.style={{display:flex,gap}} hand-rolls.--ds-gap--ds-cols--s-{0..48}.ds-stack.ds-cluster.ds-gridvertical colors the value. emphasis="hero" jumps to t-h2 (clamped 40-72px).$340K not $340,000.--f-display--t-h3--t-h2--paper--paper-muted--tr-snug.ds-stat[data-v]value accepts JSX, pass a <Badge> for status, mono text for versions.--ds-spec-cols--edge--edge-strong--f-display--f-mono--t-bodyEl <Footer> debajo de esta card es el mismo componente usado en /. Props: brand, slogan, columns, showThemeSwitch, copyright, legal, langSwitch.
{href}) or plain text (no href).columns.length drives the grid template via CSS var, 1, 2, or 3 columns adapt.copyright, legal, or langSwitch are set.--ink-deep--paper--paper-muted--paper-dim--paper-faint--ds-footer-cols© 2026 Real Estateby Dinnartec
© 2026 Fitnessby Dinnartec
© 2026 Brickendby Dinnartec
© 2026 NAVIby Dinnartec
© {year} {product} · by DinnartecDinnartec renders in --paper (full strength); the rest in --paper-dim.copyright text on Factory surfaces; on the Dinnartec master site itself, use the standard <Footer> copyright.parent only if the structure ever needs it (default Dinnartec).--f-mono--paper--paper-dim--paper-faint--edge-strong--paper--paper-dim--status-error--f-body--t-bodyLos badges son rectángulos, nunca cápsulas. Borde 1px, label mono, punto de estado 6px. Los puntos live pulsan cada 2s.
--edge-strong--paper-muted--status-{live,beta,error,neutral}.badge[data-v]--ink--edge--paper--paper-muted--ring.vertical-{accent}backdrop-filterHaz click en cualquier icono para cambiar el tema de todo este doc. Choice persists in localStorage. System follows the OS via prefers-color-scheme.
data-theme on every .ds-root--*-ink variants on light (AA on bone)role="radiogroup", aria-label, titledata-theme--ink-raised--paper--ink--paper-dim--paper-muted--ringTres comportamientos que, juntos, hacen que cualquier superficie se reconozca como Dinnartec, incluso sin wordmark.
Una línea horizontal de 40px siempre fijada arriba del viewport, con metadata viva: coordenadas de locale, sección actual, timestamp de build, estado. Reemplaza el rol ambiental de una nav típica de marketing con evidencia de ingeniería.
La regla vuelve a renderizar en cada cambio de ruta y en cada cambio de sección por IntersectionObserver.
Todo titular hero se estructura como fragmentos discretos: un prefijo regular, un aside tenue, un acento bold y una cláusula final limpia. Al cargar la página, los fragmentos entran en secuencia, separados por ~180ms, cada uno con entrada expo-out. Sin typewriter, sin blur, sólo composición ordenada.
Todo bloque de prosa está envuelto en evidencia de ingeniería: coordenadas, números de sección, timestamps, hashes de commit, en JetBrains Mono a 11px y 8% de tracking. El scaffolding nunca aparece dentro de la prosa; vive arriba, al lado o abajo, como anotaciones en un build log.
Crepes & Waffles llegó con un problema de conciliación. Construimos una sola fuente de verdad en 11 semanas y recuperamos $340K en ingresos no facturados durante el primer trimestre de operación.
La imagery es geometría, tipo, diagramas, coordenadas mono, reglas de acento y MarkField. La fotografía se gobierna con Plate. La realidad de producto se gobierna con EvidenceFrame. Los mockups sociales se gobiernan en v1.6. Toda superficie visual se mantiene escasa, con caption y ligada a evidencia.
v1.5 keeps one identity primitive for now: MarkField. It is built from repeated mark units and reserved for quiet brand signal, not decorative illustration.
When the page discusses a specific thing or person and the reader gains something from seeing the actual object, render it through the Plate primitive. Duotone treatment locks the photograph into the system palette; the numbered caption forces a deliberate count per surface. Decorative or ambient photography remains rejected: portraits, offices, hands at keyboards, stock, and screenshots.




Heroicons v2 Outline. 24×24 grid, 1.5px stroke, round caps and joins, currentColor. Never filled, never duotone. Icons always trail text in CTAs, never icon-only buttons.
v1.6 no rediseña Dinnartec. Agrega una capacidad puntual sobre v1.5: mockups sociales controlados, permitidos sólo cuando ayudan a entender un producto, workflow u oferta en el feed.
Plate ahora tiene densidad, grain e intención de crop. Sigue aceptando sólo fotografías reales que ayuden al lector a inspeccionar algo.

MarkField extiende el dot-grid hacia una textura orgánica de marca. Soporta la composición, pero nunca compite con el mensaje.
| Superficie | Plate | MarkField | Regla |
|---|---|---|---|
| Hero landing | Raro | Raro | El tipo sigue siendo el material hero por defecto. |
| Landing section | Permitido | Permitido | Usar cuando la imagen prueba la sección. |
| Blog post | Permitido | Raro | Plate carga referencias y objetos reales. |
| Social export | Permitido | Permitido | Mockups controlados permitidos. Screenshot crudo no. |
| Open Graph | Raro | Permitido | Preferir tipo, metadata y señal de baja densidad. |
Un mockup entra sólo si acelera comprensión en feed. La landing mantiene su regla: tipo, diagramas, Plate, MarkField y EvidenceFrame.
Si una pieza necesita otra fuente, otra paleta, containers redondeados, mockups inclinados fuera de redes o screenshots crudos para funcionar, no pertenece a v1.6.
El sistema puede mostrar realidad de producto sin volverse template SaaS. Los artefactos de evidencia son la forma permitida de revelar ledgers, trazas, diagramas, release notes y prueba de caso. No son screenshots. Ayudan al lector a juzgar el trabajo.
Un estado de sistema puede mostrarse cuando el artefacto está construido dentro del DS. Sin screenshots, mockups inclinados, glass cards o escenas desktop ambientales.
Conciliación manual, filas duplicadas, facturas sin shared source of truth.
Registro operativo único, cola de excepciones, revisión financiera semanal review.
A case artifact compresses the situation, the intervention, and the measurable result. It should feel like a clean work file, not an ad.
if actor.scope.allows(task): plan = planner.expand(task) run(plan, boundary=actor.scope) else: request_handoff(actor, task)
Labs artifacts can be denser. They earn that density with structure: method, diagram, pseudo-code, constraint, source.
NAVI artifacts may use the midnight treatment, but the information still has to be inspectable: who acted, why, and under which permission scope.
Usa MethodArtifact cuando una sección necesita explicar cómo Dinnartec works. It gives Open Design and production code the same grammar: inputs, system maps, checklists, logs, and outputs.
| Type | What it must show | Where it belongs |
|---|---|---|
| Estado del sistema | Un ledger, traza de sistema, artefacto de release o estado abstracto de producto. | Páginas Factory, lanzamientos de producto, demos. |
| Evidencia de caso | Números antes/después, tiempo, contexto de cliente, artefacto operativo. | Páginas Solutions y casos. |
| Nota de investigación | Diagrama, pseudocódigo, benchmark, nota de método, referencia a prior art. | Papers y docs de Labs. |
| Protocolo de agente | Estado de tarea, handoff, límite de permisos, traza o schema de mensaje. | Producto NAVI y tooling interno. |
Si una imagen sólo dice "tecnología", recházala. Si le permite al lector inspect a real state, a real constraint, or a real result, rebuild that evidence as a Dinnartec artifact. The character stays Dinnartec because the surface remains rectangular, captioned, measured, and scarce.
La primitiva TextureSurface define cuatro patrones de fondo permitidos. Toda textura debe señalar, contar o etiquetar algo. La decoración sin función es el modo de falla. Si la superficie todavía se entiende después de quitar la textura, quítala.
PATRÓN 01
Drafting paper · diagram ground · technical surface.
Reads as "esto es un plano". Standard (16px) para superficies normales; tight (8px) para detalle cercano; loose (28px) para fondos amplios.
PATRÓN 02
Errata · zona cancelada · cita marginal.
Convención de plano técnico: rayado = marcado, no eliminado. Reservado para callouts y bloques de cita. Nunca como fondo de hero.
PATRÓN 03
Hero · respiración · superficie larga.
Ruido SVG, opacidad bakeada por densidad. Tone se ignora. Úsalo para evitar sensación de "rectángulo plano" en heroes; nunca como decoración secundaria.
PATRÓN 04
Banda perimetral · sub-rule · marcador de contenido.
Hereda lenguaje del print de revista. Útil como banda inferior de sección o degradación de Plate. El accent se permite cuando la banda vive dentro de un vertical específico.
Si la textura no se nota cuando se quita, no estaba haciendo trabajo. Cuatro ejemplos de texturas en su rol real.
DOT-GRID · diagrama de arquitectura
El parámetro retry_after dejó de aceptar segundos en v1.2. Usar milisegundos.
HATCH · zona errata / cancelado
F.02 · OPERATOR ARM
GRAIN · hero · superficie larga
HALFTONE · banda perimetral
TextureSurface señala roles de superficie: diagrama, errata, grain o banda perimetral. MarkField señala identidad Dinnartec mediante unidades pequeñas y repetidas de la marca. Úsalo menos que dot-grid.
Cada vertical hereda tipografía, grilla, motion y primitivas. Sólo difieren en cuatro dimensiones: acento, densidad, voz y señal visual.
| Dimensión | Core (marca madre) | Solutions | Factory | Labs |
|---|---|---|---|---|
| ACCENT | Paper #FAFAF7 | Indigo-violet #836CDA | Cobalt #5B7BE0 | Steel #8FA3BD |
| DENSIDAD | Generosa. Padding de sección 192px. Container estrecho para prosa. | Generosa. Columna amplia. Números de resultado al frente. | Densa. Densidad de página de producto. Padding 96–128px. Tablas, datos. | Académica y densa. Container estrecho 960px. Notas al pie frecuentes. |
| VOZ | Institucional. Primera persona plural. "En Dinnartec construimos." | Cálida, primera persona plural. "Construimos contigo." Casos con nombre. | Producto primero, beneficios después. "Un ledger. Cada número." | Técnica, respetuosa del prior art. "Esto construye sobre el trabajo de..." |
| IMAGERY | Guiada por tipografía. Frames editoriales, coordenadas mono, textura dot-grid. Sin fotos. | Números de resultado en display. Reglas de acento, frames 1px, casos con nombre. Sin retratos. | Producto como arquitectura abstracta por defecto. Estados UI reales sólo dentro de EvidenceFrame. | Diagramas. Bloques de pseudocódigo. Arquitectura en líneas de 1px sobre dot-grid. |
| DATOS | Con moderación. Revenue, tamaño de equipo. Mono. | Números de resultado ($340K recuperados, 11 semanas). Casos específicos, con nombre. | Dashboards vivos, uptime, MRR, conteo de filas. Mono, acentos cobalt. | Benchmarks, tablas, fórmulas. Highlights Steel. Monospace primero. |
| CTA | "Hablemos" | "Hablemos / Let’s talk" · indigo-violet bg | "Probar demo" · bg cobalt · siempre junto a pricing | "Leer paper" / "Ver en GitHub" · bg steel |
Diagnosticamos, construimos, shippeamos. Nos quedamos sólo el tiempo que nos necesitas.
La paleta default 2023–24 de “producto IA”. Orbes flotantes, gradientes láser en fondos de hero. Cliché instantáneo. Única excepción: superficies NAVI. El agente interno de IA tiene el único gradiente del sistema, una malla nocturna con los tres tonos verticales (cobalto + violeta + acero) sobre fondo ink profundo (token --navi-gradient, scoped via .navi-surface). Independiente del tema a propósito. Fuera de NAVI, sigue siendo cliché. La regla se fortalece por escasez.
Somos IA nativa. No lo anunciamos. Si tenemos que decirlo, no lo hemos mostrado.
Personitas junto a laptops gigantes. Edificios fucsia. Cualquier cosa de un template SaaS. Nunca.
Somos rectángulos. border-radius: 0 is es una decisión de marca. Excepción: puntos de estado.
Cero emoji. Si necesitas una marca visual, usa el glifo ◊ o un icono de línea.
Sólo sentence case. El title case es corporativo y frío; nosotros no.
Usamos línea fina de 1px. Las sombras pertenecen a la imagen hero, a ningún otro lugar. Sin blurs 0 10px 25px.
No fingimos física. Motion es narrativa. Si no pasaría en una puesta en escena en vivo, no pasa aquí.
"Leveraging synergies." "Empowering founders." "Unlock the power of..." Todo prohibido. Escribe como un builder escribiendo.
Sin oficinas de noche, sin founders en su espacio, sin manos con luz cálida sobre teclado, sin stock, sin mockups flotantes en landing. Tres excepciones permitidas: <Plate /> for para fotografías con sujeto aislado y <EvidenceFrame /> para ledgers, trazas, diagramas y evidencia de caso construida dentro del DS. En redes, mockups sociales controlados para producto, workflow u oferta. Todas tienen caption, son escasas y están ligadas a algo que el lector puede inspeccionar.
Una superficie, un acento. El índigo-violeta de Solutions y el cobalto de Factory nunca se tocan en la misma página. El plata de Labs no aparece en una página de Factory.
Our ink is #0A0A0B. Tiene 3% de calidez. No #1e1e1e, not #121212 como fondo. Comprométete con el negro.
Los patrones son superficies, no adorno. Nunca apiles dos texturas en la misma superficie (sin hatch sobre dot-grid, sin grain sobre halftone). Una superficie, una textura. Y toda textura debe señalar, contar o etiquetaralgo: dot-grid significa «technical surface», hatch means «errata / cancelled», grain means «hero respiration», halftone means «perimeter sub-rule». If you can remove the texture y la superficie todavía se entiende, quítala. Usa la primitiva <TextureSurface /> . Los fondos ad hoc evaden la disciplina.
Sin screenshots de producto, chrome de navegador, ventanas de app, recortes de dashboard ni UI pegada dentro de un frame como imagery de marca. La realidad de producto se reconstruye como <EvidenceFrame />. La identidad visual viene de la tipografía, Plate, TextureSurface y <MarkField />. En redes, un screenshot sólo entra si se redibuja o depura como mockup social controlado.
Una spec ejecutable que diseño o frontend pueden implementar sin adivinar. Layout, tokens y secuencia de motion.