diff --git a/shaarli-pro/css/style.css b/shaarli-pro/css/style.css index 55e780b..feb7a5f 100644 --- a/shaarli-pro/css/style.css +++ b/shaarli-pro/css/style.css @@ -3840,4 +3840,353 @@ select:focus { outline: 2px solid var(--primary); outline-offset: 2px; } +} + +/* ===== Add/Edit Bookmark - Refined Dark UI ===== */ +.page-edit { + --bookmark-panel-bg: #121c30; + --bookmark-panel-border: #25324a; + --bookmark-panel-soft: #1a2640; + --bookmark-input-bg: #0c1528; + --bookmark-input-border: #334769; + --bookmark-input-focus: #70a0ff; + --bookmark-input-focus-ring: rgba(112, 160, 255, 0.25); + --bookmark-text-main: #eaf1ff; + --bookmark-text-muted: #9fb1d4; + --bookmark-tag-bg: #2f2f90; + --bookmark-tag-bg-hover: #3939a6; + --bookmark-tag-text: #cfdaff; + --bookmark-tag-remove-bg: rgba(255, 255, 255, 0.16); + --bookmark-tag-remove-bg-hover: rgba(255, 255, 255, 0.26); + --bookmark-save-bg: linear-gradient(135deg, #6fa8ff 0%, #4d82f0 100%); +} + +.page-edit .editlinkform-col { + width: 100%; + max-width: 920px; + margin: 0 auto; + float: none; +} + +.page-edit .bookmark-editor-card { + border-radius: 16px; + border: 1px solid var(--bookmark-panel-border); + background: linear-gradient(180deg, #1a2943 0%, var(--bookmark-panel-bg) 100%); + box-shadow: 0 16px 42px rgba(0, 8, 22, 0.42); + overflow: hidden; +} + +.page-edit .bookmark-editor-header { + background: linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, rgba(0, 0, 0, 0) 100%); + border-bottom: 1px solid var(--bookmark-panel-border); + padding: 1.25rem 1.5rem; +} + +.bookmark-editor-title { + margin: 0; + font-size: 1.35rem; + line-height: 1.2; + color: var(--bookmark-text-main); + letter-spacing: 0.01em; +} + +.bookmark-editor-meta { + margin: 0.35rem 0 0; + font-size: 0.8rem; + color: var(--bookmark-text-muted); + text-transform: uppercase; + letter-spacing: 0.04em; +} + +.page-edit .bookmark-editor-card .card-body { + padding: 1.5rem; + background: transparent; +} + +.page-edit .bookmark-field-group { + margin-bottom: 1.15rem; +} + +.page-edit .bookmark-field-group .form-label { + margin-bottom: 0.45rem; + color: var(--bookmark-text-main); + font-weight: 600; + font-size: 0.86rem; + letter-spacing: 0.02em; +} + +.page-edit .bookmark-editor-card .form-control, +.page-edit .bookmark-editor-card input[type="text"], +.page-edit .bookmark-editor-card textarea { + border-radius: 10px; + border: 1px solid var(--bookmark-input-border); + background: var(--bookmark-input-bg); + color: var(--bookmark-text-main); + min-height: 44px; +} + +.page-edit .bookmark-editor-card .form-control::placeholder, +.page-edit .bookmark-tags-text-input::placeholder { + color: var(--bookmark-text-muted); +} + +.page-edit .bookmark-editor-card .form-control:focus, +.page-edit .bookmark-editor-card input[type="text"]:focus, +.page-edit .bookmark-editor-card textarea:focus, +.page-edit .bookmark-tags-text-input:focus { + border-color: var(--bookmark-input-focus); + box-shadow: 0 0 0 3px var(--bookmark-input-focus-ring); +} + +.page-edit .bookmark-editor-form.is-enhanced .bookmark-editor-source { + display: none; +} + +.page-edit .bookmark-markdown-editor { + border: 1px solid var(--bookmark-input-border); + border-radius: 12px; + overflow: hidden; + background: var(--bookmark-input-bg); +} + +.page-edit .bookmark-editor-sublabel { + margin-top: 0.5rem; + color: var(--bookmark-text-muted); +} + +.page-edit .bookmark-editor-sublabel a { + color: #8fb8ff; +} + +.page-edit .toastui-editor-defaultUI, +.page-edit .toastui-editor-md-container, +.page-edit .toastui-editor-ww-container, +.page-edit .toastui-editor-toolbar, +.page-edit .toastui-editor-mode-switch { + background: var(--bookmark-input-bg); +} +.page-edit .toastui-editor-defaultUI { + border: 0; +} + +.page-edit .toastui-editor-toolbar { + border-bottom: 1px solid var(--bookmark-input-border); +} + +.page-edit .toastui-editor-toolbar button { + border: 0; + background-color: transparent; + box-shadow: none; +} + +.page-edit .toastui-editor-toolbar button:hover, +.page-edit .toastui-editor-toolbar button.active, +.page-edit .toastui-editor-toolbar button:focus-visible { + background-color: rgba(126, 168, 255, 0.16); +} + +.page-edit .toastui-editor-toolbar-icons { + opacity: 0.96; +} + +.page-edit .toastui-editor-toolbar-divider { + background-color: var(--bookmark-input-border); +} + +.page-edit .toastui-editor-mode-switch .tab-item { + color: var(--bookmark-text-main); +} + +.page-edit .toastui-editor-md-tab-container, +.page-edit .toastui-editor-mode-switch { + border-top: 1px solid var(--bookmark-input-border); +} + +.page-edit .bookmark-tags-input { + min-height: 48px; + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 0.5rem; + padding: 0.5rem; + border-radius: 12px; + border: 1px solid var(--bookmark-input-border); + background: var(--bookmark-input-bg); + transition: border-color 0.2s ease, box-shadow 0.2s ease; +} + +.page-edit .bookmark-tags-input:focus-within { + border-color: var(--bookmark-input-focus); + box-shadow: 0 0 0 3px var(--bookmark-input-focus-ring); +} + +.page-edit .bookmark-tags-list { + display: flex; + flex-wrap: wrap; + gap: 0.45rem; +} + +.page-edit .bookmark-tag-pill { + display: inline-flex; + align-items: center; + gap: 0.4rem; + height: 34px; + padding: 0 0.4rem 0 0.8rem; + border-radius: 999px; + border: 1px solid rgba(191, 203, 255, 0.12); + background: var(--bookmark-tag-bg); + color: var(--bookmark-tag-text); + font-size: 0.95rem; + font-weight: 600; + letter-spacing: 0.01em; + transition: transform 0.2s ease, background-color 0.2s ease; +} + +.page-edit .bookmark-tag-pill:hover { + transform: translateY(-1px); + background: var(--bookmark-tag-bg-hover); +} + +.page-edit .bookmark-tag-remove { + border: 0; + width: 24px; + height: 24px; + border-radius: 999px; + background: var(--bookmark-tag-remove-bg); + color: var(--bookmark-tag-text); + display: inline-flex; + align-items: center; + justify-content: center; + cursor: pointer; + line-height: 1; + padding: 0; + transition: background-color 0.2s ease, transform 0.2s ease; +} + +.page-edit .bookmark-tag-remove:hover, +.page-edit .bookmark-tag-remove:focus-visible { + background: var(--bookmark-tag-remove-bg-hover); + transform: scale(1.04); +} + +.page-edit .bookmark-tag-remove:focus-visible { + outline: none; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.2); +} + +.page-edit .bookmark-tags-text-input { + border: 0; + background: transparent; + color: var(--bookmark-text-main); + min-width: 190px; + flex: 1; + font-size: 0.92rem; + padding: 0.45rem 0.4rem; +} + +.page-edit .bookmark-tags-text-input:focus { + outline: none; + box-shadow: none; +} + +.page-edit .bookmark-toggle-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 0.75rem; + margin-top: 0.45rem; +} + +.page-edit .bookmark-toggle-item { + display: inline-flex; + align-items: center; + gap: 0.55rem; + color: var(--bookmark-text-main); + font-size: 0.92rem; + font-weight: 500; + cursor: pointer; +} + +.page-edit .bookmark-toggle-item input[type="checkbox"] { + width: 18px; + height: 18px; + accent-color: #7ea8ff; +} + +.page-edit .bookmark-editor-footer { +background: var(--bookmark-panel-soft); +border-top: 1px solid var(--bookmark-panel-border); +padding: 1rem 1.5rem; +} + +.page-edit .bookmark-editor-footer .btn { +min-height: 42px; +border-radius: 10px; +padding-inline: 1rem; +font-weight: 600; +} + +.page-edit .bookmark-editor-footer .btn-primary { +background: var(--bookmark-save-bg); +border-color: transparent; +box-shadow: 0 10px 22px rgba(77, 130, 240, 0.35); +} + +.page-edit .bookmark-editor-footer .btn-primary:hover { +filter: brightness(1.06); +} + +.page-edit .bookmark-editor-footer .btn-danger { +background: #c84e4e; +border-color: transparent; +} + +.page-edit .bookmark-editor-footer .btn-danger:hover { +background: #dd5a5a; +} + +@media (max-width: 991px) { +.page-edit .editlinkform-col { +max-width: 100%; +padding-inline: 0; +} + +.page-edit .bookmark-editor-header, +.page-edit .bookmark-editor-card .card-body, +.page-edit .bookmark-editor-footer { +padding: 1rem; +} + +.page-edit .bookmark-toggle-grid { +grid-template-columns: 1fr; +} + +.page-edit .bookmark-tags-input { +gap: 0.4rem; +} + +.page-edit .bookmark-tag-pill { +height: 32px; +font-size: 0.9rem; +} + +.page-edit .bookmark-editor-footer { +flex-wrap: wrap; +justify-content: stretch; +} + +.page-edit .bookmark-editor-footer .btn, +.page-edit .bookmark-editor-footer a.btn { +flex: 1 1 calc(50% - 0.4rem); +} +} + +@media (max-width: 640px) { +.page-edit .bookmark-tags-text-input { +min-width: 120px; +} + +.page-edit .bookmark-editor-footer .btn, +.page-edit .bookmark-editor-footer a.btn { +flex: 1 1 100%; +} } \ No newline at end of file diff --git a/shaarli-pro/editlink.html b/shaarli-pro/editlink.html index e69da24..bea7b2a 100644 --- a/shaarli-pro/editlink.html +++ b/shaarli-pro/editlink.html @@ -15,10 +15,19 @@ {if="!isset($index)"} {$index=""} {/if} +{$batchModeValue=empty($batch_mode) ? '0' : '1'} +{$readLaterChecked=strpos(' ' . $link.tags . ' ', ' readlater ') != false || strpos(' ' . $link.tags . ' ', ' toread ') != false} +{$noteDefaultChecked=$link_is_new && empty($link.url)} +{$noteChecked=strpos(' ' . $link.tags . ' ', ' note ') != false || $noteDefaultChecked} +{$effectiveTags=$link.tags} +{if="$noteDefaultChecked && strpos(' ' . $effectiveTags . ' ', ' note ') == false"} + {$effectiveTags=trim($effectiveTags . ' note')} +{/if} +{$privateChecked=$link.private == true || $link_is_new}