sights widget fix
All checks were successful
release-tag / release-image (push) Successful in 51s

This commit is contained in:
2025-07-04 12:10:25 +03:00
parent 21b035d414
commit 12db23f846
4 changed files with 2646 additions and 206 deletions

View File

@ -115,13 +115,31 @@ body {
.stopdescription {
font-size: 16px;
font-weight: 400;
padding: 0 15px 0 15px;
padding: 0 10px 0 10px;
color: #fff;
overflow-y: auto;
margin-bottom: 15px;
max-height: calc(100% - 430px);
}
.stopdescription::-webkit-scrollbar {
width: 1px;
}
.stopdescription::-webkit-scrollbar-track {
background: #a6a6a6;
}
.stopdescription::-webkit-scrollbar-thumb {
background: white;
}
/* Firefox scrollbar */
.stopdescription {
scrollbar-width: thin;
scrollbar-color: white #a6a6a6;
}
.landmarks {
background: #806c58;
border-radius: 10px 10px 0 0;
@ -843,18 +861,35 @@ li.checked {
display: flex;
flex-direction: column;
align-items: center;
justify-content: end;
justify-content: start;
}
.sight-thumbnail {
width: 100%;
border-radius: 6px;
background: #fff;
aspect-ratio: 1/1;
border-radius: 100%;
padding: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.sight-thumbnail img {
object-fit: cover;
max-width: 100%;
max-height: 100%;
}
.sight-title {
margin-top: 4px;
font-size: 15px;
text-align: center;
overflow-wrap: break-word;
word-wrap: break-word;
word-break: break-word;
hyphens: auto;
}
.sight-letter {
@ -1063,3 +1098,136 @@ li.checked {
.governor-appeal h3 {
font-size: 22px;
}
.sight-card {
position: relative;
cursor: pointer;
}
.sight-card-detail {
position: absolute;
top: 0;
left: 105%;
width: 260px;
z-index: 20;
background: rgba(0, 0, 0, 0.85);
color: #fff;
padding: 12px;
border-radius: 6px;
backdrop-filter: blur(4px);
}
.sight-card-detail .detail-image {
width: 100%;
height: auto;
border-radius: 4px;
margin-bottom: 8px;
}
.sight-card-detail .detail-name {
margin: 0 0 6px;
font-size: 16px;
font-weight: 600;
}
.detail-articles {
display: flex;
flex-direction: column;
}
.detail-article {
margin-top: 4px;
font-size: 14px;
line-height: 1.3;
}
.sight-side-panel {
position: absolute;
left: 0;
top: 0;
width: 33%;
height: 100%;
background: rgba(0, 0, 0, 0.65);
padding: 14px 18px;
display: flex;
flex-direction: column;
overflow-y: auto;
z-index: 30;
}
.panel-image-wrapper {
flex: 0 0 auto;
}
.panel-image {
width: 100%;
height: auto;
border-radius: 6px;
margin-bottom: 10px;
}
.panel-name {
font-size: 18px;
font-weight: 600;
margin-bottom: 8px;
}
.panel-description {
font-size: 15px;
line-height: 1.4;
margin-bottom: 10px;
background: #fff;
}
.panel-articles {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: auto;
}
.panel-article-option {
padding: 4px 8px;
background: rgba(255, 255, 255, 0.15);
border-radius: 4px;
font-size: 14px;
cursor: pointer;
user-select: none;
}
.panel-article-option.selected {
background: rgba(255, 255, 255, 0.35);
}
.language-options {
display: flex;
gap: 6px;
}
.lang-option svg {
width: 28px;
height: 28px;
}
.sights-grid {
display: flex;
flex-wrap: wrap;
gap: 12px;
padding-right: 40px;
}
.sight-letter-group {
display: contents;
}
.letter-anchor {
position: absolute !important;
width: 0;
height: 0;
margin: 0;
padding: 0;
pointer-events: none;
}
.sight-card {
flex: 0 0 calc((100% - 24px) / 3);
box-sizing: border-box;
}

View File

@ -216,9 +216,9 @@
<div
v-for="(group, letter) in groupedSights"
:key="letter"
:ref="'letter-' + letter"
class="sight-letter-group"
>
<span :ref="'letter-' + letter" class="letter-anchor"></span>
<div
v-for="sight in group"
:key="sight.id"
@ -228,7 +228,9 @@
}"
@click.stop="openSightCardDetails(sight.id)"
>
<img class="sight-thumbnail" :src="sight.thumbnailUrl" />
<div class="sight-thumbnail">
<img :src="sight.thumbnailUrl" />
</div>
<div class="sight-title">{{ sight.name }}</div>
</div>
</div>
@ -761,12 +763,19 @@ export default {
}
},
selectLetter(letter) {
const section = this.$refs[`letter-${letter}`]?.[0];
const anchorArr = this.$refs[`letter-${letter}`];
const anchor = anchorArr ? anchorArr[0] : null;
const container = this.$refs.scrollContainer;
if (section && container) {
const top = section.offsetTop;
container.scrollTo({ top, behavior: "smooth" });
if (!anchor || !container) return;
let target = anchor.nextElementSibling;
if (!target || !target.classList.contains("sight-card")) {
target = anchor;
}
const top = target.offsetTop;
container.scrollTo({ top, behavior: "smooth" });
},
toggleTransfers() {
console.log("Transfer toggle clicked");
@ -841,113 +850,3 @@ export default {
},
};
</script>
<style scoped>
.sight-card {
position: relative;
cursor: pointer;
}
.sight-card-detail {
position: absolute;
top: 0;
left: 105%;
width: 260px;
z-index: 20;
background: rgba(0, 0, 0, 0.85);
color: #fff;
padding: 12px;
border-radius: 6px;
backdrop-filter: blur(4px);
}
.sight-card-detail .detail-image {
width: 100%;
height: auto;
border-radius: 4px;
margin-bottom: 8px;
}
.sight-card-detail .detail-name {
margin: 0 0 6px;
font-size: 16px;
font-weight: 600;
}
.detail-articles {
display: flex;
flex-direction: column;
}
.detail-article {
margin-top: 4px;
font-size: 14px;
line-height: 1.3;
}
.sight-side-panel {
position: absolute;
left: 0;
top: 0;
width: 33%;
height: 100%;
background: rgba(0, 0, 0, 0.65);
padding: 14px 18px;
display: flex;
flex-direction: column;
overflow-y: auto;
z-index: 30;
}
.panel-image-wrapper {
flex: 0 0 auto;
}
.panel-image {
width: 100%;
height: auto;
border-radius: 6px;
margin-bottom: 10px;
}
.panel-name {
font-size: 18px;
font-weight: 600;
margin-bottom: 8px;
}
.panel-description {
font-size: 15px;
line-height: 1.4;
margin-bottom: 10px;
background: #fff;
}
.panel-articles {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: auto;
}
.panel-article-option {
padding: 4px 8px;
background: rgba(255, 255, 255, 0.15);
border-radius: 4px;
font-size: 14px;
cursor: pointer;
user-select: none;
}
.panel-article-option.selected {
background: rgba(255, 255, 255, 0.35);
}
.language-options {
display: flex;
gap: 6px;
}
.lang-option svg {
width: 28px;
height: 28px;
}
</style>