mirror of
https://github.com/Xevion/grain.git
synced 2025-12-05 23:15:08 -06:00
Major framework and tooling changes: - Migrate from React 19 to Preact 10 with preact-iso for routing - Replace @mantine/hooks with custom hooks (useBooleanToggle, useViewportSize) - Switch from @heroicons/react to lucide-preact for icons - Replace chance.js with random-js for RNG Testing infrastructure: - Add Vitest with @testing-library/preact and happy-dom - Set up test configuration and initial App tests - Add Vitest UI for interactive test running Build optimizations: - Add cssnano for CSS minification - Configure aggressive bundle optimizations in Vite - Update to Tailwind CSS 4.1.17 Project structure: - Consolidate entry point from main.tsx to index.tsx - Reorganize CSS location (styles/index.css → index.css) - Add ESLint with preact config - Update TypeScript configuration for Preact
49 lines
1.9 KiB
HTML
49 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>Grain | Dynamic Gradients & Noise</title>
|
||
<meta property="og:locale" content="en_US" />
|
||
<meta property="og:title" content="Grain" />
|
||
<meta property="og:type" content="website" />
|
||
<meta
|
||
property="og:description"
|
||
content="A simple demonstration of a dynamically scaled SVG-based noise & radial gradients."
|
||
/>
|
||
<meta property="og:url" content="https://grain.xevion.dev/" />
|
||
<meta property="og:site_name" content="Grain" />
|
||
<meta property="article:author" content="Ryan Walters" />
|
||
<meta property="article:section" content="Generative Art" />
|
||
<meta
|
||
property="article:published_time"
|
||
content="2022-11-25T08:54:58.977Z "
|
||
/>
|
||
<meta property="og:image" content="https://grain.xevion.dev/bg.jpeg" />
|
||
<meta
|
||
property="og:image:secure_url"
|
||
content="https://grain.xevion.dev/bg.jpeg"
|
||
/>
|
||
<meta property="og:image:width" content="1770" />
|
||
<meta property="og:image:height" content="855" />
|
||
<meta
|
||
property="og:image:alt"
|
||
content="A simple gradient image generated with Grain."
|
||
/>
|
||
<meta property="og:image:type" content="jpeg" />
|
||
<meta name="twitter:image" content="https://grain.xevion.dev/bg.jpeg" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="twitter:url" content="https://grain.xevion.dev/" />
|
||
<meta name="twitter:domain" content="https://grain.xevion.dev/" />
|
||
<meta name="twitter:title" content="Grain" />
|
||
<meta
|
||
name="twitter:description"
|
||
content="A simple demonstration of a dynamically scaled SVG-based noise & stacked radial gradients."
|
||
/>
|
||
</head>
|
||
<body>
|
||
<div id="root"></div>
|
||
<script prerender type="module" src="/src/index.tsx"></script>
|
||
</body>
|
||
</html>
|