unified-video-framework 1.4.161 → 1.4.163
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.
|
@@ -4329,138 +4329,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4329
4329
|
@media screen and (max-width: 767px) {
|
|
4330
4330
|
html, body {
|
|
4331
4331
|
overflow-x: hidden;
|
|
4332
|
-
background: #000;
|
|
4333
|
-
}
|
|
4334
|
-
|
|
4335
|
-
/* Mobile Portrait Layout - Centered Player with Top/Bottom Black Areas */
|
|
4336
|
-
@media screen and (orientation: portrait) {
|
|
4337
|
-
.uvf-responsive-container {
|
|
4338
|
-
display: flex;
|
|
4339
|
-
flex-direction: column;
|
|
4340
|
-
height: 100vh;
|
|
4341
|
-
height: 100dvh;
|
|
4342
|
-
background: #000;
|
|
4343
|
-
overflow: hidden;
|
|
4344
|
-
position: fixed;
|
|
4345
|
-
top: 0;
|
|
4346
|
-
left: 0;
|
|
4347
|
-
width: 100vw;
|
|
4348
|
-
}
|
|
4349
|
-
|
|
4350
|
-
/* Top black area - 25% of viewport */
|
|
4351
|
-
.uvf-responsive-container::before {
|
|
4352
|
-
content: '';
|
|
4353
|
-
flex: 0 0 25vh;
|
|
4354
|
-
background: #000;
|
|
4355
|
-
pointer-events: none;
|
|
4356
|
-
}
|
|
4357
|
-
|
|
4358
|
-
/* Bottom black area - 25% of viewport */
|
|
4359
|
-
.uvf-responsive-container::after {
|
|
4360
|
-
content: '';
|
|
4361
|
-
flex: 0 0 25vh;
|
|
4362
|
-
background: #000;
|
|
4363
|
-
pointer-events: none;
|
|
4364
|
-
}
|
|
4365
|
-
|
|
4366
|
-
/* Centered video player wrapper - 50% of viewport */
|
|
4367
|
-
.uvf-responsive-container .uvf-player-wrapper {
|
|
4368
|
-
flex: 1;
|
|
4369
|
-
width: 100vw;
|
|
4370
|
-
display: flex;
|
|
4371
|
-
align-items: center;
|
|
4372
|
-
justify-content: center;
|
|
4373
|
-
background: #000;
|
|
4374
|
-
position: relative;
|
|
4375
|
-
}
|
|
4376
|
-
|
|
4377
|
-
/* Video container fills player wrapper */
|
|
4378
|
-
.uvf-responsive-container .uvf-video-container {
|
|
4379
|
-
width: 100%;
|
|
4380
|
-
height: 100%;
|
|
4381
|
-
position: relative;
|
|
4382
|
-
background: #000;
|
|
4383
|
-
border-radius: 0;
|
|
4384
|
-
overflow: hidden;
|
|
4385
|
-
}
|
|
4386
|
-
|
|
4387
|
-
/* Video element fills container */
|
|
4388
|
-
.uvf-responsive-container .uvf-video {
|
|
4389
|
-
width: 100%;
|
|
4390
|
-
height: 100%;
|
|
4391
|
-
object-fit: contain;
|
|
4392
|
-
background: #000;
|
|
4393
|
-
}
|
|
4394
|
-
|
|
4395
|
-
/* All controls positioned inside video container */
|
|
4396
|
-
.uvf-controls-bar {
|
|
4397
|
-
position: absolute !important;
|
|
4398
|
-
bottom: 0 !important;
|
|
4399
|
-
left: 0 !important;
|
|
4400
|
-
right: 0 !important;
|
|
4401
|
-
background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.6) 60%, transparent 100%);
|
|
4402
|
-
padding: 12px 16px;
|
|
4403
|
-
padding-bottom: calc(12px + var(--uvf-safe-area-bottom));
|
|
4404
|
-
z-index: 1000;
|
|
4405
|
-
/* Ensure hardware acceleration */
|
|
4406
|
-
-webkit-transform: translate3d(0,0,0);
|
|
4407
|
-
transform: translate3d(0,0,0);
|
|
4408
|
-
}
|
|
4409
|
-
|
|
4410
|
-
/* Progress section */
|
|
4411
|
-
.uvf-progress-section {
|
|
4412
|
-
width: 100%;
|
|
4413
|
-
margin-bottom: 8px;
|
|
4414
|
-
}
|
|
4415
|
-
|
|
4416
|
-
/* Controls row alignment */
|
|
4417
|
-
.uvf-controls-row {
|
|
4418
|
-
width: 100%;
|
|
4419
|
-
display: flex;
|
|
4420
|
-
align-items: center;
|
|
4421
|
-
justify-content: flex-start;
|
|
4422
|
-
gap: 12px;
|
|
4423
|
-
}
|
|
4424
|
-
|
|
4425
|
-
/* Right controls */
|
|
4426
|
-
.uvf-right-controls {
|
|
4427
|
-
margin-left: auto;
|
|
4428
|
-
display: flex;
|
|
4429
|
-
align-items: center;
|
|
4430
|
-
gap: 8px;
|
|
4431
|
-
}
|
|
4432
|
-
|
|
4433
|
-
/* Center play button positioned within video */
|
|
4434
|
-
.uvf-center-play-container {
|
|
4435
|
-
position: absolute;
|
|
4436
|
-
top: 50%;
|
|
4437
|
-
left: 50%;
|
|
4438
|
-
transform: translate(-50%, -50%);
|
|
4439
|
-
z-index: 8;
|
|
4440
|
-
pointer-events: none;
|
|
4441
|
-
}
|
|
4442
|
-
|
|
4443
|
-
.uvf-center-play-btn {
|
|
4444
|
-
pointer-events: auto;
|
|
4445
|
-
}
|
|
4446
|
-
|
|
4447
|
-
/* Top controls within video */
|
|
4448
|
-
.uvf-top-controls {
|
|
4449
|
-
position: absolute;
|
|
4450
|
-
top: calc(12px + var(--uvf-safe-area-top));
|
|
4451
|
-
right: calc(16px + var(--uvf-safe-area-right));
|
|
4452
|
-
z-index: 9;
|
|
4453
|
-
}
|
|
4454
|
-
|
|
4455
|
-
/* Title bar within video */
|
|
4456
|
-
.uvf-title-bar {
|
|
4457
|
-
position: absolute;
|
|
4458
|
-
top: calc(12px + var(--uvf-safe-area-top));
|
|
4459
|
-
left: calc(16px + var(--uvf-safe-area-left));
|
|
4460
|
-
right: calc(80px + var(--uvf-safe-area-right));
|
|
4461
|
-
z-index: 9;
|
|
4462
|
-
padding: 8px 0;
|
|
4463
|
-
}
|
|
4464
4332
|
}
|
|
4465
4333
|
|
|
4466
4334
|
.uvf-player-wrapper {
|
|
@@ -4484,37 +4352,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4484
4352
|
transform: translateZ(0);
|
|
4485
4353
|
}
|
|
4486
4354
|
|
|
4487
|
-
/* Mobile controls optimization for touch */
|
|
4488
|
-
.uvf-control-btn {
|
|
4489
|
-
min-width: 44px;
|
|
4490
|
-
min-height: 44px;
|
|
4491
|
-
display: flex;
|
|
4492
|
-
align-items: center;
|
|
4493
|
-
justify-content: center;
|
|
4494
|
-
border-radius: 50%;
|
|
4495
|
-
transition: all 0.2s ease;
|
|
4496
|
-
background: rgba(255, 255, 255, 0.1);
|
|
4497
|
-
backdrop-filter: blur(8px);
|
|
4498
|
-
}
|
|
4499
|
-
|
|
4500
|
-
.uvf-control-btn:active {
|
|
4501
|
-
transform: scale(0.95);
|
|
4502
|
-
background: rgba(255, 255, 255, 0.2);
|
|
4503
|
-
}
|
|
4504
|
-
|
|
4505
|
-
/* Play/pause button prominence */
|
|
4506
|
-
.uvf-control-btn.play-pause {
|
|
4507
|
-
background: linear-gradient(135deg, var(--uvf-accent-1), var(--uvf-accent-2));
|
|
4508
|
-
min-width: 52px;
|
|
4509
|
-
min-height: 52px;
|
|
4510
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
|
|
4511
|
-
}
|
|
4512
|
-
|
|
4513
|
-
.uvf-control-btn.play-pause:active {
|
|
4514
|
-
transform: scale(0.92);
|
|
4515
|
-
box-shadow: 0 1px 4px rgba(0,0,0,0.4);
|
|
4516
|
-
}
|
|
4517
|
-
|
|
4518
4355
|
/* Fix for controls being cut off by virtual keyboard */
|
|
4519
4356
|
.uvf-controls-bar {
|
|
4520
4357
|
position: absolute !important;
|
|
@@ -4561,61 +4398,244 @@ export class WebPlayer extends BasePlayer {
|
|
|
4561
4398
|
}
|
|
4562
4399
|
|
|
4563
4400
|
/* Enhanced Responsive Media Queries with UX Best Practices */
|
|
4564
|
-
/* Mobile
|
|
4401
|
+
/* Mobile Portrait Layout - CENTERED PLAYER with TOP/BOTTOM BLACK AREAS */
|
|
4565
4402
|
@media screen and (max-width: 767px) and (orientation: portrait) {
|
|
4403
|
+
/* CENTERED LAYOUT: 25% top black + 50% player + 25% bottom black */
|
|
4566
4404
|
.uvf-responsive-container {
|
|
4405
|
+
display: flex;
|
|
4406
|
+
flex-direction: column;
|
|
4407
|
+
height: 100vh;
|
|
4408
|
+
height: 100dvh;
|
|
4409
|
+
background: #000;
|
|
4410
|
+
overflow: hidden;
|
|
4411
|
+
position: fixed;
|
|
4412
|
+
top: 0;
|
|
4413
|
+
left: 0;
|
|
4414
|
+
width: 100vw;
|
|
4567
4415
|
padding: 0;
|
|
4568
|
-
width: 100vw !important;
|
|
4569
|
-
height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
4570
4416
|
margin: 0;
|
|
4571
|
-
position: relative;
|
|
4572
|
-
overflow: hidden;
|
|
4573
4417
|
}
|
|
4574
4418
|
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4419
|
+
/* TOP BLACK AREA - 25% of viewport - COMPLETELY EMPTY */
|
|
4420
|
+
.uvf-responsive-container::before {
|
|
4421
|
+
content: '';
|
|
4422
|
+
flex: 0 0 25vh;
|
|
4423
|
+
background: #000;
|
|
4424
|
+
pointer-events: none;
|
|
4579
4425
|
}
|
|
4580
4426
|
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4427
|
+
/* BOTTOM BLACK AREA - 25% of viewport - COMPLETELY EMPTY */
|
|
4428
|
+
.uvf-responsive-container::after {
|
|
4429
|
+
content: '';
|
|
4430
|
+
flex: 0 0 25vh;
|
|
4431
|
+
background: #000;
|
|
4432
|
+
pointer-events: none;
|
|
4585
4433
|
}
|
|
4586
4434
|
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4435
|
+
/* CENTERED VIDEO PLAYER WRAPPER - 50% of viewport */
|
|
4436
|
+
.uvf-responsive-container .uvf-player-wrapper {
|
|
4437
|
+
flex: 1; /* Takes remaining 50% */
|
|
4438
|
+
width: 100vw;
|
|
4439
|
+
display: flex;
|
|
4440
|
+
align-items: center;
|
|
4441
|
+
justify-content: center;
|
|
4442
|
+
background: #000;
|
|
4443
|
+
position: relative;
|
|
4444
|
+
overflow: hidden; /* CRITICAL: Ensure nothing extends beyond this area */
|
|
4591
4445
|
}
|
|
4592
4446
|
|
|
4447
|
+
/* Video container fills player wrapper */
|
|
4593
4448
|
.uvf-responsive-container .uvf-video-container {
|
|
4594
|
-
width:
|
|
4595
|
-
height: 100
|
|
4596
|
-
|
|
4597
|
-
|
|
4449
|
+
width: 100%;
|
|
4450
|
+
height: 100%;
|
|
4451
|
+
position: relative;
|
|
4452
|
+
background: #000;
|
|
4453
|
+
border-radius: 0;
|
|
4454
|
+
overflow: hidden;
|
|
4455
|
+
}
|
|
4456
|
+
|
|
4457
|
+
/* Video element fills container */
|
|
4458
|
+
.uvf-responsive-container .uvf-video {
|
|
4459
|
+
width: 100%;
|
|
4460
|
+
height: 100%;
|
|
4461
|
+
object-fit: contain;
|
|
4462
|
+
background: #000;
|
|
4598
4463
|
}
|
|
4599
4464
|
|
|
4600
|
-
/*
|
|
4465
|
+
/* CONTROLS STRICTLY CONTAINED WITHIN VIDEO AREA - NEVER EXTEND TO BLACK AREAS */
|
|
4601
4466
|
.uvf-controls-bar {
|
|
4602
4467
|
position: absolute !important;
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
padding
|
|
4610
|
-
|
|
4468
|
+
/* Keep controls INSIDE video container with margins from all edges */
|
|
4469
|
+
bottom: 20px !important; /* 20px margin from video bottom */
|
|
4470
|
+
left: 16px !important; /* 16px margin from video left */
|
|
4471
|
+
right: 16px !important; /* 16px margin from video right */
|
|
4472
|
+
top: auto !important;
|
|
4473
|
+
background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.7) 60%, transparent 100%);
|
|
4474
|
+
padding: 12px 16px;
|
|
4475
|
+
border-radius: 12px;
|
|
4476
|
+
z-index: 1000;
|
|
4477
|
+
/* Ensure controls are visible and contained */
|
|
4478
|
+
opacity: 1 !important;
|
|
4479
|
+
visibility: visible !important;
|
|
4480
|
+
display: flex !important;
|
|
4481
|
+
flex-direction: column !important;
|
|
4482
|
+
/* Hardware acceleration */
|
|
4483
|
+
-webkit-transform: translate3d(0,0,0);
|
|
4484
|
+
transform: translate3d(0,0,0);
|
|
4485
|
+
/* CRITICAL: Prevent any overflow into black areas */
|
|
4486
|
+
max-height: calc(100% - 40px); /* Leave 20px margin from top and bottom */
|
|
4487
|
+
max-width: calc(100% - 32px); /* Leave 16px margin from left and right */
|
|
4611
4488
|
box-sizing: border-box;
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4489
|
+
/* Visual containment indicators */
|
|
4490
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
4491
|
+
backdrop-filter: blur(10px);
|
|
4492
|
+
contain: layout style paint; /* CSS containment */
|
|
4493
|
+
}
|
|
4494
|
+
|
|
4495
|
+
/* Force controls and all child elements to stay within video container */
|
|
4496
|
+
.uvf-responsive-container .uvf-controls-bar {
|
|
4497
|
+
opacity: 1 !important;
|
|
4498
|
+
visibility: visible !important;
|
|
4499
|
+
transform: translateY(0) !important;
|
|
4500
|
+
pointer-events: auto !important;
|
|
4501
|
+
/* Ensure no child elements extend beyond container */
|
|
4502
|
+
contain: layout style paint;
|
|
4503
|
+
}
|
|
4504
|
+
|
|
4505
|
+
/* Ensure all child elements of controls stay within bounds */
|
|
4506
|
+
.uvf-responsive-container .uvf-controls-bar * {
|
|
4507
|
+
max-width: 100%;
|
|
4508
|
+
box-sizing: border-box;
|
|
4509
|
+
}
|
|
4510
|
+
|
|
4511
|
+
/* Progress section contained within controls */
|
|
4512
|
+
.uvf-progress-section {
|
|
4513
|
+
width: 100%;
|
|
4514
|
+
margin-bottom: 8px;
|
|
4515
|
+
opacity: 1 !important;
|
|
4516
|
+
visibility: visible !important;
|
|
4517
|
+
display: block !important;
|
|
4518
|
+
}
|
|
4519
|
+
|
|
4520
|
+
/* Progress bar styling */
|
|
4521
|
+
.uvf-progress-bar-wrapper {
|
|
4522
|
+
opacity: 1 !important;
|
|
4523
|
+
visibility: visible !important;
|
|
4524
|
+
}
|
|
4525
|
+
|
|
4526
|
+
.uvf-progress-bar {
|
|
4527
|
+
height: 4px;
|
|
4528
|
+
background: rgba(255, 255, 255, 0.3);
|
|
4529
|
+
border-radius: 2px;
|
|
4530
|
+
}
|
|
4531
|
+
|
|
4532
|
+
.uvf-progress-filled {
|
|
4533
|
+
background: var(--uvf-accent-1, #8B5CF6);
|
|
4534
|
+
height: 100%;
|
|
4535
|
+
border-radius: 2px;
|
|
4536
|
+
}
|
|
4537
|
+
|
|
4538
|
+
/* Controls row alignment - ensure visibility */
|
|
4539
|
+
.uvf-controls-row {
|
|
4540
|
+
width: 100%;
|
|
4541
|
+
display: flex !important;
|
|
4542
|
+
align-items: center;
|
|
4543
|
+
justify-content: flex-start;
|
|
4544
|
+
gap: 12px;
|
|
4545
|
+
opacity: 1 !important;
|
|
4546
|
+
visibility: visible !important;
|
|
4547
|
+
margin-top: 8px;
|
|
4548
|
+
}
|
|
4549
|
+
|
|
4550
|
+
/* Time display visibility */
|
|
4551
|
+
.uvf-time-display {
|
|
4552
|
+
color: #fff;
|
|
4553
|
+
font-size: 12px;
|
|
4554
|
+
font-weight: 500;
|
|
4555
|
+
opacity: 1 !important;
|
|
4556
|
+
visibility: visible !important;
|
|
4557
|
+
display: block !important;
|
|
4558
|
+
}
|
|
4559
|
+
|
|
4560
|
+
/* Control buttons visibility */
|
|
4561
|
+
.uvf-control-btn {
|
|
4562
|
+
min-width: 44px;
|
|
4563
|
+
min-height: 44px;
|
|
4564
|
+
display: flex !important;
|
|
4565
|
+
align-items: center;
|
|
4566
|
+
justify-content: center;
|
|
4567
|
+
border-radius: 50%;
|
|
4568
|
+
background: rgba(255, 255, 255, 0.1);
|
|
4569
|
+
backdrop-filter: blur(8px);
|
|
4570
|
+
color: #fff;
|
|
4571
|
+
opacity: 1 !important;
|
|
4572
|
+
visibility: visible !important;
|
|
4573
|
+
transition: all 0.2s ease;
|
|
4574
|
+
}
|
|
4575
|
+
|
|
4576
|
+
.uvf-control-btn:active {
|
|
4577
|
+
transform: scale(0.95);
|
|
4578
|
+
background: rgba(255, 255, 255, 0.2);
|
|
4579
|
+
}
|
|
4580
|
+
|
|
4581
|
+
/* Play/pause button prominence */
|
|
4582
|
+
.uvf-control-btn.play-pause {
|
|
4583
|
+
background: linear-gradient(135deg, var(--uvf-accent-1), var(--uvf-accent-2));
|
|
4584
|
+
min-width: 52px;
|
|
4585
|
+
min-height: 52px;
|
|
4586
|
+
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
|
|
4587
|
+
}
|
|
4588
|
+
|
|
4589
|
+
.uvf-control-btn.play-pause:active {
|
|
4590
|
+
transform: scale(0.92);
|
|
4591
|
+
box-shadow: 0 1px 4px rgba(0,0,0,0.4);
|
|
4592
|
+
}
|
|
4593
|
+
|
|
4594
|
+
.uvf-control-btn svg {
|
|
4595
|
+
fill: #fff;
|
|
4596
|
+
opacity: 1;
|
|
4597
|
+
}
|
|
4598
|
+
|
|
4599
|
+
/* Right controls */
|
|
4600
|
+
.uvf-right-controls {
|
|
4601
|
+
margin-left: auto;
|
|
4602
|
+
display: flex !important;
|
|
4603
|
+
align-items: center;
|
|
4604
|
+
gap: 8px;
|
|
4605
|
+
opacity: 1 !important;
|
|
4606
|
+
visibility: visible !important;
|
|
4607
|
+
}
|
|
4608
|
+
|
|
4609
|
+
/* Center play button positioned within video */
|
|
4610
|
+
.uvf-center-play-container {
|
|
4611
|
+
position: absolute;
|
|
4612
|
+
top: 50%;
|
|
4613
|
+
left: 50%;
|
|
4614
|
+
transform: translate(-50%, -50%);
|
|
4615
|
+
z-index: 8;
|
|
4616
|
+
pointer-events: none;
|
|
4617
|
+
}
|
|
4618
|
+
|
|
4619
|
+
.uvf-center-play-btn {
|
|
4620
|
+
pointer-events: auto;
|
|
4621
|
+
}
|
|
4622
|
+
|
|
4623
|
+
/* Top controls within video */
|
|
4624
|
+
.uvf-top-controls {
|
|
4625
|
+
position: absolute;
|
|
4626
|
+
top: calc(12px + var(--uvf-safe-area-top));
|
|
4627
|
+
right: calc(16px + var(--uvf-safe-area-right));
|
|
4628
|
+
z-index: 9;
|
|
4629
|
+
}
|
|
4630
|
+
|
|
4631
|
+
/* Title bar within video */
|
|
4632
|
+
.uvf-title-bar {
|
|
4633
|
+
position: absolute;
|
|
4634
|
+
top: calc(12px + var(--uvf-safe-area-top));
|
|
4635
|
+
left: calc(16px + var(--uvf-safe-area-left));
|
|
4636
|
+
right: calc(80px + var(--uvf-safe-area-right));
|
|
4637
|
+
z-index: 9;
|
|
4638
|
+
padding: 8px 0;
|
|
4619
4639
|
}
|
|
4620
4640
|
|
|
4621
4641
|
.uvf-progress-section {
|
|
@@ -4996,69 +5016,55 @@ export class WebPlayer extends BasePlayer {
|
|
|
4996
5016
|
}
|
|
4997
5017
|
}
|
|
4998
5018
|
|
|
4999
|
-
/* Mobile devices (landscape) -
|
|
5019
|
+
/* Mobile devices (landscape) - Optimized for fullscreen viewing with safe areas */
|
|
5000
5020
|
@media screen and (max-width: 767px) and (orientation: landscape) {
|
|
5001
5021
|
.uvf-responsive-container {
|
|
5002
|
-
position: fixed;
|
|
5003
|
-
top: 0;
|
|
5004
|
-
left: 0;
|
|
5005
5022
|
width: 100vw !important;
|
|
5006
|
-
height: 100vh
|
|
5007
|
-
height: 100dvh !important;
|
|
5008
|
-
background: #000;
|
|
5009
|
-
z-index: 9999;
|
|
5010
|
-
display: block; /* Override portrait flexbox */
|
|
5023
|
+
height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
5011
5024
|
margin: 0;
|
|
5012
5025
|
padding: 0;
|
|
5026
|
+
position: relative;
|
|
5013
5027
|
overflow: hidden;
|
|
5014
5028
|
}
|
|
5015
5029
|
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
5030
|
+
@supports (height: 100dvh) {
|
|
5031
|
+
.uvf-responsive-container {
|
|
5032
|
+
height: calc(100dvh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
5033
|
+
}
|
|
5020
5034
|
}
|
|
5021
5035
|
|
|
5022
5036
|
.uvf-responsive-container .uvf-player-wrapper {
|
|
5023
5037
|
width: 100vw !important;
|
|
5024
|
-
height:
|
|
5025
|
-
height:
|
|
5026
|
-
position: relative;
|
|
5027
|
-
display: block;
|
|
5038
|
+
height: 100% !important;
|
|
5039
|
+
min-height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
5028
5040
|
}
|
|
5029
5041
|
|
|
5030
|
-
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
position: relative;
|
|
5035
|
-
background: #000;
|
|
5036
|
-
overflow: hidden;
|
|
5042
|
+
@supports (height: 100dvh) {
|
|
5043
|
+
.uvf-responsive-container .uvf-player-wrapper {
|
|
5044
|
+
min-height: calc(100dvh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
5045
|
+
}
|
|
5037
5046
|
}
|
|
5038
5047
|
|
|
5039
|
-
.uvf-responsive-container .uvf-video {
|
|
5040
|
-
width:
|
|
5041
|
-
height: 100
|
|
5042
|
-
|
|
5043
|
-
|
|
5048
|
+
.uvf-responsive-container .uvf-video-container {
|
|
5049
|
+
width: 100vw !important;
|
|
5050
|
+
height: 100% !important;
|
|
5051
|
+
aspect-ratio: unset !important;
|
|
5052
|
+
min-height: inherit;
|
|
5044
5053
|
}
|
|
5045
5054
|
|
|
5046
|
-
/* Compact controls for landscape
|
|
5055
|
+
/* Compact controls for landscape with safe area padding */
|
|
5047
5056
|
.uvf-controls-bar {
|
|
5048
|
-
position: absolute
|
|
5049
|
-
bottom: 0
|
|
5050
|
-
left: 0
|
|
5051
|
-
right: 0
|
|
5057
|
+
position: absolute;
|
|
5058
|
+
bottom: 0;
|
|
5059
|
+
left: 0;
|
|
5060
|
+
right: 0;
|
|
5052
5061
|
padding: 10px 12px;
|
|
5053
5062
|
padding-bottom: calc(10px + var(--uvf-safe-area-bottom));
|
|
5054
5063
|
padding-left: calc(12px + var(--uvf-safe-area-left));
|
|
5055
5064
|
padding-right: calc(12px + var(--uvf-safe-area-right));
|
|
5056
|
-
background: linear-gradient(to top,
|
|
5065
|
+
background: linear-gradient(to top, var(--uvf-overlay-strong) 0%, var(--uvf-overlay-medium) 80%, var(--uvf-overlay-transparent) 100%);
|
|
5057
5066
|
box-sizing: border-box;
|
|
5058
5067
|
z-index: 1000;
|
|
5059
|
-
/* Ensure hardware acceleration */
|
|
5060
|
-
-webkit-transform: translate3d(0,0,0);
|
|
5061
|
-
transform: translate3d(0,0,0);
|
|
5062
5068
|
}
|
|
5063
5069
|
|
|
5064
5070
|
.uvf-progress-section {
|
|
@@ -5094,36 +5100,16 @@ export class WebPlayer extends BasePlayer {
|
|
|
5094
5100
|
height: 22px;
|
|
5095
5101
|
}
|
|
5096
5102
|
|
|
5097
|
-
/* Compact top controls with safe area padding
|
|
5103
|
+
/* Compact top controls with safe area padding */
|
|
5098
5104
|
.uvf-top-controls {
|
|
5099
|
-
position: absolute;
|
|
5100
5105
|
top: calc(8px + var(--uvf-safe-area-top));
|
|
5101
5106
|
right: calc(12px + var(--uvf-safe-area-right));
|
|
5102
5107
|
gap: 6px;
|
|
5103
|
-
z-index: 9;
|
|
5104
|
-
}
|
|
5105
|
-
|
|
5106
|
-
/* Center play button positioned within video container */
|
|
5107
|
-
.uvf-center-play-container {
|
|
5108
|
-
position: absolute;
|
|
5109
|
-
top: 50%;
|
|
5110
|
-
left: 50%;
|
|
5111
|
-
transform: translate(-50%, -50%);
|
|
5112
|
-
z-index: 8;
|
|
5113
|
-
pointer-events: none;
|
|
5114
|
-
}
|
|
5115
|
-
|
|
5116
|
-
.uvf-center-play-btn {
|
|
5117
|
-
pointer-events: auto;
|
|
5118
5108
|
}
|
|
5119
5109
|
|
|
5120
5110
|
.uvf-title-bar {
|
|
5121
|
-
|
|
5122
|
-
top: calc(8px + var(--uvf-safe-area-top));
|
|
5123
|
-
left: calc(12px + var(--uvf-safe-area-left));
|
|
5124
|
-
right: calc(80px + var(--uvf-safe-area-right));
|
|
5125
|
-
z-index: 9;
|
|
5126
|
-
padding: 8px 0;
|
|
5111
|
+
padding: 8px 12px;
|
|
5112
|
+
padding-top: calc(8px + var(--uvf-safe-area-top));
|
|
5127
5113
|
padding-left: calc(12px + var(--uvf-safe-area-left));
|
|
5128
5114
|
padding-right: calc(12px + var(--uvf-safe-area-right));
|
|
5129
5115
|
}
|