Librería de Formularios para Angular | ng-hub-ui-forms

Campos de formulario accesibles para Angular (input, textarea, slider, select, datepicker) con visualización automática de errores de control/grupo/form, formularios reactivos y variables CSS.

Referencia API

Aquí tienes el contrato completo de forms: todo lo que puedes enlazar, escuchar, proyectar y personalizar, reunido en un solo sitio. Enlaza lo que necesites y dale el estilo que quieras — es standalone y reactivo con signals.

Inputs

Ajusta forms a tu gusto con 14 inputs. Se enlazan como cualquier @Input de Angular.

NombreTipoPor defectoDescripción
formControlName / [formControl]string | FormControlVincula cualquier campo a un control reactivo. Los errores se muestran automáticamente cuando el control ha sido tocado y es inválido.
labelstring''Texto de la etiqueta del campo.
labelType'stacked' | 'floating' | 'horizontal''stacked'Posición de la etiqueta.
placeholderstring''Texto del placeholder.
formTextstringTexto de ayuda que se muestra debajo del control.
type (hub-input)'text' | 'number' | 'password' | 'email' | 'tel' | 'url' | 'color' | 'checkbox' | 'switch' | 'counter' | 'file''text'El formato de hub-input.
prepend / append (hub-input)string | string[]Texto del addon del input-group antes / después del control.
mask (hub-input)stringMáscara de patrón para formatos de texto. Tokens: 0 = dígito, A = letra, * = alfanumérico; el resto de caracteres son separadores literales. P. ej. "0000 0000 0000 0000".
unmaskValue (hub-input)booleanfalseCon una máscara definida, almacena en el formulario los caracteres escritos en bruto (sin separadores) en lugar del texto formateado.
range (hub-slider)booleanfalseSlider de rango de doble control; el valor pasa a ser una tupla [lower, upper].
format (hub-select)'dropdown' | 'buttons' | 'checkbox' | 'radio''dropdown'Cómo renderiza el select el mismo valor.
items / bindLabel / bindValue / multiple (hub-select)any[] / string / string / booleanOpciones, los nombres de propiedad label/value para elementos de tipo objeto, y selección múltiple.
mode (hub-datepicker)'single' | 'range''single'Fecha única o rango de fechas.
min / max / disabledDates (hub-datepicker)string | Date / (date) => booleanLímites de fechas seleccionables y un predicado de deshabilitado por fecha.

Outputs

Reacciona a lo que hace forms: 4 eventos a los que enganchar tu lógica.

NombreTipoDescripción
valueChangeEventEmitter<value>Se emite cada vez que cambia el valor del campo.
submit (form[hubForm])EventEmitter<void>Se emite al enviar, después de marcar el árbol como tocado.
opened / closed / cleared / viewChange (hub-datepicker)EventEmitterEventos de ciclo de vida y navegación del calendario.
onOpen / onClose / onClear / onSearch / onAdd / onRemove (hub-select)EventEmitterEventos de ciclo de vida del dropdown y de tag/typeahead.

Templates

Hazlo tuyo — 4 plantillas para proyectar tu propio marcado.

NombreDescripciónEjemplo
hubFormTextProyecta contenido enriquecido de texto de ayuda.<ng-template hubFormText>…</ng-template>
hubValidationErrorSobrescribe el mensaje para una clave de error determinada.<ng-template hubValidationError key="min">…</ng-template>
hubLegendContenido personalizado de la leyenda del fieldset.<ng-template hubLegend>…</ng-template>
ng-option-tmp (hub-select)Renderizado personalizado de las opciones del dropdown (directiva ng-select reexportada).<ng-template ng-option-tmp let-item="item">…</ng-template>

Variables CSS

Personaliza cada detalle con 17 variables CSS. Sobrescríbelas en :root o acótalas a un contenedor.

Tokens compartidos de los campos

Elementos comunes a todos los campos: etiqueta, texto de ayuda, feedback de validación y anillo de foco.

VariablePor defectoTipoDescripción
--hub-label-font-weightvar(--hub-ref-font-weight-medium)string Grosor de la etiqueta del campo.
--hub-form-feedback-colorvar(--hub-sys-color-danger)color Color de texto de los errores de validación.
--hub-form-text-colorvar(--hub-sys-text-muted)color Color del texto de ayuda.
--hub-form-focus-ring-colorvar(--hub-sys-focus-ring-color)color Color del anillo de foco.
--hub-form-invalid-border-colorvar(--hub-sys-color-danger)color Color del borde de los controles no válidos.

Input

El estilo de control de texto compartido por input, textarea y el disparador del select.

VariablePor defectoTipoDescripción
--hub-input-bgvar(--hub-sys-surface-page)color Fondo del control.
--hub-input-border-colorvar(--hub-sys-border-color-default)color Color del borde del control.
--hub-input-border-radiusvar(--hub-ref-radius-md)length Radio de borde del control.
--hub-input-padding-y0.375remlength Padding vertical del control.
--hub-input-padding-x0.75remlength Padding horizontal del control.
--hub-input-focus-border-colorvar(--hub-sys-color-primary)color Color del borde al enfocar.

Select, slider y datepicker

Acentos específicos de cada componente que se encadenan a los tokens del sistema.

VariablePor defectoTipoDescripción
--hub-select-option-selected-bgvar(--hub-sys-color-primary)color Fondo de la opción seleccionada del desplegable.
--hub-select-value-bgvar(--hub-sys-surface-elevated)color Fondo del chip de selección múltiple.
--hub-slider-track-fill-bgvar(--hub-sys-color-primary)color Porción rellena de la pista del slider.
--hub-slider-thumb-bgvar(--hub-sys-color-primary)color Color del control deslizante del slider.
--hub-daterangepicker-active-bgvar(--hub-sys-color-primary)color Fondo del día seleccionado del calendario.
--hub-daterangepicker-in-range-bgcolor-mix(in srgb, var(--hub-sys-color-primary) 14%, transparent)color Fondo de los días del calendario dentro del rango.

Estilos y theming

Todavía no hay ejemplos de estilos documentados. Esta sección incluirá recetas de personalización y ejemplos de theming.