@jjlmoya/utils-astronomy 1.13.0 → 1.14.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-astronomy",
3
- "version": "1.13.0",
3
+ "version": "1.14.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -1,340 +1,5 @@
1
1
  .bortle-wrapper {
2
- width: 100%;
3
- max-width: 80rem;
4
- margin: 0 auto;
5
- }
6
-
7
- .bortle-scene {
8
- --on-dark: #fff;
9
-
10
- position: relative;
11
- width: 100%;
12
- aspect-ratio: 9 / 16;
13
- border-radius: 2rem;
14
- overflow: hidden;
15
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8);
16
- background: var(--color-bg-deep, #050b14);
17
- border: 1px solid rgba(255, 255, 255, 0.05);
18
- user-select: none;
19
- }
20
-
21
- @media (min-width: 768px) {
22
- .bortle-scene {
23
- aspect-ratio: 16 / 9;
24
- }
25
- }
26
-
27
- .bortle-bg-gradient {
28
- position: absolute;
29
- inset: 0;
30
- background: linear-gradient(to bottom, #02040a, #0b1026, #1e293b);
31
- z-index: 0;
32
- }
33
-
34
- .bortle-layer {
35
- position: absolute;
36
- inset: 0;
37
- transition: opacity 1s ease-in-out;
38
- }
39
-
40
- .layer-stars {
41
- z-index: 10;
42
- opacity: 1;
43
- }
44
-
45
- .stars-canvas {
46
- position: absolute;
47
- inset: 0;
48
- width: 100%;
49
- height: 100%;
50
- }
51
-
52
- .layer-milkyway {
53
- z-index: 20;
54
- mix-blend-mode: screen;
55
- opacity: 1;
56
- }
57
-
58
- .milkyway-image {
59
- position: absolute;
60
- inset: 0;
61
- background-image: url('/images/utilities/dark-sky/milky-way.webp');
62
- background-size: contain;
63
- background-position: center;
64
- background-repeat: no-repeat;
65
- opacity: 0.8;
66
- scale: 1.25;
67
- mask-image: radial-gradient(closest-side, black 40%, transparent 100%);
68
- }
69
-
70
- .layer-pollution {
71
- position: absolute;
72
- inset-inline: 0;
73
- bottom: 0;
74
- top: 25%;
75
- z-index: 30;
76
- opacity: 0;
77
- transition: opacity 1s ease-in-out;
78
- }
79
-
80
- .pollution-gradient {
81
- position: absolute;
82
- inset: 0;
83
- background: linear-gradient(to top, var(--color-pollution-warm, #f97316), rgba(251, 191, 36, 0.4), transparent);
84
- mix-blend-mode: hard-light;
85
- }
86
-
87
- .layer-glow {
88
- z-index: 40;
89
- background: rgba(219, 234, 254, 0.1);
90
- opacity: 0;
91
- pointer-events: none;
92
- mix-blend-mode: overlay;
93
- transition: opacity 1s ease-in-out;
94
- }
95
-
96
- .landscape-layer {
97
- position: absolute;
98
- inset-inline: 0;
99
- bottom: 0;
100
- height: 50%;
101
- z-index: 50;
102
- pointer-events: none;
103
- }
104
-
105
- .landscape-image {
106
- position: absolute;
107
- inset: 0;
108
- background-image: url('/images/utilities/dark-sky/landscape-silhouette.webp');
109
- background-size: cover;
110
- background-position: bottom;
111
- background-repeat: no-repeat;
112
- }
113
-
114
- .landscape-fade {
115
- position: absolute;
116
- inset-inline: 0;
117
- bottom: 0;
118
- height: 50%;
119
- background: linear-gradient(to top, black, rgba(0, 0, 0, 0.8), transparent);
120
- }
121
-
122
- .bortle-info-overlay {
123
- position: absolute;
124
- top: 1.5rem;
125
- inset-inline: 1rem;
126
- z-index: 60;
127
- display: flex;
128
- flex-direction: column;
129
- align-items: center;
130
- }
131
-
132
- @media (min-width: 768px) {
133
- .bortle-info-overlay {
134
- top: 2.5rem;
135
- inset-inline: auto;
136
- left: 2.5rem;
137
- align-items: flex-start;
138
- }
139
- }
140
-
141
- .bortle-info-content {
142
- display: flex;
143
- flex-direction: column;
144
- gap: 0.5rem;
145
- text-align: center;
146
- }
147
-
148
- @media (min-width: 768px) {
149
- .bortle-info-content {
150
- text-align: left;
151
- }
152
- }
153
-
154
- .bortle-title {
155
- font-size: clamp(1.5rem, 5vw, 3rem);
156
- font-weight: 900;
157
- color: var(--on-dark);
158
- letter-spacing: -0.02em;
159
- text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
160
- transition: all 0.3s ease;
161
- margin: 0;
162
- }
163
-
164
- .bortle-badges {
165
- display: inline-flex;
166
- align-items: center;
167
- gap: 1rem;
168
- background: rgba(0, 0, 0, 0.4);
169
- backdrop-filter: blur(12px);
170
- padding: 0.5rem 1rem;
171
- border-radius: 9999px;
172
- border: 1px solid rgba(255, 255, 255, 0.1);
173
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
174
- }
175
-
176
- .bortle-class-badge {
177
- font-size: 0.7rem;
178
- font-weight: 700;
179
- color: var(--on-dark);
180
- border-right: 1px solid rgba(255, 255, 255, 0.2);
181
- padding-right: 1rem;
182
- text-transform: uppercase;
183
- letter-spacing: 0.1em;
184
- }
185
-
186
- .bortle-nelm-badge {
187
- color: var(--color-emerald, #34d399);
188
- font-weight: 700;
189
- font-size: 0.875rem;
190
- }
191
-
192
- .bortle-description {
193
- display: none;
194
- max-width: 24rem;
195
- font-size: 0.875rem;
196
- color: rgba(255, 255, 255, 0.8);
197
- font-weight: 500;
198
- line-height: 1.6;
199
- margin: 0;
200
- text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
201
- }
202
-
203
- @media (min-width: 768px) {
204
- .bortle-description {
205
- display: block;
206
- }
207
- }
208
-
209
- .bortle-description-mobile {
210
- position: absolute;
211
- bottom: 7rem;
212
- inset-inline: 1rem;
213
- z-index: 70;
214
- text-align: center;
215
- font-size: 0.875rem;
216
- color: rgba(255, 255, 255, 0.9);
217
- font-weight: 500;
218
- line-height: 1.6;
219
- text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
220
- min-height: 3em;
221
- }
222
-
223
- @media (min-width: 768px) {
224
- .bortle-description-mobile {
225
- display: none;
226
- }
227
- }
228
-
229
- .bortle-controls {
230
- position: absolute;
231
- bottom: 2rem;
232
- inset-inline: 1rem;
233
- z-index: 70;
234
- }
235
-
236
- @media (min-width: 768px) {
237
- .bortle-controls {
238
- inset-inline: 3rem;
239
- }
240
- }
241
-
242
- .bortle-slider-track {
243
- position: relative;
244
- height: 4rem;
245
- display: flex;
246
- align-items: center;
247
- background: rgba(0, 0, 0, 0.5);
248
- backdrop-filter: blur(20px);
249
- border-radius: 9999px;
250
- border: 1px solid rgba(255, 255, 255, 0.1);
251
- padding: 0 0.5rem;
252
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
253
- }
254
-
255
- .slider-gradient-bar {
256
- position: absolute;
257
- inset-inline: 1rem;
258
- height: 0.5rem;
259
- border-radius: 9999px;
260
- background: linear-gradient(to right, var(--color-emerald, #34d399), var(--color-amber, #f59e0b), var(--color-red, #ef4444));
261
- opacity: 0.8;
262
- }
263
-
264
- .bortle-slider-input {
265
- position: absolute;
266
- inset: 0;
267
- width: 100%;
268
- height: 100%;
269
- opacity: 0;
270
- cursor: pointer;
271
- z-index: 20;
272
- }
273
-
274
- .bortle-thumb {
275
- position: absolute;
276
- height: 2.5rem;
277
- width: 2.5rem;
278
- background: white;
279
- border: 4px solid var(--color-indigo, #6366f1);
280
- border-radius: 50%;
281
- box-shadow: 0 0 20px rgba(255, 255, 255, 0.5);
282
- pointer-events: none;
283
- transition: left 0.15s ease-out;
284
- display: flex;
285
- align-items: center;
286
- justify-content: center;
287
- z-index: 10;
288
- }
289
-
290
- .bortle-thumb-dot {
291
- width: 0.5rem;
292
- height: 0.5rem;
293
- background: var(--color-indigo, #6366f1);
294
- border-radius: 50%;
295
- }
296
-
297
- .bortle-tick-marks {
298
- position: absolute;
299
- inset-inline: 1rem;
300
- bottom: 0.5rem;
301
- top: 0.5rem;
302
- display: flex;
303
- justify-content: space-between;
304
- pointer-events: none;
305
- z-index: 0;
306
- }
307
-
308
- .bortle-tick {
309
- display: flex;
310
- flex-direction: column;
311
- align-items: center;
312
- justify-content: center;
313
- height: 100%;
314
- width: 1rem;
315
- position: relative;
316
- }
317
-
318
- .tick-line {
319
- width: 1px;
320
- height: 100%;
321
- background: rgba(255, 255, 255, 0.1);
322
- }
323
-
324
- .tick-label {
325
- position: absolute;
326
- font-size: 0.625rem;
327
- font-weight: 700;
328
- color: rgba(255, 255, 255, 0.6);
329
- top: calc(100% + 0.25rem);
330
- }
331
-
332
- .bortle-slider-hint {
333
- text-align: center;
334
- margin-top: 1.5rem;
335
- font-size: 0.625rem;
336
- text-transform: uppercase;
337
- letter-spacing: 0.2em;
338
- color: rgba(255, 255, 255, 0.4);
339
- font-weight: 700;
340
- }
2
+ width: 100%;
3
+ max-width: 80rem;
4
+ margin: 0 auto;
5
+ }