diff --git a/src/index.html b/src/index.html index 58ab783..1f4513e 100644 --- a/src/index.html +++ b/src/index.html @@ -1493,7 +1493,7 @@ .feedLoadStatus{font-size:.78rem;color:var(--muted);padding:2px 2px 6px;font-style:italic;letter-spacing:.02em} .feedLoadStatus[hidden]{display:none} .feedWall{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:4px;align-content:start} - .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{border:1px solid var(--line);border-radius:10px;overflow:visible;background:#fff;cursor:pointer;display:flex;flex-direction:column;transition:box-shadow .12s;position:relative} .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} @@ -1510,6 +1510,14 @@ 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} + .actionMenu{position:relative;display:inline-flex;align-items:center} + .actionMenu summary{list-style:none;border:1px solid var(--line);border-radius:7px;padding:3px 9px;background:#fff;color:var(--ink);cursor:pointer;font-size:.82rem;font-weight:800;line-height:1.2;user-select:none} + .actionMenu summary::-webkit-details-marker{display:none} + .actionMenu summary:hover{background:rgba(127,127,127,.08)} + .actionMenuPanel{position:absolute;right:0;top:calc(100% + 4px);z-index:40;display:flex;flex-direction:column;gap:4px;min-width:138px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 10px 24px rgba(15,23,42,.18)} + .feedCardActions .actionMenuPanel{top:auto;bottom:calc(100% + 4px)} + .actionMenuPanel button{width:100%;text-align:left;justify-content:flex-start} + body.dark .actionMenu summary{background:#0b1220;color:var(--ink);border-color:var(--line)} body.dark .feedCard{background:var(--panel)} body.dark .feedCardThumb{background:#0b1220} @@ -1597,6 +1605,10 @@ Back / Close instead of forming a separate row. */ .previewActionsRow > #nostrPreviewActions[data-visible="true"] { display:contents; } .previewActionsRow > #nostrPreviewActions[data-visible="false"] { display:none; } + .previewActionsRow > #nostrPreviewOverflow[data-visible="true"] { display:inline-flex; order:99; } + .previewActionsRow > #nostrPreviewOverflow[data-visible="false"] { display:none; } + #nostrBackBtn { order:97; } + #nostrClose { order:98; } .previewActionsRow button { font-size:.78rem; padding:5px 10px; line-height:1.2; white-space:nowrap; } .toastStack { position:fixed; bottom:20px; right:20px; z-index:2000; display:flex; flex-direction:column; gap:8px; pointer-events:none; max-width:calc(100vw - 40px); } @@ -1617,6 +1629,29 @@ .publishConfirmMetaRow dt { min-width:108px; font-weight:600; color:var(--muted); margin:0; } .publishConfirmMetaRow dd { margin:0; flex:1; word-break:break-word; color:var(--ink); } + .svgElementsList { display:flex; flex-direction:column; gap:4px; max-height:240px; overflow:auto; padding-right:4px; } + .svgElementRow { display:flex; align-items:center; gap:6px; padding:4px 6px; border:1px solid var(--line); border-radius:6px; background:var(--bg); font-size:.78rem; } + .svgElementRow .svgElementTag { flex:1; font-family:ui-monospace,SFMono-Regular,monospace; color:var(--muted); } + .svgElementRow .svgSwatchGroup { display:flex; align-items:center; gap:4px; } + .svgElementRow .svgSwatchLabel { font-size:.65rem; color:var(--muted); } + .svgElementRow input[type="color"] { width:30px; height:24px; padding:0; border:1px solid var(--line); border-radius:4px; background:transparent; cursor:pointer; } + .svgElementRow input[type="color"]::-webkit-color-swatch-wrapper { padding:0; } + .svgElementRow input[type="color"]::-webkit-color-swatch { border:0; border-radius:3px; } + + .aspectLockRow { display:flex; align-items:flex-end; gap:6px; } + .aspectLockRow > div { flex:1; min-width:0; } + .aspectLockBtn { background:transparent; border:1px solid var(--line); border-radius:6px; padding:6px 8px; cursor:pointer; font-size:.9rem; line-height:1; align-self:flex-end; flex-shrink:0; margin-bottom:2px; } + .aspectLockBtn[aria-pressed="true"] { background:rgba(0,184,230,.12); border-color:var(--accent); color:var(--accent); } + + .addShapeMenu { display:inline-block; position:relative; } + .addShapeMenu > summary { list-style:none; cursor:pointer; padding:6px 12px; border:1px solid var(--line); border-radius:6px; background:var(--panel); color:var(--ink); font-size:.86rem; } + .addShapeMenu > summary::-webkit-details-marker { display:none; } + .addShapeMenu > summary::marker { content:''; } + .addShapeMenu > summary:hover { filter:brightness(.97); } + .addShapeMenu[open] > summary { background:var(--accent); color:#fff; border-color:var(--accent); } + .addShapeGrid { position:absolute; top:calc(100% + 4px); left:0; z-index:5; display:grid; grid-template-columns:1fr 1fr; gap:4px; background:var(--panel); border:1px solid var(--line); border-radius:6px; padding:6px; box-shadow:0 6px 18px rgba(0,0,0,.2); min-width:200px; } + .addShapeGrid button { font-size:.78rem; padding:6px 10px; text-align:left; } + .layerClipboardRow { display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin:0 0 8px; } .layerClipboardRow button { font-size:.78rem; padding:4px 10px; } .layerClipboardRow .hint { font-size:.72rem; margin-left:auto; } @@ -2005,24 +2040,7 @@ - + +
@@ -2377,6 +2395,151 @@
+ + +
+ Clip to shape +
+ + + + + + + +
+
+