ui-next-library
Version:
Biblioteca de componentes UI para Next.js
182 lines (151 loc) • 3.48 kB
CSS
/* Este archivo solo sirve como punto de entrada para la importación.
No necesitamos definir estilos personalizados ya que estamos usando Tailwind directamente. */
@import "tailwindcss";
/* Estilos base para inputs */
.ui-input-wrapper {
position: relative;
display: flex;
align-items: center;
width: 100%;
border: 1px solid #e5e7eb;
border-radius: 0.5rem;
background-color: #ffffff;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
transition: all 0.2s ease-in-out;
}
.ui-input-wrapper:focus-within {
border-color: #3b82f6;
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3);
}
/* Cuando hay error, mantener solo el borde rojo al hacer focus */
.ui-input-error:focus-within {
border-color: #ef4444;
box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.3);
}
.ui-input {
width: 100%;
padding: 0.5rem 0.75rem; /* Reducido en un 20% (de 0.625rem a 0.5rem) */
font-size: 0.875rem;
line-height: 1.25rem;
border-radius: 0.5rem;
border: none;
outline: none;
position: relative;
z-index: 10;
background-color: transparent;
color: #374151;
}
/* Clases para ajustar el padding vertical */
.ui-input-py-xs {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
}
.ui-input-py-sm {
padding-top: 0.375rem;
padding-bottom: 0.375rem;
}
.ui-input-py-md {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
}
.ui-input-py-lg {
padding-top: 0.625rem;
padding-bottom: 0.625rem;
}
.ui-input-py-xl {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
.ui-input::placeholder {
color: #6b7280;
}
.ui-input-icon {
position: absolute;
inset-y: 0;
display: flex;
align-items: center;
pointer-events: none;
color: #6b7280;
}
.ui-input-icon-left {
left: 0.75rem;
}
.ui-input-icon-right {
right: 0.75rem;
}
.ui-input-with-icon {
padding-left: 2.5rem;
}
.ui-input-with-icon-right {
padding-right: 2.5rem;
}
.ui-input-disabled {
background-color: #f3f4f6;
cursor: not-allowed;
}
.ui-input-error {
border-color: #ef4444;
}
.ui-number-input {
text-align: right;
-moz-appearance: textfield;
}
.ui-number-input::-webkit-outer-spin-button,
.ui-number-input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Estilos para botones */
.ui-button {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.625rem 1rem;
font-size: 0.875rem;
font-weight: 500;
line-height: 1.25rem;
border-radius: 0.5rem;
transition: all 0.2s ease-in-out;
cursor: pointer;
border: 1px solid transparent;
}
.ui-button-primary {
background-color: #3b82f6;
color: white;
}
.ui-button-primary:hover {
background-color: #2563eb;
}
.ui-button-primary:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3);
}
.ui-button-submit {
background-color: #10b981;
color: white;
}
.ui-button-submit:hover {
background-color: #059669;
}
.ui-button-submit:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.3);
}
.ui-button-disabled {
opacity: 0.5;
cursor: not-allowed;
}
/* Contenedor para incluir el input y su mensaje de error */
.ui-input-container {
position: relative;
width: 100%;
}
.ui-error-message {
position: absolute;
left: 0;
bottom: -1.25rem;
margin-top: 0.25rem;
font-size: 0.75rem;
color: #ef4444;
font-style: italic;
}