Finished with Phase 2.6

This commit is contained in:
JakeBreath
2026-08-04 01:46:58 -05:00
parent 8c13c5e5ec
commit b7b21ab5e0
11 changed files with 1350 additions and 41 deletions
+236 -3
View File
@@ -2258,18 +2258,28 @@ a.deletelink {
background: var(--md-sys-color-surface-variant);
border-radius: 12px;
overflow: hidden;
cursor: pointer;
aspect-ratio: 4 / 3;
}
.gallery-item img,
.gallery-item video {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
object-fit: cover;
max-height: 260px;
}
.gallery-item figcaption {
padding: 8px 12px;
position: absolute;
left: 0;
right: 0;
bottom: 0;
padding: 6px 12px;
font-size: 0.85rem;
color: var(--md-sys-color-on-surface-variant);
color: #fff;
background: rgba(0, 0, 0, 0.55);
z-index: 2;
}
.gallery-delete {
position: absolute;
@@ -2284,10 +2294,31 @@ a.deletelink {
align-items: center;
justify-content: center;
text-decoration: none;
z-index: 3;
}
.gallery-delete:hover {
background: var(--md-sys-color-error);
}
.gallery-expand {
position: absolute;
top: 8px;
left: 8px;
background: rgba(0, 0, 0, 0.6);
color: #fff;
border-radius: 50%;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.15s;
pointer-events: none;
z-index: 3;
}
.gallery-item:hover .gallery-expand {
opacity: 1;
}
.empty-hint {
color: var(--md-sys-color-on-surface-variant);
margin: 8px 0;
@@ -3028,3 +3059,205 @@ a.deletelink {
font-size: 0.72rem;
color: var(--md-sys-color-on-surface-variant);
}
/* ========== Modals (gallery + model viewer) ========== */
.modal-overlay {
position: fixed;
inset: 0;
z-index: 2000;
background: rgba(0, 0, 0, 0.85);
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
}
.modal-overlay[hidden] {
display: none;
}
.modal-content {
position: relative;
background: var(--md-sys-color-surface);
border-radius: 12px;
padding: 16px;
width: fit-content;
min-width: 0;
max-width: 96vw;
max-height: 92vh;
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5);
}
.modal-close {
position: absolute;
top: 8px;
right: 8px;
width: 34px;
height: 34px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
border: none;
background: var(--md-sys-color-surface-variant);
color: var(--md-sys-color-on-surface);
cursor: pointer;
z-index: 5;
}
.modal-close:hover {
background: var(--md-sys-color-error);
color: #fff;
}
.media-modal-content {
padding: 8px;
min-width: min(420px, 92vw);
}
.modal-media {
display: flex;
align-items: center;
justify-content: center;
}
.modal-media img,
.modal-media video {
display: block;
max-width: 90vw;
max-height: 88vh;
width: auto;
height: auto;
flex: none;
border-radius: 8px;
}
.modal-media img {
min-width: 320px;
image-rendering: pixelated;
}
.modal-caption {
text-align: center;
margin: 10px 0 4px;
font-size: 0.9rem;
color: var(--md-sys-color-on-surface-variant);
}
.model-modal-content {
width: min(720px, 94vw);
}
.model-modal-title {
margin: 0 0 10px;
font-size: 1rem;
}
#model-viewer-container {
width: 100%;
height: 480px;
border-radius: 10px;
overflow: hidden;
background: #1e1e2e;
}
/* ========== Models/Textures tab ========== */
.model-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
gap: 14px;
}
.model-card {
padding: 12px;
border-radius: 12px;
border: 1px solid var(--md-sys-color-outline-variant);
background: var(--md-sys-color-surface-container-low);
}
.model-card-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.model-card-head strong {
font-size: 0.9rem;
word-break: break-all;
}
.model-meta {
margin: 6px 0;
font-size: 0.78rem;
color: var(--md-sys-color-on-surface-variant);
}
.model-textures {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.model-textures img {
width: 44px;
height: 44px;
object-fit: cover;
border-radius: 6px;
border: 1px solid var(--md-sys-color-outline-variant);
background: var(--md-sys-color-surface-variant);
}
.model-textures.strip {
margin-top: 10px;
}
.model-textures.strip img {
width: 32px;
height: 32px;
}
.models-textures-title {
margin: 18px 0 8px;
font-size: 0.95rem;
}
/* ========== Logical tab ========== */
.logical-items {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 8px;
}
.logical-item {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 5px 10px;
border-radius: 999px;
background: var(--md-sys-color-surface-variant);
font-size: 0.8rem;
}
.logical-item img {
width: 20px;
height: 20px;
object-fit: contain;
}
.logical-list {
list-style: none;
margin: 0 0 10px;
padding: 0;
display: flex;
flex-direction: column;
gap: 4px;
}
.logical-list li {
font-size: 0.82rem;
padding: 4px 8px;
border-radius: 6px;
background: var(--md-sys-color-surface-variant);
}
.logical-list code,
.logical-tags code {
font-size: 0.78rem;
}
.logical-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 10px;
}
.logical-tags code {
padding: 2px 8px;
border-radius: 6px;
background: var(--md-sys-color-surface-variant);
word-break: break-all;
}
.badge-disabled {
display: inline-block;
margin-right: 6px;
padding: 1px 8px;
border-radius: 999px;
background: var(--md-sys-color-error-container, #fdecea);
color: var(--md-sys-color-on-error-container, #7f1d1d);
font-size: 0.68rem;
}