PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.16
Yatra – Travel Booking & Tour Operator Software v3.0.16
3.0.16 3.0.15 3.0.14 3.0.14.1 3.0.14.2 3.0.12 3.0.13 3.0.11 3.0.10 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.5.1 3.0.4 3.0.3 3.0.2.9 3.0.2.7 3.0.2.8 3.0.2.6 trunk 1.0.0 2.0.0 2.0.1 All 84 releases
← All changes | assets/css/shortcodes/destination-shortcode.css +48 -23 3.0.2.6 → 3.0.16 View file →
@@ -59,10 +59,14 @@
59 59
60 60 .yatra-category-card-content {
61 61 color: #ffffff;
62 62 width: 100%;
63 - z-index: 2;
64 - position: relative;
63 + /* No `position: relative` here: it would become the nearest positioned
64 + ancestor for the title link's stretched `::after`, trapping the click
65 + overlay to the bottom-strip content area instead of the whole card.
66 + The overlay above (`.yatra-category-card-overlay`) is `position:
67 + absolute; inset: 0` so the link's `::after` correctly fills the full
68 + card via that wrapper. */
65 69 }
66 70
67 71 .yatra-category-card-title {
68 72 margin: 0 0 16px 0;
@@ -77,11 +81,42 @@
77 81 transition: color 0.2s ease;
78 82 }
79 83
80 84 .yatra-category-card-title-link:hover {
81 - color: #60a5fa;
85 + color: var(--yatra-primary-light, #60a5fa);
82 86 }
83 87
88 +/*
89 + * Whole-card click target.
90 + *
91 + * Promote the title link to a "stretched link" so the entire card is
92 + * navigable, while keeping the visible <a> on the title for screen readers
93 + * and SEO. The pseudo-element fills the overlay (which is `inset: 0` on the
94 + * image wrapper), giving us a single canonical link target without nesting
95 + * <a> elements. The featured badge is made non-interactive so clicks on it
96 + * pass through to the stretched link.
97 + */
98 +.yatra-category-card {
99 + cursor: pointer;
100 +}
101 +
102 +.yatra-category-card-title-link::after {
103 + content: "";
104 + position: absolute;
105 + inset: 0;
106 + z-index: 1;
107 + border-radius: inherit;
108 +}
109 +
110 +.yatra-category-card-title-link:focus-visible::after {
111 + outline: 2px solid var(--yatra-primary, #2563eb);
112 + outline-offset: -2px;
113 +}
114 +
115 +.yatra-category-featured-badge {
116 + pointer-events: none;
117 +}
118 +
84 119 .yatra-category-card-stats {
85 120 display: flex;
86 121 gap: 20px;
87 122 margin-bottom: 16px;
@@ -108,9 +143,9 @@
108 143 color: #fbbf24;
109 144 }
110 145
111 146 .category-stat.trips .category-stat-icon {
112 - color: #60a5fa; /* Blue for consistency */
147 + color: var(--yatra-primary-light, #60a5fa);
113 148 }
114 149
115 150 .category-stat.price .category-stat-icon {
116 151 color: #10b981;
@@ -223,13 +258,8 @@
223 258 animation: yatra-spin 1s linear infinite;
224 259 z-index: 11;
225 260 }
226 261
227 -@keyframes yatra-spin {
228 - 0% { transform: rotate(0deg); }
229 - 100% { transform: rotate(360deg); }
230 -}
231 -
232 262 .yatra-destination-header {
233 263 display: flex;
234 264 justify-content: space-between;
235 265 align-items: center;
@@ -861,16 +891,11 @@
861 891 left: -100%;
862 892 width: 100%;
863 893 height: 100%;
864 894 background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
865 - animation: shimmer 1.5s infinite;
895 + animation: yatra-shimmer 1.5s infinite;
866 896 }
867 897
868 -@keyframes shimmer {
869 - 0% { left: -100%; }
870 - 100% { left: 100%; }
871 -}
872 -
873 898 /* Destination Rating */
874 899 .yatra-destination-rating {
875 900 display: flex;
876 901 align-items: center;
@@ -979,26 +1004,26 @@
979 1004 }
980 1005
981 1006 .yatra-pagination-link:hover {
982 1007 background: #f9fafb;
983 - border-color: #9ca3af;
984 - color: #111827;
1008 + border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 35%, #d1d5db);
1009 + color: var(--yatra-primary, #3b82f6);
985 1010 }
986 1011
987 1012 .yatra-pagination-current {
988 - background: #0073aa;
989 - border-color: #0073aa;
1013 + background: var(--yatra-primary, #3b82f6);
1014 + border-color: var(--yatra-primary, #3b82f6);
990 1015 color: #ffffff;
991 1016 font-weight: 600;
992 1017 transform: scale(1.05);
993 - box-shadow: 0 2px 8px rgba(0, 115, 170, 0.3);
1018 + box-shadow: 0 2px 8px color-mix(in srgb, var(--yatra-primary, #3b82f6) 35%, transparent);
994 1019 }
995 1020
996 1021 .yatra-pagination-current:hover {
997 - background: #005a87;
998 - border-color: #005a87;
1022 + background: var(--yatra-primary-dark, #2563eb);
1023 + border-color: var(--yatra-primary-dark, #2563eb);
999 1024 transform: scale(1.05);
1000 - box-shadow: 0 2px 8px rgba(0, 90, 135, 0.4);
1025 + box-shadow: 0 2px 8px color-mix(in srgb, var(--yatra-primary-dark, #2563eb) 40%, transparent);
1001 1026 }
1002 1027
1003 1028 .yatra-pagination-ellipsis {
1004 1029 color: #9ca3af;