This document specifies a single-page developer portfolio website for septianeka candra, a developer based in Indonesia. The product is one modern, self-promotional page that presents the developer's identity, background, work, and skills, and gives visitors a direct way to make contact.
The intent is derived from the authoritative user requirement: build one page using HTML and Tailwind CSS, containing a Hero section (photo, name, role, CTA button), a "Tentang Saya" (About Me) section, a "Proyek" (Projects) section rendered as an interactive 3-column grid, a "Keahlian" (Skills) section where skills are shown with icons, and a "Kontak" (Contact) form placed at the bottom of the page. The page uses an elegant dark mode theme with purple and blue accents.
The audience is anyone who lands on the page to evaluate the developer in seconds — prospective clients, recruiters, and peers — and the developer themself, who owns and presents the content.
The product is a single static page delivered as HTML styled with Tailwind CSS. There is no multi-page navigation, no application account system, and no server-side product behavior required by the source. All content is authored by the developer and presented to visitors.
The page is composed of five stacked sections in a fixed vertical order:
The visual register is an elegant dark mode with purple and blue accents, realized through the project's creative direction (see Sections 6–8).
Delivery ownership. The page is a first-party, publicly reachable surface. It is delivered as a single HTML document styled with Tailwind CSS. No login, account, or identity establishment is required or implied for any visitor to read the page or use the contact form — the source specifies a public portfolio page and nothing in the accepted requirements introduces private, per-user, or resumable state.
Current scope. Everything in Section 3 is current: the single page, its five sections, the interactive 3-column project grid, icon-based skills, the bottom contact form, and the dark purple/blue theme.
Explicit boundaries. The source explicitly requires one page ("satu halaman"). No additional pages, routes, dashboards, or admin surfaces are part of the current product. The contact form is a presentation-and-submission surface on the page itself; the source does not specify a backend inbox, CRM, or account system, and none is added here.
Future horizon. No future requirements were stated by the user. Nothing in this document is deferred.
Not applicable — no reference directive in this request declares a content_source, so no external factual inventory is reproduced. All page content is authored by the developer (Portfolio Owner).
The reconciled page inventory is exactly one page, matching the versioned page contract.
The single public entry surface. It contains all five required sections in order and is publicly reachable with no access requirement.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
States
Each requirement is a distinct story point with provenance and observable acceptance.
FR-1 — Single-page portfolio delivery (explicit) As a Portfolio Owner (Developer), I should have my portfolio delivered as one page built with HTML and Tailwind CSS, so that visitors reach my entire profile at a single address.
FR-2 — Hero section with photo, name, role, and CTA button (explicit) As a Portfolio Visitor, I should see a Hero section containing the developer's photo, name, role, and a CTA button, so that I immediately know who this is and what to do next.
FR-3 — "Tentang Saya" section (explicit) As a Portfolio Visitor, I should read a "Tentang Saya" section, so that I understand the developer's background.
FR-4 — "Proyek" section as an interactive 3-column grid (explicit) As a Portfolio Visitor, I should browse a "Proyek" section laid out as an interactive 3-column grid, so that I can evaluate the developer's work.
FR-5 — "Keahlian" section with skills shown with icons (explicit) As a Portfolio Visitor, I should review a "Keahlian" section where each skill is displayed with an icon, so that I can quickly assess the developer's technical range.
FR-6 — "Kontak" form at the bottom of the page (explicit) As a Portfolio Visitor, I should use a "Kontak" form placed at the bottom of the page, so that I can reach out to the developer.
FR-7 — Elegant dark mode theme with purple and blue accents (explicit) As a Portfolio Owner (Developer), I should have the page rendered in an elegant dark mode theme with purple and blue accents, so that the portfolio reads as modern and distinctive.
FR-8 — Public reachability of the page (required_inference) As a Portfolio Visitor, I should reach the portfolio page without creating an account or signing in, so that I can evaluate the developer immediately.
FR-9 — Developer-authored content presentation (required_inference) As a Portfolio Owner (Developer), I should have my authored profile, projects, and skills presented as the page's content, so that the page truthfully represents my work.
The creative direction is authoritative for this section: Electric nocturne — a developer portfolio as a saturated nightclub poster after Jessica Walsh. The headline register is confident, modern, and slightly theatrical: saturated colour on near-black, oversized type, and real craft holding the swagger in check.
Colour tokens (dark mode)
| Role | Token | Hex |
|---|---|---|
| Background (deep ink-violet ground, ~65% of page) | bg | #0B0713 |
| Surface / panels | surface | #17102A |
| Surface hairline (1px) | border | #2A2144 |
| Primary text | text | #F4F0FF |
| Primary (violet — links, icon strokes, focus rings, hero second colour field) | primary | #8B5CF6 |
| Supporting accent (cobalt — skills block, project card index numerals) | accent-blue | #3D5AFE |
| Hot accent (tangerine — one CTA, availability dot, marquee band, active form label) | accent-hot | #FF5C2B |
| Muted (body copy, metadata) | muted | #A79BC4 |
Body text on #0B0713 reaches ~12:1 contrast and on #17102A ~9.5:1 — both comfortably readable. The requested purple + blue pairing reads as a deliberate two-colour system (violet primary, cobalt supporting), not a single brand blue. No blue-on-white or indigo-on-near-white anywhere; the ground is always dark ink-violet.
Typography
clamp(44px, 9vw, 128px); section headings clamp(32px, 5vw, 56px); project titles 24px; body 16–18px at 1.65 line-height; micro-labels 12px uppercase at 0.14em tracking.Shape language
Spacing rhythm: generous 96–160px vertical rhythm between sections.
Imagery style: one art-directed portrait of the developer, high-contrast and colour-graded toward violet, cut out and cropped so it bleeds off the hero's right edge and overlaps the colour seam. Supporting imagery is surreal props and 3D primitives — a glossy chrome sphere, a floating keyboard, a coiled cable — rendered in violet and tangerine on flat colour fields, never stock photography of people at desks. Project cards use abstract generated colour fields with a large index numeral rather than screenshots, so the grid reads as a designed poster series.
The name is the seam. The first screen is a full-viewport two-colour split, not a centred SaaS hero. The left 58% is a solid violet (#8B5CF6) field; the right 42% is the deep ink-violet ground (#0B0713). The developer's name runs across both fields as a single oversized line in Unbounded 800 at clamp(44px, 9vw, 128px), with the portion crossing onto the violet field inverting to dark ink — so the typography itself is the colour boundary.
Beneath the name, a 12px uppercase eyebrow reads the developer's role and location with a pulsing tangerine dot. The portrait is a cut-out that bleeds off the right viewport edge and overlaps the colour seam, cropped at the shoulder so it never covers the name. Two CTAs sit bottom-left as pills: a solid tangerine primary CTA and a 1px violet-outline secondary CTA. A tangerine marquee band runs along the very bottom of the viewport carrying the tech stack in 14px uppercase.
This concept recomposes only accepted content — the Hero's photo, name, role, and CTA button — into the direction's signature composition. No new behaviour, page, or destination is introduced.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
Landing Hero Motion Brief
prefers-reduced-motion stops the marquee (items wrap into rows), disables the scale-ins, and freezes the accent-word colour cycle, leaving a static, fully readable layout with all content and controls intact.Signature moves carried through the page
Layout commitments
Readability guarantee: headlines, wordmarks, labels, numbers, card text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no element covering any part of them. Imagery, decoration, and motion may be cropped, bled, rotated, or overlapped as the direction asks, provided they cover no readable text or control. Moving and scrollable content (the marquee, the 375px project row) may cross the container edge by design; every item becomes fully readable as it passes, and under reduced motion items wrap into rows or scroll so each can be brought fully into view.
prefers-reduced-motion, leaving a static, fully readable layout.No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No user flows yet.
The User Flow Agent will generate per-persona navigation diagrams after SRD updates.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No user flows yet.
The User Flow Agent will generate per-persona navigation diagrams after SRD updates.
No comments yet. Be the first!