363 lines
20 KiB
HTML
363 lines
20 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Actress Detail Page — Spacing Pass (Layout Untouched)</title>
|
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
<style>
|
|
:root {
|
|
--color-bg-0: oklch(0.13 0.025 280);
|
|
--color-bg-1: oklch(0.17 0.04 285);
|
|
--color-fg: oklch(0.97 0.01 280);
|
|
--color-fg-dim: oklch(0.72 0.025 280);
|
|
--color-fg-muted: oklch(0.55 0.02 280);
|
|
--color-glass: color-mix(in oklch, white 6%, transparent);
|
|
--color-glass-strong: color-mix(in oklch, white 10%, transparent);
|
|
--color-glass-border: color-mix(in oklch, white 14%, transparent);
|
|
--color-cyan: oklch(0.82 0.16 200);
|
|
--color-violet: oklch(0.72 0.22 305);
|
|
--color-mint: oklch(0.80 0.16 155);
|
|
--color-coral: oklch(0.72 0.20 25);
|
|
--color-amber: oklch(0.84 0.14 80);
|
|
|
|
--spacing-card: 15px;
|
|
--spacing-section: 15px;
|
|
--spacing-card-gap: 9px;
|
|
--spacing-chip: 7px;
|
|
--spacing-label: 7px;
|
|
}
|
|
body {
|
|
background: var(--color-bg-0);
|
|
color: var(--color-fg);
|
|
font-family: ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
}
|
|
.glass { background: var(--color-glass); border: 1px solid var(--color-glass-border); }
|
|
.label { font-family: ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-fg-muted); margin-bottom: 8px; }
|
|
.label.after { color: var(--color-cyan); }
|
|
.why { font-size: 12px; color: var(--color-fg-muted); }
|
|
|
|
.pg {
|
|
background: oklch(0.10 0.025 280);
|
|
border: 1px solid var(--color-glass-border);
|
|
border-radius: 12px;
|
|
overflow: hidden;
|
|
}
|
|
.pg-h {
|
|
padding: 12px 16px;
|
|
background: oklch(0.20 0.04 285);
|
|
border-bottom: 1px solid var(--color-glass-border);
|
|
font-family: ui-monospace, monospace;
|
|
font-size: 12px;
|
|
color: var(--color-fg-dim);
|
|
display: flex; justify-content: space-between; align-items: center;
|
|
}
|
|
.pg-h .tag { color: var(--color-cyan); font-weight: 600; }
|
|
.pg-body { padding: 18px; }
|
|
|
|
/* Portrait frames — golden ratio (1.618), DO NOT TOUCH */
|
|
.pframe {
|
|
--PHI: 1.618;
|
|
height: 308px;
|
|
width: 190px; /* 308 / 1.618 */
|
|
border-radius: 12px;
|
|
background: linear-gradient(135deg, oklch(0.30 0.05 290), oklch(0.18 0.04 285) 80%);
|
|
border: 1px solid var(--color-glass-border);
|
|
position: relative;
|
|
flex: 0 0 auto;
|
|
}
|
|
.pframe.horiz {
|
|
width: 498px; /* 308 * 1.618 */
|
|
}
|
|
.pframe .slot {
|
|
position: absolute; top: 6px; left: 6px;
|
|
font-family: ui-monospace, monospace;
|
|
font-size: 9px; text-transform: uppercase; letter-spacing: 0.1em;
|
|
color: white; padding: 2px 6px; border-radius: 4px;
|
|
background: rgba(0,0,0,0.6);
|
|
}
|
|
.pframe .face { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,0.4); font-size: 48px; }
|
|
.biopanel {
|
|
height: 308px;
|
|
width: 190px;
|
|
border-radius: 12px;
|
|
background: oklch(0.17 0.04 285 / 0.4);
|
|
border: 1px solid var(--color-glass-border);
|
|
padding: 12px;
|
|
flex: 0 0 auto;
|
|
display: flex; flex-direction: column; gap: 12px;
|
|
}
|
|
.biopanel h4 { font-family: ui-monospace, monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-cyan); margin-bottom: 6px; }
|
|
.biopanel .row { display: flex; justify-content: space-between; font-size: 13px; }
|
|
.biopanel .row span:first-child { color: var(--color-fg-muted); }
|
|
.biopanel .row span:last-child { font-family: ui-monospace, monospace; color: var(--color-fg); }
|
|
|
|
.chip-cat {
|
|
display: inline-flex; align-items: center; gap: 6px;
|
|
padding: 4px 10px;
|
|
border-radius: 999px; font-size: 12px; font-family: ui-monospace, monospace;
|
|
border: 1px solid var(--color-glass-border); color: var(--color-fg-muted);
|
|
background: transparent;
|
|
}
|
|
.chip-cat.active { color: var(--color-violet); border-color: oklch(0.72 0.22 305 / 0.6); background: oklch(0.72 0.22 305 / 0.15); }
|
|
.chip-cat.active.cyan { color: var(--color-cyan); border-color: oklch(0.82 0.16 200 / 0.6); background: oklch(0.82 0.16 200 / 0.15); }
|
|
|
|
.alt-chip {
|
|
display: inline-flex; align-items: center;
|
|
padding: 0 8px; height: 22px;
|
|
border-radius: 999px; font-size: 11px; font-family: ui-monospace, monospace;
|
|
border: 1px solid var(--color-glass-border); color: var(--color-fg-dim);
|
|
background: transparent;
|
|
}
|
|
.alt-chip.auto { color: var(--color-cyan); border-color: oklch(0.82 0.16 200 / 0.3); background: oklch(0.82 0.16 200 / 0.05); }
|
|
|
|
.cstar {
|
|
display: inline-flex; align-items: center; gap: 8px;
|
|
padding: 4px 12px 4px 4px;
|
|
border-radius: 999px;
|
|
border: 1px solid var(--color-glass-border);
|
|
background: var(--color-glass);
|
|
font-size: 13px;
|
|
}
|
|
.cstar .av { width: 28px; height: 28px; border-radius: 999px; background: oklch(0.30 0.05 290); flex: 0 0 auto; }
|
|
.cstar .num { font-family: ui-monospace, monospace; font-size: 10px; color: var(--color-cyan); }
|
|
|
|
.thumb {
|
|
aspect-ratio: 800/538;
|
|
border-radius: 6px;
|
|
background: linear-gradient(135deg, oklch(0.30 0.05 290), oklch(0.20 0.04 280));
|
|
border: 1px solid var(--color-glass-border);
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="space-y-6 max-w-[1600px] mx-auto p-6">
|
|
|
|
<header class="space-y-1">
|
|
<h1 class="text-2xl font-semibold tracking-tight">Actress Detail Page · Spacing Pass</h1>
|
|
<p class="why max-w-[820px]">
|
|
<code class="text-[var(--color-cyan)]">/actress/[slug]</code> — back link + Edit, hero card (name + alt-name chips + 4 portraits + landscape + bio + categories + notes), CoStars row, FilterBar, LetterBar, MasonryGrid. Only the hero card's internal padding/gaps adjust. Portraits are golden-ratio (1.618) — <strong>not touched</strong>.
|
|
</p>
|
|
</header>
|
|
|
|
<!-- ====================================================================
|
|
Audit
|
|
==================================================================== -->
|
|
<section class="glass rounded-2xl" style="padding: var(--spacing-card);">
|
|
<div class="label">Spacing changes only — 4 lines</div>
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-2 text-[12px] font-mono text-[var(--color-fg-dim)]">
|
|
<div>1 · hero card padding</div>
|
|
<div><code class="text-[var(--color-fg-muted)]">p-5</code> 20 px → <code class="text-[var(--color-cyan)]">p-card</code> 15 px</div>
|
|
<div>2 · hero card internal section gap</div>
|
|
<div><code class="text-[var(--color-fg-muted)]">gap-5</code> 20 px → <code class="text-[var(--color-cyan)]">gap-section</code> 15 px</div>
|
|
<div>3 · "Categories" label margin</div>
|
|
<div><code class="text-[var(--color-fg-muted)]">mb-1.5</code> 6 px → <code class="text-[var(--color-cyan)]">mb-label</code> 7 px</div>
|
|
<div>4 · category chip cluster gap</div>
|
|
<div><code class="text-[var(--color-fg-muted)]">gap-1.5</code> 6 px → <code class="text-[var(--color-cyan)]">gap-chip</code> 7 px</div>
|
|
</div>
|
|
<p class="why mt-3">
|
|
<strong>Untouched:</strong> page outer <code class="text-[var(--color-cyan)]">px-6 py-6</code>, top back/edit row <code class="text-[var(--color-cyan)]">mb-4</code>, hero card <code class="text-[var(--color-cyan)]">mb-6</code> (matches LetterBar's <code class="text-[var(--color-cyan)]">my-6</code>), portrait flex <code class="text-[var(--color-cyan)]">gap-3</code> (image rhythm), portrait golden-ratio aspect, alt-name chips <code class="text-[var(--color-cyan)]">gap-1.5 mt-2</code>, notes <code class="text-[var(--color-cyan)]">mt-4</code>, CoStarsRow <code class="text-[var(--color-cyan)]">my-6 / mb-3 / gap-2</code>, FilterBar, MasonryGrid.
|
|
</p>
|
|
</section>
|
|
|
|
<!-- ====================================================================
|
|
BEFORE
|
|
==================================================================== -->
|
|
<div class="pg">
|
|
<div class="pg-h"><span><span class="tag">BEFORE</span> · current /actress/[slug]</span><span>p-5 · gap-5 · mb-1.5 · gap-1.5</span></div>
|
|
<div class="pg-body">
|
|
<!-- Top row -->
|
|
<div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px;">
|
|
<span style="font-size: 13px; color: var(--color-fg-dim);">← All Actresses</span>
|
|
<span style="display:inline-flex; align-items:center; gap: 6px; font-size: 12px; padding: 4px 10px; border-radius: 8px;" class="glass">✎ Edit</span>
|
|
</div>
|
|
|
|
<!-- Hero card -->
|
|
<div class="glass rounded-2xl" style="padding: 20px; margin-bottom: 24px; display: flex; flex-direction: column; gap: 20px; box-shadow: 0 0 0 2px var(--color-violet), 0 0 24px -4px oklch(0.72 0.22 305 / 0.4);">
|
|
<!-- title row -->
|
|
<div style="display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;">
|
|
<div style="min-width: 0;">
|
|
<h1 class="text-3xl font-semibold tracking-tight" style="color: var(--color-violet);">Aika</h1>
|
|
<div style="display:flex; flex-wrap: wrap; gap: 6px; margin-top: 8px;">
|
|
<span class="alt-chip">Yamakawa Aika</span>
|
|
<span class="alt-chip auto">Aika Yamakawa</span>
|
|
<span class="alt-chip">あいか</span>
|
|
</div>
|
|
</div>
|
|
<div style="text-align: right; flex-shrink: 0;">
|
|
<div class="text-2xl font-mono font-semibold tabular-nums">42</div>
|
|
<div style="text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-fg-muted); font-size: 10px;">Covers</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- portraits row (gap-3 — image rhythm, untouched) -->
|
|
<div style="display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; justify-content: center;">
|
|
<div class="pframe"><span class="slot">P1</span><div class="face">👤</div></div>
|
|
<div class="pframe"><span class="slot">P2</span><div class="face">👤</div></div>
|
|
<div class="pframe"><span class="slot">P3</span><div class="face">👤</div></div>
|
|
<div class="pframe"><span class="slot">P4</span><div class="face">👤</div></div>
|
|
<div class="pframe horiz"><span class="slot">L</span><div class="face">👤</div></div>
|
|
<div class="biopanel">
|
|
<div>
|
|
<h4>Personal</h4>
|
|
<div class="row"><span>Age</span><span>26</span></div>
|
|
<div class="row"><span>Born</span><span>1999-03-21</span></div>
|
|
</div>
|
|
<div>
|
|
<h4>Body</h4>
|
|
<div class="row"><span>Height</span><span>165 cm</span></div>
|
|
<div class="row"><span>Weight</span><span>48 kg</span></div>
|
|
<div class="row"><span>Cup Size</span><span>D</span></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- categories + notes -->
|
|
<div style="min-width: 0; display: flex; flex-direction: column;">
|
|
<div>
|
|
<div style="text-transform: uppercase; letter-spacing: 0.1em; font-family: ui-monospace, monospace; font-size: 10px; color: var(--color-fg-muted); margin-bottom: 6px;">Categories</div>
|
|
<div style="display: flex; flex-wrap: wrap; gap: 6px;">
|
|
<span class="chip-cat active">★ Favorite</span>
|
|
<span class="chip-cat active cyan">⬢ VIP</span>
|
|
<span class="chip-cat">Newcomer</span>
|
|
<span class="chip-cat">Veteran</span>
|
|
<span class="chip-cat">Comeback</span>
|
|
</div>
|
|
</div>
|
|
<p style="font-size: 14px; color: var(--color-fg-dim); margin-top: 16px; line-height: 1.6;">
|
|
Debuted 2019. Known for emotional performances and consistent collaborations with Madonna. Speaks fluent English in two interviews on file.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- CoStars row -->
|
|
<section style="margin: 24px 0;">
|
|
<div style="display: flex; align-items: center; gap: 8px; margin-bottom: 12px;">
|
|
<span style="color: var(--color-fg-muted);">👥</span>
|
|
<h2 style="font-family: ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-fg-muted);">Frequent co-stars</h2>
|
|
<span style="font-family: ui-monospace, monospace; font-size: 10px; color: var(--color-fg-muted);">(6)</span>
|
|
</div>
|
|
<div style="display: flex; flex-wrap: wrap; gap: 8px;">
|
|
<span class="cstar"><span class="av"></span><span>Ichika Matsumoto</span><span class="num">8</span></span>
|
|
<span class="cstar"><span class="av"></span><span>Yua Mikami</span><span class="num">6</span></span>
|
|
<span class="cstar"><span class="av"></span><span>Suzu Honjo</span><span class="num">4</span></span>
|
|
<span class="cstar"><span class="av"></span><span>Mei Washio</span><span class="num">3</span></span>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Filter / letter / grid (untouched, sketched briefly) -->
|
|
<div style="display: flex; gap: 8px; margin-bottom: 12px;"><span class="alt-chip">All</span><span class="alt-chip">+ Filter</span></div>
|
|
<div style="margin: 24px 0;">
|
|
<div style="display: flex; gap: 1px; flex-wrap: wrap;">
|
|
<span style="width:24px;height:24px;border-radius:4px;background:var(--color-cyan);color:black;font-family:monospace;font-size:11px;display:grid;place-items:center;">A</span>
|
|
<span style="width:24px;height:24px;border-radius:4px;color:var(--color-fg-muted);font-family:monospace;font-size:11px;display:grid;place-items:center;">B</span>
|
|
<span style="width:24px;height:24px;border-radius:4px;color:var(--color-fg-muted);font-family:monospace;font-size:11px;display:grid;place-items:center;">C</span>
|
|
<span style="width:24px;height:24px;border-radius:4px;color:var(--color-fg-muted);font-family:monospace;font-size:11px;display:grid;place-items:center;">D</span>
|
|
</div>
|
|
</div>
|
|
<div style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;">
|
|
<div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- ====================================================================
|
|
AFTER
|
|
==================================================================== -->
|
|
<div class="pg">
|
|
<div class="pg-h"><span><span class="tag" style="color: var(--color-mint);">AFTER</span> · spacing-only</span><span>p-card · gap-section · mb-label · gap-chip</span></div>
|
|
<div class="pg-body">
|
|
<div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px;">
|
|
<span style="font-size: 13px; color: var(--color-fg-dim);">← All Actresses</span>
|
|
<span style="display:inline-flex; align-items:center; gap: 6px; font-size: 12px; padding: 4px 10px; border-radius: 8px;" class="glass">✎ Edit</span>
|
|
</div>
|
|
|
|
<!-- Hero card with new tokens -->
|
|
<div class="glass rounded-2xl" style="padding: var(--spacing-card); margin-bottom: 24px; display: flex; flex-direction: column; gap: var(--spacing-section); box-shadow: 0 0 0 2px var(--color-violet), 0 0 24px -4px oklch(0.72 0.22 305 / 0.4);">
|
|
<div style="display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;">
|
|
<div style="min-width: 0;">
|
|
<h1 class="text-3xl font-semibold tracking-tight" style="color: var(--color-violet);">Aika</h1>
|
|
<div style="display:flex; flex-wrap: wrap; gap: 6px; margin-top: 8px;">
|
|
<span class="alt-chip">Yamakawa Aika</span>
|
|
<span class="alt-chip auto">Aika Yamakawa</span>
|
|
<span class="alt-chip">あいか</span>
|
|
</div>
|
|
</div>
|
|
<div style="text-align: right; flex-shrink: 0;">
|
|
<div class="text-2xl font-mono font-semibold tabular-nums">42</div>
|
|
<div style="text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-fg-muted); font-size: 10px;">Covers</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; justify-content: center;">
|
|
<div class="pframe"><span class="slot">P1</span><div class="face">👤</div></div>
|
|
<div class="pframe"><span class="slot">P2</span><div class="face">👤</div></div>
|
|
<div class="pframe"><span class="slot">P3</span><div class="face">👤</div></div>
|
|
<div class="pframe"><span class="slot">P4</span><div class="face">👤</div></div>
|
|
<div class="pframe horiz"><span class="slot">L</span><div class="face">👤</div></div>
|
|
<div class="biopanel">
|
|
<div>
|
|
<h4>Personal</h4>
|
|
<div class="row"><span>Age</span><span>26</span></div>
|
|
<div class="row"><span>Born</span><span>1999-03-21</span></div>
|
|
</div>
|
|
<div>
|
|
<h4>Body</h4>
|
|
<div class="row"><span>Height</span><span>165 cm</span></div>
|
|
<div class="row"><span>Weight</span><span>48 kg</span></div>
|
|
<div class="row"><span>Cup Size</span><span>D</span></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="min-width: 0; display: flex; flex-direction: column;">
|
|
<div>
|
|
<div style="text-transform: uppercase; letter-spacing: 0.1em; font-family: ui-monospace, monospace; font-size: 10px; color: var(--color-fg-muted); margin-bottom: var(--spacing-label);">Categories</div>
|
|
<div style="display: flex; flex-wrap: wrap; gap: var(--spacing-chip);">
|
|
<span class="chip-cat active">★ Favorite</span>
|
|
<span class="chip-cat active cyan">⬢ VIP</span>
|
|
<span class="chip-cat">Newcomer</span>
|
|
<span class="chip-cat">Veteran</span>
|
|
<span class="chip-cat">Comeback</span>
|
|
</div>
|
|
</div>
|
|
<p style="font-size: 14px; color: var(--color-fg-dim); margin-top: 16px; line-height: 1.6;">
|
|
Debuted 2019. Known for emotional performances and consistent collaborations with Madonna. Speaks fluent English in two interviews on file.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<section style="margin: 24px 0;">
|
|
<div style="display: flex; align-items: center; gap: 8px; margin-bottom: 12px;">
|
|
<span style="color: var(--color-fg-muted);">👥</span>
|
|
<h2 style="font-family: ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-fg-muted);">Frequent co-stars</h2>
|
|
<span style="font-family: ui-monospace, monospace; font-size: 10px; color: var(--color-fg-muted);">(6)</span>
|
|
</div>
|
|
<div style="display: flex; flex-wrap: wrap; gap: 8px;">
|
|
<span class="cstar"><span class="av"></span><span>Ichika Matsumoto</span><span class="num">8</span></span>
|
|
<span class="cstar"><span class="av"></span><span>Yua Mikami</span><span class="num">6</span></span>
|
|
<span class="cstar"><span class="av"></span><span>Suzu Honjo</span><span class="num">4</span></span>
|
|
<span class="cstar"><span class="av"></span><span>Mei Washio</span><span class="num">3</span></span>
|
|
</div>
|
|
</section>
|
|
|
|
<div style="display: flex; gap: 8px; margin-bottom: 12px;"><span class="alt-chip">All</span><span class="alt-chip">+ Filter</span></div>
|
|
<div style="margin: 24px 0;">
|
|
<div style="display: flex; gap: 1px; flex-wrap: wrap;">
|
|
<span style="width:24px;height:24px;border-radius:4px;background:var(--color-cyan);color:black;font-family:monospace;font-size:11px;display:grid;place-items:center;">A</span>
|
|
<span style="width:24px;height:24px;border-radius:4px;color:var(--color-fg-muted);font-family:monospace;font-size:11px;display:grid;place-items:center;">B</span>
|
|
<span style="width:24px;height:24px;border-radius:4px;color:var(--color-fg-muted);font-family:monospace;font-size:11px;display:grid;place-items:center;">C</span>
|
|
<span style="width:24px;height:24px;border-radius:4px;color:var(--color-fg-muted);font-family:monospace;font-size:11px;display:grid;place-items:center;">D</span>
|
|
</div>
|
|
</div>
|
|
<div style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;">
|
|
<div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<footer class="text-[11px] text-[var(--color-fg-muted)]">
|
|
Tell me <strong>go</strong> to apply, or point at anything you want different.
|
|
</footer>
|
|
|
|
</body>
|
|
</html>
|