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/trip-search-shortcode.css +211 -14 3.0.2.9 → 3.0.16 View file →
@@ -9,10 +9,10 @@
9 9 /* -------------------------------------------------------------------------
10 10 Scope: high specificity (body + block class). box-sizing for predictable layout.
11 11 ------------------------------------------------------------------------- */
12 12 body .yatra-trip-search-shortcode {
13 - --yatra-ts-accent: #2563eb;
14 - --yatra-ts-accent-hover: #1d4ed8;
13 + --yatra-ts-accent: var(--yatra-primary-dark, #2563eb);
14 + --yatra-ts-accent-hover: var(--yatra-primary-darker, #1d4ed8);
15 15 --yatra-ts-surface: #ffffff;
16 16 --yatra-ts-text: #0f172a;
17 17 --yatra-ts-muted: #64748b;
18 18 --yatra-ts-border: #e2e8f0;
@@ -237,8 +237,16 @@
237 237 Dropdown columns
238 238 ------------------------------------------------------------------------- */
239 239 body .yatra-trip-search-shortcode .yatra-search-dropdown {
240 240 position: relative !important;
241 + /* display:flex + align-items:stretch makes the trigger fill the full bar
242 + height (same mechanism as the keyword segment), so the trigger's own
243 + align-items:center can vertically centre the icon + label/value within
244 + the bar. As a plain block the trigger sat at the top, leaving the labels
245 + higher than the Search field. The absolutely-positioned menu is out of
246 + flow, so it's unaffected. */
247 + display: flex !important;
248 + align-items: stretch !important;
241 249 flex: 1 1 auto !important;
242 250 min-width: 180px !important;
243 251 margin: 0 !important;
244 252 padding: 0 !important;
@@ -244,8 +252,19 @@
244 252 padding: 0 !important;
245 253 isolation: isolate;
246 254 }
247 255
256 +/* When a dropdown is open, lift its whole (isolated) stacking context above the
257 + sibling dropdowns that follow it in the DOM. `isolation: isolate` above makes
258 + each dropdown its own stacking context, so without this the open dropdown's
259 + absolutely-positioned menu is painted UNDER later siblings. Most visible on
260 + mobile, where the bar stacks vertically and the open Destination menu
261 + overlaps the Activity / Duration / Budget rows below it (their labels bled
262 + through). Applies on every viewport, so it also hardens desktop. */
263 +body .yatra-trip-search-shortcode .yatra-search-dropdown.open {
264 + z-index: var(--yatra-ts-z-dropdown) !important;
265 +}
266 +
248 267 body .yatra-trip-search-shortcode .yatra-dropdown-trigger {
249 268 display: flex !important;
250 269 flex-direction: row !important;
251 270 align-items: center !important;
@@ -383,9 +402,9 @@
383 402 }
384 403
385 404 body .yatra-trip-search-shortcode .yatra-dropdown-filter-input:focus {
386 405 outline: none !important;
387 - border-color: #3b82f6 !important;
406 + border-color: var(--yatra-primary, #3b82f6) !important;
388 407 background: #ffffff !important;
389 408 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12) !important;
390 409 }
391 410
@@ -468,9 +487,9 @@
468 487 }
469 488
470 489 body .yatra-trip-search-shortcode .yatra-dropdown-option.selected {
471 490 background: #eff6ff !important;
472 - color: #1d4ed8 !important;
491 + color: var(--yatra-primary-darker, #1d4ed8) !important;
473 492 font-weight: 600 !important;
474 493 padding-right: 26px !important;
475 494 }
476 495
@@ -537,9 +556,9 @@
537 556 font-weight: 600 !important;
538 557 color: #1f2937 !important;
539 558 padding: 4px 8px !important;
540 559 background: #ffffff !important;
541 - border: 1px solid #3b82f6 !important;
560 + border: 1px solid var(--yatra-primary, #3b82f6) !important;
542 561 border-radius: 4px !important;
543 562 }
544 563
545 564 /* Same horizontal inset as .yatra-duration-badges (padding 8px 10px) so the track matches the badge row */
@@ -570,26 +589,50 @@
570 589 position: absolute !important;
571 590 height: 6px !important;
572 591 top: 50% !important;
573 592 transform: translateY(-50%) !important;
574 - background: linear-gradient(90deg, #3b82f6 0%, #2563eb 100%) !important;
593 + background: linear-gradient(90deg, var(--yatra-primary, #3b82f6) 0%, var(--yatra-primary-dark, #2563eb) 100%) !important;
575 594 border-radius: 3px !important;
576 595 box-shadow: 0 2px 6px rgba(59, 130, 246, 0.3) !important;
577 596 }
578 597
598 +/* Range inputs centred on the track (top:50%), matching the Price Range
599 + filter slider. The previous top:37% left the thumbs floating above the
600 + track. Inputs are click-through; only their thumbs capture pointer events. */
579 601 body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range'] {
580 602 position: absolute !important;
603 + left: 0 !important;
581 604 width: 100% !important;
582 605 height: 6px !important;
583 - top: 37% !important;
606 + top: 50% !important;
607 + transform: translateY(-50%) !important;
584 608 margin: 0 !important;
585 609 padding: 0 !important;
610 + border: 0 !important;
586 611 background: transparent !important;
587 612 -webkit-appearance: none !important;
588 613 appearance: none !important;
589 - pointer-events: none;
614 + pointer-events: none !important;
615 + box-sizing: border-box !important;
616 + cursor: pointer !important;
590 617 }
591 618
619 +/* Max thumb above min so an overlapping max handle stays grabbable (same as
620 + the price slider). z-index intentionally NOT !important. */
621 +body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range'].yatra-range-min {
622 + z-index: 3;
623 +}
624 +
625 +body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range'].yatra-range-max {
626 + z-index: 4;
627 +}
628 +
629 +body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range']::-webkit-slider-runnable-track {
630 + height: 6px !important;
631 + background: transparent !important;
632 + border-radius: 3px !important;
633 +}
634 +
592 635 body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range']::-webkit-slider-thumb {
593 636 -webkit-appearance: none !important;
594 637 appearance: none !important;
595 638 width: 20px !important;
@@ -595,27 +638,45 @@
595 638 width: 20px !important;
596 639 height: 20px !important;
597 640 border-radius: 50% !important;
598 641 background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
599 - border: 3px solid #3b82f6 !important;
600 - cursor: pointer !important;
642 + border: 3px solid var(--yatra-primary, #3b82f6) !important;
643 + cursor: grab !important;
601 644 pointer-events: all !important;
602 - z-index: 3 !important;
603 645 box-shadow: 0 3px 8px rgba(59, 130, 246, 0.3), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
646 + margin-top: -7px !important;
604 647 }
605 648
649 +body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range']::-webkit-slider-thumb:hover {
650 + transform: scale(1.06) !important;
651 + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.35) !important;
652 +}
653 +
654 +body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range']::-webkit-slider-thumb:active {
655 + cursor: grabbing !important;
656 +}
657 +
658 +body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range']::-moz-range-track {
659 + height: 6px !important;
660 + background: transparent !important;
661 + border-radius: 3px !important;
662 +}
663 +
606 664 body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range']::-moz-range-thumb {
607 665 width: 20px !important;
608 666 height: 20px !important;
609 667 border-radius: 50% !important;
610 668 background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
611 - border: 3px solid #3b82f6 !important;
612 - cursor: pointer !important;
669 + border: 3px solid var(--yatra-primary, #3b82f6) !important;
670 + cursor: grab !important;
613 671 pointer-events: all !important;
614 - z-index: 3 !important;
615 672 box-shadow: 0 3px 8px rgba(59, 130, 246, 0.3), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
616 673 }
617 674
675 +body .yatra-trip-search-shortcode .yatra-dual-range-slider input[type='range']::-moz-range-thumb:hover {
676 + transform: scale(1.06) !important;
677 +}
678 +
618 679 /* -------------------------------------------------------------------------
619 680 Submit button
620 681 ------------------------------------------------------------------------- */
621 682 body .yatra-trip-search-shortcode .yatra-search-button-container {
@@ -742,5 +803,141 @@
742 803
743 804 body .yatra-trip-search-shortcode .yatra-duration-menu {
744 805 min-width: 100% !important;
745 806 }
807 +}
808 +
809 +/* ---------------------------------------------------------------------------
810 + Date field (optional, opt-in via Settings → Search & Listing → Date).
811 + Mirrors the keyword segment so it sits inline with the other search fields.
812 + Uses a native <input type="date"> for zero-dependency, mobile-friendly UX.
813 +--------------------------------------------------------------------------- */
814 +body .yatra-trip-search-shortcode .yatra-search-date-segment {
815 + display: flex !important;
816 + flex: 1;
817 + align-items: stretch !important;
818 + min-width: 150px;
819 + max-width: 240px;
820 + margin: 0 !important;
821 + padding: 0 !important;
822 +}
823 +
824 +body .yatra-trip-search-shortcode .yatra-search-date-inner {
825 + display: flex !important;
826 + flex-direction: row;
827 + align-items: center !important;
828 + gap: 10px !important;
829 + width: 100% !important;
830 + min-height: var(--yatra-ts-row) !important;
831 + padding: 8px 12px !important;
832 + margin: 0 !important;
833 + border: 1px solid transparent !important;
834 + border-radius: calc(var(--yatra-ts-radius) - 6px) !important;
835 + background: transparent !important;
836 + box-shadow: none !important;
837 + transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
838 +}
839 +
840 +body .yatra-trip-search-shortcode .yatra-search-date-inner:hover {
841 + background: #f8fafc !important;
842 +}
843 +
844 +body .yatra-trip-search-shortcode .yatra-search-date-inner:focus-within {
845 + background: #fafafa !important;
846 + border-color: rgba(37, 99, 235, 0.28) !important;
847 + box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1) !important;
848 + outline: none !important;
849 +}
850 +
851 +body .yatra-trip-search-shortcode .yatra-search-date-leading {
852 + display: flex !important;
853 + flex-shrink: 0 !important;
854 + align-items: center !important;
855 + justify-content: center !important;
856 + width: 20px !important;
857 + height: 20px !important;
858 + margin: 0 !important;
859 + padding: 0 !important;
860 + border: none !important;
861 + background: transparent !important;
862 + color: #64748b !important;
863 +}
864 +
865 +body .yatra-trip-search-shortcode .yatra-search-date-leading svg {
866 + display: block !important;
867 + width: 20px !important;
868 + height: 20px !important;
869 + max-width: none !important;
870 + fill: none !important;
871 + stroke: currentColor !important;
872 + vertical-align: middle !important;
873 +}
874 +
875 +body .yatra-trip-search-shortcode .yatra-search-date-inner:focus-within .yatra-search-date-leading {
876 + color: #2563eb !important;
877 +}
878 +
879 +body .yatra-trip-search-shortcode .yatra-search-date-stack {
880 + display: flex !important;
881 + flex-direction: column !important;
882 + align-items: flex-start !important;
883 + justify-content: center !important;
884 + gap: 4px !important;
885 + flex: 1 1 auto !important;
886 + min-width: 0 !important;
887 + margin: 0 !important;
888 + padding: 0 !important;
889 +}
890 +
891 +body .yatra-trip-search-shortcode .yatra-search-date-stack .yatra-dropdown-label {
892 + margin: 0 !important;
893 + padding: 0 !important;
894 +}
895 +
896 +body .yatra-trip-search-shortcode .yatra-search-date-input {
897 + display: block !important;
898 + width: 100% !important;
899 + min-width: 0 !important;
900 + margin: 0 !important;
901 + padding: 0 !important;
902 + border: none !important;
903 + border-radius: 0 !important;
904 + background: transparent !important;
905 + background-color: transparent !important;
906 + box-shadow: none !important;
907 + font-size: 15px !important;
908 + font-weight: 600 !important;
909 + line-height: 1.3 !important;
910 + color: var(--yatra-ts-text) !important;
911 + font-family: inherit !important;
912 +}
913 +
914 +body .yatra-trip-search-shortcode .yatra-search-date-input:focus {
915 + outline: none !important;
916 + box-shadow: none !important;
917 +}
918 +
919 +body .yatra-trip-search-shortcode .yatra-search-date-input::-webkit-calendar-picker-indicator {
920 + cursor: pointer;
921 + opacity: 0.55;
922 + margin: 0;
923 +}
924 +
925 +body .yatra-trip-search-shortcode .yatra-search-date-input::-webkit-calendar-picker-indicator:hover {
926 + opacity: 0.9;
927 +}
928 +
929 +/* When flatpickr upgrades the native date input it becomes a read-only text
930 + field opened by click; show a pointer cursor and keep the caret hidden. */
931 +body .yatra-trip-search-shortcode .yatra-search-date-input.flatpickr-input {
932 + cursor: pointer !important;
933 + caret-color: transparent !important;
934 +}
935 +
936 +/* Placeholder ("Any date") shown when no date is selected. Native type="date"
937 + ignores placeholder, but flatpickr converts the field to a text input where
938 + it renders — matching the muted placeholder styling of the keyword field. */
939 +body .yatra-trip-search-shortcode .yatra-search-date-input::placeholder {
940 + color: #94a3b8 !important;
941 + font-weight: 500 !important;
942 + opacity: 1 !important;
746 943 }