Page-UI: Landing Page UI Components for React and Next.js with Tailwind

https://github.com/danmindru/page-ui

Page UI 📃

Page UI CLI version

Landing page components & templates that you can copy 📋 & paste 🍝
pageui.dev

A collection of free templates, components and examples to create beautiful, high-converting landing pages with React and Next.js. Open source & themeable with Tailwind CSS. Inspired by Shadcn UI.

Quick links:

Read more about Page UI.

🎨 Templates

Specta - A landing page template for a creator platform, featuring a marquee section and a showcase section Gnomie AI - A landing page template for a B2C AI SaaS app, featuring carousel examples and product tours. Minimum Via - A landing page template for a minimalistic product, or productized agency. Uses text and minimal colors to create a clean look. ScreenshotTwo - A landing page template for a developer tool, featuring inline testimonials and a two-column layout with screenshots.

See all templates 👀

💻 Installation (Next.js)

1️⃣ Start by creating a new Next.js app. You can use the following command:

npx create-next-app@latest my-app --typescript --tailwind --eslint

2️⃣ Run the Page UI CLI

npx @page-ui/wizard@latest init

3️⃣ Add the required dependencies to your Next.js app:

npm install @tailwindcss/forms @tailwindcss/typography tailwindcss-animate class-variance-authority clsx tailwind-merge lucide-react @radix-ui/react-accordion

4️⃣ Add the below to your global.css file.

Show code ↕️
@layer base {
  :root {
    --hard-shadow: 0px 29px 52px 0px rgba(0, 0, 0, 0.4),
      22px 25px 16px 0px rgba(0, 0, 0, 0.2);
    --hard-shadow-left: 0px 29px 52px 0px rgba(0, 0, 0, 0.4),
      -22px 25px 16px 0px rgba(0, 0, 0, 0.2);
    /* If you use Shadcn UI already, you should already have these variables defined */
    --background: 0 0% 100%;
    --foreground: 240 10% 3.9%;
    --card: 0 0% 100%;
    --card-foreground: 240 10% 3.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 240 10% 3.9%;
    --primary-foreground: 355.7 100% 97.3%;
    --secondary: 240 4.8% 95.9%;
    --secondary-foreground: 240 5.9% 10%;
    --muted: 240 4.8% 95.9%;
    --muted-foreground: 240 3.8% 46.1%;
    --accent: 240 4.8% 95.9%;
    --accent-foreground: 240 5.9% 10%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 240 5.9% 90%;
    --input: 240 5.9% 90%;
    --radius: 0.5rem;
  }
  .dark {
    /* If you use Shadcn UI already, you can skip this block. */
    --background: 20 14.3% 4.1%;
    --foreground: 0 0% 95%;
    --card: 24 9.8% 10%;
    --card-foreground: 0 0% 95%;
    --popover: 0 0% 9%;
    --popover-foreground: 0 0% 95%;
    --primary-foreground: 144.9 80.4% 10%;
    --secondary: 240 3.7% 15.9%;
    --secondary-foreground: 0 0% 98%;
    --muted: 0 0% 15%;
    --muted-foreground: 240 5% 64.9%;
    --accent: 12 6.5% 15.1%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 0 85.7% 97.3%;
    --border: 240 3.7% 15.9%;
    --input: 240 3.7% 15.9%;
  }
  *,
  ::before,
  ::after {
    @apply border-gray-100 dark:border-neutral-800;
  }
  * {
    @apply font-sans;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    @apply font-semibold font-display;
  }
}
@layer utilities {
  .text-balance {
    text-wrap: balance;
  }
  /**
   * Perspective (used for images etc.)
   */
  .perspective-none {
    transform: none;
  }
  .perspective-left {
    box-shadow: var(--hard-shadow);
    transform: perspective(400em) rotateY(-15deg) rotateX(6deg)
      skew(-8deg, 4deg) translate3d(-4%, -2%, 0) scale(0.8);
  }
  .perspective-right {
    box-shadow: var(--hard-shadow-left);
    transform: perspective(400em) rotateY(15deg) rotateX(6deg) skew(8deg, -4deg)
      translate3d(4%, -2%, 0) scale(0.8);
  }
  .perspective-bottom {
    box-shadow: var(--hard-shadow);
    transform: translateY(-4%) perspective(400em) rotateX(18deg) scale(0.9);
  }
  .perspective-bottom-lg {
    box-shadow: var(--hard-shadow);
    transform: perspective(400em) translate3d(0, -6%, 0) rotateX(34deg)
      scale(0.8);
  }
  .perspective-paper {
    box-shadow: var(--hard-shadow);
    transform: rotateX(40deg) rotate(40deg) scale(0.8);
  }
  .perspective-paper-left {
    box-shadow: var(--hard-shadow-left);
    transform: rotateX(40deg) rotate(-40deg) scale(0.8);
  }
  /**
   * Custom shadows
   */
  .hard-shadow {
    box-shadow: var(--hard-shadow);
  }
  .hard-shadow-left {
    box-shadow: var(--hard-shadow-left);
  }
  /**
   * Container utilities
   */
  .container-narrow {
    @apply max-w-4xl;
  }
  .container-wide {
    @apply xl:max-w-6xl;
  }
  .container-ultrawide {
    @apply xl:max-w-7xl;
  }
}

For other frameworks, check out the installation guide.

✨ Skip the setup by bootstrapping your app with Shipixen.

🎨 Templates

To copy and paste from the available templates, visit landing page templates.

💿 Demos

To see the components in action, visit landing page component examples.

💪 Motivation

Designing and building landing pages that look good and convert well is hard business.
Most UI libraries focus on application UI, so when you set up a starer or boilerplate you end up staring at a blank canvas.
The time spent browsing through bloated templates, figuring out how to port them to your app and then customizing them is time you could spend on your product.

Start from a blank canvas to create, start from Page UI to innovate.

📝 License

Licensed under the MIT license


Apihustle Logo

Save 10s of hours of work by using Shipixen to generate a customized codebases with your branding, pages and blog
― then deploy it to Vercel with 1 click.

Shipixen Logo
Shipixen
Create a blog & landing page in minutes with Shipixen.
Try the app on shipixen.com.
Shipixen Logo

Apihustle is a collection of tools to test, improve and get to know your API inside and out.
apihustle.com

Shipixen Logo Shipixen Create a personalized blog & landing page in minutes shipixen.com
Page UI Logo Page UI Landing page UI components for React & Next.js pageui.dev
Clobbr Logo Clobbr Load test your API endpoints clobbr.app
Crontap Logo Crontap Schedule API calls using cron syntax. crontap.com
CronTool Logo CronTool Debug multiple cron expressions on a calendar. tool.crontap.com

Page UI logo
Page UI ❤️ Open Source

{
"by": "tosh",
"descendants": 0,
"id": 40247154,
"score": 3,
"time": 1714740924,
"title": "Page-UI: Landing Page UI Components for React and Next.js with Tailwind",
"type": "story",
"url": "https://github.com/danmindru/page-ui"
}
{
"author": "danmindru",
"date": null,
"description": "📃 Landing page UI components for React & Next.js, built on top of TailwindCSS - danmindru/page-ui",
"image": "https://opengraph.githubassets.com/096366b623d3ebc7040d96e03954d5f821778aea72a8c265ab604c417d80662e/danmindru/page-ui",
"logo": "https://logo.clearbit.com/github.com",
"publisher": "GitHub",
"title": "GitHub - danmindru/page-ui: 📃 Landing page UI components for React & Next.js, built on top of TailwindCSS",
"url": "https://github.com/danmindru/page-ui"
}
{
"url": "https://github.com/danmindru/page-ui",
"title": "GitHub - danmindru/page-ui: 📃 Landing page UI components for React & Next.js, built on top of TailwindCSS",
"description": "Page UI 📃 Landing page components & templates that you can copy 📋 & paste 🍝 pageui.dev A collection of free templates, components and examples to create beautiful, high-converting landing pages...",
"links": [
"https://github.com/danmindru/page-ui"
],
"image": "https://opengraph.githubassets.com/096366b623d3ebc7040d96e03954d5f821778aea72a8c265ab604c417d80662e/danmindru/page-ui",
"content": "<div><article><p></p><h2>Page UI 📃</h2><a target=\"_blank\" href=\"https://github.com/danmindru/page-ui#page-ui-\"></a><p></p>\n<p><a target=\"_blank\" href=\"https://github.com/danmindru/page-ui/tree/master/packages/cli\"><img src=\"https://camo.githubusercontent.com/072bb53ea6f3cb2bb00d3ca842a116cfa50c16c94eeb2d866ee94430e566b646/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f40706167652d75692f77697a6172643f6c6162656c3d636c69267374796c653d666c6174\" alt=\"Page UI CLI version\" /></a></p>\n<p><strong>Landing page components &amp; templates that you can copy 📋 &amp; paste 🍝</strong><br />\n<a target=\"_blank\" href=\"https://pageui.dev/\">pageui.dev</a></p>\n<p>A collection of <strong>free templates</strong>, components and examples to create beautiful,\nhigh-converting landing pages with React and Next.js. Open source &amp; themeable\nwith Tailwind CSS. Inspired by <a target=\"_blank\" href=\"https://ui.shadcn.com/\">Shadcn UI</a>.</p>\n<p>Quick links:</p>\n<ul>\n<li><a target=\"_blank\" href=\"https://pageui.shipixen.com/docs/installation\">📀 Installation</a></li>\n<li><a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-templates\">📄 Templates</a></li>\n<li><a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-component-examples\">👩‍💻 A ton of demos</a></li>\n</ul>\n<p><a target=\"_blank\" href=\"https://pageui.dev/docs/introduction\">Read more</a> about Page UI.</p>\n<p></p><h2>🎨 Templates</h2><a target=\"_blank\" href=\"https://github.com/danmindru/page-ui#-templates\"></a><p></p>\n<p><a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-templates/template/specta\"><img src=\"https://private-user-images.githubusercontent.com/1515742/386538167-e2cc026a-70eb-4b07-a20a-3b2128b90056.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzM4NjUzODE2Ny1lMmNjMDI2YS03MGViLTRiMDctYTIwYS0zYjIxMjhiOTAwNTYuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZTIyZmZjODhhOGZlMzcwYTVmZDQ1MTFhMjJiMmI5YWM0Yzk4MWRkYTU5YjZmNGI2ZjRlNTdiZmY1MzkzOGJkYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.YjsTwff5e0ZFwW-WaT5wzTZqRejw8_9BkSDMWNf_JkA\" alt=\"Specta - A landing page template for a creator platform, featuring a marquee section and a showcase section\" /></a>\n<a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-templates/template/gnomie-ai\"><img src=\"https://private-user-images.githubusercontent.com/1515742/386538178-a20b5c40-1955-48c4-b5f0-b8e3f47d3e9f.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzM4NjUzODE3OC1hMjBiNWM0MC0xOTU1LTQ4YzQtYjVmMC1iOGUzZjQ3ZDNlOWYuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzdjNTY4NWUxZmIwZGQ1MTJlZGY3ZGU3YzUyZWZjMDNhM2Q2OGZmM2E0Zjc0MTc2YzhjNWY2YzViYzRkMTg3NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.BEDK4Df4GTjPLuAou5DBj03IDp4kw1xHDQWjEyqS8zs\" alt=\"Gnomie AI - A landing page template for a B2C AI SaaS app, featuring carousel examples and product tours.\" /></a>\n<a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-templates/template/minimum-via\"><img src=\"https://private-user-images.githubusercontent.com/1515742/386538216-b654b414-d1c8-492f-92c6-9c798e28a207.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzM4NjUzODIxNi1iNjU0YjQxNC1kMWM4LTQ5MmYtOTJjNi05Yzc5OGUyOGEyMDcuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YWZlNDY1ZDZmYzAzNWNlZDg5MmU5YmFmYTZmNThmZjk3ZDA2MzUxZWRiZDllNGNiNjZjNWJlNDNiNjFmMDEzMCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ._f-1sxBMqKq8Q2mzSrv5cDaXSlOKckqx01kaVvL2EDk\" alt=\"Minimum Via - A landing page template for a minimalistic product, or productized agency. Uses text and minimal colors to create a clean look.\" /></a>\n<a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-templates/template/screenshot-two\"><img src=\"https://private-user-images.githubusercontent.com/1515742/386538279-6a778633-14de-455c-b5bf-8163929057ff.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzM4NjUzODI3OS02YTc3ODYzMy0xNGRlLTQ1NWMtYjViZi04MTYzOTI5MDU3ZmYuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGQ5YWQ4OWNiMWExNjBhOTNjNTk2MGUzNzA5NGM3MTk5MzFlNjUwOGI5ZjdhMGQzZDRkYTE0N2Y5YjI0M2IxZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.K2RLT3wvBxtvd27CfHsbZkXbpWKMqhQvTOW0yqk-Sp8\" alt=\"ScreenshotTwo - A landing page template for a developer tool, featuring inline testimonials and a two-column layout with screenshots.\" /></a></p>\n<p><a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-templates\">See all templates 👀</a> <br /></p>\n<p></p><h2>💻 Installation (Next.js)</h2><a target=\"_blank\" href=\"https://github.com/danmindru/page-ui#-installation-nextjs\"></a><p></p>\n<p>1️⃣ Start by creating a new Next.js app. You can use the following command:</p>\n<div><pre>npx create-next-app@latest my-app --typescript --tailwind --eslint</pre></div>\n<p>2️⃣ Run the Page UI CLI</p>\n<div><pre>npx @page-ui/wizard@latest init</pre></div>\n<p>3️⃣ Add the required dependencies to your Next.js app:</p>\n<div><pre>npm install @tailwindcss/forms @tailwindcss/typography tailwindcss-animate class-variance-authority clsx tailwind-merge lucide-react @radix-ui/react-accordion</pre></div>\n<p>4️⃣ Add the below to your <code>global.css</code> file.</p>\n<details>\n<summary><b>Show code ↕️</b></summary>\n<div><pre><span>@layer</span> base {\n <span>:</span><span>root</span> {\n <span>--hard-shadow</span><span>:</span> <span>0<span>px</span></span> <span>29<span>px</span></span> <span>52<span>px</span></span> <span>0<span>px</span></span> <span>rgba</span>(<span>0</span><span>,</span> <span>0</span><span>,</span> <span>0</span><span>,</span> <span>0.4</span>)<span>,</span>\n <span>22<span>px</span></span> <span>25<span>px</span></span> <span>16<span>px</span></span> <span>0<span>px</span></span> <span>rgba</span>(<span>0</span><span>,</span> <span>0</span><span>,</span> <span>0</span><span>,</span> <span>0.2</span>);\n <span>--hard-shadow-left</span><span>:</span> <span>0<span>px</span></span> <span>29<span>px</span></span> <span>52<span>px</span></span> <span>0<span>px</span></span> <span>rgba</span>(<span>0</span><span>,</span> <span>0</span><span>,</span> <span>0</span><span>,</span> <span>0.4</span>)<span>,</span>\n <span>-22<span>px</span></span> <span>25<span>px</span></span> <span>16<span>px</span></span> <span>0<span>px</span></span> <span>rgba</span>(<span>0</span><span>,</span> <span>0</span><span>,</span> <span>0</span><span>,</span> <span>0.2</span>);\n <span>/* If you use Shadcn UI already, you should already have these variables defined */</span>\n <span>--background</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>100<span>%</span></span>;\n <span>--foreground</span><span>:</span> <span>240</span> <span>10<span>%</span></span> <span>3.9<span>%</span></span>;\n <span>--card</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>100<span>%</span></span>;\n <span>--card-foreground</span><span>:</span> <span>240</span> <span>10<span>%</span></span> <span>3.9<span>%</span></span>;\n <span>--popover</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>100<span>%</span></span>;\n <span>--popover-foreground</span><span>:</span> <span>240</span> <span>10<span>%</span></span> <span>3.9<span>%</span></span>;\n <span>--primary-foreground</span><span>:</span> <span>355.7</span> <span>100<span>%</span></span> <span>97.3<span>%</span></span>;\n <span>--secondary</span><span>:</span> <span>240</span> <span>4.8<span>%</span></span> <span>95.9<span>%</span></span>;\n <span>--secondary-foreground</span><span>:</span> <span>240</span> <span>5.9<span>%</span></span> <span>10<span>%</span></span>;\n <span>--muted</span><span>:</span> <span>240</span> <span>4.8<span>%</span></span> <span>95.9<span>%</span></span>;\n <span>--muted-foreground</span><span>:</span> <span>240</span> <span>3.8<span>%</span></span> <span>46.1<span>%</span></span>;\n <span>--accent</span><span>:</span> <span>240</span> <span>4.8<span>%</span></span> <span>95.9<span>%</span></span>;\n <span>--accent-foreground</span><span>:</span> <span>240</span> <span>5.9<span>%</span></span> <span>10<span>%</span></span>;\n <span>--destructive</span><span>:</span> <span>0</span> <span>84.2<span>%</span></span> <span>60.2<span>%</span></span>;\n <span>--destructive-foreground</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>98<span>%</span></span>;\n <span>--border</span><span>:</span> <span>240</span> <span>5.9<span>%</span></span> <span>90<span>%</span></span>;\n <span>--input</span><span>:</span> <span>240</span> <span>5.9<span>%</span></span> <span>90<span>%</span></span>;\n <span>--radius</span><span>:</span> <span>0.5<span>rem</span></span>;\n }\n .<span>dark</span> {\n <span>/* If you use Shadcn UI already, you can skip this block. */</span>\n <span>--background</span><span>:</span> <span>20</span> <span>14.3<span>%</span></span> <span>4.1<span>%</span></span>;\n <span>--foreground</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>95<span>%</span></span>;\n <span>--card</span><span>:</span> <span>24</span> <span>9.8<span>%</span></span> <span>10<span>%</span></span>;\n <span>--card-foreground</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>95<span>%</span></span>;\n <span>--popover</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>9<span>%</span></span>;\n <span>--popover-foreground</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>95<span>%</span></span>;\n <span>--primary-foreground</span><span>:</span> <span>144.9</span> <span>80.4<span>%</span></span> <span>10<span>%</span></span>;\n <span>--secondary</span><span>:</span> <span>240</span> <span>3.7<span>%</span></span> <span>15.9<span>%</span></span>;\n <span>--secondary-foreground</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>98<span>%</span></span>;\n <span>--muted</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>15<span>%</span></span>;\n <span>--muted-foreground</span><span>:</span> <span>240</span> <span>5<span>%</span></span> <span>64.9<span>%</span></span>;\n <span>--accent</span><span>:</span> <span>12</span> <span>6.5<span>%</span></span> <span>15.1<span>%</span></span>;\n <span>--accent-foreground</span><span>:</span> <span>0</span> <span>0<span>%</span></span> <span>98<span>%</span></span>;\n <span>--destructive</span><span>:</span> <span>0</span> <span>62.8<span>%</span></span> <span>30.6<span>%</span></span>;\n <span>--destructive-foreground</span><span>:</span> <span>0</span> <span>85.7<span>%</span></span> <span>97.3<span>%</span></span>;\n <span>--border</span><span>:</span> <span>240</span> <span>3.7<span>%</span></span> <span>15.9<span>%</span></span>;\n <span>--input</span><span>:</span> <span>240</span> <span>3.7<span>%</span></span> <span>15.9<span>%</span></span>;\n }\n <span><span>*</span></span><span>,</span>\n ::<span>before</span><span>,</span>\n ::<span>after</span> {\n <span>@apply</span> border-gray-100 dark:border-neutral-800;\n }\n <span><span>*</span></span> {\n <span>@apply</span> font-sans;\n }\n <span>h1</span><span>,</span>\n <span>h2</span><span>,</span>\n <span>h3</span><span>,</span>\n <span>h4</span><span>,</span>\n <span>h5</span><span>,</span>\n <span>h6</span> {\n <span>@apply</span> font-semibold font-display;\n }\n}\n<span>@layer</span> utilities {\n .<span>text-balance</span> {\n <span>text-wrap</span><span>:</span> balance;\n }\n <span>/**</span>\n<span> * Perspective (used for images etc.)</span>\n<span> */</span>\n .<span>perspective-none</span> {\n <span>transform</span><span>:</span> none;\n }\n .<span>perspective-left</span> {\n <span>box-shadow</span><span>:</span> <span>var</span>(<span>--hard-shadow</span>);\n <span>transform</span><span>:</span> <span>perspective</span>(<span>400<span>em</span></span>) <span>rotateY</span>(<span>-15<span>deg</span></span>) <span>rotateX</span>(<span>6<span>deg</span></span>)\n <span>skew</span>(<span>-8<span>deg</span></span><span>,</span> <span>4<span>deg</span></span>) <span>translate3d</span>(<span>-4<span>%</span></span><span>,</span> <span>-2<span>%</span></span><span>,</span> <span>0</span>) <span>scale</span>(<span>0.8</span>);\n }\n .<span>perspective-right</span> {\n <span>box-shadow</span><span>:</span> <span>var</span>(<span>--hard-shadow-left</span>);\n <span>transform</span><span>:</span> <span>perspective</span>(<span>400<span>em</span></span>) <span>rotateY</span>(<span>15<span>deg</span></span>) <span>rotateX</span>(<span>6<span>deg</span></span>) <span>skew</span>(<span>8<span>deg</span></span><span>,</span> <span>-4<span>deg</span></span>)\n <span>translate3d</span>(<span>4<span>%</span></span><span>,</span> <span>-2<span>%</span></span><span>,</span> <span>0</span>) <span>scale</span>(<span>0.8</span>);\n }\n .<span>perspective-bottom</span> {\n <span>box-shadow</span><span>:</span> <span>var</span>(<span>--hard-shadow</span>);\n <span>transform</span><span>:</span> <span>translateY</span>(<span>-4<span>%</span></span>) <span>perspective</span>(<span>400<span>em</span></span>) <span>rotateX</span>(<span>18<span>deg</span></span>) <span>scale</span>(<span>0.9</span>);\n }\n .<span>perspective-bottom-lg</span> {\n <span>box-shadow</span><span>:</span> <span>var</span>(<span>--hard-shadow</span>);\n <span>transform</span><span>:</span> <span>perspective</span>(<span>400<span>em</span></span>) <span>translate3d</span>(<span>0</span><span>,</span> <span>-6<span>%</span></span><span>,</span> <span>0</span>) <span>rotateX</span>(<span>34<span>deg</span></span>)\n <span>scale</span>(<span>0.8</span>);\n }\n .<span>perspective-paper</span> {\n <span>box-shadow</span><span>:</span> <span>var</span>(<span>--hard-shadow</span>);\n <span>transform</span><span>:</span> <span>rotateX</span>(<span>40<span>deg</span></span>) <span>rotate</span>(<span>40<span>deg</span></span>) <span>scale</span>(<span>0.8</span>);\n }\n .<span>perspective-paper-left</span> {\n <span>box-shadow</span><span>:</span> <span>var</span>(<span>--hard-shadow-left</span>);\n <span>transform</span><span>:</span> <span>rotateX</span>(<span>40<span>deg</span></span>) <span>rotate</span>(<span>-40<span>deg</span></span>) <span>scale</span>(<span>0.8</span>);\n }\n <span>/**</span>\n<span> * Custom shadows</span>\n<span> */</span>\n .<span>hard-shadow</span> {\n <span>box-shadow</span><span>:</span> <span>var</span>(<span>--hard-shadow</span>);\n }\n .<span>hard-shadow-left</span> {\n <span>box-shadow</span><span>:</span> <span>var</span>(<span>--hard-shadow-left</span>);\n }\n <span>/**</span>\n<span> * Container utilities</span>\n<span> */</span>\n .<span>container-narrow</span> {\n <span>@apply</span> max-w-4xl;\n }\n .<span>container-wide</span> {\n <span>@apply</span> xl:max-w-6xl;\n }\n .<span>container-ultrawide</span> {\n <span>@apply</span> xl:max-w-7xl;\n }\n}</pre></div>\n</details>\n<p>For other frameworks, check out the <a target=\"_blank\" href=\"https://pageui.dev/docs/installation\">installation guide</a>.</p>\n<blockquote>\n<p>✨ Skip the setup by bootstrapping your app with <a target=\"_blank\" href=\"https://shipixen.com/\">Shipixen</a>.</p>\n</blockquote>\n<p></p><h2>🎨 Templates</h2><a target=\"_blank\" href=\"https://github.com/danmindru/page-ui#-templates-1\"></a><p></p>\n<p>To copy and paste from the available templates, visit <a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-templates\">landing page templates</a>.</p>\n<p></p><h2>💿 Demos</h2><a target=\"_blank\" href=\"https://github.com/danmindru/page-ui#-demos\"></a><p></p>\n<p>To see the components in action, visit <a target=\"_blank\" href=\"https://shipixen.com/demo/landing-page-component-examples\">landing page component examples</a>.</p>\n<p></p><h2>💪 Motivation</h2><a target=\"_blank\" href=\"https://github.com/danmindru/page-ui#-motivation\"></a><p></p>\n<p>Designing and building landing pages that look good and convert well is hard business.<br />\nMost UI libraries focus on application UI, so when you set up a starer or boilerplate you end up staring at a blank canvas.<br />\nThe time spent browsing through bloated templates, figuring out how to port them to your app and then customizing them is time you could spend on your product.</p>\n<blockquote>\n<p>Start from a blank canvas to create, start from Page UI to innovate.</p>\n</blockquote>\n<p></p><h2>📝 License</h2><a target=\"_blank\" href=\"https://github.com/danmindru/page-ui#-license\"></a><p></p>\n<p>Licensed under the <a target=\"_blank\" href=\"https://github.com/danmindru/page-ui/blob/main/LICENSE.md\">MIT license</a></p>\n<hr />\n<a target=\"_blank\" href=\"https://apihustle.com/\">\n <img src=\"https://user-images.githubusercontent.com/1515742/215217833-c07183d2-f688-4d1c-86ea-329f3b28f81c.svg\" alt=\"Apihustle Logo\" />\n</a>\n<hr />\n<p>Save 10s of hours of work by using Shipixen to generate a customized codebases with your branding, pages and blog <br />\n― then deploy it to Vercel with 1 click.</p>\n<table>\n<thead>\n<tr>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a target=\"_blank\" href=\"https://shipixen.com/\"><img src=\"https://user-images.githubusercontent.com/1515742/281071510-d5c0095d-d336-4857-ad80-d18cf65f4acb.png\" alt=\"Shipixen Logo\" /></a> <br /> <b>Shipixen</b> <br /> Create a blog &amp; landing page in minutes with <b>Shipixen</b>. <br /> Try the app on <a target=\"_blank\" href=\"https://shipixen.com/\">shipixen.com</a>.</td>\n<td><a target=\"_blank\" href=\"https://shipixen.com/\"><img src=\"https://user-images.githubusercontent.com/1515742/281077548-57b24773-3c2a-4e89-b088-cc3945d7037b.png\" alt=\"Shipixen Logo\" /></a></td>\n</tr>\n</tbody>\n</table>\n<hr />\n<p>Apihustle is a collection of tools to test, improve and get to know your API inside and out. <br />\n<a target=\"_blank\" href=\"https://apihustle.com/\">apihustle.com</a> <br /></p>\n<table>\n<thead>\n<tr>\n<th></th>\n<th></th>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a target=\"_blank\" href=\"https://shipixen.com/\"><img src=\"https://private-user-images.githubusercontent.com/1515742/337255041-3af97560-d774-4149-96c5-65d3cc530a5a.svg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzMzNzI1NTA0MS0zYWY5NzU2MC1kNzc0LTQxNDktOTZjNS02NWQzY2M1MzBhNWEuc3ZnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Y2NjNGIzNDViNjkzY2ZkOTU1MGIzM2UyMDkwYzkwNGMwNzkzNmJkZDY4MjY2MjllOGJjYWU4NzY1ZjM5MzhhZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.oiWZalnVP0lkuCa5vsA_BAUw4f0-edV8vitZ1Jo51nw\" alt=\"Shipixen Logo\" /></a></td>\n<td><strong>Shipixen</strong></td>\n<td>Create a personalized blog &amp; landing page in minutes</td>\n<td><a target=\"_blank\" href=\"https://shipixen.com/\">shipixen.com</a></td>\n</tr>\n<tr>\n<td><a target=\"_blank\" href=\"https://pageui.dev/\"><img src=\"https://private-user-images.githubusercontent.com/1515742/337255028-953cc5ab-bbf4-4a19-9b16-c74d218b63b4.svg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzMzNzI1NTAyOC05NTNjYzVhYi1iYmY0LTRhMTktOWIxNi1jNzRkMjE4YjYzYjQuc3ZnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDY2M2U3MTViMmNjNjc5Yzg5MDU4MjUxYmE5ZmNkYjBmNzZlYjI2NGQ0NTI5M2FhY2NjNGQwZmZjNTRhMjI2ZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ._fj5C5-gYtCcj7WkI6KsuYEjFF1o4ej87LCjs_Wot04\" alt=\"Page UI Logo\" /></a></td>\n<td><strong>Page UI</strong></td>\n<td>Landing page UI components for React &amp; Next.js</td>\n<td><a target=\"_blank\" href=\"https://pageui.dev/\">pageui.dev</a></td>\n</tr>\n<tr>\n<td><a target=\"_blank\" href=\"https://clobbr.app/\"><img src=\"https://private-user-images.githubusercontent.com/1515742/337254976-50c11d46-a025-40fd-b154-0a5984556f6e.svg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzMzNzI1NDk3Ni01MGMxMWQ0Ni1hMDI1LTQwZmQtYjE1NC0wYTU5ODQ1NTZmNmUuc3ZnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGUyMzgzOWJhYmQwMmI5MWQ1OTUwZmNjYzI1YjBkNGFhOTRlYjhiZmY4ZjVkOTg5M2JjYTkzMjQxZDI0MjI5MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.OWnXpGL8fjAHUXoZjfjPKZQ5KFeqGrCPxGD7zWagDDA\" alt=\"Clobbr Logo\" /></a></td>\n<td><strong>Clobbr</strong></td>\n<td>Load test your API endpoints</td>\n<td><a target=\"_blank\" href=\"https://clobbr.app/\">clobbr.app</a></td>\n</tr>\n<tr>\n<td><a target=\"_blank\" href=\"https://crontap.com/\"><img src=\"https://private-user-images.githubusercontent.com/1515742/337254992-fe1aac71-b663-4f8e-a225-0c47b2eee14d.svg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzMzNzI1NDk5Mi1mZTFhYWM3MS1iNjYzLTRmOGUtYTIyNS0wYzQ3YjJlZWUxNGQuc3ZnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGY1NzgwODJjMjQwNjBhNTg1ODJlMzgwNGU5YjIxM2NmYWZkMDcxOTUxYTY4YmY0ZWYwYzgxZjQwMTVjMjAzZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.LQpATrJof8qbdFYvZkO3yFr2YNOMCkvxIy7jPUh_euA\" alt=\"Crontap Logo\" /></a></td>\n<td><strong>Crontap</strong></td>\n<td>Schedule API calls using cron syntax.</td>\n<td><a target=\"_blank\" href=\"https://crontap.com/\">crontap.com</a></td>\n</tr>\n<tr>\n<td><a target=\"_blank\" href=\"https://tool.crontap.com/\"><img src=\"https://private-user-images.githubusercontent.com/1515742/337255005-713ff923-b03c-43ec-9cfd-75e542d0f5c4.svg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzMzNzI1NTAwNS03MTNmZjkyMy1iMDNjLTQzZWMtOWNmZC03NWU1NDJkMGY1YzQuc3ZnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Mjk4NTE0NzE0MTMwN2Y3ZTJkZTg1ODkwNjE2YjBlNzIzOGM4OWIzY2UxM2NlNjFjZjliMTZmZTBkYTRmYTQzYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.DJse4gvNuswnsUcWKtQjj23y2Vep4DOpGgZ53g8MRYY\" alt=\"CronTool Logo\" /></a></td>\n<td><strong>CronTool</strong></td>\n<td>Debug multiple cron expressions on a calendar.</td>\n<td><a target=\"_blank\" href=\"https://tool.crontap.com/\">tool.crontap.com</a></td>\n</tr>\n</tbody>\n</table>\n<hr />\n<p><a target=\"_blank\" href=\"https://private-user-images.githubusercontent.com/1515742/327445484-30259ef0-6085-401d-ab24-e9d1f9b5fc05.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzMyNzQ0NTQ4NC0zMDI1OWVmMC02MDg1LTQwMWQtYWIyNC1lOWQxZjliNWZjMDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YWQ2ZDM0YTc0ZTEwZmE5MjczYTJkZTE0YTM5MzJmMWZiZDFhZTNhNTU3NTU4ZWEzNTY5NjEzYmJiZGUxZTM4MCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.jovo3GBwgQo3kWmsXmT7lBjYJfQNLq9g6TIEWm8VGlE\"><img src=\"https://private-user-images.githubusercontent.com/1515742/327445484-30259ef0-6085-401d-ab24-e9d1f9b5fc05.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ4NTgxNTIsIm5iZiI6MTczNDg1Nzg1MiwicGF0aCI6Ii8xNTE1NzQyLzMyNzQ0NTQ4NC0zMDI1OWVmMC02MDg1LTQwMWQtYWIyNC1lOWQxZjliNWZjMDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMjJUMDg1NzMyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YWQ2ZDM0YTc0ZTEwZmE5MjczYTJkZTE0YTM5MzJmMWZiZDFhZTNhNTU3NTU4ZWEzNTY5NjEzYmJiZGUxZTM4MCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.jovo3GBwgQo3kWmsXmT7lBjYJfQNLq9g6TIEWm8VGlE\" alt=\"Page UI logo\" /></a> <br />\nPage UI ❤️ Open Source</p>\n</article></div>",
"author": "",
"favicon": "https://github.githubassets.com/favicons/favicon.svg",
"source": "github.com",
"published": "",
"ttr": 148,
"type": "object"
}