Convert Figma logo to code with AI

danmindru logopage-ui

📃 Landing page UI components for React & Next.js, built on top of TailwindCSS

1,476
67
1,476
3

Top Related Projects

A utility-first CSS framework for rapid UI development.

17,575

The instant on-demand atomic CSS engine.

Next generation utility-first CSS framework.

39,302

Chakra UI is a component system for building SaaS products with speed ⚡️

Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅

Quick Overview

Page UI is a lightweight, customizable UI library for building web applications. It provides a set of reusable components and utilities that can be easily integrated into existing projects or used as a foundation for new ones. The library focuses on simplicity and performance, making it suitable for both small and large-scale applications.

Pros

  • Lightweight and fast, with minimal overhead
  • Highly customizable and extensible
  • Easy to integrate with existing projects
  • Good documentation and examples

Cons

  • Limited set of components compared to larger UI libraries
  • Less community support and ecosystem compared to more popular alternatives
  • May require more custom styling and implementation for complex UI patterns
  • Not as feature-rich as some other UI frameworks

Code Examples

  1. Creating a basic button component:
import { Button } from 'page-ui';

const MyButton = () => (
  <Button onClick={() => console.log('Clicked!')}>
    Click me
  </Button>
);
  1. Using the Grid system for layout:
import { Grid, Row, Col } from 'page-ui';

const Layout = () => (
  <Grid>
    <Row>
      <Col xs={12} md={6}>Left column</Col>
      <Col xs={12} md={6}>Right column</Col>
    </Row>
  </Grid>
);
  1. Implementing a modal dialog:
import { Modal, Button } from 'page-ui';

const MyModal = ({ isOpen, onClose }) => (
  <Modal isOpen={isOpen} onClose={onClose}>
    <Modal.Header>Modal Title</Modal.Header>
    <Modal.Body>
      <p>This is the modal content.</p>
    </Modal.Body>
    <Modal.Footer>
      <Button onClick={onClose}>Close</Button>
    </Modal.Footer>
  </Modal>
);

Getting Started

To start using Page UI in your project, follow these steps:

  1. Install the package:
npm install page-ui
  1. Import and use components in your React application:
import React from 'react';
import { Button, Card } from 'page-ui';

const App = () => (
  <div>
    <h1>Welcome to my app!</h1>
    <Card>
      <Card.Body>
        <p>This is a card component from Page UI.</p>
        <Button>Click me</Button>
      </Card.Body>
    </Card>
  </div>
);

export default App;
  1. Customize the theme (optional):
import { ThemeProvider } from 'page-ui';

const theme = {
  colors: {
    primary: '#007bff',
    secondary: '#6c757d',
  },
  // Add more theme customizations here
};

const App = () => (
  <ThemeProvider theme={theme}>
    {/* Your app components */}
  </ThemeProvider>
);

Competitor Comparisons

A utility-first CSS framework for rapid UI development.

Pros of Tailwind CSS

  • Larger community and ecosystem, with more resources and third-party tools
  • More comprehensive utility-class system, covering a wider range of CSS properties
  • Better documentation and official learning resources

Cons of Tailwind CSS

  • Steeper learning curve due to the extensive utility-class system
  • Potentially larger initial CSS file size before optimization
  • More complex setup and configuration process

Code Comparison

Page UI:

.p-ui-button {
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
  background-color: #3490dc;
  color: #ffffff;
}

Tailwind CSS:

<button class="px-4 py-2 rounded bg-blue-500 text-white">
  Button
</button>

Page UI offers a more traditional CSS approach with predefined classes, while Tailwind CSS uses utility classes for inline styling. Tailwind's approach provides more flexibility but can lead to longer class strings in HTML. Page UI's method results in cleaner HTML but less customization on a per-element basis.

Both libraries aim to simplify UI development, but they take different approaches. Page UI focuses on providing ready-to-use components with consistent styling, while Tailwind CSS offers a utility-first methodology for building custom designs quickly.

17,575

The instant on-demand atomic CSS engine.

Pros of UnoCSS

  • Highly customizable and extensible atomic CSS engine
  • Supports multiple preset configurations for various frameworks
  • Offers a wide range of utility classes and features

Cons of UnoCSS

  • Steeper learning curve for developers new to atomic CSS
  • Requires additional setup and configuration
  • May result in larger CSS file sizes for complex projects

Code Comparison

Page-UI:

<div class="flex items-center justify-between p-4 bg-white shadow-md">
  <h1 class="text-xl font-bold">Page-UI Header</h1>
  <button class="px-4 py-2 bg-blue-500 text-white rounded">Click me</button>
</div>

UnoCSS:

<div class="flex items-center justify-between p-4 bg-white shadow-md">
  <h1 class="text-xl font-bold">UnoCSS Header</h1>
  <button class="px-4 py-2 bg-blue-500 text-white rounded">Click me</button>
</div>

While the code examples appear similar, UnoCSS offers more flexibility in customizing utility classes and supports various frameworks. Page-UI, on the other hand, provides a more opinionated and ready-to-use set of components and styles, which may be easier for beginners to implement quickly.

Next generation utility-first CSS framework.

Pros of Windicss

  • More comprehensive utility-first CSS framework with a larger set of pre-defined classes
  • Faster compilation and smaller bundle size due to its on-demand engine
  • Active development and larger community support

Cons of Windicss

  • Steeper learning curve for developers new to utility-first CSS frameworks
  • May require additional configuration for complex projects
  • Less focused on specific UI components compared to Page-ui

Code Comparison

Page-ui:

<div class="page-ui-button">
  <button>Click me</button>
</div>

Windicss:

<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
  Click me
</button>

Page-ui focuses on pre-built components with specific class names, while Windicss uses utility classes to style elements directly. Windicss offers more flexibility and customization options, but requires more classes to achieve the same result.

Both projects serve different purposes: Page-ui is a lightweight UI component library, while Windicss is a full-featured utility-first CSS framework. The choice between them depends on the project requirements and developer preferences.

39,302

Chakra UI is a component system for building SaaS products with speed ⚡️

Pros of Chakra UI

  • More comprehensive component library with a wider range of pre-built UI elements
  • Stronger community support and more frequent updates
  • Better documentation and extensive examples

Cons of Chakra UI

  • Larger bundle size, which may impact performance for smaller projects
  • Steeper learning curve due to its extensive feature set
  • Less flexibility for custom styling compared to Page UI's minimalist approach

Code Comparison

Page UI:

import { Button } from 'page-ui'

<Button variant="primary">Click me</Button>

Chakra UI:

import { Button } from '@chakra-ui/react'

<Button colorScheme="blue">Click me</Button>

Summary

Chakra UI offers a more robust and feature-rich UI library with extensive documentation and community support. It's ideal for larger projects requiring a wide range of components. Page UI, on the other hand, provides a lightweight and minimalist approach, making it suitable for smaller projects or those requiring more custom styling. The choice between the two depends on the specific needs of your project, considering factors such as bundle size, learning curve, and required customization.

Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.

Pros of Material-UI

  • Extensive component library with a wide range of pre-built UI elements
  • Strong community support and regular updates
  • Comprehensive documentation and examples

Cons of Material-UI

  • Larger bundle size due to its extensive feature set
  • Steeper learning curve for customization and theming
  • More opinionated design system, which may limit flexibility

Code Comparison

Material-UI:

import { Button, TextField } from '@material-ui/core';

<Button variant="contained" color="primary">
  Click me
</Button>
<TextField label="Enter text" variant="outlined" />

Page-UI:

import { Button, Input } from '@page-ui/react';

<Button variant="primary">Click me</Button>
<Input placeholder="Enter text" />

Summary

Material-UI offers a more comprehensive set of components and stronger community support, making it suitable for large-scale projects. However, it comes with a larger bundle size and a steeper learning curve. Page-UI, on the other hand, provides a simpler and more lightweight alternative, which may be preferable for smaller projects or those requiring more customization flexibility. The code comparison shows that both libraries offer similar basic components, but Material-UI provides more built-in variants and styling options out of the box.

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅

Pros of styled-components

  • More mature and widely adopted project with a larger community
  • Offers a more comprehensive styling solution with advanced features like theming and global styles
  • Better TypeScript support and integration with popular IDEs

Cons of styled-components

  • Larger bundle size and potential performance overhead
  • Steeper learning curve for developers new to CSS-in-JS concepts
  • May require additional setup and configuration in some projects

Code Comparison

styled-components:

const Button = styled.button`
  background-color: ${props => props.primary ? 'blue' : 'white'};
  color: ${props => props.primary ? 'white' : 'blue'};
  padding: 10px 20px;
  border: 2px solid blue;
`;

page-ui:

import { Button } from 'page-ui';

<Button
  backgroundColor={primary ? 'blue' : 'white'}
  color={primary ? 'white' : 'blue'}
  padding="10px 20px"
  border="2px solid blue"
/>

Summary

styled-components offers a more comprehensive and mature CSS-in-JS solution with advanced features, while page-ui provides a simpler, more lightweight approach to UI components. The choice between the two depends on project requirements, team expertise, and performance considerations.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

🆕 New! Get an entire website from a prompt. Including design! Try it out at pageai.pro 🚀

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.

⚠️ Page UI currently works with Tailwind v3. We are working on adding support for v4.

🎨 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


Save 100s of hours of work by using Page AI to generate a beautiful website. In just minutes!

Page AI Logo
Page AI
AI Website Generator that designs and writes clean code.

Try the app on pageai.pro.
Page AI Logo

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

Page AI LogoPage AIAI Website Generator that designs and writes clean code.pageai.pro
Shipixen LogoShipixenCreate a personalized blog & landing page in minutesshipixen.com
Page UI LogoPage UILanding page UI components for React & Next.jspageui.dev
Clobbr LogoClobbrLoad test your API endpoints.clobbr.app
Crontap LogoCrontapSchedule API calls using cron syntax.crontap.com
CronTool LogoCronToolDebug multiple cron expressions on a calendar.tool.crontap.com

Apihustle Logo

Page UI logo
Page UI ❤️ Open Source