v0.1.43 theme: 관련글 우선순위 및 레이아웃 UI 보정

Made-with: Cursor
This commit is contained in:
2026-04-16 17:40:06 +09:00
parent 4ca64abfa7
commit d2aeeff2fe
14 changed files with 203 additions and 34 deletions

View File

@@ -275,6 +275,7 @@
if (userThemeTrack) {
userThemeTrack.classList.toggle("bg-accent", isDark);
userThemeTrack.classList.toggle("bg-brd", !isDark);
userThemeTrack.style.backgroundColor = isDark ? "var(--accent)" : "var(--border)";
}
if (userThemeThumb) {
userThemeThumb.classList.toggle("translate-x-3.5", isDark);
@@ -284,6 +285,7 @@
if (userMenuTrack) {
userMenuTrack.classList.toggle("bg-accent", menuOpen);
userMenuTrack.classList.toggle("bg-brd", !menuOpen);
userMenuTrack.style.backgroundColor = menuOpen ? "var(--accent)" : "var(--border)";
}
if (userMenuThumb) {
userMenuThumb.classList.toggle("translate-x-3.5", menuOpen);
@@ -487,6 +489,53 @@
initializeLoadMore(rootNode);
});
function initializeCategoryPriority() {
document.querySelectorAll("[data-category-priority-list]").forEach(function (list) {
var items = Array.prototype.slice.call(list.querySelectorAll("[data-category-priority-item]"));
var priorityOrder = (list.dataset.categoryPriorityOrder || "")
.split(",")
.map(function (slug) {
return slug.trim();
})
.filter(Boolean);
var limit = Number(list.dataset.categoryPriorityLimit || items.length);
if (!items.length) {
return;
}
items.sort(function (leftItem, rightItem) {
var leftSlug = leftItem.dataset.categorySlug || "";
var rightSlug = rightItem.dataset.categorySlug || "";
var leftIndex = priorityOrder.indexOf(leftSlug);
var rightIndex = priorityOrder.indexOf(rightSlug);
var leftPinned = leftIndex !== -1;
var rightPinned = rightIndex !== -1;
if (leftPinned && rightPinned) {
return leftIndex - rightIndex;
}
if (leftPinned) {
return -1;
}
if (rightPinned) {
return 1;
}
return 0;
});
items.forEach(function (item, index) {
list.appendChild(item);
item.hidden = index >= limit;
});
});
}
initializeCategoryPriority();
document.querySelectorAll("[data-featured-slider]").forEach(function (sliderRoot) {
var track = sliderRoot.querySelector("[data-featured-track]");
var prev = sliderRoot.querySelector("[data-featured-prev]");