Prompt: Personal Portfolio Landing Page (FPC001)
Model: Groq-Llama4-Scout | Date: 05/17/2025 | Page Title: Alex Doe - Creative Web Developer
Prompt Description
Design and implement a complete, responsive single-page personal portfolio landing page for a web developer named 'Alex Doe'. **Page Sections & Content:** 1. **Hero Section:** * A compelling headline (e.g., 'Alex Doe - Creative Web Developer'). * A brief introductory paragraph. * A call-to-action button (e.g., 'View My Work') that smoothly scrolls to the 'Projects' section. This button should be identifiable for testing as `data-testid='cta-view-work'`. * Include a professional-looking placeholder image or illustration. 2. **About Me Section:** * A more detailed description of Alex's skills, experience, and passion for web development. * Consider a two-column layout for text and perhaps a smaller image or relevant icons representing skills. 3. **Projects Section (Identifiable as `projects-section` for scrolling):** * Showcase at least 3 fictional projects. Each project should be a 'card' displaying: * Project Title (e.g., 'E-commerce Platform Redesign'). * A short description. * Technologies used (e.g., React, Node.js, Figma). * A link to 'View Project' (can be a '#' link). Each project card should be identifiable for testing with `data-testid='project-card-N'` (N being 1, 2, 3). 4. **Contact Section:** * A simple contact form with fields for 'Name', 'Email', and 'Message'. The form should be identifiable as `data-testid='contact-form'`. * Include a submit button. (No backend logic needed, just the front-end structure and basic client-side validation hints like `required` attributes). 5. **Footer:** * Copyright information (e.g., '© [Current Year] Alex Doe'). * Links to social media profiles (e.g., GitHub, LinkedIn - use placeholder icons and '#' links). **Technical & Accessibility Requirements:** * The entire page MUST be structured with semantic HTML5 (header, nav (if any global nav), main, article, section, footer). * A clear H1 for the main page title (likely in the Hero section). * Heading hierarchy MUST be logical throughout the page. * All images MUST have appropriate `alt` text. * Interactive elements (buttons, links, form fields) MUST be keyboard accessible and have clear focus indicators. * The page MUST be responsive across common device sizes (mobile, tablet, desktop). * Smooth scrolling for the 'View My Work' CTA is required. * Use Tailwind CSS for general layout and styling, but feel free to add minimal custom CSS in a `<style>` tag if necessary for unique design elements or animations that are hard to achieve with Tailwind alone (e.g., subtle hover effects on project cards, the smooth scroll implementation if not CSS-only). **Testing Identifiers (Ensure these are implemented):** * Hero CTA button: `data-testid='cta-view-work'` * Projects section (for scrolling target): `id='projects-section'` (Note: ID for scrolling, not data-testid unless also desired) * Project cards: `data-testid='project-card-1'`, `data-testid='project-card-2'`, etc. * Contact form: `data-testid='contact-form'` * Main page navigation (if present): `data-testid='main-navigation'`
Key Links & Info
Analysis Timestamp: 05/17/2025 11:46:10
Scores for this Prompt
Technical Quality
103.3 / 190.0
(54.37%)
Prompt Adherence
29.0 / 29.0
(100.00%)
Overall Weighted
90.87 %
Technical Quality Breakdown
HTML Structure & Semantics (7.0 / 10.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
HTML Lang | PASS |
PASS
|
1.0 / 1.0 | desktop |
Page Title | PASS |
PASS
|
1.0 / 1.0 | desktop |
Main Tag | PASS |
PASS
|
1.0 / 1.0 | desktop |
Nav Tag | PASS |
PASS
|
1.0 / 1.0 | desktop |
Footer Tag | PASS |
PASS
|
1.0 / 1.0 | desktop |
H1 Count | FAIL |
Multiple visible <h1>s (2).
|
0.0 / 1.0 | desktop |
Heading Order Logic | PASS |
PASS
|
1.0 / 1.0 | desktop |
Image Alts | PASS |
PASS
|
1.0 / 1.0 | desktop |
Form Labels | FAIL |
3 inputs unlabeled.
{ "unlabeled_count": 3 } |
0.0 / 2.0 | desktop |
CSS Quality (2.0 / 5.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
CSS Variables | WARN |
No :root CSS variables.
|
0.0 / 2.0 | desktop |
Modern Layout Body/Main | INFO |
Flex/Grid not on body/main.
|
0.0 / 1.0 | desktop |
Inline Styles | PASS |
Minimal inline styles.
|
1.0 / 1.0 | desktop |
!important Usage | PASS |
No !important in <style> tags.
|
1.0 / 1.0 | desktop |
JavaScript Health (0.0 / 5.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
JS Console Errors | FAIL |
2 JS error(s).
[ "JS ERROR: https://via.placeholder.com/150 - Failed to load resource: net::ERR_NAME_NOT_RESOLVED", "JS ERROR: https://via.placeholder.com/300 - Failed to load resource: net::ERR_NAME_NOT_RESOLVED" ] |
0.0 / 5.0 | desktop |
Accessibility (Axe-core) (0.0 / 40.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Axe Violations | FAIL |
3 Axe violations (Crit:1,Ser:2,Mod:0,Min:0). Report: axe_report_FPC001_Personal_Portfolio_Landing_Page_desktop.json
[ { "help": "Elements must have sufficient color contrast", "id": "color-contrast", "impact": "serious" }, { "help": "Form elements must have labels", "id": "label", "impact": "critical" }, { "help": "Links must have discernible text", "id": "link-name", "impact": "serious" } ] |
0.0 / 20.0 | desktop |
Axe Violations | FAIL |
3 Axe violations (Crit:1,Ser:2,Mod:0,Min:0). Report: axe_report_FPC001_Personal_Portfolio_Landing_Page_mobile.json
[ { "help": "Elements must have sufficient color contrast", "id": "color-contrast", "impact": "serious" }, { "help": "Form elements must have labels", "id": "label", "impact": "critical" }, { "help": "Links must have discernible text", "id": "link-name", "impact": "serious" } ] |
0.0 / 20.0 | mobile |
Rendered Color & Contrast (5.0 / 30.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'View My Work' in <button data-testid='cta-view-work' class='bg-blue-500 hover:bg-blue-700 ...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "View My Work" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'View Project' in <a class='text-blue-500'>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(59, 130, 246)", "ratio": 3.6779011537825332, "text": "View Project" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'View Project' in <a class='text-blue-500'>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(59, 130, 246)", "ratio": 3.6779011537825332, "text": "View Project" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'View Project' in <a class='text-blue-500'>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(59, 130, 246)", "ratio": 3.6779011537825332, "text": "View Project" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Send Message' in <button class='bg-blue-500 hover:bg-blue-700 ...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Send Message" } |
0.0 / 0.0 | desktop |
Contrast Check Result | FAIL |
5 WCAG AA failures on 25 instances.
|
2.5 / 15.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'View My Work' in <button data-testid='cta-view-work' class='bg-blue-500 hover:bg-blue-700 ...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "View My Work" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'View Project' in <a class='text-blue-500'>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(59, 130, 246)", "ratio": 3.6779011537825332, "text": "View Project" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'View Project' in <a class='text-blue-500'>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(59, 130, 246)", "ratio": 3.6779011537825332, "text": "View Project" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'View Project' in <a class='text-blue-500'>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(59, 130, 246)", "ratio": 3.6779011537825332, "text": "View Project" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Send Message' in <button class='bg-blue-500 hover:bg-blue-700 ...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Send Message" } |
0.0 / 0.0 | mobile |
Contrast Check Result | FAIL |
5 WCAG AA failures on 25 instances.
|
2.5 / 15.0 | mobile |
Responsiveness (Viewport & Scroll) (16.0 / 20.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Viewport Meta Tag | PASS |
Configured correctly for responsiveness.
|
4.0 / 4.0 | desktop |
Horizontal Scrollbar | PASS |
No horizontal scrollbar detected.
|
6.0 / 6.0 | desktop |
Viewport Meta Tag | INFO |
Already scored for this prompt.
|
0.0 / 0.0 | mobile |
Horizontal Scrollbar | PASS |
No horizontal scrollbar detected.
|
6.0 / 6.0 | mobile |
Performance (Lighthouse) (37.4 / 40.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Lighthouse Score | PASS |
95/100
|
19.0 / 20.0 | desktop |
Lighthouse Score | PASS |
92/100
|
18.4 / 20.0 | mobile |
Accessibility (Lighthouse) (17.2 / 20.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Lighthouse Score | WARN |
86/100
|
8.6 / 10.0 | desktop |
Lighthouse Score | WARN |
86/100
|
8.6 / 10.0 | mobile |
Best Practices (Lighthouse) (9.6 / 10.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Lighthouse Score | PASS |
96/100
|
4.8 / 5.0 | desktop |
Lighthouse Score | PASS |
96/100
|
4.8 / 5.0 | mobile |
SEO (Lighthouse) (9.1 / 10.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Lighthouse Score | PASS |
91/100
|
4.5 / 5.0 | desktop |
Lighthouse Score | PASS |
91/100
|
4.5 / 5.0 | mobile |
Prompt Adherence Breakdown
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Semantic Header | PASS |
Element 'body > header' present and visible.
Selector:
body > header |
2.0 / 2.0 | desktop |
Semantic Main | PASS |
Element 'body > main' present and visible.
Selector:
body > main |
2.0 / 2.0 | desktop |
Semantic Footer | PASS |
Element 'body > footer' present and visible.
Selector:
body > footer |
2.0 / 2.0 | desktop |
H1 on Page | PASS |
Element 'h1' present and visible.
Selector:
h1 |
2.0 / 2.0 | desktop |
Hero CTA Button | PASS |
Element 'button[data-testid='cta-view-work']' present and visible.
Selector:
button[data-testid='cta-view-work'] |
3.0 / 3.0 | desktop |
Projects Section ID | PASS |
Element '#projects-section' present and visible.
Selector:
#projects-section |
2.0 / 2.0 | desktop |
Project Cards (min 3) | PASS |
Count is 3 (Actual: 3, Expected: >= 3).
|
3.0 / 3.0 | desktop |
Contact Form | PASS |
Element 'form[data-testid='contact-form']' present and visible.
Selector:
form[data-testid='contact-form'] |
2.0 / 2.0 | desktop |
Smooth Scroll to Projects | PASS |
All interaction steps/outcomes verified.
|
5.0 / 5.0 | desktop |
Logical Heading Order (Basic Check) | PASS |
Custom script evaluation result: True (expected true).
Script Eval: True
|
3.0 / 3.0 | desktop |
All Images Have Alt Text | PASS |
Custom script evaluation result: True (expected true).
Script Eval: True
|
3.0 / 3.0 | desktop |
Semantic Header | PASS |
(Points already awarded) Element 'body > header' present and visible.
Selector:
body > header |
0.0 / 2.0 | mobile |
Semantic Main | PASS |
(Points already awarded) Element 'body > main' present and visible.
Selector:
body > main |
0.0 / 2.0 | mobile |
Semantic Footer | PASS |
(Points already awarded) Element 'body > footer' present and visible.
Selector:
body > footer |
0.0 / 2.0 | mobile |
H1 on Page | PASS |
(Points already awarded) Element 'h1' present and visible.
Selector:
h1 |
0.0 / 2.0 | mobile |
Hero CTA Button | PASS |
(Points already awarded) Element 'button[data-testid='cta-view-work']' present and visible.
Selector:
button[data-testid='cta-view-work'] |
0.0 / 3.0 | mobile |
Projects Section ID | PASS |
(Points already awarded) Element '#projects-section' present and visible.
Selector:
#projects-section |
0.0 / 2.0 | mobile |
Project Cards (min 3) | PASS |
(Points already awarded) Count is 3 (Actual: 3, Expected: >= 3).
|
0.0 / 3.0 | mobile |
Contact Form | PASS |
(Points already awarded) Element 'form[data-testid='contact-form']' present and visible.
Selector:
form[data-testid='contact-form'] |
0.0 / 2.0 | mobile |
Smooth Scroll to Projects | PASS |
(Points already awarded) All interaction steps/outcomes verified.
|
0.0 / 5.0 | mobile |
Logical Heading Order (Basic Check) | PASS |
(Points already awarded) Custom script evaluation result: True (expected true).
Script Eval: True
|
0.0 / 3.0 | mobile |
All Images Have Alt Text | PASS |
(Points already awarded) Custom script evaluation result: True (expected true).
Script Eval: True
|
0.0 / 3.0 | mobile |