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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bymarcant/easy-time-input

v1.1.1

Published

A simple and easy to use time input component for React

Readme

Easy TimeInput 🕒

[EN]

A simple and easy to use time input component for React.

✨ Features

🚀 Lightweight: No heavy dependencies

🎨 Customizable: Style every part to match your brand.

♿ Accessible: Full keyboard and screen reader support.

📱 Responsive: Works perfectly on mobile and desktop.

🎨 Support for tailwind css and custom styles

📦 Installation

npm install @bymarcant/easy-time-input

🚀 Basic Use

Is very easy to start using it:

import React, { useState } from "react";
// Import the component and the styles
import { TimeInput } from "@bymarcant/easy-time-input";
import "@bymarcant/easy-time-input/style.css";

const App = () => {
  const [time, setTime] = useState("12:00");

  return (
    <div>
      <label>Select a time:</label>
      <TimeInput value={time} onChange={(newTime) => setTime(newTime)} />
    </div>
  );
};

📝 Example of use with Tailwind CSS

import React, { useState } from "react";
// Import the component and the styles
import { TimeInput } from "@bymarcant/easy-time-input";
import "@bymarcant/easy-time-input/style.css";

// To use it with tailwindcss try to use it like this:
// Remember to import @tailwind in your style.css file

const App = () => {
  const [time, setTime] = useState("12:00");

  return (
    <div>
      <label>Select a time:</label>
      <TimeInput
        value={time}
        onChange={(newTime) => setTime(newTime)}
        className="p-2 bg-teal-500 text-white"
      />
    </div>
  );

Demo and usage examples

Demo (Not available yet)

Future updates and features

  • A stand alone hook to control the time effortless
  • Control the time with steps hours, minutes and seconds
  • More methods to control the time as for example: hasTimeChanged, hasMinutesChanged, hasHoursChanged, etc.

⚙️ Props (API) EN

| Prop | Type | Default | Is optional? | Description | | ------------------- | ---------------------------------------------- | --------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------- | | value | string | Date | undefined | null | "00:00" | Yes | The value used to control or display the time in the input. The default value is "00:00:00". You can use new Date(), null or undefined. | | onChange | (value: Date | string) => void | undefined | Yes | Event function to change the time. | | name | string | "time" | Yes | Define the name to describe the time input in forms. | | disabled | boolean | undefined | Yes | Whether the time input is disabled or not. | | disabledHours | boolean | undefined | Yes | Whether the hours input is disabled or not. | | disabledMinutes | boolean | undefined | Yes | Whether the minutes input is disabled or not. | | disabledSeconds | boolean | undefined | Yes | Whether the seconds input is disabled or not. | | required | boolean | undefined | Yes | Whether the time input is required or not. | | className | string | undefined | Yes | Define the className to change the styles used in the time input. This input support tailwind css classes. | | iconClockClassName | string | undefined | Yes | Define the className to change the styles used in the clock icon | | amPmButtonClassName | string | undefined | Yes | Define the className to change the styles used in the AM/PM button | | controlsClassName | string | undefined | Yes | Define custom css className to change the styles as container | | dataTestId | string | undefined | Yes | Define the data-testid used in the time input | | hoursPlaceholder | "--" | "HH" | "hh" | "--" | Yes | Define the placeholder used in the hours input | | minutesPlaceholder | "--" | "mm" | "--" | Yes | Define the placeholder used in the minutes input | | secondsPlaceholder | "--" | "ss" | "--" | Yes | Define the placeholder used in the seconds input | | iconAriaLabel | string | "clock" | Yes | Define the aria-label in icon button | | secondsAriaLabel | string | "seconds" | Yes | Define the aria-label in seconds input controller | | minutesAriaLabel | string | "minutes" | Yes | Define the aria-label in minute input controller | | hoursAriaLabel | string | "hours"` | Yes | Define the aria-label in hour input controller | | amPmAriaLabel | string | "am-pm" | Yes | Define the aria-label in AM/PM controller | | ariaLabel | string | "time" | Yes | Define the aria-label in the time input. By default is "time" | | hoursInputTitle | string | "Hours input" | Yes | Define the title for the hour input. By default is "Hours input" | | minutesInputTitle | string | "Minutes input" | Yes | Define the title for the minutes input. By default is "Minutes input" | | secondsInputTitle | string | "Seconds input" | Yes | Define the title for the seconds input. By default is "Seconds input" | | hasSeconds | boolean | false | Yes | Whether the time input has to display seconds. By default is false | | id | string | undefined | Yes | Id to identify the time input | | hour12 | boolean | false | Yes | Whether the time input has to show AM/PM button or not. By default is false | | disableFocusOnIcon | boolean | false | Yes | Whether the time input has to display icon. By default is true, but it is false, the input will not focus on click | | format | "HH:mm:ss" | "HH:mm" | "hh:mm:ss" | "hh:mm" | undefined | Yes | Define the format used in the time input. By default is "HH:mm:ss" | | maxTime | string | Date | undefined | Yes | Define the maximum time used in the time input. By default is "23:59:59" | | minTime | string | Date | undefined | Yes | Define the minimum time used in the time input. By default is "00:00:00" | | hideControls | boolean | false | Yes | Whether the time input has to display controls. By default is false | | setZeroOnBlur | boolean | false | Yes | Whether the time input has to set the time to 00:00:00 when the input is blurred. By default is false |

📄 License This project is under the MIT License. Consult the LICENSE file for more details.

[ES]

Un componente de entrada de tiempo para React, ligero, personalizable y accesible.

✨ Características

🚀 Ligero: Sin dependencias pesadas

⚛ Soporte para React 18 y 19

🎨 Personalizable: Estiliza cada parte para que coincida con tu marca.

♿ Accesible: Soporte completo para teclado y lectores de pantalla.

📱 Responsive: Funciona perfectamente en dispositivos móviles y escritorio.

🎨 Soporte para tailwind css y estilos personalizados

📦 Instalación

npm install @bymarcant/easy-time-input

🚀 Uso Básico

Es muy sencillo empezar a usarlo:

import React, { useState } from "react";
import { TimeInput } from "@bymarcant/easy-time-input";
import "@bymarcant/easy-time-input/style.css";

const App = () => {
  const [time, setTime] = useState("12:00");

  return (
    <div>
      <label>Selecciona una hora:</label>
      <TimeInput value={time} onChange={(newTime) => setTime(newTime)} />
    </div>
  );
};

📝 Ejemplo de uso con Tailwind CSS

import React, { useState } from "react";
import { TimeInput } from "@bymarcant/easy-time-input";
import "@bymarcant/easy-time-input/style.css";

const App = () => {
  const [time, setTime] = useState("12:00");

  return (
    <div>
      <label>Selecciona una hora:</label>
      <TimeInput
        value={time}
        onChange={(newTime) => setTime(newTime)}
        className="p-2 bg-teal-500 text-white"
      />
    </div>
  );

Demo y ejemplos de uso

Demo (No disponible por ahora)

Proximas actualizaciones o features

  • Hook para controlar el tiempo de manera más sencilla y de forma separada y reactiva
  • Controlar el tiempo con pasos de horas, minutos y segundos
  • Mas métodos para controlar el tiempo como por ejemplo: hasTimeChanged, hasMinutesChanged, hasHoursChanged, etc.

📄 Licencia Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.