DESIGN SYSTEM

IAmJafeth · Vinyl & Tech

v 2.0.0 · ES · Web · Editorial · Social · Video
// índice
// 01

Filosofía

Una estética que mezcla la precisión digital del terminal con el alma análoga del vinilo. Lo importante no es el terminal en sí — es lo que el terminal representa: foco, sustancia, herramienta sobre decoración. Esa sensibilidad se traslada a cualquier formato — sitios web, artículos, posts, video — manteniendo el mismo carácter.

El terminal como motivo, no como contenedor

El terminal funciona bien para piezas pequeñas y enfocadas (404, coming-soon, snippets, posts). Para sitios completos, artículos largos y video, el terminal aparece como acento o componente — no como marco de todo el contenido. La grilla de la página respira; el terminal puntúa.

ADN visual
  • Fondo oscuro, monoespaciado, verde fósforo
  • Surcos, brackets, prompts como acentos
  • Texturas análogas: scanlines, grano, viñeta
  • Espacio generoso, jerarquía clara
Tres palabras clave

monoespaciado · análogo · deliberado

Si una decisión de diseño no encaja en esos tres adjetivos, no pertenece al sistema.

Escala del sistema
formatoel terminal es...ejemplos
piezas pequeñascontenedor central404, coming-soon, snippets
sitios completoscomponente / acentolanding, portfolio, blog
artículos largoscode blocks, calloutstutoriales, ensayos, docs
posts socialesprotagonista de cardsquote cards, code cards
videoframes intro/outro, lower thirdstutoriales, vlogs, reels
// 03

Colores

Paleta dominada por negros profundos con el verde fósforo como acento principal. Los acentos cálidos (ámbar, rojo) se reservan para advertencias y errores. Pensada para modo oscuro nativo; cualquier uso en claro requiere ajustes específicos.

obsidiana
#0A0A0C · rgb(10,10,12)
fondo base de pantalla
--bg
superficie
#111114 · rgb(17,17,20)
tarjetas, terminales, paneles
--surface
superficie elevada
#151518 · rgb(21,21,24)
etiquetas, contenedores anidados
--surface-2
borde
#1E1E24 · rgb(30,30,36)
bordes y divisores sutiles
--border
verde fósforo
#39FF85 · rgb(57,255,133)
acento principal, prompts, éxito
--green
verde apagado
#1A7A40 · rgb(26,122,64)
bordes activos, hover states
--green-dim
ámbar
#FFB347 · rgb(255,179,71)
advertencias, rutas, en progreso
--amber
rojo señal
#FF4F6E · rgb(255,79,110)
errores, destructivos, alertas
--red
texto principal
#C8C8D0 · rgb(200,200,208)
texto de cuerpo
--text
texto apagado
#5A5A6E · rgb(90,90,110)
metadatos, comentarios, hints
--muted
Proporciones recomendadas

En cualquier composición, mantener aproximadamente: 70% negros · 20% grises · 8% verde · 2% ámbar/rojo. Los colores cálidos son rareza, no decoración.

// 04

Tipografía

Dos fuentes monoespaciadas, una para display y otra para cuerpo. El sistema completo es monoespaciado — no se usan fuentes proporcionales en ningún caso. Todo el texto se compone en minúsculas o sentence case salvo el wordmark.

Space Mono display · 400/700
Google Fonts
Vinyl & Tech
IBM Plex Mono cuerpo · 400/600 + itálica
Google Fonts
The needle drops at 33⅓ rpm.
# El cursor parpadea esperando un comando.
Escala tipográfica
display-xl 56px / 700
Space Mono · letter-spacing .04em
404
display-lg 32px / 700
Space Mono · letter-spacing .02em
Section Title
display-md 20px / 700
Space Mono · uppercase · letter-spacing .08em
SUBTITLE
body 14px / 400
IBM Plex Mono · line-height 1.7
Texto de cuerpo — comentarios, descripciones, prosa narrativa dentro del terminal.
small 12px / 400
IBM Plex Mono · muted
metadatos · 12px · color apagado
micro 10px / 400
uppercase · letter-spacing .16em
// LABEL · UPPERCASE
Reglas de tipografía
  • Solo fuentes monoespaciadas
  • Sentence case en cuerpo, UPPERCASE en labels micro
  • letter-spacing generoso en uppercase (.08–.16em)
  • line-height de 1.7 para legibilidad
A evitar
  • Fuentes proporcionales (Inter, Roboto, Arial)
  • Itálicas decorativas, solo para comentarios
  • Más de dos pesos en pantalla
  • Title Case en títulos
// 05

Formas

Geometría reducida: círculos perfectos (vinilo, dots de estado), rectángulos con esquinas redondeadas suaves (paneles, botones), y líneas finas que actúan como surcos o brackets. Sin shadows pronunciados ni gradientes elaborados.

círculo
vinilo · dot · spindle
rect 8px
paneles · cards
rect 4px
botones · pills
brackets
acento · marca
Bordes y radios
nombreradiouso
none0tablas, divisores
sm3–4pxbotones, pills, inputs
md8pxpaneles, cards, terminales
full50%círculos, dots, vinilos
// 06

Espacio y grilla

Las proporciones del sistema. Una escala de espaciado basada en múltiplos de 4, anchos máximos por tipo de contenido, y breakpoints claros. Estos números son la diferencia entre algo que se ve descuidado y algo deliberado.

Escala de espaciado · base 4
4px · xs · iconos
8px · sm · gap interno
12px · md · padding
16px · lg · gap default
24px · xl · padding card
32px · 2xl · entre bloques
48px · 3xl · entre subsecciones
64px · 4xl · entre secciones
96px · 5xl · ritmo vertical
Anchos máximos de contenido
anchousoejemplos
680pxterminal / texto largo404, blog post, lectura focalizada
900pxcontenido editorialartículo con imágenes, ensayo
1100pxcontenedor estándarlanding, portfolio, página de proyecto
1280pxgrilla ampliagalerías, dashboards
1440pxmáximo absolutofull-bleed con padding lateral
Grilla de 12 columnas
1
2
3
4
5
6
7
8
9
10
11
12

Gutter de 24px en desktop, 16px en mobile. Combinaciones comunes: 6+6 (dos col), 4+4+4 (tres col), 3+3+3+3 (cuatro col), 8+4 (contenido + sidebar).

Breakpoints
nombremin-widthuso
mobile0px1 columna, padding 16–20px
tablet700px2 columnas, padding 24px
desktop1024px3+ columnas, sidebar visible
wide1280pxcontenedor ampliado
ultra1440pxtope de contenido
Ritmo vertical

Entre secciones mayores: 96px · entre subsecciones: 48px · entre bloques relacionados: 32px · entre elementos del mismo bloque: 16px. El espacio en blanco no es vacío, es respiración.

// 07

Componentes

Bloques visuales reutilizables. El terminal es el contenedor más característico pero uno entre muchos. Cards, botones, badges, inputs y callouts comparten el mismo lenguaje visual sin necesidad de estar siempre dentro de un terminal.

Terminal window

echo "hola mundo"
hola mundo
# el componente base de toda interfaz

Botones

Progress bar

compilando 62%

Indicador de actividad (vinilo)

reproduciendo ··· side A at 33⅓ rpm

Status dots

online en progreso error offline

Cursor parpadeante

esperando entrada

Inputs

# prompt como prefijo, borde verde en focus

Cards de contenido

ACTIVO

Project_Alpha

Descripción breve del proyecto en una o dos líneas.

cd ./project →
EN PROGRESO

Project_Beta

Descripción breve del proyecto en una o dos líneas.

cd ./project →
ARCHIVADO

Project_Gamma

Descripción breve del proyecto en una o dos líneas.

cd ./project →

Badges y tags

v2.0.0 beta deprecated #tech #vinyl

Callouts

✔ ÉXITO
El build se completó sin errores.
◌ AVISO
Algunas dependencias necesitan actualización.
✗ ERROR
No se pudo conectar al servidor.
# NOTA
Información complementaria o contexto adicional.

Code block

vinyl.js [copy]
1  const record = {
2    title: 'Side A',
3    rpm: 33.3
4  };

Pull quote

"El código se escribe una vez pero se lee mil veces."
— guido van rossum
// 09

Layouts y patrones

Composiciones recurrentes para armar páginas. Cada patrón está pensado como un bloque que puede combinarse con otros — hero + feature grid + CTA + footer, por ejemplo — respetando el ritmo vertical y la grilla establecidos.

Hero · split con terminal acento

// DEVELOPER · VINYL HEAD

Construyo cosas
que giran a 33⅓ rpm.

Software por día, surcos por noche. Soy un ingeniero que colecciona vinilos y le gusta tratar el código como una pieza de arte.

ver proyectos leer blog
whoami
jafeth
ls ~/passions
code/ vinyl/ coffee/

Feature grid · 3 columnas

</>

Engineering

Backend, infra, herramientas. Lo que hace que las cosas funcionen sin sorpresas.

Vinyl

Colección, descubrimiento, historia del formato. El sonido análogo importa.

{}

Writing

Ensayos sobre desarrollo, cultura, y la intersección de ambos.

Stats row

142
// VINYLS
23
// PROJECTS
8
// YEARS_CODING
// CUPS_OF_COFFEE

Call to action

// READY_TO_BUILD?

Trabajemos juntos.

Si estás buscando alguien que tome el código en serio y respete el detalle, hablemos.

./contactar

Inventario de patrones

patróncolumnasuso
Hero split6+6landing principal, intro con demo
Hero centeredfullportfolio minimalista, presentación
Feature grid4+4+4servicios, capacidades, valores
Stats row3+3+3+3números clave, métricas
Article + sidebar8+4blog post, documentación
Project showcase6+6 alternacasos de estudio, galería
CTA cardfull bordeadocierre de página, conversión
Quote pullfull centradotestimonios, citas
// 10

Texturas y efectos

Capas atmosféricas que dan profundidad y referencia análoga al sistema digital. Aplicarlas con sutileza — son ambiente, no decoración protagonista.

Scanlines CRT

Líneas horizontales repetidas de 2px con opacidad muy baja (.06–.08). Aplicado a body::before, fijo, sin pointer-events.

repeating-linear-gradient(
  0deg, transparent, transparent 2px,
  rgba(0,0,0,.06) 2px, rgba(0,0,0,.06) 4px
)
Viñeta radial

Oscurecimiento progresivo desde el centro hacia los bordes. Refuerza la sensación de monitor CRT.

radial-gradient(
  ellipse at center,
  transparent 60%,
  rgba(0,0,0,.5) 100%
)
Noise / grain

Ruido SVG inline como data-URI, opacidad .03. Imita imperfección análoga sin afectar performance.

feTurbulence type="fractalNoise"
baseFrequency=".85" numOctaves="4"
Glow del acento

Drop-shadow verde muy suave alrededor del logo y botones primarios en hover. Evoca fósforo encendido.

drop-shadow(0 0 24px
rgba(57,255,133,.08))
// 11

Movimiento

El movimiento refuerza la narrativa: cosas tipeándose, vinilo girando, cursor parpadeando. Easing lineal o ease estándar — sin curvas elásticas ni bounces.

animaciónduracióneasinguso
type-in .3s ease aparición de líneas en terminal, staggered en cascada
spin (vinilo) 3–8s linear rotación constante, infinita
blink (cursor) 1s step-end parpadeo binario, no gradual
fade-in .4–.6s ease aparición de elementos secundarios
drift 18–25s linear glyphs flotando en el fondo
hover .25s ease transiciones de botones y cards
Principio del stagger

Las líneas del terminal aparecen secuencialmente con delays de .4–.5s entre cada una, simulando un sistema que ejecuta comandos en tiempo real. Total de la cascada: 4–6 segundos. Después, la interfaz queda estática salvo por el vinilo girando y el cursor parpadeando.

// 12

Iconografía

No se usan packs de íconos comerciales. Los símbolos vienen del propio mundo del terminal y del vinilo — ASCII, glifos Unicode, y SVGs custom cuando hace falta forma.

prompt
play
pause
música
éxito
en progreso
error
···
cargando
</>
código
{ }
objeto
#
comentario
//
label
// 13

Voz y tono

Toda la copy se escribe en bajo nivel — directa, técnica, con humor seco. El sistema mezcla terminología de programación con metáforas de vinilo: "la aguja saltó", "compilando el lado B", "silencio a 33⅓ rpm".

Anatomía de un buen mensaje
  1. Estado técnico claro (404, 200, build progress)
  2. Metáfora de vinilo o audio (aguja, surco, lado B, masterizando)
  3. Cierre con próximo paso (cd ~/inicio, drop the needle again)
Ejemplos
"la aguja saltó — este surco no existe."
"aún prensando el vinilo — el sitio se está masterizando."
# grep -r "pagina" /srv/coleccion-de-vinilos/
"¡Ups! No encontramos la página que buscabas 😅"
"Estamos trabajando duro para mejorar tu experiencia."
"Error 404. La página no fue encontrada."
Características
  • Minúsculas excepto wordmarks
  • Humor seco, no entusiasta
  • Mezcla comandos reales con metáforas
  • Comentarios técnicos con #
A evitar
  • Emojis (excepto símbolos técnicos)
  • Exclamaciones, lenguaje publicitario
  • Frases corporativas vacías
  • Disculpas innecesarias
// 14

Páginas completas

Plantillas de página que combinan los layouts y patrones para formar experiencias completas. El terminal aparece como acento, no como contenedor — la página respira con grilla y espacio.

Landing / portfolio

JJAFETH
~/inicio/proyectos/blog/contacto
// DEVELOPER · VINYL HEAD
Construyo cosas que giran a 33⅓ rpm.
Software por día, surcos por noche.
ver proyectos leer blog
whoami
jafeth
ls ~/passions
code/ vinyl/ coffee/
</>
Engineering
Backend, infra, herramientas.
Vinyl
Colección y descubrimiento.
{}
Writing
Ensayos y notas.
142
VINYLS
23
PROJECTS
8
YEARS
COFFEE
// READY_TO_BUILD?
Trabajemos juntos.
./contactar

# estructura: nav · hero split · feature grid · stats · CTA · footer

Anatomía de una página

bloquealturacontiene
Nav superior64–80pxlogo + links + CTA secundario
Hero60–80vhheadline + dek + 1-2 CTAs + demo opcional
Seccionesvariable96px de padding vertical, ritmo constante
CTA finalautocard bordeada con acento verde
Footerautositemap + socials + meta + signature
// 15

Contenido editorial

Patrones para artículos, ensayos, documentación y blog. La lectura larga necesita más respiración que un terminal puede dar — el sistema se relaja, mantiene la tipografía monoespaciada y los acentos verdes, pero abre el espacio.

Header de artículo

// ENSAYO · LECTURA: 8 MIN

¿Por qué el vinilo importa en la era del streaming?

Un argumento sobre fricción, ritual, y la relación entre música y atención.

jafeth · 2026.05.23 · #vinyl #cultura

Jerarquía de titulares

H1 · Título de artículo

H2 · Sección mayor

H3 · Subsección

H4 · Etiqueta de bloque

Párrafo de cuerpo. Use line-height generoso (1.8) para lectura larga. El primer párrafo de un artículo puede llevar drop cap si el contexto lo amerita.

Cuerpo de artículo

El streaming nos prometió toda la música del mundo a un toque. Y cumplió. Pero algo se perdió en la traducción — la fricción de elegir un disco, sacarlo del sleeve, dejar caer la aguja. El ritual desapareció, y con él, cierta forma de escuchar.

El vinilo no es nostalgia, es resistencia activa contra una forma de consumo que premia la cantidad sobre la calidad.

"Listening to vinyl is an act of presence, not an act of background."
— alguien que sabe

Esa presencia es lo que sostiene este argumento. Y por eso, en una era donde todo se reproduce automáticamente, vale la pena hacer el esfuerzo de elegir.

Elementos editoriales

elementotratamiento
Drop capSpace Mono 3.2rem verde, solo en primer párrafo de artículos largos
Pull quoteborder-left verde 3px, fondo superficie-2, padding generoso
Code blockHeader con nombre de archivo + botón copy, line numbers en muted
Image captionTexto en muted, italic, 12px, debajo de la imagen
FootnoteNúmero superscript verde, link a aside al final
Related linksLista al final con prompt + título + tiempo de lectura
Ancho de lectura680–720px máximo para confort
Line-height1.8–1.85 para cuerpo largo
// 16

Redes sociales

Plantillas por formato. En social, el terminal vuelve a ser protagonista — los posts son pequeños, enfocados, y deben leerse en un scroll. Aspect ratios y safe areas definidos para cada plataforma principal.

Formatos por plataforma
ratiodimensionesplataforma
1:11080×1080Instagram feed, LinkedIn square
4:51080×1350Instagram feed (vertical), máxima visibilidad
9:161080×1920Stories, Reels, TikTok, Shorts
16:91200×675Twitter/X card, YouTube thumb, Open Graph
3:11500×500Twitter/X banner
1.91:11200×630LinkedIn link preview, OG image

Templates 1:1 (Instagram feed)

// QUOTE_OF_THE_DAY
"El código se escribe una vez pero se lee mil veces."
— guido van rossum
@iamjafeth vinyl & tech

quote card

// TIL@iamjafeth
const
vinyl = {
rpm: 33.3,
side: 'A'
}
Cómo modelar un vinilo en TypeScript.

code card

// STAT_CARD
33⅓
rpm — la velocidad de un LP estándar
@iamjafeth · vinyl facts

stat card

Template 9:16 (Stories / Reels)

// NOW_PLAYING
J
side A at
33⅓ rpm
@iamjafeth

now playing

// THREAD · 1/5
5 hábitos que mejoraron mi flujo de código.
Aprendí estos en años — espero te ahorren tiempo.
→ swipe

thread intro

// ANNOUNCEMENT
J
Nuevo post.
Sobre vinilo y código.
→ leer

announcement

Template 16:9 (OG / Twitter card)

J
// IAMJAFETH.COM
¿Por qué el vinilo importa en la era del streaming?
jafeth · 8 min · ensayo

Carousel / multi-slide

// 1/5
5 hábitos para mejor código.
→ swipe
// 2/5
01
Naming claro.
Nombres descriptivos siempre.
// 3/5
02
Funciones cortas.
Una cosa, bien hecha.
// 5/5
J
Seguime.
@iamjafeth
end
Safe areas y reglas
  • Padding interno mínimo: 5% del lado más corto
  • En Stories/Reels: dejar libre el 15% superior (header app) e inferior (sticker bar)
  • Cada post incluye el handle (@iamjafeth) o el logo
  • Un tema por post — un quote, un stat, un tip — no mezclar
  • Carousels: primera slide es hook, última es CTA con logo
  • Mantener proporción 70/20/10 entre negros, grises y verde, igual que en web
// 17

Video

El sistema en movimiento. Los frames de video heredan el lenguaje del terminal — texto tipeándose, vinilo girando, transiciones limpias. Sin efectos de glitch agresivos: el carácter viene de la quietud, no del ruido.

Intro frame (16:9)

J
JAFETH
vinyl & tech

Lower third

JAFETH
// SOFTWARE ENG · @iamjafeth

Pantalla de código (tutorial)

~/vinyl-app/main.ts
1import { VinylPlayer } from './player';
2
3const player = new VinylPlayer();
4player.play('side-a');

End card / outro

J
// THANKS_FOR_WATCHING
Suscribite para más.
iamjafeth.com
@iamjafeth · github · linkedin
Especificaciones
  • Resolución mínima: 1920×1080
  • Frame rate: 30fps o 60fps
  • Códec: H.264 alto bitrate
  • Audio: vinilo crackle (-30dB) como bed opcional
Estilo
  • Texto que se tipea, no aparece de golpe
  • Transiciones: fade, corte seco, vinyl wipe
  • Música tranquila, no pop comercial
  • Sin glitch, sin neón, sin zoom dramático
// 18

Print y merch

Llevar el sistema al mundo físico. En print, los negros se vuelven más densos, el verde pierde luminosidad, y las texturas digitales (scanlines, glow) desaparecen — el papel ya tiene su propia textura.

JAFETH
// SOFTWARE ENG
J
iamjafeth.com

business card · 85×55mm

J

sticker circular · 75mm

// IAMJAFETH
VINYL
&
TECH
// SIDE A · 33⅓ RPM
iamjafeth.com

poster · A3

J
JAFETH
vinyl & tech

t-shirt · chest print

Consideraciones de impresión
aspectospec
Modo de colorCMYK para print, Pantone si requiere spot color verde
Verde equivalenteaprox. Pantone 802 C · ajustar a soporte
Resolución mínima300 dpi para alta calidad
Bleed3mm en todos los lados
Papel sugeridomate o uncoated para business cards · vinyl matte para stickers
Tipo de printoffset o digital para volumen · serigrafía para merch (1-2 tintas)
// 19

Reglas de uso

Lo no negociable. Estas reglas mantienen la coherencia del sistema a través de cualquier medio o aplicación futura.

Siempre
  • Fondo oscuro como base (negros y grises profundos)
  • Tipografía monoespaciada exclusivamente
  • Verde fósforo como único acento de marca
  • Texturas atmosféricas sutiles (scanlines, noise, viñeta)
  • Lenguaje técnico con metáforas de vinilo
  • Espacio libre alrededor del logo
  • Sentence case o minúsculas
  • Animaciones lineales o ease estándar
Nunca
  • Fuentes proporcionales (Inter, Helvetica, etc.)
  • Gradientes vistosos o colores neón fuera de paleta
  • Emojis decorativos en la copy
  • Tono publicitario o motivacional
  • Drop shadows fuertes o efectos glass
  • Title Case en títulos
  • Rotar, deformar o cambiar colores del logo
  • Iconos de packs comerciales mezclados