Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
13ec089
feat(features): implement features section with 4 feature cards
May 20, 2026
5ab651b
chore: remove node_modules and add to gitignore
May 20, 2026
b351fb4
feat(overview): implement overview section with tests
May 20, 2026
f98ca7f
feat(hero): implement hero section with logo, tagline, CTAs, and back…
May 20, 2026
d8dda8b
chore(gitignore): ignore playwright test results directory
May 20, 2026
ed2c495
chore(scenario): backend fallback commit for "Features Section"
May 20, 2026
7b6cf5e
Merge remote-tracking branch 'origin/feature/product-homepage-design-…
May 20, 2026
afdc192
feat(quickstart): add quick start section with terminal code block an…
May 20, 2026
cac39ab
feat(nav): implement sticky header, mobile menu, theme toggle
May 20, 2026
9dfd281
chore(scenario): backend fallback commit for "Quick Start Section"
May 20, 2026
91748fe
Merge remote-tracking branch 'origin/feature/product-homepage-design-…
May 20, 2026
076e1e0
feat(roadmap): add status and roadmap section with CI badge and featu…
May 20, 2026
2f0b5ea
feat(footer): add footer with copyright, license, and links
May 20, 2026
b64f588
feat(responsive): add responsive design with breakpoints at 768px and…
May 20, 2026
6081ff0
feat(a11y-seo): add accessibility and SEO compliance tests
May 20, 2026
896a165
test(responsive): add e2e tests for responsive breakpoints
May 20, 2026
1e4435f
feat(performance): optimize assets, minify CSS/JS, add lazy loading
May 20, 2026
48148b1
test(integration): add asset integration tests for logo, usage GIF, a…
May 20, 2026
32bbe5e
chore(scenario): backend fallback commit for "Responsive Design"
May 20, 2026
fa38ba0
Merge remote-tracking branch 'origin/feature/product-homepage-design-…
May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
/target
**/*.rs.bk
.something/
node_modules/
test-results/
Binary file added assets/logo-optimized.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/usage-optimized.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
126 changes: 126 additions & 0 deletions css/base.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
/**
* Base Styles and CSS Custom Properties
* Owner: First Builder
*
* Contains:
* - CSS custom properties (--color-primary, --font-family, --spacing-unit, etc.)
* - CSS reset (normalize/box-sizing)
* - Utility classes (.container, .sr-only, .text-center, etc.)
* - Base typography styles
*
* Expected exports (CSS custom properties):
* --color-primary, --color-text, --color-bg, --color-accent
* --font-sans, --font-mono
* --spacing-sm, --spacing-md, --spacing-lg, --spacing-xl
* --breakpoint-tablet: 768px
* --breakpoint-desktop: 1024px
*/

/* CSS Custom Properties */
:root {
--color-primary: #2563eb;
--color-text: #1f2937;
--color-bg: #ffffff;
--color-accent: #10b981;
--color-muted: #6b7280;
--color-border: #e5e7eb;
--color-card-bg: #f9fafb;
--font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
--font-mono: 'Fira Code', 'SF Mono', Consolas, monospace;
--spacing-sm: 0.5rem;
--spacing-md: 1rem;
--spacing-lg: 1.5rem;
--spacing-xl: 2rem;
--spacing-2xl: 3rem;
--breakpoint-tablet: 768px;
--breakpoint-desktop: 1024px;
--max-width: 1200px;
--border-radius: 8px;
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
}

/* CSS Reset */
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}

html {
font-size: 16px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
scroll-behavior: smooth;
}

body {
font-family: var(--font-sans);
color: var(--color-text);
background-color: var(--color-bg);
line-height: 1.6;
}

img {
max-width: 100%;
height: auto;
display: block;
}

a {
color: var(--color-primary);
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

/* Utility Classes */
.container {
max-width: var(--max-width);
margin: 0 auto;
padding: 0 var(--spacing-lg);
}

.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}

.text-center {
text-align: center;
}

/* Base Typography */
h1, h2, h3, h4, h5, h6 {
font-weight: 700;
line-height: 1.2;
margin-bottom: var(--spacing-md);
}

h2 {
font-size: 2rem;
}

h3 {
font-size: 1.25rem;
}

p {
margin-bottom: var(--spacing-md);
}

section {
padding: var(--spacing-2xl) 0;
}
1 change: 1 addition & 0 deletions css/base.min.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

82 changes: 82 additions & 0 deletions css/features.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/**
* Features Section Styles
* Owner: Scenario 3 - Features Section
*
* Styles for:
* - #features section layout
* - Feature card grid (4-col / 2-col / 1-col)
* - Individual feature card styling
* - Icon sizing and color
* - Card title and description typography
* - Hover effects on cards
*/

#features {
background-color: var(--color-card-bg);
}

#features .section-title {
text-align: center;
margin-bottom: var(--spacing-2xl);
color: var(--color-text);
}

.features-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: var(--spacing-xl);
}

.feature-card {
background-color: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: var(--border-radius);
padding: var(--spacing-xl);
text-align: center;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.feature-card:hover {
transform: translateY(-4px);
box-shadow: var(--shadow-lg);
}

.feature-icon {
width: 48px;
height: 48px;
margin: 0 auto var(--spacing-md);
color: var(--color-primary);
}

.feature-icon svg {
width: 100%;
height: 100%;
}

.feature-title {
font-size: 1.125rem;
font-weight: 600;
margin-bottom: var(--spacing-sm);
color: var(--color-text);
}

.feature-description {
font-size: 0.9375rem;
color: var(--color-muted);
line-height: 1.6;
margin-bottom: 0;
}

/* Tablet: 2x2 grid */
@media (max-width: 1023px) {
.features-grid {
grid-template-columns: repeat(2, 1fr);
}
}

/* Mobile: single column */
@media (max-width: 767px) {
.features-grid {
grid-template-columns: 1fr;
}
}
1 change: 1 addition & 0 deletions css/features.min.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

107 changes: 107 additions & 0 deletions css/footer.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
/**
* Footer Styles
* Owner: Scenario 7 - Footer
*
* Styles for:
* - Footer layout and spacing
* - Copyright and license text
* - Footer link styling
* - Visual separation from main content
*/

/* Footer container with distinct visual separation */
.site-footer {
background-color: var(--color-card-bg, #f9fafb);
border-top: 1px solid var(--color-border, #e5e7eb);
padding: var(--spacing-xl) 0;
margin-top: auto;
}

/* Footer content layout */
.footer-content {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: var(--spacing-md);
}

/* Copyright text styling */
.footer-copyright p {
font-size: 0.875rem;
color: var(--color-muted, #6b7280);
margin: 0;
}

.footer-copyright-symbol {
margin-right: 0.25rem;
}

/* License text styling */
.footer-license p {
font-size: 0.875rem;
color: var(--color-muted, #6b7280);
margin: 0;
}

.footer-license a {
color: var(--color-primary, #2563eb);
text-decoration: none;
}

.footer-license a:hover {
text-decoration: underline;
}

/* Footer links navigation */
.footer-links {
flex-shrink: 0;
}

.footer-link-list {
display: flex;
list-style: none;
gap: var(--spacing-lg);
margin: 0;
padding: 0;
}

.footer-link-list li {
display: flex;
align-items: center;
}

.footer-link-list a {
display: inline-flex;
align-items: center;
gap: 0.375rem;
font-size: 0.875rem;
color: var(--color-muted, #6b7280);
text-decoration: none;
transition: color 0.2s ease;
}

.footer-link-list a:hover {
color: var(--color-primary, #2563eb);
text-decoration: none;
}

.footer-link-icon {
width: 1rem;
height: 1rem;
flex-shrink: 0;
}

/* Responsive adjustments */
@media (max-width: 768px) {
.footer-content {
flex-direction: column;
text-align: center;
gap: var(--spacing-sm);
}

.footer-link-list {
justify-content: center;
flex-wrap: wrap;
}
}
1 change: 1 addition & 0 deletions css/footer.min.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading