# Tucano
> Componentes de formulário e interface para a web, para Django, Laravel, Rails
> ou qualquer back-end que devolve HTML do servidor, com ou sem HTMX. Os
> exemplos deste arquivo usam Django; em PHP e Rails, campo múltiplo precisa de
> name terminado em [] e o upload direto precisa do cabeçalho de CSRF do
> framework (data-csrf="false" e a opção headers do new Upload).
> JavaScript puro, sem dependências em runtime. 43 KB JS + 13 KB CSS (gzip).
> Os estilos são escritos em Tailwind mas distribuídos já compilados: o projeto
> que consome não precisa de build e não recebe o preflight do Tailwind.
>
> Toda a API é em inglês — nomes de classe, métodos, opções, valores, classes
> CSS e atributos. Os comentários do código-fonte e os textos de interface são
> em português, porque é o que o usuário final lê.
> Como este arquivo está organizado: primeiro uma seção por componente, com o
> caminho declarativo (data-attributes) que é o normal num projeto Django;
> depois a REFERÊNCIA COMPLETA, gerada do código a cada build — se uma opção não
> está lá, ela não existe; no fim, as regras do que não fazer.
Documentação: https://juniorcarlini.github.io/tucano/
Código: https://github.com/JuniorCarlini/tucano
Licença: MIT
## Instalação
Dois arquivos, sem build e sem npm:
Sempre prenda a versão. Global JS: `Tucano`.
Todo elemento com `data-tuc-*` é inicializado sozinho no load e de novo a cada
`htmx:afterSwap`. Não é preciso escrever JavaScript.
## Date picker
Atributos: data-mode ("single"|"range"), data-time, data-seconds,
data-minute-step, data-locale, data-format, data-months, data-min, data-max,
data-presets, data-week-numbers, data-iso-name, data-placement, data-native.
Opções equivalentes em JS, mais: disabledDates (date => boolean), autoApply,
clearable, firstDayOfWeek, onChange.
O campo tem máscara derivada do formato (dd/mm/aaaa, dd/mm/aaaa hh:mm, e a
variante com travessão no modo range). Digita-se só números.
Por padrão o painel próprio é usado em todo lugar, inclusive no celular, onde
o texto sobe para 16px (abaixo disso o iOS dá zoom ao focar) e os dois meses
empilham no modo período.
O seletor nativo do sistema é opt-in: data-native="true" (ou native: 'auto'
para ligar só em telas de toque). Ele não altera o type do input — um input
nativo transparente fica por cima. Período nunca usa nativo.
## Select
Enriquece um