at main 118 lines 2.6 kB view raw
1/* Hover Card Styles */ 2.hover-card { 3 position: relative; 4 display: inline-block; 5} 6 7.hover-card-trigger { 8 display: inline-block; 9} 10 11.hover-card-content { 12 position: absolute; 13 z-index: 1000; 14 min-width: 200px; 15 padding: 5px; 16 border: 1px solid var(--light, var(--primary-color-6)) 17 var(--dark, var(--primary-color-7)); 18 border-radius: 0.5rem; 19 animation: hover-card-fade-in 0.1s ease-out; 20 background: var(--light, var(--primary-color)) 21 var(--dark, var(--primary-color-5)); 22 23 /* Semi transparent shadow effect in light mode */ 24 box-shadow: var(--light, 0 2px 10px #0000001a) var(--dark, none); 25} 26 27/* Positioning based on side */ 28.hover-card-content[data-side="top"] { 29 position: absolute; 30 bottom: 100%; 31 left: 50%; 32 margin-bottom: 10px; 33 transform: translateX(-50%); 34} 35 36.hover-card-content[data-side="right"] { 37 position: absolute; 38 top: 50%; 39 left: 100%; 40 margin-left: 10px; 41 transform: translateY(-50%); 42} 43 44.hover-card-content[data-side="bottom"] { 45 position: absolute; 46 top: 100%; 47 left: 50%; 48 margin-top: 10px; 49 transform: translateX(-50%); 50} 51 52.hover-card-content[data-side="left"] { 53 position: absolute; 54 top: 50%; 55 right: 100%; 56 margin-right: 10px; 57 transform: translateY(-50%); 58} 59 60/* Alignment styles for top and bottom */ 61.hover-card-content[data-side="top"][data-align="start"], 62.hover-card-content[data-side="bottom"][data-align="start"] { 63 left: 0; 64 transform: none; 65} 66 67.hover-card-content[data-side="top"][data-align="center"], 68.hover-card-content[data-side="bottom"][data-align="center"] { 69 left: 50%; 70 transform: translateX(-50%); 71} 72 73.hover-card-content[data-side="top"][data-align="end"], 74.hover-card-content[data-side="bottom"][data-align="end"] { 75 right: 0; 76 left: auto; 77 transform: none; 78} 79 80/* Alignment styles for left and right */ 81.hover-card-content[data-side="left"][data-align="start"], 82.hover-card-content[data-side="right"][data-align="start"] { 83 top: 0; 84 transform: none; 85} 86 87.hover-card-content[data-side="left"][data-align="center"], 88.hover-card-content[data-side="right"][data-align="center"] { 89 top: 50%; 90 transform: translateY(-50%); 91} 92 93.hover-card-content[data-side="left"][data-align="end"], 94.hover-card-content[data-side="right"][data-align="end"] { 95 top: auto; 96 bottom: 0; 97 transform: none; 98} 99 100/* Animation */ 101@keyframes hover-card-fade-in { 102 from { 103 opacity: 0; 104 } 105 106 to { 107 opacity: 1; 108 } 109} 110 111/* State styles */ 112.hover-card[data-disabled="true"] .hover-card-trigger { 113 color: var(--secondary-color-5); 114} 115 116.hover-card-content[data-state="closed"] { 117 display: none; 118}