+
-
-
{{ entry.name }}
-
{{ cardMeta(entry) }}
+
+
{{ entry.name }}
+
{{ cardMeta(entry) }}
@@ -435,11 +434,90 @@ onBeforeUnmount(() => {
min-height: 0;
height: 100%;
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
- gap: 10px;
+ gap: 8px;
align-content: start;
overflow: auto;
padding: 14px 16px;
}
+.lib-modal-tile {
+ display: flex;
+ min-height: 120px;
+ flex-direction: column;
+ overflow: hidden;
+ border: 2px solid #2a2a2e;
+ border-radius: 8px;
+ background: #0b0b0d;
+ cursor: pointer;
+}
+.lib-modal-tile[data-active='true'] {
+ border-color: #f5a524;
+ box-shadow: 0 0 0 2px #f5a524;
+}
+.lib-modal-media {
+ position: relative;
+ aspect-ratio: 1 / 1;
+ min-height: 120px;
+ width: 100%;
+ overflow: hidden;
+ background: #18181b;
+}
+.lib-modal-media > img {
+ display: block;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+.lib-modal-fallback {
+ display: block;
+ width: 100%;
+ height: 100%;
+ background: #27272a;
+}
+.lib-modal-track {
+ display: flex;
+ height: 100%;
+ width: 100%;
+ align-items: flex-end;
+ gap: 2px;
+ padding: 16px;
+}
+.lib-modal-bar {
+ flex: 1;
+ border-radius: 999px;
+ background: rgba(245, 165, 36, 0.7);
+}
+.lib-modal-kind {
+ position: absolute;
+ top: 8px;
+ left: 8px;
+ border-radius: 4px;
+ background: #000a;
+ padding: 2px 6px;
+ color: #e4e4e7;
+ font-size: 10px;
+ text-transform: uppercase;
+ letter-spacing: 0.04em;
+}
+.lib-modal-caption {
+ padding: 6px 8px 8px;
+}
+.lib-modal-name {
+ margin: 0;
+ overflow: hidden;
+ color: #f4f4f5;
+ font-size: 12px;
+ font-weight: 600;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.lib-modal-meta {
+ margin: 2px 0 0;
+ overflow: hidden;
+ color: #71717a;
+ font-size: 11px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
.lib-modal-empty {
grid-column: 1 / -1;
color: #9a9588;
diff --git a/components/studio2/Mobile.vue b/components/studio2/Mobile.vue
index 9136456..515541b 100644
--- a/components/studio2/Mobile.vue
+++ b/components/studio2/Mobile.vue
@@ -65,6 +65,20 @@
+