zenite-ui 1.0.3

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.
@@ -0,0 +1,168 @@
1
+ .zf-combobox {
2
+ position: relative;
3
+ width: 100%;
4
+ margin-bottom: 1.5rem;
5
+ z-index: 10;
6
+ }
7
+
8
+ .zf-combobox.active {
9
+ z-index: 999;
10
+ }
11
+
12
+ .zf-combobox-input {
13
+ width: 100%;
14
+ padding: 0.75rem 3.5rem 0.75rem 1rem;
15
+ margin-bottom: 0 !important;
16
+ background-color: var(--zf-background-secondary);
17
+ border: 1px solid rgba(212, 175, 55, 0.3);
18
+ color: var(--zf-text-light);
19
+ border-radius: 8px;
20
+ font-family: inherit;
21
+ font-size: 1rem;
22
+ outline: none;
23
+ transition: all 0.3s ease;
24
+ cursor: text;
25
+ }
26
+
27
+ .zf-combobox-input:focus {
28
+ border-color: var(--zf-accent);
29
+ box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
30
+ }
31
+
32
+ /*seta dourada*/
33
+ .zf-combobox::after {
34
+ content: "▼";
35
+ position: absolute;
36
+ top: 50%;
37
+ right: 1.25rem;
38
+ transform: translateY(-50%);
39
+ color: var(--zf-accent);
40
+ font-size: 0.8em;
41
+
42
+ pointer-events: none;
43
+
44
+ transition: transform 0.3s ease;
45
+ }
46
+
47
+ .zf-combobox.active::after {
48
+ transform: translateY(-50%) rotate(180deg);
49
+ }
50
+
51
+ /*botao de limpar(x)*/
52
+ .zf-combobox-clear {
53
+ position: absolute;
54
+ top: 50%;
55
+ right: 2.25rem;
56
+ transform: translateY(-50%);
57
+ color: var(--zf-text-main);
58
+ font-size: 1.4rem;
59
+ font-weight: bold;
60
+ cursor: pointer;
61
+ line-height: 1;
62
+ padding: 0.2rem;
63
+ z-index: 2;
64
+
65
+ opacity: 0;
66
+ visibility: hidden;
67
+ transition: all 0.2s ease;
68
+ }
69
+
70
+ .zf-combobox-clear:hover {
71
+ color: var(--zf-accent);
72
+ }
73
+
74
+ .zf-combobox.has-value .zf-combobox-clear {
75
+ opacity: 1;
76
+ visibility: visible;
77
+ }
78
+
79
+ /*lista suspensa*/
80
+ .zf-combobox-list {
81
+ position: absolute;
82
+ top: calc(100% + 5px);
83
+ left: 0;
84
+ width: 100%;
85
+ max-height: 250px;
86
+ overflow-y: auto;
87
+ background-color: var(--zf-background-secondary);
88
+ border: 1px solid var(--zf-accent);
89
+ border-radius: 8px;
90
+ box-shadow: 0 8px 24px rgba(2, 13, 42, 0.9);
91
+ z-index: 1000;
92
+ list-style: none;
93
+ padding: 0.5rem 0;
94
+ margin: 0;
95
+
96
+ opacity: 0;
97
+ visibility: hidden;
98
+ transform: translateY(-10px);
99
+ transition: all 0.3s ease;
100
+ }
101
+
102
+ .zf-combobox.active .zf-combobox-list {
103
+ opacity: 1;
104
+ visibility: visible;
105
+ transform: translateY(0);
106
+ }
107
+
108
+ /*estrutura item*/
109
+ .zf-combobox-item {
110
+ padding: 0.75rem 1.5rem;
111
+ cursor: pointer;
112
+ transition: all 0.2s ease;
113
+ display: flex;
114
+ justify-content: space-between;
115
+ align-items: center;
116
+ border-bottom: 1px solid rgba(212, 175, 55, 0.1);
117
+ }
118
+
119
+ .zf-combobox-item:last-child {
120
+ border-bottom: none;
121
+ }
122
+
123
+ /*nome e cpf na esquerda*/
124
+ .zf-cb-left {
125
+ display: flex;
126
+ flex-direction: column;
127
+ }
128
+
129
+ /*fonte do nome*/
130
+ .zf-cb-name {
131
+ font-weight: 700;
132
+ color: var(--zf-text-light);
133
+ font-size: 1.05rem;
134
+ transition: color 0.2s ease;
135
+ }
136
+
137
+ /*fonte do cpf*/
138
+ .zf-cb-cpf {
139
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
140
+ font-size: 0.85rem;
141
+ color: var(--zf-text-main);
142
+ opacity: 0.8;
143
+ margin-top: 0.2rem;
144
+ }
145
+
146
+ .zf-cb-info {
147
+ font-size: 0.8rem;
148
+ background-color: rgba(212, 175, 55, 0.1);
149
+ color: var(--zf-accent);
150
+ padding: 0.2rem 0.6rem;
151
+ border-radius: 9999px;
152
+ border: 1px solid var(--zf-accent);
153
+ font-weight: 600;
154
+ text-transform: uppercase;
155
+ letter-spacing: 0.05em;
156
+ }
157
+
158
+ .zf-combobox-item:hover {
159
+ background-color: rgba(212, 175, 55, 0.1);
160
+ }
161
+
162
+ .zf-combobox-item:hover .zf-cb-name {
163
+ color: var(--zf-accent);
164
+ }
165
+
166
+ .zf-combobox-list::-webkit-scrollbar { width: 8px; }
167
+ .zf-combobox-list::-webkit-scrollbar-track { background: var(--zf-background-secondary); border-radius: 4px; }
168
+ .zf-combobox-list::-webkit-scrollbar-thumb { background: var(--zf-accent); border-radius: 4px; }
@@ -0,0 +1,169 @@
1
+ /*rotulos*/
2
+ label {
3
+ display: block;
4
+ margin-bottom: 0.5rem;
5
+ color: var(--zf-text-light);
6
+ font-weight: 500;
7
+ }
8
+
9
+ /*campos de texto*/
10
+ input[type="text"],
11
+ input[type="email"],
12
+ input[type="password"],
13
+ input[type="number"],
14
+ input[type="tel"],
15
+ input[type="url"],
16
+ textarea,
17
+ select {
18
+ width: 100%;
19
+ padding: 0.75rem 1rem;
20
+ margin-bottom: 1.5rem;
21
+ background-color: var(--zf-background-secondary);
22
+ border: 1px solid rgba(212, 175, 55, 0.3);
23
+ color: var(--zf-text-light);
24
+ border-radius: 8px;
25
+ font-family: inherit;
26
+ font-size: 1rem;
27
+ outline: none;
28
+ transition: border-color 0.3s ease, box-shadow 0.3s ease;
29
+ }
30
+
31
+ textarea {
32
+ resize: vertical;
33
+ min-height: 120px;
34
+ }
35
+
36
+ /*placeholder*/
37
+ input::placeholder,
38
+ textarea::placeholder {
39
+ color: var(--zf-text-main);
40
+ opacity: 0.7;
41
+ }
42
+
43
+ /*estado de foco*/
44
+ input:focus,
45
+ textarea:focus,
46
+ select:focus {
47
+ border-color: var(--zf-accent);
48
+ box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
49
+ }
50
+
51
+ /*checkboxes e radio buttons*/
52
+ input[type="checkbox"],
53
+ input[type="radio"] {
54
+ width: auto;
55
+ margin-right: 0.5rem;
56
+ margin-bottom: 0;
57
+ cursor: pointer;
58
+ accent-color: var(--zf-accent);
59
+ }
60
+
61
+ /*agrupamento em linha para checkboxes/radios*/
62
+ .radio-group,
63
+ .checkbox-group {
64
+ display: flex;
65
+ align-items: center;
66
+ margin-bottom: 1.5rem;
67
+ }
68
+
69
+ .radio-group label,
70
+ .checkbox-group label {
71
+ margin-bottom: 0;
72
+ margin-right: 1.5rem;
73
+ font-weight: normal;
74
+ }
75
+
76
+ /*desabilitado*/
77
+ input:disabled,
78
+ textarea:disabled,
79
+ select:disabled {
80
+ opacity: 0.5;
81
+ cursor: not-allowed;
82
+ background-color: rgba(10, 31, 68, 0.5);
83
+ }
84
+
85
+ /*inputs*/
86
+ /*upload arquivos*/
87
+ input[type="file"] {
88
+ padding: 0.5rem;
89
+ background-color: var(--zf-background-secondary);
90
+ border: 1px dashed rgba(212, 175, 55, 0.5);
91
+ color: var(--zf-text-main);
92
+ border-radius: 8px;
93
+ cursor: pointer;
94
+ width: 100%;
95
+ margin-bottom: 1.5rem;
96
+ }
97
+
98
+ /*"botão" interno que o navegador cria no input de ficheiro */
99
+ input[type="file"]::file-selector-button {
100
+ background-color: var(--zf-accent);
101
+ color: var(--zf-background-primary);
102
+ border: none;
103
+ padding: 0.5rem 1rem;
104
+ border-radius: 4px;
105
+ margin-right: 1rem;
106
+ cursor: pointer;
107
+ font-weight: 600;
108
+ transition: all 0.3s ease;
109
+ }
110
+
111
+ input[type="file"]::file-selector-button:hover {
112
+ box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
113
+ transform: translateY(-1px);
114
+ }
115
+
116
+ /*barra de deslizamento*/
117
+ input[type="range"] {
118
+ -webkit-appearance: none;
119
+ appearance: none;
120
+ width: 100%;
121
+ background: transparent;
122
+ margin-bottom: 1.5rem;
123
+ }
124
+
125
+ input[type="range"]:focus {
126
+ outline: none;
127
+ }
128
+
129
+ input[type="range"]::-webkit-slider-runnable-track {
130
+ width: 100%;
131
+ height: 6px;
132
+ cursor: pointer;
133
+ background: var(--zf-background-secondary);
134
+ border-radius: 3px;
135
+ border: 1px solid rgba(212, 175, 55, 0.2);
136
+ }
137
+
138
+ /*"bolinha" (thumb)*/
139
+ input[type="range"]::-webkit-slider-thumb {
140
+ height: 18px;
141
+ width: 18px;
142
+ border-radius: 50%;
143
+ background: var(--zf-accent);
144
+ cursor: pointer;
145
+ -webkit-appearance: none;
146
+ margin-top: -7px;
147
+ box-shadow: 0 0 10px rgba(212, 175, 55, 0.4);
148
+ }
149
+
150
+ /*"pista"*/
151
+ input[type="range"]::-moz-range-track {
152
+ width: 100%;
153
+ height: 6px;
154
+ cursor: pointer;
155
+ background: var(--zf-background-secondary);
156
+ border-radius: 3px;
157
+ border: 1px solid rgba(212, 175, 55, 0.2);
158
+ }
159
+
160
+ /*"bolinha"*/
161
+ input[type="range"]::-moz-range-thumb {
162
+ height: 18px;
163
+ width: 18px;
164
+ border-radius: 50%;
165
+ background: var(--zf-accent);
166
+ cursor: pointer;
167
+ border: none;
168
+ box-shadow: 0 0 10px rgba(212, 175, 55, 0.4);
169
+ }
@@ -0,0 +1,18 @@
1
+ img, video {
2
+ max-width: 100%;
3
+ height: auto;
4
+ border-radius: 8px;
5
+ display: block;
6
+ }
7
+
8
+ figure {
9
+ margin: 1.5rem 0;
10
+ }
11
+
12
+ figcaption {
13
+ text-align: center;
14
+ color: var(--zf-text-main);
15
+ font-size: 0.85em;
16
+ margin-top: 0.75rem;
17
+ font-style: italic;
18
+ }
@@ -0,0 +1,80 @@
1
+ dialog {
2
+ background-color: var(--zf-background-secondary);
3
+ color: var(--zf-text-light);
4
+ border: 1px solid var(--zf-accent);
5
+ border-radius: 8px;
6
+ padding: 2rem;
7
+ width: 90%;
8
+ max-width: 500px;
9
+ margin: auto;
10
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.8);
11
+ }
12
+
13
+ dialog::backdrop {
14
+ background-color: rgba(2, 13, 42, 0.85);
15
+ backdrop-filter: blur(4px);
16
+ }
17
+
18
+ body:has(dialog[open]) {
19
+ overflow: hidden;
20
+ }
21
+
22
+ .modal-header {
23
+ display: flex;
24
+ justify-content: space-between;
25
+ align-items: center;
26
+ margin-bottom: 1.5rem;
27
+ border-bottom: 1px solid rgba(212, 175, 55, 0.2);
28
+ padding-bottom: 1rem;
29
+ }
30
+
31
+ .modal-header h2, .modal-header h3 {
32
+ margin: 0;
33
+ }
34
+
35
+ /*fechar modal*/
36
+ .close-modal {
37
+ background: transparent;
38
+ border: none;
39
+ color: var(--zf-text-main);
40
+ font-size: 1.5rem;
41
+ cursor: pointer;
42
+ transition: color 0.3s ease;
43
+ padding: 0;
44
+ }
45
+
46
+ .close-modal:hover {
47
+ color: var(--zf-accent);
48
+ }
49
+
50
+ /*animacao modal*/
51
+ dialog[open] {
52
+ animation: abrirModal 0.5s ease-in-out forwards;
53
+ }
54
+
55
+ @keyframes abrirModal {
56
+ 0% {
57
+ opacity: 0;
58
+ transform: scale(0.95) translateY(-30px);
59
+ }
60
+ 100% {
61
+ opacity: 1;
62
+ transform: scale(1) translateY(0);
63
+ }
64
+ }
65
+
66
+ dialog[open]::backdrop {
67
+ animation: aparecerFundo 0.5s ease-in-out forwards;
68
+ }
69
+
70
+ @keyframes aparecerFundo {
71
+ 0% {
72
+ opacity: 0;
73
+ backdrop-filter: blur(0px);
74
+ }
75
+ 100% {
76
+ opacity: 1;
77
+ background-color: rgba(2, 13, 42, 0.85);
78
+ backdrop-filter: blur(4px);
79
+ }
80
+ }
@@ -0,0 +1,57 @@
1
+ header {
2
+ position: sticky;
3
+ top: 0;
4
+ z-index: 1000;
5
+ background-color: var(--zf-background-primary);
6
+ padding: 0.5rem 0;
7
+ border-bottom: 1px solid rgba(212, 175, 55, 0.1);
8
+ transition: all 0.3s ease;
9
+ }
10
+
11
+ nav {
12
+ display: flex;
13
+ flex-wrap: wrap;
14
+ align-items: center;
15
+ gap: 1.5rem;
16
+ padding: 1rem 0;
17
+ margin-bottom: 0;
18
+ border-bottom: none;
19
+ }
20
+
21
+ nav a {
22
+ color: var(--zf-text-main);
23
+ text-decoration: none;
24
+ font-weight: 600;
25
+ font-size: 1rem;
26
+ transition: color 0.3s ease;
27
+ }
28
+
29
+ nav a:hover, nav a.active {
30
+ color: var(--zf-accent);
31
+ }
32
+
33
+ nav .brand {
34
+ font-family: 'Playfair Display', serif;
35
+ font-size: 1.5rem;
36
+ font-weight: 700;
37
+ color: var(--zf-text-light);
38
+ margin-right: auto;
39
+ }
40
+
41
+ [data-theme="light"] header {
42
+ background-color: #CAC7C7 !important;
43
+ border-bottom-color: rgba(10, 31, 68, 0.15) !important;
44
+ }
45
+
46
+ @media (max-width: 768px) {
47
+ nav {
48
+ justify-content: center;
49
+ gap: 1rem 1.5rem;
50
+ }
51
+ nav .brand {
52
+ margin-right: 0;
53
+ width: 100%;
54
+ text-align: center;
55
+ margin-bottom: 0.5rem;
56
+ }
57
+ }
@@ -0,0 +1,50 @@
1
+ .pagination {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ list-style: none;
5
+ gap: 0.5rem;
6
+ padding: 0;
7
+ margin: 1.5rem 0 3rem 0;
8
+ align-items: center;
9
+ }
10
+
11
+ .pagination li a,
12
+ .pagination li span {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ min-width: 2.5rem;
17
+ height: 2.5rem;
18
+ padding: 0 0.75rem;
19
+ border-radius: 8px;
20
+ background-color: var(--zf-background-secondary);
21
+ border: 1px solid rgba(212, 175, 55, 0.2);
22
+ color: var(--zf-text-main);
23
+ text-decoration: none;
24
+ font-weight: 600;
25
+ transition: all 0.3s ease;
26
+ }
27
+
28
+ /*efeito ao passar o mouse (Hover)*/
29
+ .pagination li a:hover {
30
+ border-color: var(--zf-accent);
31
+ color: var(--zf-text-light);
32
+ transform: translateY(-2px);
33
+ box-shadow: 0 4px 12px rgba(212, 175, 55, 0.15);
34
+ }
35
+
36
+ /*pagina atual (Active)*/
37
+ .pagination li.active span {
38
+ background-color: var(--zf-accent);
39
+ border-color: var(--zf-accent);
40
+ color: var(--zf-background-primary);
41
+ }
42
+
43
+ /*botao desativado (Disabled)*/
44
+ .pagination li.disabled span {
45
+ opacity: 0.5;
46
+ cursor: not-allowed;
47
+ background-color: transparent;
48
+ border-color: rgba(212, 175, 55, 0.1);
49
+ color: var(--zf-text-main);
50
+ }
@@ -0,0 +1,24 @@
1
+ progress {
2
+ appearance: none;
3
+ width: 100%;
4
+ height: 10px;
5
+ border-radius: 5px;
6
+ overflow: hidden;
7
+ margin-bottom: 1.5rem;
8
+ }
9
+
10
+ progress::-webkit-progress-bar { background-color: var(--zf-background-secondary); }
11
+ progress::-webkit-progress-value { background-color: var(--zf-accent); }
12
+ progress::-moz-progress-bar { background-color: var(--zf-accent); }
13
+
14
+ /*spinner(carregando)*/
15
+ .spinner {
16
+ display: inline-block;
17
+ width: 1.5rem;
18
+ height: 1.5rem;
19
+ border: 3px solid rgba(212, 175, 55, 0.3);
20
+ border-radius: 50%;
21
+ border-top-color: var(--zf-accent);
22
+ animation: spin 1s ease-in-out infinite;
23
+ }
24
+ @keyframes spin { to { transform: rotate(360deg); } }
@@ -0,0 +1,75 @@
1
+ .sidebar-checkbox {
2
+ display: none;
3
+ }
4
+
5
+ .sidebar-toggle-btn {
6
+ cursor: pointer;
7
+ font-size: 1.5rem;
8
+ color: var(--zf-text-light);
9
+ background-color: var(--zf-background-secondary);
10
+ border: 1px solid var(--zf-accent);
11
+ padding: 0.5rem 1rem;
12
+ border-radius: 8px;
13
+ display: inline-flex;
14
+ align-items: center;
15
+ transition: all 0.3s ease;
16
+ }
17
+
18
+ .sidebar-toggle-btn:hover {
19
+ background-color: var(--zf-accent);
20
+ color: var(--zf-background-primary);
21
+ }
22
+
23
+ .sidebar-overlay {
24
+ position: fixed;
25
+ top: 0; left: 0; width: 100%; height: 100vh;
26
+ background-color: rgba(2, 13, 42, 0.7);
27
+ backdrop-filter: blur(3px);
28
+ opacity: 0;
29
+ visibility: hidden;
30
+ transition: all 0.3s ease;
31
+ z-index: 999;
32
+ }
33
+
34
+ /*menu lateral*/
35
+ .sidebar {
36
+ position: fixed;
37
+ top: 0; left: 0; width: 280px; height: 100vh;
38
+ background-color: var(--zf-background-secondary);
39
+ border-right: 1px solid var(--zf-accent);
40
+ padding: 2rem 1.5rem;
41
+ transform: translateX(-100%);
42
+ transition: transform 0.3s ease-in-out;
43
+ z-index: 1000;
44
+ overflow-y: auto;
45
+ }
46
+
47
+ .sidebar-checkbox:checked ~ .sidebar {
48
+ transform: translateX(0);
49
+ }
50
+
51
+ .sidebar-checkbox:checked ~ .sidebar-overlay {
52
+ opacity: 1;
53
+ visibility: visible;
54
+ }
55
+
56
+ .sidebar-nav {
57
+ display: flex;
58
+ flex-direction: column;
59
+ gap: 1rem;
60
+ margin-top: 2rem;
61
+ }
62
+
63
+ .sidebar-nav a {
64
+ color: var(--zf-text-main);
65
+ text-decoration: none;
66
+ font-size: 1.1rem;
67
+ padding: 0.5rem 0;
68
+ border-bottom: 1px solid rgba(212, 175, 55, 0.1);
69
+ transition: color 0.3s ease;
70
+ }
71
+
72
+ .sidebar-nav a:hover,
73
+ .sidebar-nav a.active {
74
+ color: var(--zf-accent);
75
+ }
@@ -0,0 +1,56 @@
1
+ .skeleton {
2
+ background-color: rgba(255, 255, 255, 0.03);
3
+
4
+ background-image: linear-gradient(
5
+ 90deg,
6
+ rgba(255, 255, 255, 0) 0%,
7
+ rgba(212, 175, 55, 0.15) 50%, /*a onda dourada no centro */
8
+ rgba(255, 255, 255, 0) 100%
9
+ );
10
+
11
+ background-size: 200% 100%;
12
+ animation: shimmer 1.5s infinite linear;
13
+ border-radius: 4px;
14
+ }
15
+
16
+ /*animacao que faz a onda mover da esquerda para a direita */
17
+ @keyframes shimmer {
18
+ 0% { background-position: 200% 0; }
19
+ 100% { background-position: -200% 0; }
20
+ }
21
+
22
+ .skeleton-avatar {
23
+ width: 48px;
24
+ height: 48px;
25
+ border-radius: 50%;
26
+ }
27
+
28
+ .skeleton-title {
29
+ height: 1.5rem;
30
+ width: 60%;
31
+ margin-bottom: 1rem;
32
+ }
33
+
34
+ .skeleton-text {
35
+ height: 1rem;
36
+ width: 100%;
37
+ margin-bottom: 0.5rem;
38
+ }
39
+
40
+ .skeleton-text.short {
41
+ width: 80%;
42
+ }
43
+
44
+ .skeleton-image {
45
+ width: 100%;
46
+ height: 150px;
47
+ border-radius: 8px;
48
+ margin-bottom: 1rem;
49
+ }
50
+
51
+ .skeleton-button {
52
+ height: 2.5rem;
53
+ width: 140px;
54
+ border-radius: 9999px;
55
+ margin-top: 1rem;
56
+ }