Files
studio-sample/index.html
Timmy b75b550173 Add Timeline page and update nav across all pages
- New timeline.html with vertical event timeline for studio history
- Add Timeline nav link to index.html, services.html, works.html, and timeline.html

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 20:46:26 +08:00

858 lines
29 KiB
HTML
Raw 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="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>STUDIO SAMPLE</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
"Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP",
"Noto Sans TC", system-ui, sans-serif;
background-color: #ffffff;
color: #333333;
line-height: 1.6;
}
/* ─── NAV ─────────────────────────────────────────────── */
nav {
position: sticky;
top: 0;
z-index: 100;
background: #ffffff;
border-bottom: 1px solid #eeeeee;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 clamp(16px, 5vw, 64px);
height: 56px;
}
.nav-logo {
font-size: 18px;
font-weight: 800;
letter-spacing: 0.12em;
color: #e53935;
text-transform: uppercase;
text-decoration: none;
}
.nav-links {
display: flex;
gap: clamp(16px, 3vw, 40px);
list-style: none;
}
.nav-links a {
font-size: 13px;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #555555;
text-decoration: none;
transition: color 0.2s;
}
.nav-links a:hover {
color: #e53935;
}
/* ─── HERO ────────────────────────────────────────────── */
#hero {
min-height: calc(100vh - 56px);
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
padding: clamp(48px, 8vw, 96px) clamp(24px, 8vw, 96px);
background: #f7f7f7;
position: relative;
overflow: hidden;
}
.hero-bg-text {
position: absolute;
right: -0.05em;
bottom: -0.15em;
font-size: clamp(120px, 18vw, 280px);
font-weight: 900;
letter-spacing: -0.02em;
color: #eeeeee;
user-select: none;
line-height: 1;
pointer-events: none;
}
.hero-eyebrow {
font-size: clamp(11px, 1.2vw, 13px);
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: #e53935;
margin-bottom: 20px;
}
.hero-title {
font-size: clamp(36px, 6vw, 80px);
font-weight: 800;
letter-spacing: -0.02em;
color: #111111;
line-height: 1.1;
margin-bottom: 24px;
max-width: 12em;
}
.hero-title em {
font-style: normal;
color: #e53935;
}
.hero-sub {
font-size: clamp(14px, 1.6vw, 18px);
color: #666666;
max-width: 38em;
margin-bottom: 40px;
}
.btn {
display: inline-block;
padding: 14px 32px;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
text-decoration: none;
border: 2px solid #e53935;
transition: background 0.2s, color 0.2s;
}
.btn-primary {
background: #e53935;
color: #ffffff;
}
.btn-primary:hover {
background: #c62828;
border-color: #c62828;
}
.btn-outline {
background: transparent;
color: #e53935;
margin-left: 12px;
}
.btn-outline:hover {
background: #e53935;
color: #ffffff;
}
/* ─── SECTION COMMON ──────────────────────────────────── */
section {
padding: clamp(56px, 8vw, 96px) clamp(24px, 8vw, 96px);
}
.section-label {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.25em;
text-transform: uppercase;
color: #e53935;
margin-bottom: 12px;
}
.section-title {
font-size: clamp(24px, 3.5vw, 40px);
font-weight: 800;
letter-spacing: -0.01em;
color: #111111;
margin-bottom: 16px;
}
.section-lead {
font-size: clamp(14px, 1.5vw, 17px);
color: #666666;
max-width: 42em;
margin-bottom: 48px;
}
/* ─── FEATURES ────────────────────────────────────────── */
#features {
background: #ffffff;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 2px;
background: #eeeeee;
border: 2px solid #eeeeee;
}
.feature-card {
background: #ffffff;
padding: clamp(24px, 3vw, 40px);
}
.feature-num {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.15em;
color: #e53935;
margin-bottom: 16px;
}
.feature-title {
font-size: clamp(16px, 1.8vw, 20px);
font-weight: 800;
color: #111111;
margin-bottom: 10px;
}
.feature-desc {
font-size: clamp(13px, 1.3vw, 15px);
color: #666666;
line-height: 1.7;
}
/* ─── WORKS ───────────────────────────────────────────── */
#works {
background: #f7f7f7;
}
.works-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
}
.work-card {
background: #ffffff;
border: 1px solid #eeeeee;
overflow: hidden;
}
.work-thumb {
width: 100%;
aspect-ratio: 16/9;
background: #eeeeee;
display: flex;
align-items: center;
justify-content: center;
font-size: clamp(32px, 4vw, 48px);
font-weight: 900;
letter-spacing: -0.02em;
color: #cccccc;
}
.work-thumb.red { background: #fde8e8; color: #e53935; }
.work-thumb.dark { background: #222222; color: #444444; }
.work-thumb.gray { background: #e8e8e8; color: #bbbbbb; }
.work-body {
padding: 20px 24px;
}
.work-tag {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.15em;
text-transform: uppercase;
color: #e53935;
margin-bottom: 6px;
}
.work-title {
font-size: clamp(15px, 1.6vw, 18px);
font-weight: 700;
color: #111111;
margin-bottom: 6px;
}
.work-desc {
font-size: 13px;
color: #777777;
}
/* ─── ABOUT ───────────────────────────────────────────── */
#about {
background: #111111;
color: #ffffff;
}
#about .section-title {
color: #ffffff;
}
#about .section-lead {
color: #999999;
}
#about .section-label {
color: #e53935;
}
.about-layout {
display: grid;
grid-template-columns: 1fr 1fr;
gap: clamp(32px, 6vw, 80px);
align-items: start;
}
@media (max-width: 640px) {
.about-layout { grid-template-columns: 1fr; }
}
.about-stats {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2px;
background: #2a2a2a;
border: 2px solid #2a2a2a;
}
.stat-box {
background: #1a1a1a;
padding: 28px 24px;
}
.stat-num {
font-size: clamp(28px, 4vw, 44px);
font-weight: 800;
color: #e53935;
letter-spacing: -0.02em;
line-height: 1;
margin-bottom: 6px;
}
.stat-label {
font-size: 12px;
color: #666666;
letter-spacing: 0.1em;
text-transform: uppercase;
}
.about-text p {
font-size: clamp(14px, 1.5vw, 16px);
color: #aaaaaa;
line-height: 1.8;
margin-bottom: 20px;
}
/* ─── CONTACT ─────────────────────────────────────────── */
#contact {
background: #ffffff;
}
.contact-layout {
display: grid;
grid-template-columns: 1fr 1fr;
gap: clamp(32px, 6vw, 80px);
align-items: start;
}
@media (max-width: 640px) {
.contact-layout { grid-template-columns: 1fr; }
}
.form-group {
margin-bottom: 20px;
}
label {
display: block;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #555555;
margin-bottom: 8px;
}
input, textarea, select {
width: 100%;
padding: 12px 16px;
border: 1px solid #dddddd;
border-radius: 0;
font-size: 14px;
font-family: inherit;
color: #333333;
background: #ffffff;
outline: none;
transition: border-color 0.2s;
}
input:focus, textarea:focus, select:focus {
border-color: #e53935;
}
textarea {
min-height: 120px;
resize: vertical;
}
.contact-info {
display: flex;
flex-direction: column;
gap: 32px;
}
.contact-item-label {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: #e53935;
margin-bottom: 6px;
}
.contact-item-value {
font-size: clamp(14px, 1.5vw, 16px);
color: #333333;
}
.contact-item-sub {
font-size: 13px;
color: #888888;
margin-top: 2px;
}
/* ─── PROCESS ────────────────────────────────────────── */
#process {
background: #f7f7f7;
}
.process-steps {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 0;
counter-reset: step;
}
.process-step {
padding: clamp(28px, 3vw, 44px) clamp(20px, 2.5vw, 36px);
border-right: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
position: relative;
}
.process-step:last-child {
border-right: none;
}
@media (max-width: 640px) {
.process-step { border-right: none; }
}
.step-num {
font-size: clamp(40px, 6vw, 64px);
font-weight: 900;
color: #eeeeee;
line-height: 1;
margin-bottom: 12px;
letter-spacing: -0.03em;
}
.step-title {
font-size: clamp(15px, 1.6vw, 18px);
font-weight: 800;
color: #111111;
margin-bottom: 8px;
}
.step-desc {
font-size: clamp(13px, 1.2vw, 14px);
color: #777777;
line-height: 1.7;
}
/* ─── NEWS ────────────────────────────────────────────── */
#news {
background: #ffffff;
}
.news-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
}
.news-card {
border-top: 2px solid #eeeeee;
padding-top: 20px;
}
.news-card:first-child {
border-top-color: #e53935;
}
.news-date {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.15em;
color: #aaaaaa;
margin-bottom: 8px;
text-transform: uppercase;
}
.news-title {
font-size: clamp(15px, 1.6vw, 18px);
font-weight: 700;
color: #111111;
margin-bottom: 8px;
line-height: 1.4;
}
.news-excerpt {
font-size: 13px;
color: #777777;
line-height: 1.7;
margin-bottom: 14px;
}
.news-link {
font-size: 12px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #e53935;
text-decoration: none;
}
.news-link:hover {
text-decoration: underline;
}
/* ─── FOOTER ──────────────────────────────────────────── */
footer {
background: #111111;
padding: 32px clamp(24px, 8vw, 96px);
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 16px;
}
.footer-nav {
display: flex;
gap: clamp(16px, 3vw, 32px);
list-style: none;
}
.footer-nav a {
font-size: 12px;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #555555;
text-decoration: none;
transition: color 0.2s;
}
.footer-nav a:hover {
color: #e53935;
}
.footer-logo {
font-size: 16px;
font-weight: 800;
letter-spacing: 0.12em;
color: #e53935;
text-transform: uppercase;
}
.footer-copy {
font-size: 12px;
color: #555555;
letter-spacing: 0.05em;
}
</style>
</head>
<body>
<!-- ─── NAV ─────────────────────────────────────────────── -->
<nav>
<a class="nav-logo" href="#hero">Studio Sample</a>
<ul class="nav-links">
<li><a href="services.html">Services</a></li>
<li><a href="works.html">Works</a></li>
<li><a href="timeline.html">Timeline</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
<!-- ─── HERO ──────────────────────────────────────────────── -->
<section id="hero">
<div class="hero-bg-text">SAMPLE</div>
<p class="hero-eyebrow">Welcome to Studio Sample</p>
<h1 class="hero-title">Make it<br><em>simple.</em><br>Make it real.</h1>
<p class="hero-sub">
這是一個通用的靜態網站範例。乾淨的版面、流體排版、無框架依賴。<br>
A clean static site template. No frameworks. Just HTML & CSS.
</p>
<div>
<a class="btn btn-primary" href="#works">View Works</a>
<a class="btn btn-outline" href="#contact">Get in Touch</a>
</div>
</section>
<!-- ─── FEATURES ──────────────────────────────────────────── -->
<section id="features">
<p class="section-label">What We Do</p>
<h2 class="section-title">Simple things,<br>done well.</h2>
<p class="section-lead">
我們相信好的設計來自克制。這裡列出我們最核心的三個能力。
</p>
<div class="features-grid">
<div class="feature-card">
<p class="feature-num">01</p>
<h3 class="feature-title">Visual Design</h3>
<p class="feature-desc">
從品牌識別到頁面排版,我們確保每個像素都有其存在的理由。<br>
From brand identity to layout — every pixel earns its place.
</p>
</div>
<div class="feature-card">
<p class="feature-num">02</p>
<h3 class="feature-title">Front-End Build</h3>
<p class="feature-desc">
語意化 HTML、零依賴 CSS、可讀性優先的程式碼。速度是預設值不是選項。<br>
Semantic HTML, dependency-free CSS. Speed is the default.
</p>
</div>
<div class="feature-card">
<p class="feature-num">03</p>
<h3 class="feature-title">Content Strategy</h3>
<p class="feature-desc">
好的文案讓訪客留下來。我們幫你把「想說的話」變成「會被讀完的話」。<br>
Good copy keeps visitors reading. We help you say it right.
</p>
</div>
<div class="feature-card">
<p class="feature-num">04</p>
<h3 class="feature-title">Performance</h3>
<p class="feature-desc">
無打包工具、無運行時依賴。開啟即用Lighthouse 分數不是對手。<br>
No bundler, no runtime dependencies. Lighthouse-ready out of the box.
</p>
</div>
</div>
</section>
<!-- ─── WORKS ─────────────────────────────────────────────── -->
<section id="works">
<p class="section-label">Selected Works</p>
<h2 class="section-title">Recent Projects</h2>
<p class="section-lead">以下是近期完成的幾個代表作品。</p>
<div class="works-grid">
<div class="work-card">
<div class="work-thumb red">BRAND</div>
<div class="work-body">
<p class="work-tag">Branding / Identity</p>
<h3 class="work-title">Redline Co. Brand Refresh</h3>
<p class="work-desc">整體品牌重塑,包含 Logo、色票與排版指引。</p>
</div>
</div>
<div class="work-card">
<div class="work-thumb dark">WEB</div>
<div class="work-body">
<p class="work-tag">Web Design / Build</p>
<h3 class="work-title">Arch Studio Portfolio Site</h3>
<p class="work-desc">建築事務所的單頁作品集,純 HTML/CSS 交付。</p>
</div>
</div>
<div class="work-card">
<div class="work-thumb gray">PRINT</div>
<div class="work-body">
<p class="work-tag">Print / Editorial</p>
<h3 class="work-title">Annual Report 2024</h3>
<p class="work-desc">60 頁年度報告書,從版型設計到印前輸出一條龍。</p>
</div>
</div>
</div>
</section>
<!-- ─── PROCESS ──────────────────────────────────────────── -->
<section id="process">
<p class="section-label">How We Work</p>
<h2 class="section-title">Four steps.<br>One direction.</h2>
<p class="section-lead">
清晰的流程讓合作更輕鬆。從第一次對話到最後交付,這是我們的工作方式。
</p>
<div class="process-steps">
<div class="process-step">
<div class="step-num">01</div>
<h3 class="step-title">Discovery</h3>
<p class="step-desc">先了解你的目標、受眾與限制條件,再動筆。<br>We listen before we design.</p>
</div>
<div class="process-step">
<div class="step-num">02</div>
<h3 class="step-title">Concept</h3>
<p class="step-desc">提出 23 個方向,討論並收斂到最適合你的那一個。<br>Direction before execution.</p>
</div>
<div class="process-step">
<div class="step-num">03</div>
<h3 class="step-title">Build</h3>
<p class="step-desc">進入實作,每個里程碑都會與你確認進度。<br>Iterative, not waterfall.</p>
</div>
<div class="process-step">
<div class="step-num">04</div>
<h3 class="step-title">Deliver</h3>
<p class="step-desc">交付完整的原始檔與使用說明,不留黑盒子。<br>Everything you need. Nothing you don't.</p>
</div>
</div>
</section>
<!-- ─── ABOUT ─────────────────────────────────────────────── -->
<section id="about">
<p class="section-label">About Us</p>
<h2 class="section-title">Small team.<br>Big focus.</h2>
<p class="section-lead">
我們是一個小而精的創作工作室。少接案、做好每一件事。
</p>
<div class="about-layout">
<div class="about-text">
<p>
Studio Sample 成立於 2020 年,專注於視覺設計與前端開發的交界地帶。
我們不追求規模,我們追求品質。每個專案都由核心成員親自執行,不外包,不走流水線。
</p>
<p>
Founded in 2020, we work at the intersection of visual design and front-end
development. We keep our team small so every project gets real attention —
not a junior's first draft.
</p>
<a class="btn btn-outline" href="#contact" style="margin-top: 8px; border-color: #444; color: #aaa;">
Let's Talk
</a>
</div>
<div class="about-stats">
<div class="stat-box">
<div class="stat-num">48+</div>
<div class="stat-label">Projects</div>
</div>
<div class="stat-box">
<div class="stat-num">5yr</div>
<div class="stat-label">Experience</div>
</div>
<div class="stat-box">
<div class="stat-num">100%</div>
<div class="stat-label">In-house</div>
</div>
<div class="stat-box">
<div class="stat-num">0</div>
<div class="stat-label">Frameworks</div>
</div>
</div>
</div>
</section>
<!-- ─── NEWS ─────────────────────────────────────────────── -->
<section id="news">
<p class="section-label">Latest News</p>
<h2 class="section-title">What's new.</h2>
<p class="section-lead">工作室近況、設計思考與不定期更新。</p>
<div class="news-grid">
<div class="news-card">
<p class="news-date">2026 — Mar</p>
<h3 class="news-title">新作品上線Redline Co. 品牌全面更新</h3>
<p class="news-excerpt">歷時三個月的品牌再造計畫正式完成。新的 Logo 系統、色彩規範與排版指引已全數交付客戶。</p>
<a class="news-link" href="works.html">View Project →</a>
</div>
<div class="news-card">
<p class="news-date">2026 — Feb</p>
<h3 class="news-title">為什麼我們不用任何前端框架</h3>
<p class="news-excerpt">框架解決了很多問題,但也帶來同樣多的問題。這篇文章說明我們如何在沒有框架的情況下交付高品質作品。</p>
<a class="news-link" href="#">Read More →</a>
</div>
<div class="news-card">
<p class="news-date">2025 — Dec</p>
<h3 class="news-title">2025 回顧48 個專案3 個人</h3>
<p class="news-excerpt">這一年我們做了哪些事?學到了什麼?又有什麼想在 2026 年做得更好?年度總結在此。</p>
<a class="news-link" href="#">Read More →</a>
</div>
</div>
</section>
<!-- ─── CONTACT ───────────────────────────────────────────── -->
<section id="contact">
<p class="section-label">Contact</p>
<h2 class="section-title">Start a conversation.</h2>
<p class="section-lead">有想法嗎?填個表單,我們通常在兩個工作天內回覆。</p>
<div class="contact-layout">
<form onsubmit="return false;">
<div class="form-group">
<label for="name">Name / 姓名</label>
<input type="text" id="name" placeholder="Your name">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" id="email" placeholder="hello@example.com">
</div>
<div class="form-group">
<label for="type">Project Type</label>
<select id="type">
<option value="">Select…</option>
<option>Web Design</option>
<option>Branding</option>
<option>Print / Editorial</option>
<option>Other</option>
</select>
</div>
<div class="form-group">
<label for="message">Message / 訊息</label>
<textarea id="message" placeholder="Tell us about your project…"></textarea>
</div>
<button type="submit" class="btn btn-primary">Send Message</button>
</form>
<div class="contact-info">
<div>
<p class="contact-item-label">Email</p>
<p class="contact-item-value">hello@studiosample.example</p>
<p class="contact-item-sub">一般詢問請用 email 聯繫。</p>
</div>
<div>
<p class="contact-item-label">Location</p>
<p class="contact-item-value">Tokyo, Japan</p>
<p class="contact-item-sub">遠端合作全球通用。Remote-first.</p>
</div>
<div>
<p class="contact-item-label">Hours</p>
<p class="contact-item-value">Mon Fri, 10:00 18:00 JST</p>
<p class="contact-item-sub">週末不接急件,謝謝理解。</p>
</div>
<div>
<p class="contact-item-label">Response Time</p>
<p class="contact-item-value">Within 2 business days</p>
<p class="contact-item-sub">通常更快。Usually faster.</p>
</div>
</div>
</div>
</section>
<!-- ─── FOOTER ────────────────────────────────────────────── -->
<footer>
<div class="footer-logo">Studio Sample</div>
<ul class="footer-nav">
<li><a href="services.html">Services</a></li>
<li><a href="works.html">Works</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
<div class="footer-copy">© 2026 Studio Sample. All rights reserved.</div>
</footer>
</body>
</html>