zenite-ui 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,41 +7,53 @@ O Zênite UI é um framework front-end moderno, leve e responsivo, focado na sim
7
7
  ## 1. Diferenciais
8
8
  - Leveza: Sem dependências externas pesadas, focado em performance.
9
9
  - Responsividade: Design totalmente adaptável para qualquer dispositivo.
10
- - Modularidade: Estrutura organizada para importação direta ou via bundlers.
10
+ - Modularidade: Estrutura organizada para importação direta via CDN ou via gerenciadores de pacotes.
11
11
 
12
12
  ---
13
13
 
14
- ## 2. Instalação
14
+ ## 2. Instalação e Utilização
15
15
 
16
- O framework pode ser instalado no seu projeto via gerenciador de pacotes NPM. Execute o comando abaixo no seu terminal:
16
+ Pode utilizar o Zênite UI de duas formas, dependendo da arquitetura do seu projeto:
17
17
 
18
- npm install zenite-ui
18
+ ### Opção A: Importação direta via CDN (Mais rápida)
19
+ Ideal para projetos estáticos ou sem processo de *build*. Não é necessária a instalação de pacotes locais. Adicione as referências abaixo diretamente no seu arquivo HTML:
19
20
 
20
- ---
21
+ **CSS (Adicione dentro da tag <head>):**
21
22
 
22
- ## 3. Guia de Utilização
23
+ <link href="https://cdn.jsdelivr.net/npm/zenite-ui@1.0.4/zenite-ui/zenite.min.css" rel="stylesheet">
23
24
 
24
- ### Importação em Projetos Estáticos (HTML)
25
- Adicione as referências diretamente no seu arquivo HTML apontando para a pasta node_modules:
25
+ **JavaScript (Adicione antes do fechamento da tag <body>):**
26
26
 
27
- <link rel="stylesheet" href="./node_modules/zenite-ui/zenite-ui/zenite.css">
28
- <script src="./node_modules/zenite-ui/js/zenite.js"></script>
27
+ <script src="https://cdn.jsdelivr.net/npm/zenite-ui@1.0.4/js/zenite.min.js"></script>
28
+
29
+
30
+ ### Opção B: Instalação via NPM (Para Bundlers e Projetos Modernos)
31
+ Ideal se estiver a utilizar ferramentas como Webpack, Vite, React, etc. Execute o comando abaixo no seu terminal:
29
32
 
30
- ### Importação via Bundlers (Webpack, Vite, etc.)
31
- Em arquiteturas modernas, importe o CSS e o JS nos seus arquivos principais:
33
+ npm install zenite-ui
34
+
35
+ **Importação via Bundlers:**
36
+ Nos seus arquivos principais (ex: `main.js` ou `index.js`), importe o CSS e o JS:
32
37
 
33
38
  import 'zenite-ui/zenite-ui/zenite.css';
34
39
  import 'zenite-ui';
35
40
 
41
+ **Importação em HTML usando node_modules local:**
42
+ Se instalou via NPM mas ainda usa HTML estático:
43
+
44
+ <link rel="stylesheet" href="./node_modules/zenite-ui/zenite-ui/zenite.css">
45
+ <script src="./node_modules/zenite-ui/js/zenite.js"></script>
46
+
36
47
  ---
37
48
 
38
- ## 4. Estrutura do Projeto
39
- O framework é composto por diversos módulos para facilitar a manutenção:
40
- - Layout: Grid, Colunas e classes utilitárias.
49
+ ## 3. Estrutura do Projeto
50
+ O framework é composto por diversos módulos para facilitar a manutenção e o desenvolvimento:
51
+ - Layout: Grid responsivo, Colunas e classes utilitárias.
41
52
  - Componentes: Buttons, Cards, Modals, Navbars, entre outros.
42
53
  - Formulários: Inputs estilizados, Checkboxes e Switches.
43
54
 
44
55
  ---
45
56
 
46
- ## 5. Licença
57
+ ## 4. Licença
47
58
  Este projeto está sob a licença MIT. Desenvolvido por Zênite Tecnologia.
59
+ https://www.npmjs.com/package/zenite-ui
@@ -0,0 +1 @@
1
+ details{background-color:var(--zf-background-secondary);border:1px solid rgba(212,175,55,.2);border-radius:8px;margin-bottom:1rem;padding:0 1.5rem;transition:border-color .3s ease;overflow:hidden}details:hover{border-color:#d4af3780}summary{font-weight:600;color:var(--zf-text-light);cursor:pointer;padding:1.5rem 0;outline:none;list-style:none;display:flex;justify-content:space-between;align-items:center}summary:after{content:"\25bc";color:var(--zf-accent);font-size:.8em;transition:transform .3s ease}details[open] summary:after{transform:rotate(180deg)}details[open] summary{border-bottom:1px solid rgba(212,175,55,.2);margin-bottom:1rem}details p{padding-bottom:.5rem}details[open]{animation:expandirCaixa 1.8s cubic-bezier(.25,1,.5,1) forwards}@keyframes expandirCaixa{0%{max-height:75px}to{max-height:500px}}details[open] summary~*{animation:revelarTexto .3s ease-in-out forwards}@keyframes revelarTexto{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}.alert{padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;background-color:var(--zf-background-secondary);color:var(--zf-text-light);border-left:4px solid var(--zf-text-main);display:flex;align-items:center}.alert-success{border-left-color:#28a745;background-color:#28a7451a}.alert-error{border-left-color:#dc3545;background-color:#dc35451a}.alert-warning{border-left-color:#ffc107;background-color:#ffc1071a}.avatar{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background-color:var(--zf-background-secondary);color:var(--zf-text-light);font-weight:700;object-fit:cover;border:2px solid var(--zf-accent)}.avatar-sm{width:32px;height:32px;font-size:.8rem}.avatar-lg{width:64px;height:64px;font-size:1.5rem}.badge{display:inline-block;padding:.25em .85em;font-size:.75em;font-weight:700;text-transform:uppercase;border-radius:9999px;background-color:transparent;color:var(--zf-text-main);border:1px solid var(--zf-text-main);letter-spacing:.05em;line-height:1.5;text-align:center;white-space:nowrap}.badge.badge-accent{background-color:#d4af371a;color:var(--zf-accent);border-color:var(--zf-accent)}.button{display:inline-block;font-family:inherit;font-weight:600;font-size:1rem;line-height:1.5;text-align:center;text-decoration:none;cursor:pointer;padding:.75rem 2rem;border-radius:9999px;border:2px solid transparent;transition:all .3s ease;background-color:var(--zf-accent);color:var(--zf-background-primary)}.button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #d4af374d}.button:active:not(:disabled){transform:translateY(0)}.button.button-outline{background-color:transparent;border-color:var(--zf-accent);color:var(--zf-accent)}.button.button-outline:hover:not(:disabled){background-color:var(--zf-accent);color:var(--zf-background-primary)}.button:disabled,.button[disabled]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.button-group{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.5rem}.calendar{background-color:var(--zf-background-secondary);border:1px solid rgba(212,175,55,.2);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;width:100%;max-width:380px;transition:border-color .3s ease,box-shadow .3s ease}.calendar:hover{border-color:var(--zf-accent);box-shadow:0 8px 24px #020d2acc}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.calendar-header h3{margin:0;color:var(--zf-text-light);font-size:1.2rem;font-weight:700}.calendar-btn{background:transparent;border:1px solid rgba(212,175,55,.3);color:var(--zf-text-main);border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-weight:700}.calendar-btn:hover{background-color:var(--zf-accent);color:var(--zf-background-primary);border-color:var(--zf-accent)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;text-align:center}.calendar-day-name{font-weight:700;font-size:.8rem;color:var(--zf-accent);text-transform:uppercase;margin-bottom:.5rem}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.95rem;color:var(--zf-text-main);cursor:pointer;transition:all .2s ease;border:1px solid transparent}.calendar-day:hover:not(.empty){background-color:#d4af371a;color:var(--zf-text-light);border-color:#d4af374d}.calendar-day.active{background-color:var(--zf-accent);color:var(--zf-background-primary);font-weight:700;box-shadow:0 4px 10px #d4af374d}.calendar-day.empty{cursor:default;opacity:.3}[data-theme=light] .calendar{border-color:#0a1f44!important}[data-theme=light] .calendar-day.active{color:#fff!important}.card{background-color:transparent;border:none;border-radius:0;padding:1rem 0;margin-bottom:1.5rem;display:flex;flex-direction:column;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;height:100%;position:relative;z-index:1}.card>h1:first-child,.card>h2:first-child,.card>h3:first-child{margin-top:0}.card>*:last-child{margin-bottom:0}@media(min-width:600px){.card{background-color:var(--zf-background-secondary);border:1px solid rgba(212,175,55,.2);border-radius:8px;padding:1.5rem}.card:hover,.card:focus-within{transform:translateY(-4px);border-color:var(--zf-accent);box-shadow:0 8px 24px #020d2acc;z-index:50}}.auth-card{width:100%;max-width:450px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;justify-content:center;min-height:100vh;background-color:transparent;border:none;box-shadow:none;z-index:1}@media(min-width:600px){.auth-card{min-height:auto;margin-top:10vh;margin-bottom:10vh;background-color:var(--zf-background-secondary);border:1px solid rgba(212,175,55,.2);border-radius:8px;box-shadow:0 10px 30px #020d2a80;padding:3rem 2.5rem}}.carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1.5rem;padding-bottom:1.5rem;margin-bottom:1.5rem;scrollbar-width:thin;scrollbar-color:var(--zf-accent) var(--zf-background-secondary)}.carousel::-webkit-scrollbar{height:8px}.carousel::-webkit-scrollbar-track{background:var(--zf-background-secondary);border-radius:4px}.carousel::-webkit-scrollbar-thumb{background:var(--zf-accent);border-radius:4px}.carousel-item{flex:0 0 100%;scroll-snap-align:center;border-radius:8px;overflow:hidden;position:relative}.carousel-item img{width:100%;height:100%;object-fit:cover;display:block}.carousel-cards .carousel-item{flex:0 0 calc(100% - 3rem)}@media(min-width:768px){.carousel-cards .carousel-item{flex:0 0 calc(50% - .75rem)}}@media(min-width:1024px){.carousel-cards .carousel-item{flex:0 0 calc(33.333% - 1rem)}}.container{width:100%;max-width:var(--zf-container-width);margin:0 auto;padding:0 1rem}.row{display:flex;flex-wrap:wrap;gap:var(--zf-column-gap);margin-bottom:var(--zf-column-gap)}.column{flex:1 1 0;min-width:0}.column-1{flex:0 0 calc(8.333% - (var(--zf-column-gap) * 11 / 12))}.column-2{flex:0 0 calc(16.666% - (var(--zf-column-gap) * 10 / 12))}.column-3{flex:0 0 calc(25% - (var(--zf-column-gap) * 9 / 12))}.column-4{flex:0 0 calc(33.333% - (var(--zf-column-gap) * 8 / 12))}.column-5{flex:0 0 calc(41.666% - (var(--zf-column-gap) * 7 / 12))}.column-6{flex:0 0 calc(50% - (var(--zf-column-gap) * 6 / 12))}.column-7{flex:0 0 calc(58.333% - (var(--zf-column-gap) * 5 / 12))}.column-8{flex:0 0 calc(66.666% - (var(--zf-column-gap) * 4 / 12))}.column-9{flex:0 0 calc(75% - (var(--zf-column-gap) * 3 / 12))}.column-10{flex:0 0 calc(83.333% - (var(--zf-column-gap) * 2 / 12))}.column-11{flex:0 0 calc(91.666% - (var(--zf-column-gap) * 1 / 12))}.column-12{flex:0 0 100%}@media(max-width:768px){.column,[class^=column-]{flex:0 0 100%}}.zf-combobox{position:relative;width:100%;margin-bottom:1.5rem;z-index:10}.zf-combobox.active{z-index:999}.zf-combobox-input{width:100%;padding:.75rem 3.5rem .75rem 1rem;margin-bottom:0!important;background-color:var(--zf-background-secondary);border:1px solid rgba(212,175,55,.3);color:var(--zf-text-light);border-radius:8px;font-family:inherit;font-size:1rem;outline:none;transition:all .3s ease;cursor:text}.zf-combobox-input:focus{border-color:var(--zf-accent);box-shadow:0 0 0 3px #d4af3726}.zf-combobox:after{content:"\25bc";position:absolute;top:50%;right:1.25rem;transform:translateY(-50%);color:var(--zf-accent);font-size:.8em;pointer-events:none;transition:transform .3s ease}.zf-combobox.active:after{transform:translateY(-50%) rotate(180deg)}.zf-combobox-clear{position:absolute;top:50%;right:2.25rem;transform:translateY(-50%);color:var(--zf-text-main);font-size:1.4rem;font-weight:700;cursor:pointer;line-height:1;padding:.2rem;z-index:2;opacity:0;visibility:hidden;transition:all .2s ease}.zf-combobox-clear:hover{color:var(--zf-accent)}.zf-combobox.has-value .zf-combobox-clear{opacity:1;visibility:visible}.zf-combobox-list{position:absolute;top:calc(100% + 5px);left:0;width:100%;max-height:250px;overflow-y:auto;background-color:var(--zf-background-secondary);border:1px solid var(--zf-accent);border-radius:8px;box-shadow:0 8px 24px #020d2ae6;z-index:1000;list-style:none;padding:.5rem 0;margin:0;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s ease}.zf-combobox.active .zf-combobox-list{opacity:1;visibility:visible;transform:translateY(0)}.zf-combobox-item{padding:.75rem 1.5rem;cursor:pointer;transition:all .2s ease;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(212,175,55,.1)}.zf-combobox-item:last-child{border-bottom:none}.zf-cb-left{display:flex;flex-direction:column}.zf-cb-name{font-weight:700;color:var(--zf-text-light);font-size:1.05rem;transition:color .2s ease}.zf-cb-cpf{font-family:Consolas,Monaco,Andale Mono,monospace;font-size:.85rem;color:var(--zf-text-main);opacity:.8;margin-top:.2rem}.zf-cb-info{font-size:.8rem;background-color:#d4af371a;color:var(--zf-accent);padding:.2rem .6rem;border-radius:9999px;border:1px solid var(--zf-accent);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.zf-combobox-item:hover,.zf-combobox-item.highlighted{background-color:#d4af371a}.zf-combobox-item:hover .zf-cb-name,.zf-combobox-item.highlighted .zf-cb-name{color:var(--zf-accent)}.zf-combobox-list::-webkit-scrollbar{width:8px}.zf-combobox-list::-webkit-scrollbar-track{background:var(--zf-background-secondary);border-radius:4px}.zf-combobox-list::-webkit-scrollbar-thumb{background:var(--zf-accent);border-radius:4px}label{display:block;margin-bottom:.5rem;color:var(--zf-text-light);font-weight:500}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],textarea,select{width:100%;padding:.75rem 1rem;margin-bottom:1.5rem;background-color:var(--zf-background-secondary);border:1px solid rgba(212,175,55,.3);color:var(--zf-text-light);border-radius:8px;font-family:inherit;font-size:1rem;outline:none;transition:border-color .3s ease,box-shadow .3s ease}textarea{resize:vertical;min-height:120px}input::placeholder,textarea::placeholder{color:var(--zf-text-main);opacity:.7}input:focus,textarea:focus,select:focus{border-color:var(--zf-accent);box-shadow:0 0 0 3px #d4af3726}input[type=checkbox],input[type=radio]{width:auto;margin-right:.5rem;margin-bottom:0;cursor:pointer;accent-color:var(--zf-accent)}.radio-group,.checkbox-group{display:flex;align-items:center;margin-bottom:1.5rem}.radio-group label,.checkbox-group label{margin-bottom:0;margin-right:1.5rem;font-weight:400}input:disabled,textarea:disabled,select:disabled{opacity:.5;cursor:not-allowed;background-color:#0a1f4480}input[type=file]{padding:.5rem;background-color:var(--zf-background-secondary);border:1px dashed rgba(212,175,55,.5);color:var(--zf-text-main);border-radius:8px;cursor:pointer;width:100%;margin-bottom:1.5rem}input[type=file]::file-selector-button{background-color:var(--zf-accent);color:var(--zf-background-primary);border:none;padding:.5rem 1rem;border-radius:4px;margin-right:1rem;cursor:pointer;font-weight:600;transition:all .3s ease}input[type=file]::file-selector-button:hover{box-shadow:0 4px 12px #d4af374d;transform:translateY(-1px)}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;background:transparent;margin-bottom:1.5rem}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{width:100%;height:6px;cursor:pointer;background:var(--zf-background-secondary);border-radius:3px;border:1px solid rgba(212,175,55,.2)}input[type=range]::-webkit-slider-thumb{height:18px;width:18px;border-radius:50%;background:var(--zf-accent);cursor:pointer;-webkit-appearance:none;margin-top:-7px;box-shadow:0 0 10px #d4af3766}input[type=range]::-moz-range-track{width:100%;height:6px;cursor:pointer;background:var(--zf-background-secondary);border-radius:3px;border:1px solid rgba(212,175,55,.2)}input[type=range]::-moz-range-thumb{height:18px;width:18px;border-radius:50%;background:var(--zf-accent);cursor:pointer;border:none;box-shadow:0 0 10px #d4af3766}img,video{max-width:100%;height:auto;border-radius:8px;display:block}figure{margin:1.5rem 0}figcaption{text-align:center;color:var(--zf-text-main);font-size:.85em;margin-top:.75rem;font-style:italic}dialog{background-color:var(--zf-background-secondary);color:var(--zf-text-light);border:1px solid var(--zf-accent);border-radius:8px;padding:2rem;width:90%;max-width:500px;margin:auto;box-shadow:0 10px 30px #000c}dialog::backdrop{background-color:#020d2ad9;backdrop-filter:blur(4px)}body:has(dialog[open]){overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;border-bottom:1px solid rgba(212,175,55,.2);padding-bottom:1rem}.modal-header h2,.modal-header h3{margin:0}.close-modal{background:transparent;border:none;color:var(--zf-text-main);font-size:1.5rem;cursor:pointer;transition:color .3s ease;padding:0}.close-modal:hover{color:var(--zf-accent)}dialog[open]{animation:abrirModal .5s ease-in-out forwards}@keyframes abrirModal{0%{opacity:0;transform:scale(.95) translateY(-30px)}to{opacity:1;transform:scale(1) translateY(0)}}dialog[open]::backdrop{animation:aparecerFundo .5s ease-in-out forwards}@keyframes aparecerFundo{0%{opacity:0;backdrop-filter:blur(0px)}to{opacity:1;background-color:#020d2ad9;backdrop-filter:blur(4px)}}header{position:sticky;top:0;z-index:1000;background-color:var(--zf-background-primary);padding:.5rem 0;border-bottom:1px solid rgba(212,175,55,.1);transition:all .3s ease}nav{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:1rem 0;margin-bottom:0;border-bottom:none}nav a{color:var(--zf-text-main);text-decoration:none;font-weight:600;font-size:1rem;transition:color .3s ease}nav a:hover,nav a.active{color:var(--zf-accent)}nav .brand{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;color:var(--zf-text-light);margin-right:auto}[data-theme=light] header{background-color:#cac7c7!important;border-bottom-color:#0a1f4426!important}@media(max-width:768px){nav{justify-content:center;gap:1rem 1.5rem}nav .brand{margin-right:0;width:100%;text-align:center;margin-bottom:.5rem}}.pagination{display:flex;flex-wrap:wrap;list-style:none;gap:.5rem;padding:0;margin:1.5rem 0 3rem;align-items:center}.pagination li a,.pagination li span{display:flex;align-items:center;justify-content:center;min-width:2.5rem;height:2.5rem;padding:0 .75rem;border-radius:8px;background-color:var(--zf-background-secondary);border:1px solid rgba(212,175,55,.2);color:var(--zf-text-main);text-decoration:none;font-weight:600;transition:all .3s ease}.pagination li a:hover{border-color:var(--zf-accent);color:var(--zf-text-light);transform:translateY(-2px);box-shadow:0 4px 12px #d4af3726}.pagination li.active span{background-color:var(--zf-accent);border-color:var(--zf-accent);color:var(--zf-background-primary)}.pagination li.disabled span{opacity:.5;cursor:not-allowed;background-color:transparent;border-color:#d4af371a;color:var(--zf-text-main)}progress{appearance:none;width:100%;height:10px;border-radius:5px;overflow:hidden;margin-bottom:1.5rem}progress::-webkit-progress-bar{background-color:var(--zf-background-secondary)}progress::-webkit-progress-value{background-color:var(--zf-accent)}progress::-moz-progress-bar{background-color:var(--zf-accent)}.spinner{display:inline-block;width:1.5rem;height:1.5rem;border:3px solid rgba(212,175,55,.3);border-radius:50%;border-top-color:var(--zf-accent);animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.sidebar-checkbox{display:none}.sidebar-toggle-btn{cursor:pointer;font-size:1.5rem;color:var(--zf-text-light);background-color:var(--zf-background-secondary);border:1px solid var(--zf-accent);padding:.5rem 1rem;border-radius:8px;display:inline-flex;align-items:center;transition:all .3s ease}.sidebar-toggle-btn:hover{background-color:var(--zf-accent);color:var(--zf-background-primary)}.sidebar-overlay{position:fixed;top:0;left:0;width:100%;height:100vh;background-color:#020d2ab3;backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:all .3s ease;z-index:999}.sidebar{position:fixed;top:0;left:0;width:280px;height:100vh;background-color:var(--zf-background-secondary);z-index:1050;transform:translate(-105%);visibility:hidden;box-shadow:none;transition:transform .3s ease,box-shadow .3s ease,visibility .3s ease;padding:2rem 1.5rem}.sidebar-checkbox:checked~.sidebar{transform:translate(0);visibility:visible;box-shadow:4px 0 24px #020d2a80}.sidebar-checkbox:checked~.sidebar-overlay{opacity:1;visibility:visible}.sidebar-nav{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.sidebar-nav a{color:var(--zf-text-main);text-decoration:none;font-size:1.1rem;padding:.5rem 0;border-bottom:1px solid rgba(212,175,55,.1);transition:color .3s ease}.sidebar-nav a:hover,.sidebar-nav a.active{color:var(--zf-accent)}.skeleton{background-color:#ffffff08;background-image:linear-gradient(90deg,#fff0,#d4af3726,#fff0);background-size:200% 100%;animation:shimmer 1.5s infinite linear;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-title{height:1.5rem;width:60%;margin-bottom:1rem}.skeleton-text{height:1rem;width:100%;margin-bottom:.5rem}.skeleton-text.short{width:80%}.skeleton-image{width:100%;height:150px;border-radius:8px;margin-bottom:1rem}.skeleton-button{height:2.5rem;width:140px;border-radius:9999px;margin-top:1rem}.switch{position:relative;display:inline-block;width:50px;height:26px;margin-right:.5rem}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--zf-background-secondary);transition:.4s;border-radius:26px;border:1px solid rgba(212,175,55,.3)}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:var(--zf-text-main);transition:.4s;border-radius:50%}.switch input:checked+.slider{background-color:var(--zf-accent);border-color:var(--zf-accent)}.switch input:checked+.slider:before{background-color:var(--zf-background-primary);transform:translate(24px)}.table-container{width:100%;overflow-x:auto;margin-bottom:1.5rem;border:1px solid rgba(212,175,55,.2);border-radius:8px}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:1rem 1.5rem;border-bottom:1px solid rgba(212,175,55,.15);color:var(--zf-text-main)}th{background-color:var(--zf-background-secondary);color:var(--zf-accent);font-weight:700;text-transform:uppercase;font-size:.85rem;letter-spacing:.05em}tbody tr{transition:background-color .3s ease}tbody tr:hover{background-color:var(--zf-background-secondary)}tbody tr:last-child td{border-bottom:none}.table-striped tbody tr:nth-child(2n){background-color:#ffffff05}.table-striped tbody tr:hover{background-color:#d4af370d}.tabs{display:flex;flex-wrap:wrap;margin-bottom:2rem;border-bottom:1px solid rgba(212,175,55,.2)}.tabs input[type=radio]{display:none}.tabs label{padding:1rem 2rem;cursor:pointer;color:var(--zf-text-main);font-weight:600;margin-bottom:-1px;border-bottom:2px solid transparent;transition:all .3s ease}.tabs label:hover{color:var(--zf-text-light)}.tabs input[type=radio]:checked+label{color:var(--zf-accent);border-bottom:2px solid var(--zf-accent)}.tab-content{width:100%;order:1;display:none;padding:1.5rem 0}.tabs input[type=radio]:checked+label+.tab-content{display:block}[data-tooltip]{position:relative;cursor:help;border-bottom:1px dotted var(--zf-accent)}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:120%;left:50%;transform:translate(-50%);background-color:var(--zf-background-primary);color:var(--zf-text-light);padding:.5rem .75rem;border-radius:4px;font-size:.8rem;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .3s ease;border:1px solid var(--zf-accent);z-index:10}[data-tooltip]:hover:after{opacity:1;visibility:visible}h1,h2,h3,h4,h5,h6{color:var(--zf-text-light);margin-top:2.5rem;margin-bottom:1rem;line-height:1.2;font-weight:700}p{margin-bottom:1.5rem}ul,ol{margin-bottom:1.5rem;padding-left:2rem}li{margin-bottom:.5rem}a{color:var(--zf-accent);text-decoration:underline;transition:color .3s ease}a:hover{text-decoration:none;color:var(--zf-text-light)}strong,b{color:var(--zf-text-light);font-weight:700}mark{background-color:var(--zf-accent);color:var(--zf-background-primary);padding:.1rem .3rem;border-radius:3px}blockquote{border-left:4px solid var(--zf-accent);margin:1.5rem 0;padding:1rem 1.5rem;color:var(--zf-text-main);background-color:var(--zf-background-secondary);border-radius:0 8px 8px 0;font-style:italic}code,kbd{font-family:Consolas,Monaco,Andale Mono,monospace;font-size:.85em}pre{scrollbar-width:thin;scrollbar-color:var(--zf-background-primary) var(--zf-background-secondary)}pre::-webkit-scrollbar{height:10px}pre::-webkit-scrollbar-track{background:var(--zf-background-secondary);border-radius:0 0 8px 8px}pre::-webkit-scrollbar-thumb{background:var(--zf-background-primary);border-radius:5px;border:2px solid var(--zf-background-secondary)}pre::-webkit-scrollbar-thumb:hover{background:var(--zf-accent)}p>code,li>code{background-color:var(--zf-background-secondary);color:var(--zf-accent);padding:.2rem .4rem;border-radius:4px}kbd{background-color:var(--zf-background-primary);color:var(--zf-text-light);border:1px solid var(--zf-text-main);border-radius:4px;padding:.1rem .3rem}pre{background-color:var(--zf-background-secondary);color:var(--zf-text-light);padding:1.5rem;border-radius:8px;border:1px solid rgba(212,175,55,.2);overflow-x:auto;margin-top:1.5rem;margin-bottom:1.5rem;max-width:100%}pre code{background-color:transparent;padding:0;color:inherit;font-size:.9em}.notice{background-color:#d4af371a;border:1px solid var(--zf-accent);padding:1rem 1.5rem;border-radius:8px;margin:1.5rem 0;color:var(--zf-text-light)}aside{background-color:var(--zf-background-secondary);border-left:4px solid var(--zf-accent);padding:1rem 1.5rem;border-radius:0 8px 8px 0;margin:-1.8rem 0 1.5rem 1.5rem;float:right;width:30%;min-width:250px}aside p:last-child{margin-bottom:0}@media(max-width:768px){aside{float:none;width:100%;margin:1.5rem 0}}article,section{margin-bottom:3rem}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-left{text-align:left!important}.hidden{display:none!important}.mt-1{margin-top:1rem!important}.mt-2{margin-top:2rem!important}.mt-3{margin-top:3rem!important}.mb-1{margin-bottom:1rem!important}.mb-2{margin-bottom:2rem!important}.mb-3{margin-bottom:3rem!important}:root{--zf-background-primary: #020D2A;--zf-background-secondary: #0A1F44;--zf-accent: #D4AF37;--zf-text-main: #A0AEC0;--zf-text-light: #FFFFFF;--zf-font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--zf-container-width: 1200px;--zf-column-gap: 1.5rem}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--zf-background-primary);color:var(--zf-text-main);font-family:var(--zf-font-base);line-height:1.6;font-size:1.15rem}[data-theme=light]{--zf-background-primary: #97919183;--zf-background-secondary: #e3e3e383;--zf-accent: #0A1F44;--zf-text-main: #52525B;--zf-text-light: #18181B}[data-theme=light] .button:not(.button-outline),[data-theme=light] .button.button-outline:hover,[data-theme=light] .pagination li.active span,[data-theme=light] mark,[data-theme=light] input[type=file]::file-selector-button{color:#fff!important}[data-theme=light] .switch input:checked+.slider:before{background-color:#fafafa!important}[data-theme=light] .card,[data-theme=light] pre,[data-theme=light] input,[data-theme=light] textarea,[data-theme=light] select,[data-theme=light] details,[data-theme=light] .table-container,[data-theme=light] .sidebar,[data-theme=light] .zf-combobox-list{border-color:#0a1f44!important}[data-theme=light] hr,[data-theme=light] .modal-header,[data-theme=light] nav,[data-theme=light] .tabs,[data-theme=light] th,[data-theme=light] td,[data-theme=light] .sidebar-nav a,[data-theme=light] details[open] summary{border-color:#0a1f444d!important}[data-theme=light] .skeleton{background-color:#0a1f440d!important;background-image:linear-gradient(90deg,#0a1f4400,#0a1f4426,#0a1f4400)!important}[data-theme=light] .card:hover{box-shadow:0 10px 25px #0000000d!important;border-color:var(--zf-accent)!important}[data-theme=light] .zf-combobox-list{box-shadow:0 10px 25px #00000014!important}[data-theme=light] dialog{box-shadow:0 20px 40px #0000001a!important}[data-theme=light] dialog::backdrop,[data-theme=light] .sidebar-overlay{background-color:#18181b80!important}[data-theme=light] .zf-combobox-list,[data-theme=light] dialog,[data-theme=light] .sidebar{background-color:#e3e3e383!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;border:1px solid rgba(10,31,68,.1)!important;box-shadow:0 12px 35px #0a1f4426!important}[data-theme=light] dialog::backdrop,[data-theme=light] .sidebar-overlay{background-color:#0a1f4480!important;backdrop-filter:blur(3px)!important}
@@ -0,0 +1 @@
1
+ (()=>{document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".zf-combobox").forEach(s=>{let a=s.querySelector(".zf-combobox-input"),i=s.querySelectorAll(".zf-combobox-item"),v=s.querySelector(".zf-combobox-clear"),t=-1,r=()=>{a.value.trim()!==""?s.classList.add("has-value"):s.classList.remove("has-value")},m=()=>Array.from(i).filter(e=>e.style.display!=="none"),l=e=>{if(i.forEach(n=>n.classList.remove("highlighted")),t>=0&&t<e.length){let n=e[t];n.classList.add("highlighted"),n.scrollIntoView({block:"nearest"})}},c=()=>{s.classList.remove("active"),t=-1,l([])};v&&v.addEventListener("mousedown",e=>{e.preventDefault(),e.stopPropagation(),a.value="",r(),i.forEach(n=>n.style.display=""),a.focus()}),a.addEventListener("focus",()=>{s.classList.add("active"),t=-1}),a.addEventListener("mousedown",e=>{e.offsetX>a.offsetWidth-40&&(e.preventDefault(),s.classList.toggle("active"),s.classList.contains("active")||(t=-1))}),a.addEventListener("input",e=>{r();let n=e.target.value.toLowerCase();s.classList.add("active"),i.forEach(o=>{let u=o.textContent.toLowerCase();o.style.display=u.includes(n)?"":"none"}),t=-1,l(m())});let f=e=>{let n=e.querySelector(".zf-cb-name"),o=e.querySelector(".zf-cb-cpf"),u=e.getAttribute("data-id")||"Sem ID",h=n?n.textContent.trim():e.textContent.trim();a.value=h,r(),c();let g={id:u,nome:h,cpf:o?o.textContent.trim():"CPF n\xE3o encontrado"};console.log("Objeto Selecionado:",JSON.stringify(g,null,2))};i.forEach(e=>{e.addEventListener("click",()=>f(e))}),a.addEventListener("keydown",e=>{let n=m(),o=s.classList.contains("active");e.key==="ArrowDown"?(e.preventDefault(),o?(t=t<n.length-1?t+1:t,l(n)):s.classList.add("active")):e.key==="ArrowUp"?(e.preventDefault(),o&&(t=t>0?t-1:0,l(n))):e.key==="Enter"?o&&t>=0&&t<n.length&&(e.preventDefault(),f(n[t])):e.key==="Tab"?o&&t>=0&&t<n.length?(e.preventDefault(),f(n[t])):c():e.key==="Escape"&&c()}),document.addEventListener("click",e=>{s.contains(e.target)||c()})})});document.addEventListener("DOMContentLoaded",()=>{let d=document.getElementById("theme-toggle"),s=document.getElementById("theme-label");d&&d.addEventListener("change",a=>{a.target.checked?(document.documentElement.removeAttribute("data-theme"),s&&(s.textContent="Modo Escuro Ativado")):(document.documentElement.setAttribute("data-theme","light"),s&&(s.textContent="Modo Claro Ativado"))})});})();
package/package.json CHANGED
@@ -1,32 +1,36 @@
1
1
  {
2
2
  "name": "zenite-ui",
3
- "version": "1.0.4",
4
- "description": "Framework front-end responsivo e elegante em CSS e Vanilla JS",
3
+ "version": "1.1.0",
4
+ "description": "Versão minificada e de alta performance do framework Zenite UI",
5
5
  "keywords": [
6
6
  "css",
7
7
  "framework",
8
8
  "ui",
9
9
  "frontend",
10
- "javascript"
10
+ "javascript",
11
+ "minified"
11
12
  ],
12
- "homepage": "https://github.com/zenitetecnologia/zenite-ui#readme",
13
- "bugs": {
14
- "url": "https://github.com/zenitetecnologia/zenite-ui/issues"
15
- },
13
+ "homepage": "https://github.com/zenitetecnologia/zenite-ui-docs",
16
14
  "repository": {
17
15
  "type": "git",
18
- "url": "git+https://github.com/zenitetecnologia/zenite-ui.git"
16
+ "url": "git+https://github.com/zenitetecnologia/zenite-ui-docs.git"
19
17
  },
20
18
  "license": "MIT",
21
- "author": "Zênite Tecnologia",
22
- "type": "commonjs",
23
- "main": "js/zenite.js",
24
- "style": "zenite-ui/zenite.css",
19
+ "author": "Yuri Lucas",
20
+ "type": "module",
21
+ "main": "js/zenite.min.js",
22
+ "style": "css/zenite.min.css",
25
23
  "files": [
26
- "zenite-ui",
27
- "js"
24
+ "css/zenite.min.css",
25
+ "js/zenite.min.js"
28
26
  ],
29
27
  "scripts": {
30
- "test": "echo \"Error: no test specified\" && exit 1"
28
+ "build:css": "esbuild css/zenite.css --bundle --minify --outfile=css/zenite.min.css",
29
+ "build:js": "esbuild js/zenite.js --bundle --minify --outfile=js/zenite.min.js",
30
+ "build": "npm run build:css && npm run build:js",
31
+ "prepublishOnly": "npm run build"
32
+ },
33
+ "devDependencies": {
34
+ "esbuild": "^0.20.0"
31
35
  }
32
36
  }
package/js/zenite.js DELETED
@@ -1,170 +0,0 @@
1
- //combobox
2
- document.addEventListener('DOMContentLoaded', () => {
3
- const comboboxes = document.querySelectorAll('.zf-combobox');
4
-
5
- comboboxes.forEach(combobox => {
6
- const input = combobox.querySelector('.zf-combobox-input');
7
- const items = combobox.querySelectorAll('.zf-combobox-item');
8
- const clearBtn = combobox.querySelector('.zf-combobox-clear');
9
-
10
- const toggleClearBtn = () => {
11
- if (input.value.trim() !== '') {
12
- combobox.classList.add('has-value');
13
- } else {
14
- combobox.classList.remove('has-value');
15
- }
16
- };
17
-
18
- if (clearBtn) {
19
- clearBtn.addEventListener('mousedown', (e) => {
20
- e.preventDefault();
21
- e.stopPropagation();
22
-
23
- input.value = '';
24
- toggleClearBtn();
25
-
26
- items.forEach(item => item.style.display = '');
27
-
28
- input.focus();
29
- });
30
- }
31
-
32
- input.addEventListener('focus', () => {
33
- combobox.classList.add('active');
34
- });
35
-
36
- input.addEventListener('mousedown', (e) => {
37
- if (e.offsetX > input.offsetWidth - 40) {
38
- e.preventDefault();
39
-
40
- combobox.classList.toggle('active');
41
-
42
- if (combobox.classList.contains('active')) {
43
- input.focus();
44
- }
45
- }
46
- });
47
-
48
- //filtra itens
49
- input.addEventListener('input', (e) => {
50
- toggleClearBtn();
51
- const termoPesquisa = e.target.value.toLowerCase();
52
-
53
- items.forEach(item => {
54
- const textoItem = item.textContent.toLowerCase();
55
-
56
- if (textoItem.includes(termoPesquisa)) {
57
- item.style.display = '';
58
- } else {
59
- item.style.display = 'none';
60
- }
61
- });
62
- });
63
-
64
- //seleciona item
65
- items.forEach(item => {
66
- item.addEventListener('click', () => {
67
- const nomeElemento = item.querySelector('.zf-cb-name');
68
-
69
- let cpfElemento = item.querySelector('.zf-cb-cpf');
70
- let nomeSelecionado = "";
71
- let idSelecionado = item.getAttribute('data-id') || "Sem ID";
72
-
73
- if (nomeElemento) {
74
- nomeSelecionado = nomeElemento.textContent.trim();
75
- input.value = nomeSelecionado;
76
- } else {
77
- nomeSelecionado = item.textContent.trim();
78
- input.value = nomeSelecionado;
79
- }
80
-
81
- toggleClearBtn();
82
- combobox.classList.remove('active');
83
-
84
- const dadosJSON = {
85
- id: idSelecionado,
86
- nome: nomeSelecionado,
87
- cpf: cpfElemento ? cpfElemento.textContent.trim() : "CPF não encontrado"
88
- };
89
-
90
- console.log("Objeto Selecionado:", JSON.stringify(dadosJSON, null, 2));
91
- });
92
- });
93
-
94
- //fecha lista se clicar fora
95
- document.addEventListener('click', (e) => {
96
- if (!combobox.contains(e.target)) {
97
- combobox.classList.remove('active');
98
- }
99
- });
100
-
101
- //filtra itens
102
- input.addEventListener('input', (e) => {
103
- const termoPesquisa = e.target.value.toLowerCase();
104
-
105
- items.forEach(item => {
106
- const textoItem = item.textContent.toLowerCase();
107
-
108
- if (textoItem.includes(termoPesquisa)) {
109
- item.style.display = '';
110
- } else {
111
- item.style.display = 'none';
112
- }
113
- });
114
- });
115
-
116
- //seleciona item
117
- items.forEach(item => {
118
- item.addEventListener('click', () => {
119
- const nomeElemento = item.querySelector('.zf-cb-name');
120
-
121
- let cpfElemento = item.querySelector('.zf-cb-cpf');
122
- let nomeSelecionado = "";
123
- let idSelecionado = item.getAttribute('data-id') || "Sem ID";
124
-
125
- if (nomeElemento) {
126
- nomeSelecionado = nomeElemento.textContent.trim();
127
- input.value = nomeSelecionado;
128
- } else {
129
- nomeSelecionado = item.textContent.trim();
130
- input.value = nomeSelecionado;
131
- }
132
-
133
- combobox.classList.remove('active');
134
-
135
- const dadosJSON = {
136
- id: idSelecionado,
137
- nome: nomeSelecionado,
138
- cpf: cpfElemento ? cpfElemento.textContent.trim() : "CPF não encontrado"
139
- };
140
-
141
- console.log("Objeto Selecionado:", JSON.stringify(dadosJSON, null, 2));
142
- alert("JSON:\n" + JSON.stringify(dadosJSON, null, 2));
143
- });
144
- });
145
-
146
- //fecha lista se clicar fora
147
- document.addEventListener('click', (e) => {
148
- if (!combobox.contains(e.target)) {
149
- combobox.classList.remove('active');
150
- }
151
- });
152
- });
153
-
154
- //--------------------------------------------------------------------------
155
- //dark/light mode toggle
156
- const themeSwitch = document.getElementById('theme-toggle');
157
- const themeLabel = document.getElementById('theme-label');
158
-
159
- if (themeSwitch) {
160
- themeSwitch.addEventListener('change', (e) => {
161
- if (e.target.checked) {
162
- document.documentElement.removeAttribute('data-theme');
163
- themeLabel.textContent = "Modo Escuro Ativado";
164
- } else {
165
- document.documentElement.setAttribute('data-theme', 'light');
166
- themeLabel.textContent = "Modo Claro Ativado";
167
- }
168
- });
169
- }
170
- });
@@ -1,77 +0,0 @@
1
- details {
2
- background-color: var(--zf-background-secondary);
3
- border: 1px solid rgba(212, 175, 55, 0.2);
4
- border-radius: 8px;
5
- margin-bottom: 1rem;
6
- padding: 0 1.5rem;
7
- transition: border-color 0.3s ease;
8
- overflow: hidden;
9
- }
10
-
11
- details:hover {
12
- border-color: rgba(212, 175, 55, 0.5);
13
- }
14
-
15
- summary {
16
- font-weight: 600;
17
- color: var(--zf-text-light);
18
- cursor: pointer;
19
- padding: 1.5rem 0;
20
- outline: none;
21
- list-style: none;
22
- display: flex;
23
- justify-content: space-between;
24
- align-items: center;
25
- }
26
-
27
- /*seta dourada */
28
- summary::after {
29
- content: "▼";
30
- color: var(--zf-accent);
31
- font-size: 0.8em;
32
- transition: transform 0.3s ease;
33
- }
34
-
35
- /*roda a seta quando o detalhe está aberto */
36
- details[open] summary::after {
37
- transform: rotate(180deg);
38
- }
39
-
40
- details[open] summary {
41
- border-bottom: 1px solid rgba(212, 175, 55, 0.2);
42
- margin-bottom: 1rem;
43
- }
44
-
45
- details p {
46
- padding-bottom: 0.5rem;
47
- }
48
-
49
- /*animacao da caixa*/
50
- details[open] {
51
- animation: expandirCaixa 1.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
52
- }
53
-
54
- @keyframes expandirCaixa {
55
- 0% {
56
- max-height: 75px;
57
- }
58
- 100% {
59
- max-height: 500px;
60
- }
61
- }
62
-
63
- /*anima a revelação suave do texto*/
64
- details[open] summary ~ * {
65
- animation: revelarTexto 0.3s ease-in-out forwards;
66
- }
67
-
68
- @keyframes revelarTexto {
69
- 0% {
70
- opacity: 0;
71
- transform: translateY(-15px);
72
- }
73
- 100% {
74
- opacity: 1;
75
- transform: translateY(0);
76
- }
77
- }
@@ -1,13 +0,0 @@
1
- .alert {
2
- padding: 1rem 1.5rem;
3
- border-radius: 8px;
4
- margin-bottom: 1.5rem;
5
- background-color: var(--zf-background-secondary);
6
- color: var(--zf-text-light);
7
- border-left: 4px solid var(--zf-text-main);
8
- display: flex;
9
- align-items: center;
10
- }
11
- .alert-success { border-left-color: #28a745; background-color: rgba(40, 167, 69, 0.1); }
12
- .alert-error { border-left-color: #dc3545; background-color: rgba(220, 53, 69, 0.1); }
13
- .alert-warning { border-left-color: #ffc107; background-color: rgba(255, 193, 7, 0.1); }
@@ -1,16 +0,0 @@
1
- .avatar {
2
- display: inline-flex;
3
- align-items: center;
4
- justify-content: center;
5
- width: 48px;
6
- height: 48px;
7
- border-radius: 50%;
8
- background-color: var(--zf-background-secondary);
9
- color: var(--zf-text-light);
10
- font-weight: bold;
11
- object-fit: cover;
12
- border: 2px solid var(--zf-accent);
13
- }
14
-
15
- .avatar-sm { width: 32px; height: 32px; font-size: 0.8rem; }
16
- .avatar-lg { width: 64px; height: 64px; font-size: 1.5rem; }
@@ -1,22 +0,0 @@
1
- .badge {
2
- display: inline-block;
3
- padding: 0.25em 0.85em;
4
- font-size: 0.75em;
5
- font-weight: 700;
6
- text-transform: uppercase;
7
- border-radius: 9999px; /*efeito pilula*/
8
- background-color: transparent;
9
- color: var(--zf-text-main);
10
- border: 1px solid var(--zf-text-main);
11
- letter-spacing: 0.05em;
12
- line-height: 1.5;
13
- text-align: center;
14
- white-space: nowrap;
15
- }
16
-
17
- /*dourado para destacar*/
18
- .badge.badge-accent {
19
- background-color: rgba(212, 175, 55, 0.1);
20
- color: var(--zf-accent);
21
- border-color: var(--zf-accent);
22
- }
@@ -1,53 +0,0 @@
1
- .button {
2
- display: inline-block;
3
- font-family: inherit;
4
- font-weight: 600;
5
- font-size: 1rem;
6
- line-height: 1.5;
7
- text-align: center;
8
- text-decoration: none;
9
- cursor: pointer;
10
- padding: 0.75rem 2rem;
11
- border-radius: 9999px;
12
- border: 2px solid transparent;
13
- transition: all 0.3s ease;
14
-
15
- background-color: var(--zf-accent);
16
- color: var(--zf-background-primary);
17
- }
18
-
19
- .button:hover:not(:disabled) {
20
- transform: translateY(-2px);
21
- box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
22
- }
23
-
24
- .button:active:not(:disabled) {
25
- transform: translateY(0);
26
- }
27
-
28
- .button.button-outline {
29
- background-color: transparent;
30
- border-color: var(--zf-accent);
31
- color: var(--zf-accent);
32
- }
33
-
34
- .button.button-outline:hover:not(:disabled) {
35
- background-color: var(--zf-accent);
36
- color: var(--zf-background-primary);
37
- }
38
-
39
- .button:disabled,
40
- .button[disabled] {
41
- opacity: 0.6;
42
- cursor: not-allowed;
43
- transform: none;
44
- box-shadow: none;
45
- }
46
-
47
- .button-group {
48
- display: flex;
49
- flex-wrap: wrap;
50
- gap: 1rem;
51
- align-items: center;
52
- margin-bottom: 1.5rem;
53
- }
@@ -1,111 +0,0 @@
1
- .calendar {
2
- background-color: var(--zf-background-secondary);
3
- border: 1px solid rgba(212, 175, 55, 0.2);
4
- border-radius: 8px;
5
- padding: 1.5rem;
6
- margin-bottom: 1.5rem;
7
- width: 100%;
8
- max-width: 380px;
9
- transition: border-color 0.3s ease, box-shadow 0.3s ease;
10
- }
11
-
12
- .calendar:hover {
13
- border-color: var(--zf-accent);
14
- box-shadow: 0 8px 24px rgba(2, 13, 42, 0.8);
15
- }
16
-
17
- /*cabeçalho(mes, ano e botoes)*/
18
- .calendar-header {
19
- display: flex;
20
- justify-content: space-between;
21
- align-items: center;
22
- margin-bottom: 1.5rem;
23
- }
24
-
25
- .calendar-header h3 {
26
- margin: 0;
27
- color: var(--zf-text-light);
28
- font-size: 1.2rem;
29
- font-weight: 700;
30
- }
31
-
32
- /*botoes de mes*/
33
- .calendar-btn {
34
- background: transparent;
35
- border: 1px solid rgba(212, 175, 55, 0.3);
36
- color: var(--zf-text-main);
37
- border-radius: 8px;
38
- width: 36px;
39
- height: 36px;
40
- display: flex;
41
- align-items: center;
42
- justify-content: center;
43
- cursor: pointer;
44
- transition: all 0.3s ease;
45
- font-weight: bold;
46
- }
47
-
48
- .calendar-btn:hover {
49
- background-color: var(--zf-accent);
50
- color: var(--zf-background-primary);
51
- border-color: var(--zf-accent);
52
- }
53
-
54
- /*dias*/
55
- .calendar-grid {
56
- display: grid;
57
- grid-template-columns: repeat(7, 1fr);
58
- gap: 0.5rem;
59
- text-align: center;
60
- }
61
-
62
- /*dias da semana*/
63
- .calendar-day-name {
64
- font-weight: 700;
65
- font-size: 0.8rem;
66
- color: var(--zf-accent);
67
- text-transform: uppercase;
68
- margin-bottom: 0.5rem;
69
- }
70
-
71
- /*numeros dos dias*/
72
- .calendar-day {
73
- aspect-ratio: 1;
74
- display: flex;
75
- align-items: center;
76
- justify-content: center;
77
- border-radius: 50%;
78
- font-size: 0.95rem;
79
- color: var(--zf-text-main);
80
- cursor: pointer;
81
- transition: all 0.2s ease;
82
- border: 1px solid transparent;
83
- }
84
-
85
- .calendar-day:hover:not(.empty) {
86
- background-color: rgba(212, 175, 55, 0.1);
87
- color: var(--zf-text-light);
88
- border-color: rgba(212, 175, 55, 0.3);
89
- }
90
-
91
- /*dia selecionado */
92
- .calendar-day.active {
93
- background-color: var(--zf-accent);
94
- color: var(--zf-background-primary);
95
- font-weight: bold;
96
- box-shadow: 0 4px 10px rgba(212, 175, 55, 0.3);
97
- }
98
-
99
- .calendar-day.empty {
100
- cursor: default;
101
- opacity: 0.3;
102
- }
103
-
104
- /*ajuste modo claro*/
105
- [data-theme="light"] .calendar {
106
- border-color: #0A1F44 !important;
107
- }
108
-
109
- [data-theme="light"] .calendar-day.active {
110
- color: #FFFFFF !important;
111
- }