npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

alope-ui

v1.5.10

Published

UI React for ALOPE Team

Downloads

135

Readme

🚀ALOPE UI

ALOPE UI is a simple and flexible component library for your React project. It is built with Vite, ESLint, Tailwind CSS, and uses Heroicons for icons, enabling fast development and clean code.

Components:

Instalation Guide

⚠️ Note: Make sure to run this command in your React project.

  • Install using npm
npm i alope-ui

Examples

ALERT

⚠️Requirement import

import Alert, ButtonIcon from "alope-ui/Alert";
  • Simple Alert
<Alert text="Simple Alert Primary" color="primary" />
<Alert text="Simple Alert Secondary" color="secondary" />
<Alert text="Simple Alert Error" color="error" />
<Alert text="Simple Alert Success" color="success" />
  • Alert with Icon
<Alert text="lorem ipsum sit dolor" color="error" icon={...} />
  • Alert with Close Button
<Alert text="lorem ipsum sit dolor" color="error" withClose />

BUTTON

⚠️Requirement import

import { Button, ButtonIcon } from "alope-ui/Button";
  • Simple Button
<Button text="Primary" color="primary" />
<Button text="Secondary" color="secondary" />
<Button text="Error" color="error" />
<Button text="Success" color="success" />
<Button text="Light" color="light" />
<Button text="Dark" color="dark" />
  • Gradient Button
<Button text="Primary" color="primary" gradient />
<Button text="Secondary" color="secondary" gradient />
<Button text="Error" color="error" gradient />
<Button text="Success" color="success" gradient />
<Button text="Light" color="light" gradient/>
<Button text="Dark" color="dark" gradient/>
  • Custom Size Button
<Button text="Small" color="primary" size="sm" />
<Button text="Medium" color="parimary" size="md" />
<Button text="Large" color="primary" size="lg" />
  • Fullwidth Button
<Button text="Full Width Button" color="primary" fullWidth />
  • Button with Icon
<Button text="Left Icon" color="primary" iconLeft={...} />
<Button text="Right Icon" color="primary" iconRight={...} />
<Button text="Left & Right Icon" color="primary" iconLeft={...} iconRight={...} />
  • Only Icon Button
<ButtonIcon color="primary">{yourIcon()}</ButtonIcon>

<ButtonIcon color="primary" fullRounded>{yourIcon()}</ButtonIcon>

CARD

⚠️Requirement import

import Card from "alope-ui/Card";
import { Button } from "alope-ui/Button";
  • Simple Card
<Card title="Card Title" subtitle="ini subtitle" description="..." />
  • Card with Button
<Card
	title="Card Title"
	subtitle="ini subtitle"
	description="..."
	button={<Button text={"Detail"} color="primary" fullWidth />}
/>

<Card
	title="Card Title"
	subtitle="ini subtitle"
	description="..."
	button={<Button text={"Detail"} color="primary" fullWidth />}
	secondaryButton={<Button text={"Delete"} color="error"/>}
/>

<Card
	title="Card Title"
	subtitle="ini subtitle"
	description="..."
	button={<Button text={"Detail"} color="primary" fullWidth />}
	secondaryButton={<Button text={"Delete"} color="error"  />}
	secondaryButtonOnLeft
/>
  • Card with Image
<Card
	image="..."
	title="Card Title"
	subtitle="ini subtitle"
	description="..."
	button={<Button text={"Detail"} color="primary" fullWidth />}
	secondaryButton={<Button text={"Delete"} color="error" />}
	ribbon="Discount"
/>

<Card
	image="..."
	title="Card Title"
	subtitle="ini subtitle"
	description="..."
	button={<Button text={"Detail"} color="primary" fullWidth />}
	secondaryButton={<Button text={"Delete"} color="error" />}
	secondaryButtonOnLeft
/>

FORM

⚠️Requirement import

import Input from "alope-ui/Input";
import Select from "alope-ui/Select";
  • Simple Input
<Input name="alope-ui" type="text" labelText="Alope UI" />
<Input name="alope-ui" type="text" placeholder="Without Label" />
  • Floating Label Input
<Input name="alope-ui" type="text" labelText="Alope UI" floatingLabel />
  • Input with Icon
<Input
	name="alope-ui"
	type="text"
	labelText="Input with Icon"
	placeholder="This is Placeholder"
	leftIcon={...}
/>
<Input
	name="alope-ui"
	type="text"
	labelText="Input with Icon"
	placeholder="This is Placeholder"
	rightIcon={...}
/>
  • Simple Select
<Select
  name="alope-ui"
  labelText="What do you thing about ALOPE UI"
  options={[
    {
      value: "Amazing",
      name: "Amazing",
    },
  ]}
/>

Footer

⚠️Requirement import

import Footer from "alope-ui/Footer";
<Footer
  imgUrlLogo="..."
  text="ALOPE UI"
  bottomText="Copyright by ALOPE UI, since &copy; 2024"
  links={[
    {
      to: "https://instagram.com",
      placeholder: "Intagram",
    },
    {
      to: "/",
      placeholder: (
        <img src="TiktokLogo.png" className="min-w-[50px] max-w-[50px]" />
      ),
    },
    {
      to: "/",
      placeholder: <YoutubeIcon />,
    },
    {
      to: "",
      placeholder: (
        <span className="flex gap-2 items-center">
          <XIcon />X
        </span>
      ),
    },
  ]}
/>

HEADER

⚠️Requirement import

import Header from "alope-ui/Header";
  • Simple Input
<Header
  bgUrls={["...". "..."]}
  logoUrl="..."
  title="ALOPE UI is The Best "
  description="ALOPE UI is a simple and flexible component library for your React project. It is built with Vite, ESLint, Tailwind CSS, and uses Heroicons for icons, enabling fast development and clean code."
  actions={[
    {
      placeholder: "Action 1",
      buttonColor: "primary",
      to: "/",
    },
    {
      placeholder: "Action 2",
      buttonColor: "light",
      to: "/",
    },
  ]}
/>

MODAL

⚠️Requirement import

import { Modal, CustomModal } from "../Modal";
  • Simple Modal
const [showModal, setShowModal] = useState(false);

<Modal
  isShow={showModal}
  onCloseAction={() => setShowModal(false)}
  bodyText={"uwiegfuiewf"}
  size="md"
/>;
  • Custom Modal
const [showCustomModal, setShowCustomModal] = useState(false);

const handleSubmitFilter = (e: React.FormEvent<HTMLFormElement>) => {
  e.preventDefault();

  const target = e.target as HTMLFormElement;
  const subsektorValue = (
    target.elements.namedItem("subsektor") as HTMLSelectElement
  ).value;

  const params = new URLSearchParams(window.location.search);
  params.set("subsektor", subsektorValue);

  const newUrl = `${window.location.pathname}?${params.toString()}`;
  window.history.pushState({}, "", newUrl);

  setShowModal(false);
};

<CustomModal
  isShow={showCustomModal}
  onCloseAction={() => setShowCustomModal(false)}
  body={
    <form method="GET" onSubmit={(e) => handleSubmitFilter(e)}>
      <Select
        name="Param"
        options={[
          {
            name: "param",
            value: "valueParam",
          },
        ]}
      />
      <div className="mt-5">
        <Button text="Filter" color="primary" fullWidth />
      </div>
    </form>
  }
  footer={<p>Alope UI is the Best</p>}
/>
  • Navbar with Search
<Navbar
  title={"ALOPE"}
  logo={...}
  links={[
    {
      placeholder: "Home",
      to: "/",
    },
    {
      placeholder: "About",
      to: "/about",
    },
    {
      placeholder: "Product",
      to: "/product",
    },
  ]}
  stickyTop
  bg={"transparent"}
  withSearchBar
  searchItems={[
    {
      img: "...",
      title: "Title Card",
      description: "description",
      actionClick: "/",
    },
    {
      img: "...",
      title: "Title Card",
      description: "description",
      actionClick: "/",
    },
    {
      img: "...",
      title: "Title Card",
      description: "description",
      actionClick: "/",
    },
    {
      img: "...",
      title: "Title Card",
      description: "description",
      actionClick: "/",
    },
  ]}
/>

NAVBAR

⚠️Important: Please setup your project with react-router-dom first! ⚠️Requirement import

import Navbar from "../Navbar";
  • Simple Navbar
<Navbar
  title={"ALOPE"}
  links={[
    {
      placeholder: "Home",
      to: "/",
    },
    {
      placeholder: "About",
      to: "/about",
    },
    {
      placeholder: "Product",
      to: "/product",
    },
  ]}
  stickyTop={false}
/>
  • Sticky with Navbar Icon / Logo
<Navbar
  title={"ALOPE"}
  logo={...}
  links={[
    {
      placeholder: "Home",
      to: "/",
    },
    {
      placeholder: "About",
      to: "/about",
    },
    {
      placeholder: "Product",
      to: "/product",
    },
  ]}
  stickyTop
/>
  • Navbar with Search
<Navbar
  title={"ALOPE"}
  logo={...}
  links={[
    {
      placeholder: "Home",
      to: "/",
    },
    {
      placeholder: "About",
      to: "/about",
    },
    {
      placeholder: "Product",
      to: "/product",
    },
  ]}
  stickyTop
  bg={"transparent"}
  withSearchBar
  searchItems={[
    {
      img: "...",
      title: "Title Card",
      description: "description",
      actionClick: "/",
    },
    {
      img: "...",
      title: "Title Card",
      description: "description",
      actionClick: "/",
    },
    {
      img: "...",
      title: "Title Card",
      description: "description",
      actionClick: "/",
    },
    {
      img: "...",
      title: "Title Card",
      description: "description",
      actionClick: "/",
    },
  ]}
/>

TABLE

⚠️Requirement import

import Table from "alope-ui/Table";
  • Simple Table
<Table
  thead={["No", "Name"]}
  tbody={[
    { no: 1, name: " Ilham" },
    { no: 2, name: "Hafidz" },
  ]}
  align="left"
/>
  • Stripped Table
<Table
  thead={["No", "Name"]}
  tbody={[
    { no: 1, name: " Ilham" },
    { no: 2, name: "Hafidz" },
  ]}
  align="left"
  stripped
/>
  • Borderless and Hovered Table
<Table
  thead={["No", "Name"]}
  tbody={[
    { no: 1, name: " Ilham" },
    { no: 2, name: "Hafidz" },
  ]}
  align="left"
  stripped
  borderless
  hovered
/>
  • Table with Action
<Table
  thead={["No", "Name"]}
  tbody={[
    { no: 1, name: " Ilham" },
    { no: 2, name: "Hafidz" },
  ]}
  align="left"
  stripped
  borderless
  hovered
  actions={(row) => (
    <a href={`/details/${row.id}`} className="text-blue-500">
      Detail
    </a>
  )}
/>

TOAST

⚠️Requirement import

import Toast from "alope-ui/Toast";
  • Simple Toast The value for the type attribute can be set to one of the following: "default", "success", "error", or "warning".
<Toast
  isShow={toast}
  setIsShow={(isShow: boolean) => {
    setToast(isShow);
  }}
  type="default"
  description="..."
/>
  • Set Position & Show Time Toast The value for the position attribute can be set to one of the following: "top-left", "top-center", "top-right" or "bottom-left", "bottom-center", "bottom-right".
<Toast
  isShow={toast}
  setIsShow={(isShow: boolean) => {
    setToast(isShow);
  }}
  type="default"
  description="Lorem ipsum dolor sit amet consectetur adipisicing elit. Hic id dolorum laboriosam sequi quaerat rem quo magnam veniam molestias temporibus!"
  showTime={5000}
  position="bottom-center"
/>

You can see an example of the components here