From bc8dc57589757cbbd1465ba514dc88a1e26696b0 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Thu, 14 May 2026 16:33:04 -0400 Subject: [PATCH] update --- src/index.html | 1729 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 1298 insertions(+), 431 deletions(-) diff --git a/src/index.html b/src/index.html index a85644f..b1fd0e7 100644 --- a/src/index.html +++ b/src/index.html @@ -294,13 +294,101 @@ #coverSizeFieldset { order: 20; } #coverArtworkFieldset, #discArtworkFieldset { order: 30; } + #designerFieldset { order: 15; } #layersFieldset { order: 40; } #exportFieldset { order: 50; } #metadataFieldset { order: 60; } #communityFieldset { order: 70; } - #appearanceFieldset { order: 80; } aside > details { order: 90; } + .appModeTabs { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 6px; + } + + .appModeTab.active { + background: var(--accent); + border-color: var(--accent); + color: #fff; + } + + body.dark .appModeTab.active { color: #fff; } + + .designTabs { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 6px; + margin-top: 4px; + } + + .designTab.active { + background: var(--accent); + border-color: var(--accent); + color: #fff; + } + + body.app-designer .template-only { display: none !important; } + body.app-template .designer-only { display: none !important; } + /* Layers panel hides in Template tab when in disc-sheet mode — disc layers live in the Designer */ + body.app-template.template-disc #layersFieldset { display: none !important; } + + /* Designer single-disc preview */ + body.app-designer .sheetWrap { display: none !important; } + + #discDesignerView { + display: none; + flex-direction: column; + justify-content: center; + align-items: center; + min-height: calc(100vh - 112px); + gap: 16px; + padding: 24px; + } + + body.app-designer #discDesignerView { display: flex; } + + .designerDiscWrap { + position: relative; + width: 380px; + height: 380px; + border-radius: 50%; + background: #f8fafc; + border: 2px solid rgba(17,24,39,.18); + overflow: hidden; + box-shadow: 0 18px 50px rgba(15,23,42,.15); + flex: 0 0 auto; + } + + .designerDiscHole { + position: absolute; + left: 50%; top: 50%; + width: 57px; height: 57px; + border-radius: 50%; + transform: translate(-50%,-50%); + background: rgba(255,255,255,.9); + border: 2px solid rgba(17,24,39,.25); + z-index: 12; + pointer-events: none; + } + + body.hide-guides .designerDiscHole { border-color: transparent; } + /* Push placeholder text above the centre hole — both disc sheet slots and designer preview */ + #designerPlaceholder, + .discSlot .placeholder { padding-bottom: 30%; } + /* Spine slot is too narrow for placeholder text — hide it, keep the checkered bg */ + .slot.spine .placeholder { font-size: 0; } + + .designerDiscLabel { + font-size: .86rem; + color: var(--muted); + font-weight: 700; + text-align: center; + } + + body.dark .designerDiscWrap { background: #121821; border-color: #2c3443; } + body.dark .designerDiscHole { background: rgba(18,24,33,.9); border-color: #2c3443; } + .topbar { display: flex; flex-wrap: wrap; @@ -308,6 +396,7 @@ justify-content: space-between; gap: 14px; margin-bottom: 18px; + padding-right: 210px; } .status { @@ -566,6 +655,28 @@ display: var(--guide-display, block); } + .discSpineLabel { + position: absolute; + z-index: 13; + pointer-events: none; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + } + + .discSpineLabel span { + writing-mode: vertical-rl; + transform: rotate(180deg); + font-size: 6pt; + font-weight: 700; + color: rgba(15, 23, 42, .82); + letter-spacing: .04em; + white-space: nowrap; + max-height: 4.2in; + overflow: hidden; + } + .layerOverlay { position: absolute; inset: 0; @@ -893,8 +1004,67 @@ .modalCard { width:min(900px,92vw); max-height:88vh; overflow:auto; margin:4vh auto; background:var(--panel); color:var(--ink); border:1px solid var(--line); border-radius:8px; padding:14px; } .searchGrid{display:grid;grid-template-columns:1fr 140px 110px;gap:8px;align-items:end} .results{display:grid;gap:8px;margin-top:10px} - .resultItem{display:grid;grid-template-columns:100px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px;background:rgba(127,127,127,.07)} - .resultItem img{width:100px;height:70px;object-fit:cover;border-radius:6px;border:1px solid var(--line)} + .resultItem{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px;background:rgba(127,127,127,.07)} + .resultThumb{width:100px;height:70px;border-radius:6px;border:1px solid var(--line);background:#f1f5f9;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0} + .resultThumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1} + .resultThumbDisc{border-radius:50%;width:70px;height:70px} + .resultThumbFallback{font-size:.68rem;font-weight:700;color:var(--muted);text-align:center;padding:4px;line-height:1.3;position:relative;z-index:0} + body.dark .resultThumb{background:#0b1220} + + /* Modal tabs */ + .modalHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px} + .modalHeader h2{margin:0} + .modalTabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:12px} + .modalTab{border:1px solid var(--line);border-radius:8px;padding:6px 16px;background:#fff;color:var(--ink);cursor:pointer;font-weight:700;font-size:.86rem} + .modalTab.active{background:var(--accent);border-color:var(--accent);color:#fff} + body.dark .modalTab{background:#0b1220;color:var(--ink);border-color:var(--line)} + body.dark .modalTab.active{color:#fff} + + /* Feed wall */ + .feedWall{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:4px;max-height:62vh;overflow-y:auto} + .feedCard{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;cursor:pointer;display:flex;flex-direction:column;transition:box-shadow .12s} + .feedCard:hover{box-shadow:0 4px 18px rgba(15,23,42,.13)} + .feedCardThumb{width:100%;aspect-ratio:1;background:#f1f5f9;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0} + .feedCardThumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1} + .feedCardThumb.feedCardThumbDisc img{inset:10%;width:80%;height:80%;border-radius:50%} + .feedCardThumbLabel{font-size:.68rem;font-weight:700;color:#94a3b8;text-align:center;padding:8px;position:relative;z-index:0} + .feedCardMeta{padding:7px 8px;flex:1;display:flex;flex-direction:column;gap:2px} + .feedCardTitle{font-weight:700;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} + .feedCardSub{font-size:.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} + .feedCardActions{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;border-top:1px solid var(--line);gap:6px} + .reactionBadge{font-size:.72rem;font-weight:700;color:var(--muted)} + .reactionBtn{border:1px solid var(--line);border-radius:20px;padding:3px 10px;background:#fff;color:var(--muted);cursor:pointer;font-size:.72rem;font-weight:800;transition:background .1s,border-color .1s,color .1s;white-space:nowrap} + .reactionBtn:hover{background:#fef9e7;border-color:#f59e0b;color:#92400e} + .reactionBtn.reacted{background:#fef3c7;border-color:#f59e0b;color:#b45309} + body.dark .reactionBtn{background:#0b1220} + body.dark .reactionBtn:hover,.body.dark .reactionBtn.reacted{background:#1c1805;border-color:#f59e0b;color:#fcd34d} + .feedCardActions button{font-size:.76rem;padding:4px 10px} + body.dark .feedCard{background:var(--panel)} + body.dark .feedCardThumb{background:#0b1220} + + /* Nostr user widget — fixed top-right */ + .nostrWidget{position:fixed;top:12px;right:16px;z-index:500;display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:5px 10px 5px 8px;box-shadow:0 2px 12px rgba(15,23,42,.12)} + .nostrProfileBtn{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:8px;padding:5px 10px;background:#fff;cursor:pointer;font-size:.82rem;font-weight:600;color:var(--ink);max-width:200px} + .nostrAvatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#f1f5f9;flex:0 0 auto} + .nostrNameEl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px} + body.dark .nostrWidget{background:var(--panel);border-color:var(--line)} + body.dark .nostrProfileBtn{background:transparent;border:none;padding:0} + + /* Author info in feed cards */ + .feedCardAuthor{display:flex;align-items:center;gap:5px;margin-top:4px} + .feedCardAvatar{width:18px;height:18px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#f1f5f9;flex:0 0 auto} + .feedCardAuthorName{font-size:.66rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} + .resultAuthor{display:flex;align-items:center;gap:4px;margin-top:3px} + .resultAuthorAvatar{width:14px;height:14px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#f1f5f9;flex:0 0 auto} + .resultAuthorName{font-size:.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} + + /* Feed type filter pills */ + .feedTypeFilter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px} + .feedTypeBtn{border:1px solid var(--line);border-radius:20px;padding:4px 13px;background:#fff;color:var(--muted);cursor:pointer;font-size:.78rem;font-weight:700} + .feedTypeBtn.active{background:var(--accent);border-color:var(--accent);color:#fff} + body.dark .feedTypeBtn{background:#0b1220;color:var(--muted);border-color:var(--line)} + body.dark .feedTypeBtn.active{color:#fff} + .welcomeCard { max-width: 640px; } @media (max-width: 900px) { .app { grid-template-columns: 1fr; } @@ -911,7 +1081,7 @@ overflow: hidden !important; } - aside, .topbar, .printHelp { + aside, .topbar, .printHelp, .nostrWidget { display: none !important; } @@ -1012,6 +1182,14 @@ +
+ + +
+
@@ -1427,31 +1612,112 @@ + + + +
+ +
+
+
Load an image URL in the sidebar
+ +
+
+
Design A
+
+ +