meky112 1.1.2

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/style.css ADDED
@@ -0,0 +1,452 @@
1
+ /* style.css - Premium dark theme for StreamCom TV app */
2
+
3
+ :root {
4
+ --bg-color: #0d0d0d; /* deep dark background */
5
+ --primary-color: #1db954; /* accent (green) */
6
+ --text-color: #e0e0e0; /* light gray text */
7
+ --card-bg: rgba(255, 255, 255, 0.05);
8
+ --card-radius: 12px;
9
+ --transition: 0.2s ease;
10
+ --grid-gap: 20px;
11
+ --scale: 2; /* 4K scaling default */
12
+ }
13
+
14
+ /* Global reset */
15
+ * {
16
+ margin: 0;
17
+ padding: 0;
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ html, body {
22
+ height: 100%;
23
+ background: var(--bg-color);
24
+ color: var(--text-color);
25
+ font-family: 'Inter', system-ui, sans-serif;
26
+ overflow: hidden;
27
+ display: flex;
28
+ flex-direction: column;
29
+ }
30
+
31
+ /* Search bar container */
32
+ .search-container {
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: space-between;
36
+ padding: 0 calc(30px * var(--scale));
37
+ background: rgba(20, 20, 20, 0.95);
38
+ border-bottom: 2px solid rgba(255, 255, 255, 0.05);
39
+ height: calc(65px * var(--scale));
40
+ flex-shrink: 0;
41
+ }
42
+
43
+ #search-input {
44
+ background: rgba(255, 255, 255, 0.08);
45
+ border: 2px solid transparent;
46
+ border-radius: calc(6px * var(--scale));
47
+ color: #fff;
48
+ font-size: calc(14px * var(--scale));
49
+ padding: calc(6px * var(--scale)) calc(12px * var(--scale));
50
+ width: calc(250px * var(--scale));
51
+ outline: none;
52
+ transition: var(--transition);
53
+ }
54
+
55
+ #search-input::placeholder {
56
+ color: rgba(255, 255, 255, 0.4);
57
+ }
58
+
59
+ #search-input.focused {
60
+ border-color: var(--primary-color);
61
+ background: rgba(255, 255, 255, 0.15);
62
+ box-shadow: 0 0 calc(8px * var(--scale)) rgba(29, 185, 84, 0.4);
63
+ }
64
+
65
+ .clear-btn {
66
+ background: rgba(255, 255, 255, 0.08);
67
+ border: 2px solid transparent;
68
+ border-radius: calc(6px * var(--scale));
69
+ color: rgba(255, 255, 255, 0.7);
70
+ font-size: calc(12px * var(--scale));
71
+ padding: calc(6px * var(--scale)) calc(12px * var(--scale));
72
+ margin-left: calc(10px * var(--scale));
73
+ cursor: pointer;
74
+ transition: var(--transition);
75
+ outline: none;
76
+ }
77
+
78
+ .clear-btn.focused, .clear-btn:hover {
79
+ background: rgba(255, 59, 48, 0.2);
80
+ border-color: #ff3b30;
81
+ color: #fff;
82
+ box-shadow: 0 0 calc(8px * var(--scale)) rgba(255, 59, 48, 0.4);
83
+ }
84
+
85
+ /* Filters styling */
86
+ .filters {
87
+ display: flex;
88
+ }
89
+
90
+ .filter-btn {
91
+ background: rgba(255, 255, 255, 0.05);
92
+ border: 2px solid transparent;
93
+ border-radius: calc(6px * var(--scale));
94
+ color: var(--text-color);
95
+ font-size: calc(12px * var(--scale));
96
+ padding: calc(6px * var(--scale)) calc(12px * var(--scale));
97
+ margin-left: calc(10px * var(--scale));
98
+ cursor: pointer;
99
+ outline: none;
100
+ transition: var(--transition);
101
+ }
102
+
103
+ .filter-btn.active {
104
+ background: var(--primary-color);
105
+ color: #000;
106
+ font-weight: bold;
107
+ }
108
+
109
+ .filter-btn.focused {
110
+ border-color: #fff;
111
+ box-shadow: 0 0 calc(8px * var(--scale)) rgba(255, 255, 255, 0.3);
112
+ }
113
+
114
+ /* Flexbox gallery - Compatible with Tizen 4.0 (Chromium 56) */
115
+ .grid {
116
+ display: flex;
117
+ flex-wrap: wrap;
118
+ padding: calc(15px * var(--scale));
119
+ overflow-y: auto;
120
+ flex: 1;
121
+ align-content: flex-start;
122
+ }
123
+
124
+ /* TV Card - Fixed width and height with margin spacing for Tizen 4.0 support */
125
+ .card {
126
+ width: calc(130px * var(--scale)); /* Explicit width: 260px on 4K, 130px on HD */
127
+ height: calc(195px * var(--scale)); /* Explicit height: 390px on 4K, 195px on HD (2:3 ratio) */
128
+ margin: calc(10px * var(--scale)); /* Spacing between cards (replaces CSS grid-gap) */
129
+ background: var(--card-bg);
130
+ border-radius: var(--card-radius);
131
+ overflow: hidden;
132
+ position: relative;
133
+ transition: transform var(--transition), box-shadow var(--transition);
134
+ cursor: pointer;
135
+ box-shadow: 0 4px 10px rgba(0,0,0,0.5);
136
+ }
137
+
138
+ /* Focused state for remote control */
139
+ .card.focused {
140
+ transform: scale(1.06);
141
+ box-shadow: 0 0 0 5px var(--primary-color), 0 15px 30px rgba(0,0,0,0.7);
142
+ z-index: 10;
143
+ }
144
+
145
+ /* Cover image fills the entire card background */
146
+ .card img {
147
+ width: 100%;
148
+ height: 100%;
149
+ object-fit: cover;
150
+ background: #1a1a1a;
151
+ }
152
+
153
+ /* Elegant title overlay at the bottom */
154
+ .card .info {
155
+ position: absolute;
156
+ bottom: 0;
157
+ left: 0;
158
+ width: 100%;
159
+ padding: calc(15px * var(--scale)) calc(8px * var(--scale)) calc(8px * var(--scale));
160
+ background: linear-gradient(to top, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.8) 50%, rgba(0,0,0,0.3) 80%, rgba(0,0,0,0) 100%);
161
+ text-align: center;
162
+ }
163
+
164
+ .card .info h3 {
165
+ font-size: calc(11px * var(--scale));
166
+ font-weight: 600;
167
+ line-height: 1.25;
168
+ margin: 0;
169
+ white-space: normal;
170
+ display: -webkit-box;
171
+ -webkit-line-clamp: 4;
172
+ -webkit-box-orient: vertical;
173
+ overflow: hidden;
174
+ text-overflow: ellipsis;
175
+ color: #fff;
176
+ text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
177
+ }
178
+
179
+ /* Custom TV-style scrollbar */
180
+ .grid::-webkit-scrollbar {
181
+ width: 10px;
182
+ }
183
+ .grid::-webkit-scrollbar-track {
184
+ background: rgba(255,255,255,0.02);
185
+ }
186
+ .grid::-webkit-scrollbar-thumb {
187
+ background: var(--primary-color);
188
+ border-radius: 5px;
189
+ }
190
+
191
+ @media (max-width: 1280px) {
192
+ :root { --scale: 1; }
193
+ }
194
+
195
+ /* Details Screen */
196
+ .details-container {
197
+ position: absolute;
198
+ top: 0;
199
+ left: 0;
200
+ width: 100%;
201
+ height: 100%;
202
+ background: var(--bg-color);
203
+ z-index: 100;
204
+ display: none;
205
+ flex-direction: column;
206
+ overflow: hidden;
207
+ }
208
+
209
+ .details-top {
210
+ display: flex;
211
+ height: 65%;
212
+ position: relative;
213
+ width: 100%;
214
+ }
215
+
216
+ .details-backdrop {
217
+ position: absolute;
218
+ top: 0;
219
+ right: 0;
220
+ width: 65%;
221
+ height: 100%;
222
+ object-fit: cover;
223
+ z-index: 1;
224
+ }
225
+
226
+ .details-overlay {
227
+ position: absolute;
228
+ top: 0;
229
+ left: 0;
230
+ width: 100%;
231
+ height: 100%;
232
+ background: linear-gradient(to right, #0d0d0d 35%, rgba(13,13,13,0.85) 55%, rgba(13,13,13,0) 100%);
233
+ z-index: 2;
234
+ }
235
+
236
+ .details-content {
237
+ position: relative;
238
+ z-index: 3;
239
+ width: 50%;
240
+ height: 100%;
241
+ padding: calc(20px * var(--scale)) calc(40px * var(--scale));
242
+ display: flex;
243
+ flex-direction: column;
244
+ justify-content: center;
245
+ }
246
+
247
+ .details-logo {
248
+ max-width: 80%;
249
+ max-height: calc(65px * var(--scale));
250
+ object-fit: contain;
251
+ margin-bottom: calc(12px * var(--scale));
252
+ align-self: flex-start;
253
+ }
254
+
255
+ .details-title {
256
+ font-size: calc(24px * var(--scale));
257
+ font-weight: 700;
258
+ margin-bottom: calc(8px * var(--scale));
259
+ color: #fff;
260
+ }
261
+
262
+ .details-meta {
263
+ display: flex;
264
+ gap: calc(12px * var(--scale));
265
+ font-size: calc(12px * var(--scale));
266
+ color: #aaa;
267
+ margin-bottom: calc(12px * var(--scale));
268
+ align-items: center;
269
+ }
270
+
271
+ .details-meta .rating {
272
+ color: var(--primary-color);
273
+ font-weight: bold;
274
+ }
275
+
276
+ .details-meta .badge {
277
+ background: rgba(255,255,255,0.1);
278
+ padding: calc(2px * var(--scale)) calc(6px * var(--scale));
279
+ border-radius: 4px;
280
+ text-transform: uppercase;
281
+ }
282
+
283
+ .details-plot {
284
+ font-size: calc(10.5px * var(--scale));
285
+ line-height: 1.45;
286
+ color: #ccc;
287
+ margin-bottom: calc(15px * var(--scale));
288
+ display: -webkit-box;
289
+ -webkit-line-clamp: 5;
290
+ -webkit-box-orient: vertical;
291
+ overflow: hidden;
292
+ }
293
+
294
+ .details-buttons {
295
+ display: flex;
296
+ gap: calc(12px * var(--scale));
297
+ margin: calc(-10px * var(--scale)) 0 calc(-10px * var(--scale)) calc(-10px * var(--scale));
298
+ padding: calc(10px * var(--scale));
299
+ }
300
+
301
+ .btn {
302
+ padding: calc(6px * var(--scale)) calc(16px * var(--scale));
303
+ font-size: calc(12px * var(--scale));
304
+ font-weight: bold;
305
+ border: 2px solid transparent;
306
+ border-radius: calc(5px * var(--scale));
307
+ cursor: pointer;
308
+ background: rgba(255,255,255,0.15);
309
+ color: #fff;
310
+ transition: transform 0.2s, background 0.2s;
311
+ }
312
+
313
+ .btn-primary {
314
+ background: var(--primary-color);
315
+ color: #000;
316
+ }
317
+
318
+ .btn.focused {
319
+ transform: scale(1.08);
320
+ border-color: #fff;
321
+ box-shadow: 0 0 15px rgba(29, 185, 84, 0.5);
322
+ outline: none;
323
+ }
324
+
325
+ .details-bottom {
326
+ height: 35%;
327
+ padding: calc(10px * var(--scale)) calc(40px * var(--scale));
328
+ background: rgba(13, 13, 13, 0.98);
329
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
330
+ display: flex;
331
+ flex-direction: column;
332
+ z-index: 4;
333
+ }
334
+
335
+ .seasons-list-row {
336
+ display: flex;
337
+ overflow-x: auto;
338
+ margin: 0 calc(-40px * var(--scale)) calc(15px * var(--scale)) calc(-10px * var(--scale));
339
+ padding: calc(6px * var(--scale)) calc(10px * var(--scale));
340
+ flex-shrink: 0;
341
+ }
342
+
343
+ /* Hide horizontal scrollbar for seasons list but allow scrolling */
344
+ .seasons-list-row::-webkit-scrollbar {
345
+ display: none;
346
+ }
347
+
348
+ .season-btn {
349
+ background: rgba(255, 255, 255, 0.05);
350
+ border: 2px solid transparent;
351
+ border-radius: calc(4px * var(--scale));
352
+ color: #ccc;
353
+ font-size: calc(10.5px * var(--scale));
354
+ font-weight: 600;
355
+ padding: calc(4px * var(--scale)) calc(12px * var(--scale));
356
+ margin-right: calc(8px * var(--scale));
357
+ cursor: pointer;
358
+ outline: none;
359
+ transition: transform 0.2s, background 0.2s, border-color 0.2s;
360
+ flex-shrink: 0;
361
+ }
362
+
363
+ .season-btn.active {
364
+ background: var(--primary-color);
365
+ color: #000;
366
+ font-weight: bold;
367
+ }
368
+
369
+ .season-btn.focused {
370
+ border-color: #fff;
371
+ box-shadow: 0 0 calc(8px * var(--scale)) rgba(255, 255, 255, 0.3);
372
+ transform: scale(1.05);
373
+ outline: none;
374
+ }
375
+
376
+ .episodes-list {
377
+ display: flex;
378
+ overflow-x: auto;
379
+ gap: calc(12px * var(--scale));
380
+ margin: 0 calc(-40px * var(--scale)) 0 calc(-10px * var(--scale));
381
+ padding: calc(8px * var(--scale)) calc(10px * var(--scale));
382
+ flex-grow: 1;
383
+ }
384
+
385
+ .episode-card {
386
+ min-width: calc(180px * var(--scale));
387
+ max-width: calc(180px * var(--scale));
388
+ height: calc(32px * var(--scale));
389
+ background: rgba(255, 255, 255, 0.03);
390
+ border-radius: calc(6px * var(--scale));
391
+ padding: 0 calc(10px * var(--scale));
392
+ cursor: pointer;
393
+ border: 2px solid transparent;
394
+ transition: transform 0.2s, border-color 0.2s, background-color 0.2s;
395
+ display: flex;
396
+ flex-direction: row;
397
+ align-items: center;
398
+ flex-shrink: 0;
399
+ }
400
+
401
+ .episode-card.focused {
402
+ transform: scale(1.05);
403
+ border-color: var(--primary-color);
404
+ background: rgba(255, 255, 255, 0.08);
405
+ }
406
+
407
+ .episode-number {
408
+ font-size: calc(11px * var(--scale));
409
+ color: var(--primary-color);
410
+ font-weight: bold;
411
+ margin-right: calc(8px * var(--scale));
412
+ margin-bottom: 0;
413
+ flex-shrink: 0;
414
+ }
415
+
416
+ .episode-name {
417
+ font-size: calc(11px * var(--scale));
418
+ color: #fff;
419
+ white-space: nowrap;
420
+ overflow: hidden;
421
+ text-overflow: ellipsis;
422
+ }
423
+
424
+ /* Custom Scrollbars for Episodes and Gallery */
425
+ .episodes-list::-webkit-scrollbar {
426
+ height: 6px;
427
+ }
428
+ .episodes-list::-webkit-scrollbar-track {
429
+ background: rgba(255,255,255,0.01);
430
+ }
431
+ .episodes-list::-webkit-scrollbar-thumb {
432
+ background: rgba(255, 255, 255, 0.1);
433
+ border-radius: 3px;
434
+ }
435
+
436
+ /* Player Screen */
437
+ .player-container {
438
+ position: absolute;
439
+ top: 0;
440
+ left: 0;
441
+ width: 100%;
442
+ height: 100%;
443
+ background: #000;
444
+ z-index: 200;
445
+ display: none;
446
+ }
447
+
448
+ .player-container iframe, .player-container video {
449
+ width: 100%;
450
+ height: 100%;
451
+ border: none;
452
+ }