Files
pinkudex/mockups/cover-label-mockups.html
2026-05-26 22:46:00 +02:00

329 lines
11 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Pinkudex · Cover label — 10 actress display options</title>
<style>
:root {
--bg-0: #0a0710;
--bg-1: #14101e;
--fg: #e8e6f0;
--fg-dim: #a8a4b8;
--fg-muted: #6e6a80;
--cyan: #22d3ee;
--violet: #a78bfa;
--mint: #34d399;
--coral: #fb7185;
--amber: #fbbf24;
--glass: rgba(255,255,255,0.04);
--glass-strong: rgba(255,255,255,0.08);
--border: rgba(255,255,255,0.08);
--border-strong: rgba(255,255,255,0.18);
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--bg-0);
color: var(--fg);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
line-height: 1.45;
}
.page { max-width: 1600px; margin: 0 auto; padding: 24px; }
.page-header {
margin-bottom: 24px;
padding: 16px 20px;
border-radius: 16px;
background: linear-gradient(135deg, rgba(34,211,238,0.08), rgba(167,139,250,0.05));
border: 1px solid var(--border);
}
.page-header h1 { margin: 0 0 8px 0; font-size: 24px; font-weight: 600; }
.page-header p { margin: 0; color: var(--fg-dim); font-size: 14px; }
.grid-mocks {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
gap: 24px;
}
/* Mockup wrapper */
.mock {
background: var(--glass);
border: 1px solid var(--border);
border-radius: 14px;
padding: 16px;
display: flex;
flex-direction: column;
gap: 10px;
}
.mock h2 {
margin: 0;
font-size: 13px;
color: var(--cyan);
font-weight: 600;
}
.mock .meta {
font-size: 11px;
color: var(--fg-dim);
line-height: 1.5;
}
.mock .body {
display: flex;
justify-content: center;
background: rgba(255,255,255,0.02);
border-radius: 10px;
padding: 12px;
}
/* The simulated JAV cover */
.cover {
position: relative;
width: 100%;
max-width: 420px;
aspect-ratio: 800 / 538;
border-radius: 12px;
overflow: hidden;
background:
linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.85) 100%),
linear-gradient(135deg, #2a1f3a, #1a1428);
display: flex;
align-items: flex-end;
box-shadow: 0 4px 16px rgba(0,0,0,0.5);
}
.cover-fake-image {
position: absolute; inset: 0;
display: flex; align-items: center; justify-content: center;
color: rgba(255,255,255,0.18);
font-size: 64px;
font-weight: 700;
letter-spacing: -0.04em;
pointer-events: none;
}
/* Optional overlay/label area above the gradient */
.cover .label {
position: relative;
z-index: 2;
width: 100%;
padding: 12px 14px;
}
/* Reusable bits */
.javid {
color: var(--cyan);
font-family: ui-monospace, SFMono-Regular, monospace;
font-weight: 700;
font-size: 16px;
letter-spacing: -0.01em;
text-shadow: 0 1px 3px rgba(0,0,0,0.9);
}
.actress-text {
color: rgba(255,255,255,0.85);
font-size: 12px;
text-shadow: 0 1px 3px rgba(0,0,0,0.9);
}
.actress-text-dim { color: rgba(255,255,255,0.6); font-size: 11px; }
.actress-pill {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 1px 7px;
border-radius: 999px;
background: rgba(255,255,255,0.1);
color: rgba(255,255,255,0.85);
font-size: 10px;
backdrop-filter: blur(4px);
}
.actress-pill.violet {
background: rgba(167,139,250,0.18);
color: var(--violet);
border: 1px solid rgba(167,139,250,0.3);
}
.avatar {
width: 18px; height: 18px;
border-radius: 999px;
background: linear-gradient(135deg, #f9a8d4, #a78bfa);
flex-shrink: 0;
border: 1.5px solid rgba(255,255,255,0.4);
}
</style>
</head>
<body>
<div class="page">
<header class="page-header">
<h1>Cover label — actress display options</h1>
<p>Each card shows the same fake cover with a different way to render JAV ID + actress name(s). Compare visually.</p>
</header>
<div class="grid-mocks">
<!-- 1. Stacked simple -->
<div class="mock">
<h2>1. Stacked simple</h2>
<div class="meta">JAVID large on top, actress on the line below in a smaller, dimmer style. Closest to the existing layout — least disruptive.</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label">
<div class="javid">YST-206</div>
<div class="actress-text actress-text-dim">Reika Aiba</div>
</div>
</div>
</div>
</div>
<!-- 2. Inline with separator -->
<div class="mock">
<h2>2. Inline with separator</h2>
<div class="meta">Single row, JAVID · actress. Fits small cards well, looks cluttered with many actresses. Falls back to first actress + count when 2+.</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label">
<span class="javid">YST-206</span>
<span style="color:rgba(255,255,255,0.4); margin: 0 6px;">·</span>
<span class="actress-text">Reika Aiba</span>
</div>
</div>
</div>
</div>
<!-- 3. Right-aligned actress -->
<div class="mock">
<h2>3. Right-aligned actress</h2>
<div class="meta">JAVID left, actress hugs the right edge. Visual symmetry; good when both texts are short.</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label" style="display:flex; justify-content:space-between; align-items:baseline; gap:12px;">
<span class="javid">YST-206</span>
<span class="actress-text" style="text-align:right;">Reika Aiba</span>
</div>
</div>
</div>
</div>
<!-- 4. Top-corner JAVID, bottom actress -->
<div class="mock">
<h2>4. Diagonal split (top JAVID, bottom actress)</h2>
<div class="meta">JAVID becomes a corner badge in the top-left; actress takes the full bottom row. Pulls them apart visually.</div>
<div class="body">
<div class="cover" style="align-items: stretch;">
<div class="cover-fake-image">502 × 335</div>
<div style="position:absolute; top:10px; left:10px; z-index:2; padding:3px 8px; border-radius:6px; background:rgba(0,0,0,0.6); backdrop-filter: blur(4px);">
<span class="javid" style="font-size: 13px;">YST-206</span>
</div>
<div class="label" style="align-self:flex-end;">
<div class="actress-text" style="font-weight: 500;">Reika Aiba</div>
</div>
</div>
</div>
</div>
<!-- 5. Actress as pill -->
<div class="mock">
<h2>5. Actress as pill</h2>
<div class="meta">JAVID stays plain; actress wears a glassy chip. Stands out when there's busy artwork behind. Multi-actress gets multiple chips.</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label">
<div class="javid" style="margin-bottom: 6px;">YST-206</div>
<span class="actress-pill">Reika Aiba</span>
</div>
</div>
</div>
</div>
<!-- 6. Avatar + name -->
<div class="mock">
<h2>6. Mini avatar + name</h2>
<div class="meta">Tiny circular actress portrait next to the name. Most visually rich; uses the actress portrait you've already uploaded. Multi-actress = stacked avatars.</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label">
<div class="javid" style="margin-bottom: 6px;">YST-206</div>
<div style="display:flex; align-items:center; gap:6px;">
<span class="avatar"></span>
<span class="actress-text">Reika Aiba</span>
</div>
</div>
</div>
</div>
</div>
<!-- 7. Hover-reveal actress -->
<div class="mock">
<h2>7. Hover-reveal actress</h2>
<div class="meta">JAVID always visible. Actress fades in on hover, stacked below. Cleanest when not interacting; preview on demand. Sample shows hover state.</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label">
<div class="javid">YST-206</div>
<div class="actress-text actress-text-dim" style="opacity:0.95; margin-top: 2px;">Reika Aiba</div>
<div style="font-size: 9px; color: var(--cyan); margin-top: 4px; text-transform: uppercase; letter-spacing: 0.06em; font-family: ui-monospace, monospace;">↑ shown on hover</div>
</div>
</div>
</div>
</div>
<!-- 8. Multi-actress chips -->
<div class="mock">
<h2>8. Multi-actress chips (2+ actresses)</h2>
<div class="meta">Each actress gets a violet pill, wrapping if needed. Up to ~3 visible; "+N" overflow chip for more. Especially useful for collab releases.</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label">
<div class="javid" style="margin-bottom: 6px;">CJOD-333</div>
<div style="display:flex; flex-wrap:wrap; gap:4px;">
<span class="actress-pill violet">Ichika Matsumoto</span>
<span class="actress-pill violet">Mitsuki Nagisa</span>
</div>
</div>
</div>
</div>
</div>
<!-- 9. Subtle backdrop bar -->
<div class="mock">
<h2>9. Subtle backdrop label</h2>
<div class="meta">Both texts sit inside a low-opacity dark bar across the bottom — high legibility on bright/busy covers. JAVID + actress on two lines.</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label" style="background: rgba(0,0,0,0.55); backdrop-filter: blur(8px); border-top: 1px solid rgba(255,255,255,0.08);">
<div class="javid">YST-206</div>
<div class="actress-text actress-text-dim">Reika Aiba</div>
</div>
</div>
</div>
</div>
<!-- 10. Icon-prefixed actress -->
<div class="mock">
<h2>10. Icon-prefixed actress</h2>
<div class="meta">Tiny user icon (👤 or lucide Users) before the name acts as a visual marker, distinguishing actress from other potential meta lines (studio etc).</div>
<div class="body">
<div class="cover">
<div class="cover-fake-image">502 × 335</div>
<div class="label">
<div class="javid">YST-206</div>
<div style="display:flex; align-items:center; gap:5px; margin-top: 2px;">
<svg viewBox="0 0 24 24" width="11" height="11" fill="none" stroke="rgba(255,255,255,0.55)" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;">
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
<circle cx="12" cy="7" r="4"/>
</svg>
<span class="actress-text actress-text-dim">Reika Aiba</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>