vidply 1.0.22 → 1.0.24

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/dist/vidply.css CHANGED
@@ -495,7 +495,6 @@
495
495
  background: linear-gradient(135deg, var(--vidply-black) 0%, #2a2a2a 100%);
496
496
  height: 100%;
497
497
  order: 1; /* First in flex order */
498
- overflow: hidden;
499
498
  position: relative;
500
499
  width: 100%;
501
500
  z-index: 1; /* Base video layer */
@@ -586,6 +585,8 @@
586
585
  transform: translate(-50%, -50%);
587
586
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
588
587
  z-index: var(--vidply-z-overlay);
588
+ border: 0.125rem solid var(--vidply-primary);
589
+ border-radius: 50%;
589
590
  }
590
591
 
591
592
  .vidply-play-overlay:hover {
@@ -675,7 +676,7 @@
675
676
  .vidply-progress-time-wrapper {
676
677
  align-items: center;
677
678
  display: flex;
678
- gap: var(--vidply-gap-lg);
679
+ gap: 1.25rem;
679
680
  margin-bottom: var(--vidply-gap-lg);
680
681
  width: 100%;
681
682
  }
@@ -687,6 +688,7 @@
687
688
  cursor: pointer;
688
689
  flex: 1;
689
690
  height: 0.5625rem;
691
+ margin-right: 0.5rem;
690
692
  position: relative;
691
693
  transition: height 0.2s ease;
692
694
  }
@@ -808,6 +810,82 @@
808
810
  opacity: 0.5;
809
811
  }
810
812
 
813
+ /* Button text - hidden by default, visible when CSS is disabled */
814
+ .vidply-button-text {
815
+ display: none;
816
+ }
817
+
818
+ /* When CSS is disabled or unavailable, button text will be visible */
819
+
820
+ /* This ensures buttons are functional even without CSS */
821
+
822
+ /* Tooltip styles - aria-hidden popovers for sighted users */
823
+ .vidply-tooltip {
824
+ background: #e0e0e0;
825
+ border-radius: var(--vidply-radius-sm);
826
+ color: #000;
827
+ font-size: var(--vidply-font-xs);
828
+ left: 50%;
829
+ opacity: 0;
830
+ padding: 0.375rem 0.5rem;
831
+ pointer-events: none;
832
+ position: absolute;
833
+ top: calc(100% + 0.5rem);
834
+ transform: translateX(-50%) translateY(-0.25rem);
835
+ transition: opacity var(--vidply-transition-fast), transform var(--vidply-transition-fast);
836
+ white-space: nowrap;
837
+ z-index: calc(var(--vidply-z-menu) + 1);
838
+ }
839
+
840
+ .vidply-tooltip::before {
841
+ border-color: transparent transparent #e0e0e0;
842
+ border-style: solid;
843
+ border-width: 0 0.375rem 0.375rem;
844
+ content: '';
845
+ left: 50%;
846
+ position: absolute;
847
+ top: -0.375rem;
848
+ transform: translateX(-50%);
849
+ }
850
+
851
+ /* Show tooltip on hover/focus */
852
+ .vidply-tooltip-visible {
853
+ opacity: 1;
854
+ transform: translateX(-50%) translateY(0);
855
+ }
856
+
857
+ /* In fullscreen mode, position tooltips above buttons */
858
+ .vidply-player.vidply-fullscreen .vidply-tooltip,
859
+ .vidply-player:fullscreen .vidply-tooltip {
860
+ bottom: calc(100% + 0.5rem);
861
+ top: auto;
862
+ transform: translateX(-50%) translateY(0.25rem);
863
+ }
864
+
865
+ .vidply-player.vidply-fullscreen .vidply-tooltip-visible,
866
+ .vidply-player:fullscreen .vidply-tooltip-visible {
867
+ transform: translateX(-50%) translateY(0);
868
+ }
869
+
870
+ /* Adjust tooltip arrow for fullscreen (pointing down instead of up) */
871
+ .vidply-player.vidply-fullscreen .vidply-tooltip::before,
872
+ .vidply-player:fullscreen .vidply-tooltip::before {
873
+ border-color: #e0e0e0 transparent transparent;
874
+ border-width: 0.375rem 0.375rem 0;
875
+ bottom: -0.375rem;
876
+ top: auto;
877
+ }
878
+
879
+ /* Ensure buttons with tooltips are positioned relatively */
880
+ .vidply-button,
881
+ .vidply-icon-button,
882
+ .vidply-sign-language-settings,
883
+ .vidply-sign-language-close,
884
+ .vidply-transcript-settings,
885
+ .vidply-transcript-close {
886
+ position: relative;
887
+ }
888
+
811
889
  /* Icons */
812
890
  .vidply-icon {
813
891
  display: inline-block;
@@ -2145,14 +2223,29 @@
2145
2223
  padding: 1rem 1.25rem;
2146
2224
  }
2147
2225
 
2226
+ /* Track header - contains track number and duration */
2227
+ .vidply-track-header {
2228
+ align-items: center;
2229
+ display: flex;
2230
+ gap: 0.75rem;
2231
+ justify-content: space-between;
2232
+ margin-bottom: 0.25rem;
2233
+ }
2234
+
2148
2235
  .vidply-track-number {
2149
2236
  color: var(--vidply-text-muted);
2150
2237
  font-size: 0.75rem;
2151
2238
  letter-spacing: 0.0313rem;
2152
- margin-bottom: 0.25rem;
2153
2239
  text-transform: uppercase;
2154
2240
  }
2155
2241
 
2242
+ /* Duration in track info display */
2243
+ .vidply-track-duration {
2244
+ color: var(--vidply-text-muted);
2245
+ font-size: 0.75rem;
2246
+ font-variant-numeric: tabular-nums;
2247
+ }
2248
+
2156
2249
  .vidply-track-title {
2157
2250
  color: var(--vidply-white);
2158
2251
  font-size: 1.125rem;
@@ -2165,6 +2258,18 @@
2165
2258
  font-size: 0.875rem;
2166
2259
  }
2167
2260
 
2261
+ .vidply-track-description {
2262
+ color: var(--vidply-white-60);
2263
+ font-size: 0.8125rem;
2264
+ line-height: 1.4;
2265
+ margin-top: 0.5rem;
2266
+ max-height: 3.5em;
2267
+ overflow: hidden;
2268
+ display: -webkit-box;
2269
+ -webkit-line-clamp: 2;
2270
+ -webkit-box-orient: vertical;
2271
+ }
2272
+
2168
2273
  /* Playlist Panel */
2169
2274
  .vidply-playlist-panel {
2170
2275
  background: var(--vidply-bg-playlist);
@@ -2270,6 +2375,13 @@
2270
2375
  box-shadow: 0 0.5rem 1.5rem var(--vidply-black-60);
2271
2376
  }
2272
2377
 
2378
+ /* Fullscreen thumbnail container - takes full width of card */
2379
+ .vidply-player.vidply-fullscreen .vidply-playlist-thumbnail-container,
2380
+ .vidply-player:fullscreen .vidply-playlist-thumbnail-container {
2381
+ position: relative;
2382
+ width: 100%;
2383
+ }
2384
+
2273
2385
  .vidply-player.vidply-fullscreen .vidply-playlist-thumbnail,
2274
2386
  .vidply-player:fullscreen .vidply-playlist-thumbnail {
2275
2387
  width: 100%;
@@ -2277,11 +2389,26 @@
2277
2389
  border-radius: 0;
2278
2390
  }
2279
2391
 
2392
+ /* Larger duration badge in fullscreen for better visibility */
2393
+ .vidply-player.vidply-fullscreen .vidply-playlist-duration-badge,
2394
+ .vidply-player:fullscreen .vidply-playlist-duration-badge {
2395
+ bottom: 0.375rem;
2396
+ font-size: 0.75rem;
2397
+ padding: 0.1875rem 0.375rem;
2398
+ right: 0.375rem;
2399
+ }
2400
+
2280
2401
  .vidply-player.vidply-fullscreen .vidply-playlist-item-info,
2281
2402
  .vidply-player:fullscreen .vidply-playlist-item-info {
2282
2403
  padding: 0.75rem;
2283
2404
  }
2284
2405
 
2406
+ /* Hide description in fullscreen to save space */
2407
+ .vidply-player.vidply-fullscreen .vidply-playlist-item-description,
2408
+ .vidply-player:fullscreen .vidply-playlist-item-description {
2409
+ display: none;
2410
+ }
2411
+
2285
2412
  .vidply-player.vidply-fullscreen .vidply-playlist-item-title,
2286
2413
  .vidply-player:fullscreen .vidply-playlist-item-title {
2287
2414
  font-size: 0.875rem;
@@ -2480,6 +2607,12 @@
2480
2607
  outline-offset: -0.125rem;
2481
2608
  }
2482
2609
 
2610
+ /* Playlist Thumbnail Container (wrapper for thumbnail + duration badge) */
2611
+ .vidply-playlist-thumbnail-container {
2612
+ flex-shrink: 0;
2613
+ position: relative;
2614
+ }
2615
+
2483
2616
  /* Playlist Thumbnail */
2484
2617
  .vidply-playlist-thumbnail {
2485
2618
  align-items: center;
@@ -2511,6 +2644,23 @@
2511
2644
  color: var(--vidply-primary-light);
2512
2645
  }
2513
2646
 
2647
+ /* Duration badge on thumbnail (YouTube-style) */
2648
+ .vidply-playlist-duration-badge {
2649
+ background: rgb(0 0 0 / 80%);
2650
+ border-radius: 0.1875rem;
2651
+ bottom: 0.125rem;
2652
+ color: var(--vidply-white);
2653
+ font-family: var(--vidply-font-family);
2654
+ font-size: 0.625rem;
2655
+ font-variant-numeric: tabular-nums;
2656
+ font-weight: 500;
2657
+ letter-spacing: 0.02em;
2658
+ line-height: 1;
2659
+ padding: 0.125rem 0.25rem;
2660
+ position: absolute;
2661
+ right: 0.125rem;
2662
+ }
2663
+
2514
2664
  /* Playlist Item Info */
2515
2665
  .vidply-playlist-item-info {
2516
2666
  display: block;
@@ -2518,12 +2668,21 @@
2518
2668
  min-width: 0;
2519
2669
  }
2520
2670
 
2671
+ /* Title row - contains title and optional inline duration */
2672
+ .vidply-playlist-item-title-row {
2673
+ align-items: center;
2674
+ display: flex;
2675
+ gap: 0.5rem;
2676
+ margin-bottom: 0.25rem;
2677
+ }
2678
+
2521
2679
  .vidply-playlist-item-title {
2522
2680
  color: var(--vidply-white);
2523
2681
  display: block;
2682
+ flex: 1;
2524
2683
  font-size: 0.875rem;
2525
2684
  font-weight: 500;
2526
- margin-bottom: 0.25rem;
2685
+ min-width: 0;
2527
2686
  overflow: hidden;
2528
2687
  text-overflow: ellipsis;
2529
2688
  white-space: nowrap;
@@ -2533,6 +2692,14 @@
2533
2692
  color: var(--vidply-primary-light);
2534
2693
  }
2535
2694
 
2695
+ /* Inline duration (shown when no thumbnail) */
2696
+ .vidply-playlist-item-duration {
2697
+ color: var(--vidply-text-disabled);
2698
+ flex-shrink: 0;
2699
+ font-size: 0.6875rem;
2700
+ font-variant-numeric: tabular-nums;
2701
+ }
2702
+
2536
2703
  .vidply-playlist-item-artist {
2537
2704
  color: var(--vidply-text-disabled);
2538
2705
  display: block;
@@ -2542,6 +2709,19 @@
2542
2709
  white-space: nowrap;
2543
2710
  }
2544
2711
 
2712
+ /* Description - truncated with ellipsis */
2713
+ .vidply-playlist-item-description {
2714
+ -webkit-box-orient: vertical;
2715
+ color: var(--vidply-text-subtle);
2716
+ display: -webkit-box;
2717
+ font-size: 0.6875rem;
2718
+ -webkit-line-clamp: 2;
2719
+ line-height: 1.4;
2720
+ margin-top: 0.25rem;
2721
+ overflow: hidden;
2722
+ text-overflow: ellipsis;
2723
+ }
2724
+
2545
2725
  /* Playlist Item Icon */
2546
2726
  .vidply-playlist-item-icon {
2547
2727
  flex-shrink: 0;