-
Notifications
You must be signed in to change notification settings - Fork 0
feat(demo): SEO/GEO — OG/Twitter/robots/sitemap/JSON-LD/llms.txt #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -5,11 +5,60 @@ | |||||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||||
| <title>React Pixel UI - CSS Pixel Art Library for React</title> | ||||||
| <meta name="description" content="Create retro pixel art UI with React. Pure CSS output using clip-path, RGBA PNG gradients, and drop-shadow. No Canvas dependency, SSR compatible." /> | ||||||
| <meta property="og:title" content="React Pixel UI - CSS Pixel Art Library" /> | ||||||
| <meta property="og:description" content="CSS styles to pixel art. No Canvas, no pre-rendering. Pure clip-path + PNG gradient + drop-shadow." /> | ||||||
| <meta name="keywords" content="react, pixel, pixel-art, pixelated, css, clip-path, retro, ui, react component, library, SSR" /> | ||||||
| <meta name="author" content="Todari" /> | ||||||
| <link rel="canonical" href="https://react-pixel-ui.vercel.app/" /> | ||||||
|
|
||||||
| <meta property="og:type" content="website" /> | ||||||
| <meta property="og:url" content="https://react-pixel-ui.vercel.app/" /> | ||||||
| <meta property="og:site_name" content="React Pixel UI" /> | ||||||
| <meta property="og:title" content="React Pixel UI - CSS Pixel Art Library" /> | ||||||
| <meta property="og:description" content="Wrap any element with <Pixel> and your CSS becomes pixel art. Tailwind, inline styles, CSS modules — all supported. No Canvas, SSR compatible." /> | ||||||
| <meta property="og:locale" content="en_US" /> | ||||||
|
|
||||||
| <meta name="twitter:card" content="summary_large_image" /> | ||||||
| <meta name="twitter:title" content="React Pixel UI - CSS Pixel Art Library" /> | ||||||
| <meta name="twitter:description" content="Wrap any element with <Pixel> and your CSS becomes pixel art. No Canvas, SSR compatible." /> | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Twitter card type requires image but none providedMedium Severity The Reviewed by Cursor Bugbot for commit cf10516. Configure here. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Twitter description 값에서 Line 21은 메타 속성 값에 raw 수정 제안 diff- <meta name="twitter:description" content="Wrap any element with <Pixel> and your CSS becomes pixel art. No Canvas, SSR compatible." />
+ <meta name="twitter:description" content="Wrap any element with <Pixel> and your CSS becomes pixel art. No Canvas, SSR compatible." />📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||
|
|
||||||
| <meta name="theme-color" content="#ff8906" /> | ||||||
| <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><rect fill='%23ff8906' x='0' y='0' width='8' height='8'/><rect fill='%23e53170' x='8' y='0' width='8' height='8'/><rect fill='%236c5ce7' x='0' y='8' width='8' height='8'/><rect fill='%2300b894' x='8' y='8' width='8' height='8'/></svg>" /> | ||||||
| <link rel="apple-touch-icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><rect fill='%23ff8906' x='0' y='0' width='8' height='8'/><rect fill='%23e53170' x='8' y='0' width='8' height='8'/><rect fill='%236c5ce7' x='0' y='8' width='8' height='8'/><rect fill='%2300b894' x='8' y='8' width='8' height='8'/></svg>" /> | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Apple-touch-icon uses SVG; iOS requires PNG formatLow Severity The Reviewed by Cursor Bugbot for commit cf10516. Configure here. |
||||||
|
|
||||||
| <script type="application/ld+json"> | ||||||
| { | ||||||
| "@context": "https://schema.org", | ||||||
| "@graph": [ | ||||||
| { | ||||||
| "@type": "WebSite", | ||||||
| "@id": "https://react-pixel-ui.vercel.app/#website", | ||||||
| "url": "https://react-pixel-ui.vercel.app/", | ||||||
| "name": "React Pixel UI", | ||||||
| "description": "Pure CSS pixel art library for React — no Canvas, SSR compatible.", | ||||||
| "inLanguage": "en-US", | ||||||
| "publisher": { "@id": "https://react-pixel-ui.vercel.app/#person" } | ||||||
| }, | ||||||
| { | ||||||
| "@type": "Person", | ||||||
| "@id": "https://react-pixel-ui.vercel.app/#person", | ||||||
| "name": "Todari", | ||||||
| "url": "https://todari.dev", | ||||||
| "sameAs": ["https://github.com/Todari"] | ||||||
| }, | ||||||
| { | ||||||
| "@type": "SoftwareSourceCode", | ||||||
| "@id": "https://react-pixel-ui.vercel.app/#package", | ||||||
| "name": "@react-pixel-ui/react", | ||||||
| "description": "Wrap any element with <Pixel> and your CSS becomes pixel art. Tailwind, inline styles, CSS modules — all supported. No Canvas, SSR compatible.", | ||||||
| "codeRepository": "https://github.com/Todari/react-pixel-ui", | ||||||
| "programmingLanguage": ["TypeScript", "CSS"], | ||||||
| "runtimePlatform": "React", | ||||||
| "license": "https://github.com/Todari/react-pixel-ui/blob/main/LICENSE", | ||||||
| "author": { "@id": "https://react-pixel-ui.vercel.app/#person" }, | ||||||
| "keywords": "react, pixel, pixel-art, css, clip-path, retro, ui, hooks, SSR" | ||||||
| } | ||||||
| ] | ||||||
| } | ||||||
| </script> | ||||||
| </head> | ||||||
| <body> | ||||||
| <div id="root"></div> | ||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,42 @@ | ||||||||||||||||||||||
| # React Pixel UI | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| > React Pixel UI is a pure-CSS pixel art component library for React. Wrap any element with the `<Pixel>` component and its rendered output is automatically transformed into a low-resolution pixel-art look — no Canvas, no pre-rendering, SSR compatible. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Why pure CSS | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| The pixelation is achieved with a combination of `clip-path`, RGBA PNG gradient masks, and `drop-shadow` filters — meaning the output is real DOM/CSS, so it works under server-side rendering and is accessible. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Usage | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ```jsx | ||||||||||||||||||||||
| import { Pixel } from "@react-pixel-ui/react"; | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| <Pixel pixelSize={4}> | ||||||||||||||||||||||
| <button className="bg-orange-500 text-white p-4 rounded"> | ||||||||||||||||||||||
| Click me | ||||||||||||||||||||||
| </button> | ||||||||||||||||||||||
| </Pixel> | ||||||||||||||||||||||
|
Comment on lines
+14
to
+18
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 문서 예제 prop 이름이 실제 API와 달라 실행 시 혼란을 유발합니다. Line 14의 수정 제안 diff-<Pixel pixelSize={4}>
+<Pixel size={4}>
<button className="bg-orange-500 text-white p-4 rounded">
Click me
</button>
</Pixel>📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| Anything inside `<Pixel>` (Tailwind, inline styles, CSS modules, even SVGs) is pixelated as-is. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Packages | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| - **@react-pixel-ui/react** — React component (`<Pixel>`) and hooks. Main entry. | ||||||||||||||||||||||
| - **@react-pixel-ui/core** — Framework-agnostic core (CSS generation utilities). | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Links | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| - npm (React): https://www.npmjs.com/package/@react-pixel-ui/react | ||||||||||||||||||||||
| - GitHub: https://github.com/Todari/react-pixel-ui | ||||||||||||||||||||||
| - Demo: https://react-pixel-ui.vercel.app | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Compatibility | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| - React 18+ | ||||||||||||||||||||||
| - SSR: yes (Next.js, Remix, etc.) | ||||||||||||||||||||||
| - Browsers: any with `clip-path` and `drop-shadow` support (all modern browsers) | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Author | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| Todari (https://todari.dev / https://github.com/Todari) | ||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| User-agent: * | ||
| Allow: / | ||
|
|
||
| Sitemap: https://react-pixel-ui.vercel.app/sitemap.xml |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> | ||
| <url> | ||
| <loc>https://react-pixel-ui.vercel.app/</loc> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>1.0</priority> | ||
| </url> | ||
| </urlset> |


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unescaped HTML in Twitter description meta tag
Medium Severity
The
twitter:descriptionmeta tag contains a raw unescaped<Pixel>in itscontentattribute, while theog:descriptionon line 16 correctly escapes the same text as<Pixel>. Some HTML parsers and social-card crawlers (including Twitter's card validator) may misinterpret or truncate the description at the unescaped angle bracket, resulting in a broken or incomplete Twitter Card preview.Additional Locations (1)
apps/demo/index.html#L15-L16Reviewed by Cursor Bugbot for commit cf10516. Configure here.