Esta flor todavía no ha brotado.
La página que buscas no está en nuestro escaparate. Prueba con el ramo de temporada, recién cortado esta mañana.
Ver ramos404 Floristería
Un jarrón de cristal con flores que se abren al cargar; del tallo vacío cuelga una etiqueta 404 de papel kraft.
Ajustes
Código
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex" />
<title>404 · Página no encontrada</title>
<style>
body { margin: 0; background: #000; }
.n4-florist {
--accent: #fb7185;
--k: 1;
position: fixed;
inset: 0;
z-index: 0;
overflow: hidden;
container-type: size;
display: grid;
place-items: center;
background: #000;
color: #f5f5f7;
font-family: -apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;
-webkit-font-smoothing: antialiased;
text-align: center;
line-height: 1.4;
}
.n4-florist *,.n4-florist *::before,.n4-florist *::after {
box-sizing: border-box;
}
.n4-florist .n4-copy {
position: relative;
z-index: 5;
display: flex;
flex-direction: column;
align-items: center;
gap: 1.6cqmin;
width: 100%;
max-width: 680px;
padding: 0 6cqw;
}
.n4-florist .n4-title {
margin: 0;
font-size: clamp(17px,4.2cqmin,36px);
font-weight: 600;
letter-spacing: -.02em;
line-height: 1.15;
text-wrap: balance;
}
.n4-florist .n4-sub {
margin: 0;
max-width: 34em;
font-size: clamp(13px,2.4cqmin,18px);
color: #a1a1a6;
text-wrap: balance;
}
.n4-florist .n4-tag {
font: 600 clamp(10px,1.9cqmin,13px)/1 ui-monospace,"SF Mono",Menlo,Consolas,monospace;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--accent);
}
.n4-florist .n4-cta {
margin-top: 1.8cqmin;
display: inline-flex;
align-items: center;
gap: .5em;
padding: .85em 1.5em;
border-radius: 999px;
background: #f5f5f7;
color: #000;
font-size: clamp(13px,2.2cqmin,16px);
font-weight: 600;
text-decoration: none;
transition: transform .3s cubic-bezier(.25,.1,.25,1),box-shadow .3s cubic-bezier(.25,.1,.25,1);
}
.n4-florist .n4-cta:hover {
transform: translateY(-2px);
box-shadow: 0 12px 32px -10px var(--accent);
}
.n4-florist .n4-cta:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 3px;
}
.n4-florist .n4-stars,.n4-florist .n4-stars2 {
position: absolute;
inset: -4%;
pointer-events: none;
}
.n4-florist .n4-stars {
background-image: radial-gradient(1px 1px at 8% 12%,#fff 60%,transparent),radial-gradient(1px 1px at 22% 68%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 35% 24%,#fff 60%,transparent),radial-gradient(1px 1px at 48% 82%,#fff 60%,transparent),radial-gradient(1px 1px at 57% 9%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 66% 44%,#fff 60%,transparent),radial-gradient(1px 1px at 74% 72%,#fff 60%,transparent),radial-gradient(1px 1px at 86% 18%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 93% 58%,#fff 60%,transparent),radial-gradient(1px 1px at 14% 42%,#fff 60%,transparent),radial-gradient(1px 1px at 40% 55%,#fff 60%,transparent),radial-gradient(1px 1px at 81% 90%,#fff 60%,transparent),radial-gradient(1px 1px at 4% 88%,#fff 60%,transparent),radial-gradient(1px 1px at 62% 30%,#fff 60%,transparent);
opacity: .75;
animation: n4-florist-tw calc(5s / var(--k)) ease-in-out infinite alternate;
}
.n4-florist .n4-stars2 {
background-image: radial-gradient(2px 2px at 18% 30%,rgba(255,255,255,.9) 50%,transparent),radial-gradient(1.5px 1.5px at 72% 20%,rgba(255,255,255,.8) 50%,transparent),radial-gradient(2px 2px at 30% 85%,rgba(255,255,255,.7) 50%,transparent),radial-gradient(1.5px 1.5px at 88% 70%,rgba(255,255,255,.8) 50%,transparent),radial-gradient(2px 2px at 52% 60%,rgba(255,255,255,.6) 50%,transparent),radial-gradient(1.5px 1.5px at 6% 55%,rgba(255,255,255,.8) 50%,transparent);
opacity: .55;
animation: n4-florist-tw calc(7s / var(--k)) ease-in-out infinite alternate-reverse;
}
.n4-florist [data-depth] {
transition: transform .9s cubic-bezier(.2,.7,.2,1);
}
@keyframes n4-florist-tw {
from {
opacity: .3;
}
}
@keyframes n4-florist-spin {
to {
transform: rotate(1turn);
}
}
@keyframes n4-florist-fade {
from {
opacity: 0;
transform: translateY(10px);
}
}
@media (prefers-reduced-motion:reduce) {
.n4-florist *,.n4-florist *::before,.n4-florist *::after {
animation: none!important;
transition: none!important;
}
}
.n4-florist {
background: radial-gradient(70% 60% at 50% 35%,#4a1d35,#1f0a17 75%);
color: #fff1f4;
font-family: "Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
}
.n4-florist .n4-vase {
width: min(56cqmin,380px);
height: auto;
margin-bottom: 1cqmin;
overflow: visible;
}
.n4-florist .n4-flower {
transform: translate(var(--x),var(--y)) scale(0);
animation: n4-florist-bloom calc(1s / var(--k)) calc(var(--d) / var(--k)) cubic-bezier(.34,1.56,.64,1) forwards;
}
.n4-florist .n4-flower ellipse {
fill: var(--c);
opacity: .92;
}
.n4-florist .n4-core {
fill: #fde68a;
}
.n4-florist .n4-tagx {
transform-origin: 220px 74px;
animation: n4-florist-swing calc(3s / var(--k)) ease-in-out infinite alternate;
}
.n4-florist .n4-tagx text {
font: 700 10px ui-monospace,"SF Mono",Menlo,Consolas,monospace;
fill: #2a0f1f;
}
.n4-florist .n4-glass {
fill: rgba(186,230,253,.14);
stroke: rgba(255,255,255,.45);
stroke-width: 1.5;
}
.n4-florist .n4-petal {
animation: n4-florist-fall calc(7s / var(--k)) calc(2s / var(--k)) linear infinite;
opacity: 0;
}
.n4-florist .n4-title {
font-size: clamp(22px,5.4cqmin,46px);
font-weight: 500;
font-style: italic;
}
.n4-florist .n4-sub {
color: #e4b9c6;
}
.n4-florist .n4-tag {
font-family: inherit;
text-transform: none;
letter-spacing: .06em;
}
.n4-florist .n4-cta {
background: var(--accent);
color: #1f0a17;
}
@keyframes n4-florist-bloom {
to {
transform: translate(var(--x),var(--y)) scale(1);
}
}
@keyframes n4-florist-swing {
from {
rotate: -8deg;
}
to {
rotate: 8deg;
}
}
@keyframes n4-florist-fall {
0% {
opacity: 0;
transform: translate(84px,74px) rotate(0);
}
10% {
opacity: .9;
}
100% {
opacity: 0;
transform: translate(40px,270px) rotate(540deg);
}
}
@media (prefers-reduced-motion:reduce) {
.n4-florist .n4-flower {
transform: translate(var(--x),var(--y));
}
}
</style>
</head>
<body>
<main class="n4-florist">
<div class="n4-copy">
<svg class="n4-vase" viewBox="0 0 300 260" aria-hidden="true">
<g class="n4-stems" fill="none" stroke="#4d7c0f" stroke-width="3" stroke-linecap="round">
<path d="M150 190C140 140 100 110 82 70"/><path d="M150 190C150 130 150 90 150 46"/><path d="M150 190C160 140 200 110 220 74"/><path d="M150 190C145 150 120 130 112 112"/><path d="M150 190C158 150 186 130 196 124"/>
<path d="M120 120c-14-6-22 2-24 10 12 2 20-2 24-10z" fill="#65a30d" stroke="none"/><path d="M178 132c14-4 22 4 22 12-12 0-20-4-22-12z" fill="#65a30d" stroke="none"/>
</g>
<g class="n4-flower" style="--d:.2s;--c:#fb7185;--x:82px;--y:70px"><ellipse rx="9" ry="17" transform="rotate(0) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(60) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(120) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(180) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(240) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(300) translate(0 -13)"/><circle r="7" class="n4-core"/></g>
<g class="n4-flower" style="--d:.5s;--c:#fbbf24;--x:150px;--y:46px"><ellipse rx="7" ry="16" transform="rotate(0) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(45) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(90) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(135) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(180) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(225) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(270) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(315) translate(0 -13)"/><circle r="7" class="n4-core"/></g>
<g class="n4-flower" style="--d:.8s;--c:#c084fc;--x:112px;--y:112px"><ellipse rx="8" ry="13" transform="rotate(0) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(72) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(144) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(216) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(288) translate(0 -10)"/><circle r="5" class="n4-core"/></g>
<g class="n4-flower" style="--d:1.1s;--c:#fda4af;--x:196px;--y:124px"><ellipse rx="8" ry="13" transform="rotate(0) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(72) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(144) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(216) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(288) translate(0 -10)"/><circle r="5" class="n4-core"/></g>
<g class="n4-tagx"><path d="M220 74v16" stroke="#e7e5e4" stroke-width="1.2"/><rect x="203" y="90" width="34" height="22" rx="3" fill="#d6b88a"/><circle cx="220" cy="95" r="2" fill="#2a0f1f"/><text x="220" y="108" text-anchor="middle">404</text></g>
<path class="n4-glass" d="M118 180h64l-6 70c-1 6-5 8-10 8h-32c-5 0-9-2-10-8z"/>
<path d="M121 206h58" stroke="rgba(186,230,253,.5)" stroke-width="1.5"/>
<ellipse class="n4-petal" cx="0" cy="0" rx="4" ry="7" fill="#fb7185"/>
</svg>
<span class="n4-tag">Ramo nº 404</span>
<h1 class="n4-title">Esta flor todavía no ha brotado.</h1>
<p class="n4-sub">La página que buscas no está en nuestro escaparate. Prueba con el ramo de temporada, recién cortado esta mañana.</p>
<a class="n4-cta" href="/">Ver ramos</a>
</div>
</main>
</body>
</html>
Prompt para IA
Pégalo en ChatGPT, Claude o Cursor y adaptará el bloque a tu proyecto con estos ajustes, aunque no uses React.
Más en 404
Ver todos: 404Dónde usarlo
Las floristerías cambian su oferta con cada estación, así que las páginas de ramos desaparecen a menudo. Esta página de error muestra un jarrón de cristal transparente con tallos verdes. Al cargar, las flores se abren una tras otra con un rebote suave, un pétalo cae hacia la mesa y del único tallo sin flor cuelga una etiqueta de papel kraft con el 404, que se mece despacio.
Los títulos en cursiva con serifa y el fondo ciruela profundo le dan aire de tienda boutique. Las flores son SVG en línea con animaciones CSS, el texto sigue siendo legible y traducible y con movimiento reducido el ramo aparece abierto. Enlaza el botón a los ramos de temporada.