Pix3 is a landing page website for a WebGL playable-ads engine that supports both 2D and 3D content through a unified Three.js pipeline. The project uses Vite for building and Tailwind CSS v4. It is deployed to GitHub Pages.
pix3dev/
├── src/
│ ├── index.html # Main landing page
│ └── style.css # Tailwind CSS + custom styles
├── public/
│ └── media/ # Static assets (copied to dist/)
├── dist/ # Build output (deployed to GitHub Pages)
├── postcss.config.js # PostCSS configuration
├── vite.config.js # Vite configuration
└── .github/
└── workflows/
└── static.yml # GitHub Pages deployment workflow
npm run dev # Start development server
npm run preview # Preview production build locallynpm run build # Build to dist/ folderThe site automatically builds and deploys to GitHub Pages on push to main branch via the workflow in .github/workflows/static.yml.
To manually trigger deployment:
- Go to GitHub Actions tab
- Select "Deploy static content to Pages"
- Click "Run workflow"
No tests exist for this static site. If tests are added in the future, run them with:
npm test # Run all tests
npm test -- --grep "pattern" # Run tests matching pattern- Keep changes minimal and focused
- Maintain the dark theme aesthetic (primary color:
#fbcc48yellow, background:#0e0e10) - Preserve semantic HTML structure
- Ensure responsive design works on mobile/desktop
- Doctype & Structure: Use HTML5 doctype, maintain proper head/body structure
- Accessibility: Include alt text for all images, use semantic elements (nav, section, footer)
- Tailwind Classes: Use Tailwind utility classes. Custom colors are defined in
src/style.cssusing@theme - Custom Colors: Use the custom color palette (
bg-surface,text-primary, etc.) - Font Families: Use
font-headline(Space Grotesk) for headings,font-body(Inter) for body text
- Custom styles go in
src/style.css - Tailwind v4 uses CSS-based configuration with
@themedirective - Avoid duplicating Tailwind utility classes
- Maintain the dark theme colors from the design system
- Inline JavaScript is acceptable for simple interactions
- Use vanilla JavaScript - no frameworks
- Keep scripts minimal and performant
- Place external scripts (analytics, etc.) in the head as deferred
- Place static assets in
public/media/(notsrc/) - Use appropriate formats: JPG for photos, PNG for graphics with transparency
- Include descriptive alt text for accessibility
- Keep file sizes reasonable for fast loading
- After adding new images, run
npm run buildto copy them to dist/
- Create descriptive commit messages
- Keep commits focused and atomic
- Push to main branch triggers automatic deployment (after build succeeds)
- Ensure all external CDN links are valid (fonts, analytics)
- Test locally with
npm run buildbefore committing - Verify all images load correctly in the built output
- Tailwind CSS v4: Built via Vite + PostCSS (no CDN)
- Google Fonts: Space Grotesk, Inter, Material Symbols Outlined
- Yandex Metrika: Analytics tracking
- Add HTML markup in
src/index.htmlusing appropriate semantic element (<section>,<div>, etc.) - Apply Tailwind classes for styling
- Use custom colors from the theme (
bg-surface,text-primary, etc.) - Test responsive behavior with
npm run dev
- For Tailwind-based styles: Add classes to HTML elements
- For custom CSS: Edit
src/style.css - For new Tailwind utilities: Add to the
@themeblock insrc/style.css
- Place optimized image in
public/media/folder - Reference with relative path:
src="media/filename.ext"(Vite handles the path correctly) - Always include descriptive alt text
- Run
npm run buildto verify the image is copied to dist/
- This is a static site built with Vite - changes require a build step
- Tailwind v4 uses CSS-based configuration (not JS config file)
- Always run
npm run buildto verify changes before committing - The build output goes to
dist/which is what gets deployed