From b56b928f4db1f4302f706b778a0cb79c6e12d9a3 Mon Sep 17 00:00:00 2001 From: Aleix Soler Date: Sat, 19 Jul 2025 12:39:32 +0200 Subject: [PATCH] refactor: simplified and removed unused styles --- styles/components/collapsible-counter.css | 19 +- styles/components/custom-status-item.css | 67 ---- .../{status-dashboard.css => dashboard.css} | 164 ++++------ styles/components/file-explorer-icon.css | 209 ------------- styles/components/file-explorer.css | 156 ++++++++++ styles/components/group-label.css | 24 +- styles/components/grouped-status-view.css | 290 ------------------ styles/components/grouped-view.css | 196 ++++++++++++ styles/components/quick-commands-settings.css | 3 - styles/components/setting-item.css | 8 - styles/components/settings.css | 199 ++++++++++++ styles/components/status-badge.css | 71 ----- .../components/status-bar-enable-button.css | 8 - styles/components/status-bar-group.css | 17 - styles/components/status-bar.css | 40 +++ styles/components/status-button.css | 146 --------- styles/components/status-chip.css | 77 ----- styles/components/status-display.css | 95 ++++++ styles/components/status-file-info-popup.css | 154 ---------- styles/components/status-file-popup.css | 22 -- styles/components/status-group.css | 107 ------- styles/components/status-item.css | 124 -------- styles/components/status-modal.css | 195 ------------ styles/components/template-item.css | 37 --- styles/components/template-status-chip.css | 17 - styles/globals.css | 134 -------- styles/index.css | 26 +- styles/variables.css | 31 -- 28 files changed, 780 insertions(+), 1856 deletions(-) delete mode 100644 styles/components/custom-status-item.css rename styles/components/{status-dashboard.css => dashboard.css} (61%) delete mode 100644 styles/components/file-explorer-icon.css create mode 100644 styles/components/file-explorer.css delete mode 100644 styles/components/grouped-status-view.css create mode 100644 styles/components/grouped-view.css delete mode 100644 styles/components/quick-commands-settings.css delete mode 100644 styles/components/setting-item.css create mode 100644 styles/components/settings.css delete mode 100644 styles/components/status-badge.css delete mode 100644 styles/components/status-bar-enable-button.css delete mode 100644 styles/components/status-bar-group.css delete mode 100644 styles/components/status-button.css delete mode 100644 styles/components/status-chip.css create mode 100644 styles/components/status-display.css delete mode 100644 styles/components/status-file-info-popup.css delete mode 100644 styles/components/status-file-popup.css delete mode 100644 styles/components/status-group.css delete mode 100644 styles/components/status-item.css delete mode 100644 styles/components/status-modal.css delete mode 100644 styles/components/template-item.css delete mode 100644 styles/components/template-status-chip.css delete mode 100644 styles/globals.css delete mode 100644 styles/variables.css diff --git a/styles/components/collapsible-counter.css b/styles/components/collapsible-counter.css index a43f3ad..cad34f9 100644 --- a/styles/components/collapsible-counter.css +++ b/styles/components/collapsible-counter.css @@ -1,11 +1,22 @@ +/* ========================================================================== + Collapsible Counter Component + ========================================================================== */ + .collapsible-counter-container { - color: var(--text-muted); padding: var(--size-2-1) var(--size-2-3); border-radius: var(--radius-s); - background-color: var(--background-modifier-border); + background: var(--background-modifier-border); border: 1px solid var(--background-modifier-border-hover); - font-weight: var(--font-weight-medium); + color: var(--text-muted); + font-weight: var(--font-medium); + font-size: var(--font-ui-smaller); + cursor: pointer; transition: all var(--anim-duration-fast) ease; - min-width: 20px; + min-width: 28px; text-align: center; } + +.collapsible-counter-container:hover { + background: var(--background-modifier-border-hover); + color: var(--text-normal); +} diff --git a/styles/components/custom-status-item.css b/styles/components/custom-status-item.css deleted file mode 100644 index 70cb5fb..0000000 --- a/styles/components/custom-status-item.css +++ /dev/null @@ -1,67 +0,0 @@ -.custom-status-card { - background: var(--background-secondary); - border-radius: var(--radius-m); - padding: var(--size-4-3); - margin-bottom: var(--size-4-2); -} - -.custom-status-preview { - display: flex; - align-items: center; - gap: var(--size-4-2); - padding: var(--size-4-2); - background: var(--background-primary-alt); - border-radius: var(--radius-s); - border-left: 4px solid var(--text-muted); -} - -.custom-status-icon-input { - width: 40px; - text-align: center; - font-size: 1.2em; - background: transparent !important; - border: none !important; - padding: 2px !important; -} - -.custom-status-text-inputs { - flex: 1; -} - -.custom-status-name-input { - background: transparent !important; - border: none !important; - color: var(--text-normal); - font-weight: var(--font-semibold); - font-size: var(--font-ui-medium); - width: 100% !important; - margin-bottom: 2px; - padding: 2px !important; -} - -.custom-status-description-input { - background: transparent !important; - border: none !important; - color: var(--text-muted); - font-size: var(--font-ui-smaller); - width: 100% !important; - padding: 2px !important; -} - -.custom-status-controls { - display: flex; - align-items: center; - gap: var(--size-4-2); -} - -.custom-status-color-input { - width: 32px !important; - height: 32px !important; - border-radius: var(--radius-s); - cursor: pointer; - padding: 2px !important; -} - -.custom-status-remove-btn { - font-size: 16px; -} diff --git a/styles/components/status-dashboard.css b/styles/components/dashboard.css similarity index 61% rename from styles/components/status-dashboard.css rename to styles/components/dashboard.css index 0c451d0..a96f151 100644 --- a/styles/components/status-dashboard.css +++ b/styles/components/dashboard.css @@ -1,3 +1,7 @@ +/* ========================================================================== + Status Dashboard + ========================================================================== */ + .status-dashboard-view-container { height: 100%; overflow: hidden; @@ -7,51 +11,42 @@ height: 100%; display: flex; flex-direction: column; - background-color: var(--background-primary); + background: var(--background-primary); } +/* Header */ .status-dashboard-header { display: flex; - align-items: center; justify-content: space-between; + align-items: center; padding: var(--size-4-3) var(--size-4-4); + background: var(--background-secondary); border-bottom: 1px solid var(--background-modifier-border); - background-color: var(--background-secondary); - flex-shrink: 0; } .status-dashboard-title { margin: 0; font-size: var(--font-ui-larger); - font-weight: var(--font-weight-bold); - color: var(--text-normal); + font-weight: var(--font-bold); } .status-dashboard-refresh { padding: var(--size-2-2) var(--size-2-3); border: 1px solid var(--background-modifier-border); border-radius: var(--radius-s); - background-color: var(--interactive-normal); + background: var(--interactive-normal); color: var(--text-normal); cursor: pointer; - transition: all var(--anim-duration-fast) var(--anim-motion-smooth); font-size: var(--font-ui-medium); + transition: all var(--anim-duration-fast) ease; } .status-dashboard-refresh:hover { - background-color: var(--interactive-hover); + background: var(--interactive-hover); transform: rotate(90deg); } -.status-dashboard-loading { - display: flex; - align-items: center; - justify-content: center; - height: 100%; - font-size: var(--font-ui-medium); - color: var(--text-muted); -} - +/* Content */ .status-dashboard-content { flex: 1; overflow-y: auto; @@ -59,12 +54,11 @@ display: flex; flex-direction: column; gap: var(--size-4-4); - max-height: calc(100vh - 80px); } -/* Section Styles */ +/* Sections */ .status-dashboard-section { - background-color: var(--background-secondary); + background: var(--background-secondary); border: 1px solid var(--background-modifier-border); border-radius: var(--radius-m); overflow: hidden; @@ -72,18 +66,17 @@ .status-dashboard-section-header { padding: var(--size-4-2) var(--size-4-3); - background-color: var(--background-modifier-hover); + background: var(--background-modifier-hover); border-bottom: 1px solid var(--background-modifier-border); } .status-dashboard-section-header h3 { margin: 0; font-size: var(--font-ui-large); - font-weight: var(--font-weight-semibold); - color: var(--text-normal); + font-weight: var(--font-semibold); } -/* Current Note Section */ +/* Current Note */ .status-dashboard-current-note { padding: var(--size-4-3); } @@ -91,21 +84,20 @@ .current-note-info { margin-bottom: var(--size-4-3); padding-bottom: var(--size-4-2); - border-bottom: 1px solid var(--background-modifier-border-hover); + border-bottom: 1px solid var(--background-modifier-border); } .current-note-name { font-size: var(--font-ui-large); - font-weight: var(--font-weight-semibold); - color: var(--text-normal); + font-weight: var(--font-semibold); margin-bottom: var(--size-2-1); } .current-note-path { font-size: var(--font-ui-small); color: var(--text-muted); - margin-bottom: var(--size-2-1); font-family: var(--font-monospace); + margin-bottom: var(--size-2-1); } .current-note-modified { @@ -137,7 +129,7 @@ color: var(--text-muted); font-style: italic; padding: var(--size-2-1) var(--size-2-3); - background-color: var(--background-modifier-border-hover); + background: var(--background-modifier-border); border-radius: var(--radius-s); } @@ -148,7 +140,7 @@ padding: var(--size-4-4); } -/* Vault Overview Section */ +/* Vault Stats */ .vault-overview { padding: var(--size-4-3); } @@ -162,21 +154,21 @@ .vault-stat-card { text-align: center; padding: var(--size-4-2); - background-color: var(--background-primary); + background: var(--background-primary); border: 1px solid var(--background-modifier-border); border-radius: var(--radius-m); - transition: all var(--anim-duration-fast) var(--anim-motion-smooth); + transition: all var(--anim-duration-fast) ease; } .vault-stat-card:hover { - background-color: var(--background-modifier-hover); + background: var(--background-modifier-hover); transform: translateY(-2px); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + box-shadow: var(--shadow-s); } .vault-stat-number { font-size: var(--font-ui-largest); - font-weight: var(--font-weight-bold); + font-weight: var(--font-bold); color: var(--interactive-accent); margin-bottom: var(--size-2-1); } @@ -184,12 +176,12 @@ .vault-stat-label { font-size: var(--font-ui-small); color: var(--text-muted); - font-weight: var(--font-weight-medium); + font-weight: var(--font-medium); text-transform: uppercase; - letter-spacing: 0.5px; + letter-spacing: 0.05em; } -/* Status Distribution Section */ +/* Status Distribution */ .status-distribution { padding: var(--size-4-3); } @@ -215,21 +207,19 @@ .status-chart-count { font-size: var(--font-ui-small); color: var(--text-muted); - font-weight: var(--font-weight-medium); + font-weight: var(--font-medium); } .status-chart-bar { height: 8px; - background-color: var(--background-modifier-border); + background: var(--background-modifier-border); border-radius: var(--radius-s); overflow: hidden; - position: relative; } .status-chart-fill { height: 100%; - transition: width var(--anim-duration-moderate) var(--anim-motion-smooth); - border-radius: var(--radius-s); + transition: width var(--anim-duration-moderate) ease; } .status-distribution-empty { @@ -239,7 +229,7 @@ padding: var(--size-4-4); } -/* Quick Actions Section */ +/* Quick Actions */ .quick-actions { padding: var(--size-4-3); display: flex; @@ -248,96 +238,46 @@ } .quick-action-btn { + flex: 1; + min-width: 200px; padding: var(--size-2-3) var(--size-4-2); border: 1px solid var(--background-modifier-border); border-radius: var(--radius-m); - background-color: var(--interactive-normal); + background: var(--interactive-normal); color: var(--text-normal); cursor: pointer; - transition: all var(--anim-duration-fast) var(--anim-motion-smooth); font-size: var(--font-ui-medium); - font-weight: var(--font-weight-medium); - text-decoration: none; - flex: 1; - min-width: 200px; + font-weight: var(--font-medium); text-align: center; + transition: all var(--anim-duration-fast) ease; } .quick-action-btn:hover { - background-color: var(--interactive-hover); + background: var(--interactive-hover); transform: translateY(-1px); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + box-shadow: var(--shadow-s); } -.quick-action-btn:active { - background-color: var(--interactive-active); - transform: translateY(0); +/* States */ +.status-dashboard-loading { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + font-size: var(--font-ui-medium); + color: var(--text-muted); } -/* Responsive Design */ -@media (max-width: 768px) { - .status-dashboard-header { - padding: var(--size-4-2) var(--size-4-3); - } - - .status-dashboard-content { - padding: var(--size-4-2); - } - - .status-dashboard-current-note { - padding: var(--size-4-2); - } - - .vault-overview { - padding: var(--size-4-2); - } - - .vault-stats-grid { - grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); - gap: var(--size-4-1); - } - - .quick-actions { - flex-direction: column; - } - - .quick-action-btn { - min-width: auto; - } -} - -/* Dark theme adjustments */ -.theme-dark .status-dashboard-section { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); -} - -.theme-dark .vault-stat-card:hover { - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); -} - -/* Light theme adjustments */ -.theme-light .status-dashboard-section { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); -} - -.theme-light .vault-stat-card:hover { - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); -} - -/* Scrollbar styling */ +/* Scrollbar */ .status-dashboard-content::-webkit-scrollbar { width: var(--scrollbar-width); } -.status-dashboard-content::-webkit-scrollbar-track { - background: var(--background-secondary); -} - .status-dashboard-content::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb-bg); border-radius: var(--radius-s); } .status-dashboard-content::-webkit-scrollbar-thumb:hover { - background: var(--scrollbar-thumb-bg-hover); + background: var(--scrollbar-active-bg); } diff --git a/styles/components/file-explorer-icon.css b/styles/components/file-explorer-icon.css deleted file mode 100644 index 136098e..0000000 --- a/styles/components/file-explorer-icon.css +++ /dev/null @@ -1,209 +0,0 @@ -/* FileExplorerIcon.css */ - -.status-wrapper { - position: relative; - display: inline-block; -} - -.status-minimal { - display: inline-flex; - align-items: center; - gap: 2px; - margin-left: 6px; - cursor: pointer; - opacity: 0.6; - transition: all 0.2s ease; - padding: 2px; - border-radius: var(--radius-s); -} - -.status-minimal:hover { - opacity: 1; - background: color-mix(in srgb, var(--primary-color) 10%, transparent); - transform: scale(1.05); -} - -.status-icon { - font-size: 11px; - line-height: 1; - filter: grayscale(0.4); - transition: filter 0.2s ease; -} - -.status-minimal:hover .status-icon { - filter: grayscale(0); -} - -.status-count { - background: var(--primary-color); - color: var(--text-on-accent); - font-size: var(--font-smaller); - font-weight: var(--font-semibold); - min-width: 12px; - height: 12px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - margin-left: 1px; - box-shadow: var(--shadow-s); - border: 1px solid var(--background-primary); -} - -.status-modal { - position: fixed; - left: 50%; - transform: translateX(-50%); - background: var(--background-primary); - border: var(--border-width) solid var(--background-modifier-border); - border-radius: var(--radius-l); - box-shadow: var(--shadow-l); - z-index: var(--layer-tooltip); - min-width: 280px; - max-width: 360px; - animation: modalIn 0.15s ease-out; - backdrop-filter: blur(8px); -} - -.status-modal.bottom { - top: calc(100% + 8px); -} - -.status-modal.top { - bottom: calc(100% + 8px); -} - -@keyframes modalIn { - from { - opacity: 0; - transform: translateX(-50%) scale(0.95); - } - to { - opacity: 1; - transform: translateX(-50%) scale(1); - } -} - -.modal-header { - display: flex; - justify-content: space-between; - align-items: center; - padding: var(--size-4-4) var(--size-4-4) var(--size-4-2) var(--size-4-4); - border-bottom: var(--border-width) solid var(--background-modifier-border); -} - -.modal-title { - font-size: var(--font-ui-medium); - font-weight: var(--font-semibold); - color: var(--text-normal); -} - -.modal-total { - background: var(--background-modifier-hover); - color: var(--text-muted); - font-size: var(--font-smallest); - font-weight: var(--font-medium); - padding: var(--size-2-1) var(--size-2-3); - border-radius: var(--radius-m); -} - -.status-group:not(:last-child) { - margin-bottom: var(--size-4-4); -} - -.group-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: var(--size-2-3); -} - -.group-name { - font-size: var(--font-ui-small); - font-weight: var(--font-semibold); - color: var(--text-normal); - text-transform: capitalize; -} - -.group-count { - background: var(--background-modifier-hover); - color: var(--text-muted); - font-size: var(--font-smallest); - font-weight: var(--font-medium); - padding: var(--size-2-1) var(--size-2-2); - border-radius: var(--radius-s); - min-width: 16px; - text-align: center; -} - -.status-list { - display: flex; - flex-direction: column; - gap: var(--size-2-2); -} - -.status-item { - display: flex; - align-items: center; - gap: var(--size-4-2); - padding: var(--size-2-3) var(--size-4-2); - background: color-mix(in srgb, var(--item-color) 8%, transparent); - border: var(--border-width) solid - color-mix(in srgb, var(--item-color) 20%, transparent); - border-radius: var(--radius-s); - transition: all 0.2s ease; - cursor: pointer; -} - -.status-item:hover { - background: color-mix(in srgb, var(--item-color) 12%, transparent); - border-color: color-mix(in srgb, var(--item-color) 35%, transparent); - transform: translateX(2px); -} - -.item-icon { - font-size: var(--font-ui-medium); - flex-shrink: 0; -} - -.item-info { - display: flex; - flex-direction: column; - gap: var(--size-2-1); - min-width: 0; -} - -.item-name { - font-size: var(--font-ui-small); - font-weight: var(--font-medium); - color: var(--text-normal); -} - -.item-description { - font-size: var(--font-smallest); - color: var(--text-muted); - line-height: var(--line-height-tight); -} - -.modal-arrow { - position: absolute; - left: 50%; - transform: translateX(-50%); - width: 10px; - height: 10px; - background: var(--background-primary); - border: var(--border-width) solid var(--background-modifier-border); - rotate: 45deg; -} - -.status-modal.bottom .modal-arrow { - top: -5px; - border-bottom: none; - border-right: none; -} - -.status-modal.top .modal-arrow { - bottom: -5px; - border-top: none; - border-left: none; -} diff --git a/styles/components/file-explorer.css b/styles/components/file-explorer.css new file mode 100644 index 0000000..c0bf985 --- /dev/null +++ b/styles/components/file-explorer.css @@ -0,0 +1,156 @@ +/* ========================================================================== + File Explorer Integration + ========================================================================== */ + +.custom-icon { + position: absolute; + left: 0; + display: inline-flex; +} + +.status-wrapper { + position: relative; + display: inline-block; +} + +.status-minimal { + display: inline-flex; + align-items: center; + gap: 2px; + margin-left: var(--size-2-2); + padding: 2px; + border-radius: var(--radius-s); + cursor: pointer; + opacity: 0.7; + transition: all var(--anim-duration-fast) ease; +} + +.status-minimal:hover { + opacity: 1; + background: var(--background-modifier-hover); + transform: scale(1.05); +} + +/* Use data attribute for dynamic colors */ +.status-minimal[data-status-color] .status-minimal__count { + background: var(--interactive-accent); +} + +.status-minimal__icon { + font-size: 11px; + line-height: 1; + filter: grayscale(0.2); + transition: filter var(--anim-duration-fast) ease; +} + +.status-minimal:hover .status-minimal__icon { + filter: grayscale(0); +} + +.status-minimal__count { + min-width: 14px; + height: 14px; + padding: 0 3px; + background: var(--interactive-accent); + color: var(--text-on-accent); + font-size: var(--font-ui-smaller); + font-weight: var(--font-semibold); + border-radius: var(--radius-m); + display: flex; + align-items: center; + justify-content: center; +} + +/* Status Info Popup */ +.status-info-popup { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: var(--layer-popover); + background: var(--background-primary); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m); + box-shadow: var(--shadow-l); + min-width: 280px; + max-width: 400px; + overflow: hidden; + pointer-events: none; +} + +.status-popup-header { + display: flex; + align-items: center; + gap: var(--size-2-2); + padding: var(--size-4-2) var(--size-4-3); + background: var(--background-secondary); + border-bottom: 1px solid var(--background-modifier-border); + font-weight: var(--font-semibold); + font-size: var(--font-ui-small); +} + +.status-popup-content { + padding: var(--size-4-2); +} + +.status-popup-empty { + padding: var(--size-4-4); + text-align: center; + color: var(--text-muted); + font-style: italic; +} + +/* Status Groups in Popup */ +.status-group { + margin-bottom: var(--size-4-2); +} + +.status-group:last-child { + margin-bottom: 0; +} + +.status-group-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: var(--size-2-2) var(--size-2-3); + background: var(--background-secondary-alt); + border-radius: var(--radius-s); + margin-bottom: var(--size-2-2); +} + +.status-group-name { + text-transform: capitalize; + font-weight: var(--font-medium); + font-size: var(--font-ui-smaller); +} + +.status-group-count { + padding: 1px var(--size-2-2); + background: var(--background-modifier-border); + border-radius: var(--radius-s); + font-size: var(--font-ui-smaller); + color: var(--text-muted); +} + +.status-group-items { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); + gap: var(--size-2-2); +} + +.status-item { + display: flex; + flex-direction: column; + gap: var(--size-2-1); + padding: var(--size-2-2); + background: var(--background-primary-alt); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-s); +} + +.status-description { + font-size: var(--font-ui-smaller); + color: var(--text-muted); + line-height: 1.4; +} diff --git a/styles/components/group-label.css b/styles/components/group-label.css index 0302cfa..c5204dd 100644 --- a/styles/components/group-label.css +++ b/styles/components/group-label.css @@ -1,7 +1,25 @@ +/* ========================================================================== + Group Label Component + ========================================================================== */ + .group-label-container { - font-size: var(--font-text-size); + display: flex; + align-items: center; + gap: var(--size-2-2); + font-size: var(--font-ui-small); + font-weight: var(--font-semibold); text-transform: uppercase; - letter-spacing: 0.8px; - font-weight: var(--font-weight-semibold); + letter-spacing: 0.05em; + color: var(--text-muted); transition: color var(--anim-duration-fast) ease; } + +.group-label-container--highlighted { + color: var(--text-normal); +} + +.group-label-container svg { + width: 16px; + height: 16px; + opacity: 0.8; +} diff --git a/styles/components/grouped-status-view.css b/styles/components/grouped-status-view.css deleted file mode 100644 index 7c78662..0000000 --- a/styles/components/grouped-status-view.css +++ /dev/null @@ -1,290 +0,0 @@ -.grouped-status-view-container { - height: 100%; - overflow: hidden; -} - -.grouped-status-view { - height: 100%; - display: flex; - flex-direction: column; - background-color: var(--background-primary); -} - -.grouped-status-header { - padding: var(--size-4-2) var(--size-4-3); - border-bottom: 1px solid var(--background-modifier-border); - background-color: var(--background-secondary); - flex-shrink: 0; -} - -.grouped-status-filters { - display: flex; - flex-direction: column; - gap: var(--size-4-2); -} - -.grouped-status-note-filter { - display: flex; - flex-direction: column; -} - -.grouped-status-note-input { - width: 100%; - padding: var(--size-2-1) var(--size-2-3); - border: 1px solid var(--background-modifier-border); - border-radius: var(--radius-s); - background: var(--background-primary); - color: var(--text-normal); - font-size: var(--font-ui-medium); - transition: border-color var(--anim-duration-fast) var(--anim-motion-smooth); -} - -.grouped-status-note-input:focus { - outline: none; - border-color: var(--interactive-accent); - box-shadow: 0 0 0 2px var(--interactive-accent-hover); -} - -.grouped-status-note-input::placeholder { - color: var(--text-muted); -} - -.grouped-status-title { - margin: 0 0 var(--size-4-2) 0; - font-size: var(--font-ui-large); - font-weight: var(--font-weight-semibold); - color: var(--text-normal); -} - -.grouped-status-content { - flex: 1; - overflow-y: auto; - padding: var(--size-4-2); - max-height: calc(100vh - 120px); -} - -.grouped-status-tag-section { - margin-bottom: var(--size-4-4); -} - -.grouped-status-tag-section:last-child { - margin-bottom: 0; -} - -.grouped-status-tag-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: var(--size-4-2) var(--size-4-3); - cursor: pointer; - transition: background-color var(--anim-duration-fast) - var(--anim-motion-smooth); - border-radius: var(--radius-m); - background-color: var(--background-secondary); - border: 1px solid var(--background-modifier-border); - margin-bottom: var(--size-4-2); -} - -.grouped-status-tag-header:hover { - background-color: var(--background-modifier-hover); -} - -.grouped-status-tag-content { - padding-left: var(--size-4-2); -} - -.grouped-status-group { - margin-bottom: var(--size-4-2); - border: 1px solid var(--background-modifier-border); - border-radius: var(--radius-m); - background-color: var(--background-primary); - overflow: hidden; -} - -.grouped-status-group-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: var(--size-4-2) var(--size-4-3); - cursor: pointer; - transition: background-color var(--anim-duration-fast) - var(--anim-motion-smooth); - border-bottom: 1px solid transparent; -} - -.grouped-status-group-header:hover { - background-color: var(--background-modifier-hover); -} - -.grouped-status-group-header:active { - background-color: var(--background-modifier-active); -} - -.grouped-status-group-info { - display: flex; - align-items: center; - gap: var(--size-2-1); -} - -.grouped-status-files { - border-top: 1px solid var(--background-modifier-border); - background-color: var(--background-secondary); -} - -.grouped-status-files-list { - max-height: 300px; - overflow-y: auto; -} - -.grouped-status-file-item { - display: flex; - flex-direction: column; - padding: var(--size-2-3) var(--size-4-3); - cursor: pointer; - transition: background-color var(--anim-duration-fast) - var(--anim-motion-smooth); - border-bottom: 1px solid var(--background-modifier-border-hover); -} - -.grouped-status-file-item:last-child { - border-bottom: none; -} - -.grouped-status-file-item:hover { - background-color: var(--background-modifier-hover); -} - -.grouped-status-file-item:active { - background-color: var(--background-modifier-active); -} - -.grouped-status-file-name { - font-weight: var(--font-weight-medium); - color: var(--text-normal); - margin-bottom: var(--size-2-1); - font-size: var(--font-ui-medium); -} - -.grouped-status-file-path { - font-size: var(--font-ui-small); - color: var(--text-muted); - opacity: 0.8; -} - -.grouped-status-loading { - display: flex; - align-items: center; - justify-content: center; - height: 100%; - font-size: var(--font-ui-medium); - color: var(--text-muted); -} - -.grouped-status-empty { - display: flex; - align-items: center; - justify-content: center; - padding: var(--size-4-6); - font-size: var(--font-ui-medium); - color: var(--text-muted); - text-align: center; -} - -/* Responsive adjustments */ -@media (max-width: 768px) { - .grouped-status-header { - padding: var(--size-4-1) var(--size-4-2); - } - - .grouped-status-content { - padding: var(--size-4-1); - } - - .grouped-status-group-header { - padding: var(--size-4-1) var(--size-4-2); - } - - .grouped-status-file-item { - padding: var(--size-2-2) var(--size-4-2); - } -} - -/* Dark theme adjustments */ -.theme-dark .grouped-status-view { - border-color: var(--background-modifier-border); -} - -.theme-dark .grouped-status-group { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); -} - -/* Light theme adjustments */ -.theme-light .grouped-status-group { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); -} - -/* Scrollbar styling for consistency with Obsidian */ -.grouped-status-content::-webkit-scrollbar { - width: var(--scrollbar-width); -} - -.grouped-status-content::-webkit-scrollbar-track { - background: var(--background-secondary); -} - -.grouped-status-content::-webkit-scrollbar-thumb { - background: var(--scrollbar-thumb-bg); - border-radius: var(--radius-s); -} - -.grouped-status-content::-webkit-scrollbar-thumb:hover { - background: var(--scrollbar-thumb-bg-hover); -} - -/* Infinite scroll styles */ -.grouped-status-load-more { - display: flex; - justify-content: center; - padding: var(--size-4-2); - border-top: 1px solid var(--background-modifier-border-hover); -} - -.grouped-status-load-btn { - padding: var(--size-2-2) var(--size-4-2); - border: 1px solid var(--background-modifier-border); - border-radius: var(--radius-s); - background-color: var(--interactive-normal); - color: var(--text-normal); - cursor: pointer; - transition: all var(--anim-duration-fast) var(--anim-motion-smooth); - font-size: var(--font-ui-small); - font-weight: var(--font-weight-medium); -} - -.grouped-status-load-btn:hover { - background-color: var(--interactive-hover); - transform: translateY(-1px); -} - -.grouped-status-load-btn:active { - background-color: var(--interactive-active); - transform: translateY(0); -} - -/* File list scrollbar styling */ -.grouped-status-files-list::-webkit-scrollbar { - width: var(--scrollbar-width); -} - -.grouped-status-files-list::-webkit-scrollbar-track { - background: var(--background-secondary); -} - -.grouped-status-files-list::-webkit-scrollbar-thumb { - background: var(--scrollbar-thumb-bg); - border-radius: var(--radius-s); -} - -.grouped-status-files-list::-webkit-scrollbar-thumb:hover { - background: var(--scrollbar-thumb-bg-hover); -} diff --git a/styles/components/grouped-view.css b/styles/components/grouped-view.css new file mode 100644 index 0000000..2b2f16b --- /dev/null +++ b/styles/components/grouped-view.css @@ -0,0 +1,196 @@ +/* ========================================================================== + Grouped Status View + ========================================================================== */ + +.grouped-status-view-container { + height: 100%; + overflow: hidden; +} + +/* Header */ +.grouped-status-header { + padding: var(--size-4-2) var(--size-4-3); + background: var(--background-secondary); + border-bottom: 1px solid var(--background-modifier-border); +} + +.grouped-status-title { + margin: 0 0 var(--size-4-2) 0; + font-size: var(--font-ui-large); + font-weight: var(--font-semibold); +} + +/* Filters */ +.grouped-status-filters { + display: flex; + flex-direction: column; + gap: var(--size-4-2); +} + +.grouped-status-note-input { + width: 100%; + padding: var(--size-2-2) var(--size-2-3); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-s); + background: var(--background-primary); + color: var(--text-normal); + font-size: var(--font-ui-medium); +} + +.grouped-status-note-input:focus { + outline: none; + border-color: var(--interactive-accent); + box-shadow: 0 0 0 2px var(--background-modifier-accent); +} + +/* Content */ +.grouped-status-content { + flex: 1; + overflow-y: auto; + padding: var(--size-4-2); +} + +/* Tag Section */ +.grouped-status-tag-section { + margin-bottom: var(--size-4-3); +} + +.grouped-status-tag-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: var(--size-4-2) var(--size-4-3); + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m); + cursor: pointer; + transition: all var(--anim-duration-fast) ease; + margin-bottom: var(--size-4-2); +} + +.grouped-status-tag-header:hover { + background: var(--background-modifier-hover); +} + +.grouped-status-tag-content { + padding-left: var(--size-4-2); +} + +/* Status Group */ +.grouped-status-group { + margin-bottom: var(--size-4-2); + background: var(--background-primary); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m); + overflow: hidden; +} + +.grouped-status-group-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: var(--size-4-2) var(--size-4-3); + cursor: pointer; + transition: background var(--anim-duration-fast) ease; +} + +.grouped-status-group-header:hover { + background: var(--background-modifier-hover); +} + +.grouped-status-group-info { + display: flex; + align-items: center; + gap: var(--size-2-2); +} + +/* Files List */ +.grouped-status-files { + background: var(--background-secondary); + border-top: 1px solid var(--background-modifier-border); +} + +.grouped-status-files-list { + max-height: 300px; + overflow-y: auto; +} + +.grouped-status-file-item { + padding: var(--size-2-3) var(--size-4-3); + cursor: pointer; + transition: background var(--anim-duration-fast) ease; + border-bottom: 1px solid var(--background-modifier-border-hover); +} + +.grouped-status-file-item:hover { + background: var(--background-modifier-hover); +} + +.grouped-status-file-item:last-child { + border-bottom: none; +} + +.grouped-status-file-name { + font-weight: var(--font-medium); + color: var(--text-normal); + margin-bottom: 2px; +} + +.grouped-status-file-path { + font-size: var(--font-ui-small); + color: var(--text-muted); + opacity: 0.8; +} + +/* Load More */ +.grouped-status-load-more { + display: flex; + justify-content: center; + padding: var(--size-4-2); + border-top: 1px solid var(--background-modifier-border); +} + +.grouped-status-load-btn { + padding: var(--size-2-2) var(--size-4-2); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-s); + background: var(--interactive-normal); + color: var(--text-normal); + cursor: pointer; + font-size: var(--font-ui-small); + font-weight: var(--font-medium); + transition: all var(--anim-duration-fast) ease; +} + +.grouped-status-load-btn:hover { + background: var(--interactive-hover); + transform: translateY(-1px); +} + +/* States */ +.grouped-status-loading, +.grouped-status-empty { + display: flex; + align-items: center; + justify-content: center; + padding: var(--size-4-6); + color: var(--text-muted); + font-size: var(--font-ui-medium); +} + +/* Scrollbar */ +.grouped-status-content::-webkit-scrollbar, +.grouped-status-files-list::-webkit-scrollbar { + width: var(--scrollbar-width); +} + +.grouped-status-content::-webkit-scrollbar-thumb, +.grouped-status-files-list::-webkit-scrollbar-thumb { + background: var(--scrollbar-thumb-bg); + border-radius: var(--radius-s); +} + +.grouped-status-content::-webkit-scrollbar-thumb:hover, +.grouped-status-files-list::-webkit-scrollbar-thumb:hover { + background: var(--scrollbar-active-bg); +} diff --git a/styles/components/quick-commands-settings.css b/styles/components/quick-commands-settings.css deleted file mode 100644 index 49193fc..0000000 --- a/styles/components/quick-commands-settings.css +++ /dev/null @@ -1,3 +0,0 @@ -.quick-commands-container { - margin-top: 1em; -} diff --git a/styles/components/setting-item.css b/styles/components/setting-item.css deleted file mode 100644 index 018477e..0000000 --- a/styles/components/setting-item.css +++ /dev/null @@ -1,8 +0,0 @@ -.setting-item-full { - width: 100%; -} -.setting-item-vertical { - flex-direction: column; - align-items: start; - gap: 4px; -} diff --git a/styles/components/settings.css b/styles/components/settings.css new file mode 100644 index 0000000..341eb57 --- /dev/null +++ b/styles/components/settings.css @@ -0,0 +1,199 @@ +/* ========================================================================== + Settings UI Components + ========================================================================== */ + +/* Settings use Obsidian's built-in classes mostly */ + +/* Custom additions for Note Status settings */ +.setting-item-full { + width: 100%; +} + +.setting-item-vertical { + flex-direction: column; + align-items: flex-start; + gap: var(--size-2-2); +} + +/* Template Item */ +.template-item { + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m); + margin-bottom: var(--size-4-2); + padding: var(--size-4-3); + background: var(--background-primary-alt); + cursor: pointer; + transition: all var(--anim-duration-fast) ease; +} + +.template-item:hover { + background: var(--background-modifier-hover); +} + +.template-item.enabled { + background: var(--background-modifier-success); + border-color: var(--interactive-success); +} + +.template-checkbox { + pointer-events: none; +} + +.template-statuses { + margin-top: var(--size-2-2); + display: flex; + flex-wrap: wrap; + gap: var(--size-2-1); +} + +/* Custom Status Item */ +.custom-status-card { + background: var(--background-secondary); + border-radius: var(--radius-m); + padding: var(--size-4-3); + margin-bottom: var(--size-4-2); +} + +.custom-status-preview { + display: flex; + align-items: center; + gap: var(--size-4-2); + padding: var(--size-4-2); + background: var(--background-primary-alt); + border-radius: var(--radius-s); + border-left: 4px solid var(--text-muted); +} + +.custom-status-icon-input { + width: 40px; + text-align: center; + font-size: 1.2em; + background: transparent !important; + border: none !important; +} + +.custom-status-text-inputs { + flex: 1; +} + +.custom-status-name-input { + background: transparent !important; + border: none !important; + color: var(--text-normal); + font-weight: var(--font-semibold); + font-size: var(--font-ui-medium); + width: 100% !important; + margin-bottom: 2px; +} + +.custom-status-description-input { + background: transparent !important; + border: none !important; + color: var(--text-muted); + font-size: var(--font-ui-smaller); + width: 100% !important; +} + +.custom-status-controls { + display: flex; + align-items: center; + gap: var(--size-4-2); +} + +.custom-status-color-input { + width: 32px !important; + height: 32px !important; + border-radius: var(--radius-s); + cursor: pointer; +} + +.custom-status-remove-btn { + font-size: 16px; +} + +/* Status Group for Quick Commands */ +.status-group { + margin-bottom: var(--size-4-4); +} + +.status-group-header { + margin-bottom: var(--size-4-2); +} + +.status-group-title { + font-weight: var(--font-semibold); +} + +.status-group-description { + font-size: var(--font-ui-smaller); + color: var(--text-muted); + margin-top: var(--size-2-1); +} + +.status-group-items { + margin-left: var(--size-4-2); +} + +/* Quick Commands Container */ +.quick-commands-container { + margin-top: var(--size-4-2); +} + +/* Note Status Selector in Modal */ +.note-status-options { + max-height: 300px; + overflow-y: auto; + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-s); + background: var(--background-primary); +} + +.note-status-option { + /* Uses SelectableListItem styles */ +} + +.note-status-chips { + display: flex; + flex-wrap: wrap; + gap: var(--size-2-2); + min-height: 32px; + align-items: center; +} + +/* Selectable List Item (used by multiple components) */ +.selectable-list-item { + display: flex; + align-items: center; + gap: var(--size-4-2); + padding: var(--size-2-3) var(--size-4-2); + cursor: pointer; + border-bottom: 1px solid var(--background-modifier-border); + transition: background var(--anim-duration-fast) ease; +} + +.selectable-list-item:hover { + background: var(--background-modifier-hover); +} + +.selectable-list-item[data-focused="true"] { + outline: 2px solid var(--interactive-accent); + outline-offset: -2px; +} + +.selectable-list-item[data-selected="true"] { + background: var(--background-modifier-hover); +} + +.selectable-list-item-icon { + font-size: 16px; + min-width: 20px; +} + +.selectable-list-item-content { + flex: 1; + font-size: var(--font-ui-small); +} + +.selectable-list-item-check { + color: var(--interactive-accent); +} diff --git a/styles/components/status-badge.css b/styles/components/status-badge.css deleted file mode 100644 index 6df1e18..0000000 --- a/styles/components/status-badge.css +++ /dev/null @@ -1,71 +0,0 @@ -/* Status Badge Component - BEM Pattern */ -.status-badge { - display: inline-flex; - flex-direction: column; - align-items: center; - border-radius: var(--radius-s); - transition: all var(--anim-duration-moderate) var(--anim-motion-smooth); - overflow: hidden; - min-width: auto; - max-width: none; -} - -.status-badge--interactive { - cursor: pointer; -} - -.status-badge--interactive:hover { - transform: translateY(-1px); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} - -.status-badge__item { - display: flex; - align-items: center; - gap: var(--size-2-1); - padding: var(--size-2-1) var(--size-2-3); - transition: all var(--anim-duration-fast) ease; - width: 100%; -} - -.status-badge__item--active { - background: var(--interactive-accent); - color: var(--text-on-accent); -} - -.status-badge__item--hover:hover { - background: var(--background-modifier-hover); -} - -.status-badge__icon { - transition: transform var(--anim-duration-fast) ease; - font-size: var(--font-ui-small); -} - -.status-badge__text { - font-weight: var(--font-weight-medium); - font-size: var(--font-ui-small); - white-space: nowrap; -} - -.status-badge__count { - background: var(--primary-color); - color: var(--text-on-accent); - font-size: var(--font-smaller); - font-weight: var(--font-semibold); - min-width: 12px; - height: 12px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - margin-left: 1px; - box-shadow: var(--shadow-s); - border: 1px solid var(--background-primary); -} - -.status-badge__count--large { - min-width: 16px; - height: 16px; - font-size: var(--font-ui-smaller); -} diff --git a/styles/components/status-bar-enable-button.css b/styles/components/status-bar-enable-button.css deleted file mode 100644 index ec1be8c..0000000 --- a/styles/components/status-bar-enable-button.css +++ /dev/null @@ -1,8 +0,0 @@ -.status-bar-enable-button { - opacity: var(--icon-opacity); -} - -.status-bar-enable-button:hover { - opacity: var(--icon-opacity-hover); - background: var(--background-modifier-active); -} diff --git a/styles/components/status-bar-group.css b/styles/components/status-bar-group.css deleted file mode 100644 index 87e8e28..0000000 --- a/styles/components/status-bar-group.css +++ /dev/null @@ -1,17 +0,0 @@ -.status-bar-group-container { - display: flex; - gap: var(--size-2-1); - flex-wrap: wrap; - align-items: center; -} - -@keyframes status-slide-in { - from { - opacity: 0; - transform: scale(0.8) translateY(4px); - } - to { - opacity: 1; - transform: scale(1) translateY(0); - } -} diff --git a/styles/components/status-bar.css b/styles/components/status-bar.css index 92c8c3b..47e1d9c 100644 --- a/styles/components/status-bar.css +++ b/styles/components/status-bar.css @@ -1,5 +1,45 @@ +/* ========================================================================== + Status Bar Components + ========================================================================== */ + +/* Status Bar Container */ +.status-bar-item { + /* Uses Obsidian's built-in status bar item styles */ +} + +/* Enable Button */ +.status-bar-enable-button { + cursor: pointer; + opacity: var(--icon-opacity); + transition: opacity var(--anim-duration-fast) ease; +} + +.status-bar-enable-button:hover { + opacity: var(--icon-opacity-hover); +} + +/* Status Bar Group */ .status-bar-group-row { display: flex; align-items: center; gap: var(--size-4-2); } + +.status-bar-group-container { + display: flex; + gap: var(--size-2-1); + flex-wrap: wrap; + align-items: center; +} + +/* Animation for expanding status items */ +@keyframes status-slide-in { + from { + opacity: 0; + transform: scale(0.8) translateY(4px); + } + to { + opacity: 1; + transform: scale(1) translateY(0); + } +} diff --git a/styles/components/status-button.css b/styles/components/status-button.css deleted file mode 100644 index 402dfa2..0000000 --- a/styles/components/status-button.css +++ /dev/null @@ -1,146 +0,0 @@ -/* Status Button Component - BEM Pattern */ -.status-btn { - display: inline-flex; - align-items: center; - gap: var(--size-2-1); - padding: var(--size-2-2) var(--size-2-3); - border: 1px solid var(--background-modifier-border); - border-radius: var(--radius-s); - background: var(--interactive-normal); - color: var(--text-normal); - cursor: pointer; - transition: all var(--anim-duration-fast) ease; - font-size: var(--font-ui-medium); - font-weight: var(--font-weight-medium); - text-decoration: none; - white-space: nowrap; -} - -.status-btn:hover { - background: var(--interactive-hover); - transform: translateY(-1px); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); -} - -.status-btn:active { - background: var(--interactive-active); - transform: translateY(0); -} - -.status-btn--primary { - background: var(--interactive-accent); - color: var(--text-on-accent); - border-color: var(--interactive-accent); -} - -.status-btn--primary:hover { - background: var(--interactive-accent-hover); - border-color: var(--interactive-accent-hover); -} - -.status-btn--primary:active { - background: var(--interactive-accent-active); - border-color: var(--interactive-accent-active); -} - -.status-btn--secondary { - background: var(--background-secondary); - border-color: var(--background-modifier-border-hover); -} - -.status-btn--secondary:hover { - background: var(--background-modifier-hover); - border-color: var(--interactive-accent); -} - -.status-btn--danger { - background: var(--background-modifier-error); - color: var(--text-error); - border-color: var(--background-modifier-error); -} - -.status-btn--danger:hover { - background: var(--background-modifier-error-hover); - border-color: var(--text-error); -} - -.status-btn--small { - padding: var(--size-2-1) var(--size-2-2); - font-size: var(--font-ui-small); - min-height: 24px; -} - -.status-btn--large { - padding: var(--size-2-3) var(--size-4-2); - font-size: var(--font-ui-large); - min-height: 40px; -} - -.status-btn--full-width { - width: 100%; - justify-content: center; -} - -.status-btn--disabled { - opacity: 0.6; - cursor: not-allowed; - pointer-events: none; -} - -.status-btn--loading { - position: relative; - color: transparent; -} - -.status-btn--loading::after { - content: ""; - position: absolute; - top: 50%; - left: 50%; - width: 16px; - height: 16px; - margin: -8px 0 0 -8px; - border: 2px solid currentColor; - border-radius: 50%; - border-top-color: transparent; - animation: statusBtnSpin 1s linear infinite; -} - -.status-btn__icon { - font-size: 1em; - line-height: 1; - transition: transform var(--anim-duration-fast) ease; -} - -.status-btn:hover .status-btn__icon { - transform: scale(1.1); -} - -.status-btn__text { - line-height: 1.2; -} - -.status-btn__badge { - background: var(--background-modifier-active); - color: var(--text-muted); - font-size: var(--font-ui-smaller); - font-weight: var(--font-weight-semibold); - padding: 1px var(--size-2-1); - border-radius: var(--radius-s); - min-width: 16px; - text-align: center; -} - -.status-btn--primary .status-btn__badge { - background: rgba(255, 255, 255, 0.2); - color: var(--text-on-accent); -} - -@keyframes statusBtnSpin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} diff --git a/styles/components/status-chip.css b/styles/components/status-chip.css deleted file mode 100644 index ef2e432..0000000 --- a/styles/components/status-chip.css +++ /dev/null @@ -1,77 +0,0 @@ -/* Status Chip Component - BEM Pattern */ -.status-chip { - display: inline-flex; - align-items: center; - padding: 2px 8px; - border-radius: var(--radius-xl); - background: var(--background-secondary); - font-size: 0.85em; - border: 1px solid var(--color-base-30); - gap: 4px; - transition: all var(--anim-duration-fast) ease; -} - -.status-chip:hover { - background: var(--background-modifier-hover); - transform: scale(1.02); -} - -.status-chip--template { - background: var(--background-primary-alt); - border-color: var(--color-base-40); -} - -.status-chip--removable { - padding-right: 4px; -} - -.status-chip--disabled { - opacity: 0.6; - cursor: not-allowed; -} - -.status-chip__icon { - display: inline-block; - font-size: 1em; - line-height: 1; - transition: transform var(--anim-duration-fast) ease; -} - -.status-chip__text { - font-weight: var(--font-weight-medium); - color: var(--text-normal); - white-space: nowrap; -} - -.status-chip__color-dot { - display: inline-block; - width: 8px; - height: 8px; - border-radius: 50%; - background-color: var(--dot-color, var(--color-base-30)); - flex-shrink: 0; -} - -.status-chip__remove-btn { - display: flex; - align-items: center; - justify-content: center; - width: 16px; - height: 16px; - border-radius: 50%; - background: transparent; - border: none; - color: var(--text-muted); - cursor: pointer; - transition: all var(--anim-duration-fast) ease; -} - -.status-chip__remove-btn:hover { - background: var(--background-modifier-active); - color: var(--text-normal); - transform: scale(1.1); -} - -.status-chip__remove-btn:active { - transform: scale(0.95); -} diff --git a/styles/components/status-display.css b/styles/components/status-display.css new file mode 100644 index 0000000..69a82a5 --- /dev/null +++ b/styles/components/status-display.css @@ -0,0 +1,95 @@ +/* ========================================================================== + Status Display Component - Handles chip, badge, and template variants + ========================================================================== */ + +/* Base status display */ +.note-status-chip { + display: inline-flex; + align-items: center; + gap: var(--size-2-2); + padding: var(--size-2-1) var(--size-2-3); + background: var(--interactive-accent); + color: var(--text-on-accent); + border-radius: var(--radius-s); + font-size: var(--font-ui-smaller); + cursor: pointer; + transition: all var(--anim-duration-fast) ease; +} + +.note-status-chip:hover { + opacity: 0.9; + transform: translateY(-1px); +} + +.note-status-chip--removing { + opacity: 0.5; + transform: scale(0.95); +} + +.note-status-chip__icon { + font-size: 1em; +} + +.note-status-chip__text { + font-weight: var(--font-medium); +} + +.note-status-chip__remove { + display: flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.2); + cursor: pointer; + margin-left: var(--size-2-1); +} + +.note-status-chip__remove:hover { + background: rgba(255, 255, 255, 0.3); +} + +/* Badge variant */ +.status-badge-container { + display: inline-flex; + align-items: center; + padding: var(--size-2-1) var(--size-2-3); + border-radius: var(--radius-s); + transition: all var(--anim-duration-fast) ease; + cursor: pointer; +} + +.status-badge-item { + display: flex; + align-items: center; + gap: var(--size-2-1); +} + +.status-badge-icon { + font-size: var(--font-ui-small); +} + +.status-badge-text { + font-weight: var(--font-medium); + font-size: var(--font-ui-small); +} + +/* Template variant */ +.template-status-chip { + display: inline-flex; + align-items: center; + gap: var(--size-2-1); + padding: var(--size-2-1) var(--size-2-3); + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m); + font-size: var(--font-ui-smaller); +} + +.template-status-color-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background-color: var(--dot-color); +} diff --git a/styles/components/status-file-info-popup.css b/styles/components/status-file-info-popup.css deleted file mode 100644 index 6e471f2..0000000 --- a/styles/components/status-file-info-popup.css +++ /dev/null @@ -1,154 +0,0 @@ -.status-info-popup { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 1000; - background: var(--background-primary); - border: var(--border-width) solid var(--background-modifier-border); - border-radius: var(--radius-l); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); - min-width: 280px; - max-width: 400px; - pointer-events: none; - overflow: hidden; - backdrop-filter: blur(8px); -} - -.status-popup-header { - background: linear-gradient( - 135deg, - var(--background-secondary) 0%, - var(--background-modifier-hover) 100% - ); - border-bottom: var(--border-width) solid var(--background-modifier-border); - padding: var(--size-4-2) var(--size-4-3); - font-weight: var(--font-weight-semibold); - color: var(--text-normal); - font-size: var(--font-ui-small); - display: flex; - align-items: center; - gap: var(--size-2-2); -} - -.status-header-icon { - font-size: var(--font-ui-medium); - opacity: 0.8; -} - -.status-popup-content { - padding: var(--size-4-2); - max-height: none; - overflow: visible; -} - -.status-popup-empty { - padding: var(--size-4-4) var(--size-4-3); - text-align: center; - color: var(--text-muted); - font-size: var(--font-ui-smaller); - background: var(--background-primary); - border: var(--border-width) solid var(--background-modifier-border); - border-radius: var(--radius-l); - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 1000; - pointer-events: none; - display: flex; - flex-direction: column; - align-items: center; - gap: var(--size-2-2); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); -} - -.status-empty-icon { - font-size: var(--font-ui-large); - opacity: 0.6; -} - -.status-group { - margin-bottom: var(--size-4-3); - background: var(--background-secondary); - border-radius: var(--radius-m); - border: var(--border-width) solid var(--background-modifier-border-hover); - overflow: hidden; -} - -.status-group:last-child { - margin-bottom: 0; -} - -.status-group-header { - padding: var(--size-2-3) var(--size-4-2); - background: linear-gradient( - 90deg, - var(--interactive-accent-hover) 0%, - var(--interactive-accent) 100% - ); - color: var(--text-on-accent); - font-size: var(--font-ui-smaller); - font-weight: var(--font-weight-medium); - display: flex; - align-items: center; - justify-content: space-between; - border-bottom: var(--border-width) solid var(--background-modifier-border); -} - -.status-group-name { - text-transform: capitalize; - letter-spacing: 0.3px; -} - -.status-group-count { - background: rgba(255, 255, 255, 0.2); - color: var(--text-on-accent); - font-size: var(--font-ui-smaller); - font-weight: var(--font-weight-semibold); - padding: var(--size-2-1) var(--size-2-3); - border-radius: var(--radius-s); - min-width: var(--size-4-3); - text-align: center; - backdrop-filter: blur(4px); -} - -.status-group-items { - padding: var(--size-2-3); - display: grid; - grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); - gap: var(--size-2-2); - background: var(--background-primary); -} - -.status-item { - display: flex; - flex-direction: column; - gap: var(--size-2-1); - padding: var(--size-2-2) var(--size-2-3); - background: var(--background-modifier-hover); - border-radius: var(--radius-s); - border: var(--border-width) solid var(--background-modifier-border); - transition: all 0.15s ease; - min-width: 0; -} - -.status-item:hover { - transform: translateY(-1px); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - border-color: var(--interactive-accent); -} - -.status-description { - color: var(--text-muted); - font-size: var(--font-ui-smaller); - line-height: 1.3; - background: var(--background-primary-alt); - padding: var(--size-2-1) var(--size-2-2); - border-radius: var(--radius-s); - border-left: 2px solid var(--interactive-accent); - font-style: italic; - opacity: 0.8; - word-wrap: break-word; - hyphens: auto; -} diff --git a/styles/components/status-file-popup.css b/styles/components/status-file-popup.css deleted file mode 100644 index b442224..0000000 --- a/styles/components/status-file-popup.css +++ /dev/null @@ -1,22 +0,0 @@ -.status-info-popup { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 1000; - background: var(--background-primary); - border: var(--border-width) solid var(--background-modifier-border); - border-radius: var(--radius-l); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); - min-width: 280px; - max-width: 400px; - pointer-events: none; - overflow: hidden; - backdrop-filter: blur(8px); -} - -.status-popup-content { - padding: var(--size-4-2); - max-height: none; - overflow: visible; -} diff --git a/styles/components/status-group.css b/styles/components/status-group.css deleted file mode 100644 index 31e6659..0000000 --- a/styles/components/status-group.css +++ /dev/null @@ -1,107 +0,0 @@ -/* Status Group Component - BEM Pattern */ -.status-group { - margin-bottom: var(--size-4-4); - background: var(--background-secondary); - border-radius: var(--radius-m); - border: var(--border-width) solid var(--background-modifier-border-hover); - overflow: hidden; - transition: all var(--anim-duration-fast) ease; -} - -.status-group:last-child { - margin-bottom: 0; -} - -.status-group:hover { - border-color: var(--interactive-accent); - transform: translateY(-1px); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); -} - -.status-group--collapsed { - overflow: hidden; -} - -.status-group--expanded { - overflow: visible; -} - -.status-group__header { - padding: var(--size-2-3) var(--size-4-2); - background: linear-gradient( - 90deg, - var(--interactive-accent-hover) 0%, - var(--interactive-accent) 100% - ); - color: var(--text-on-accent); - font-size: var(--font-ui-smaller); - font-weight: var(--font-weight-medium); - display: flex; - align-items: center; - justify-content: space-between; - border-bottom: var(--border-width) solid var(--background-modifier-border); - cursor: pointer; - transition: all var(--anim-duration-fast) ease; -} - -.status-group__header:hover { - background: linear-gradient( - 90deg, - var(--interactive-accent) 0%, - var(--interactive-accent-hover) 100% - ); -} - -.status-group__title { - text-transform: capitalize; - letter-spacing: 0.3px; - font-weight: var(--font-weight-semibold); -} - -.status-group__description { - font-size: var(--font-ui-smaller); - color: var(--text-muted); - margin-top: var(--size-2-1); - opacity: 0.8; - line-height: var(--line-height-tight); -} - -.status-group__count { - background: rgba(255, 255, 255, 0.2); - color: var(--text-on-accent); - font-size: var(--font-ui-smaller); - font-weight: var(--font-weight-semibold); - padding: var(--size-2-1) var(--size-2-3); - border-radius: var(--radius-s); - min-width: var(--size-4-3); - text-align: center; - backdrop-filter: blur(4px); -} - -.status-group__items { - padding: var(--size-2-3); - display: grid; - grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); - gap: var(--size-2-2); - background: var(--background-primary); -} - -.status-group__toggle { - background: none; - border: none; - color: var(--text-on-accent); - cursor: pointer; - font-size: var(--font-ui-medium); - padding: var(--size-2-1); - border-radius: var(--radius-s); - transition: all var(--anim-duration-fast) ease; -} - -.status-group__toggle:hover { - background: rgba(255, 255, 255, 0.1); - transform: scale(1.1); -} - -.status-group__toggle--expanded { - transform: rotate(180deg); -} diff --git a/styles/components/status-item.css b/styles/components/status-item.css deleted file mode 100644 index 28dc593..0000000 --- a/styles/components/status-item.css +++ /dev/null @@ -1,124 +0,0 @@ -/* Status Item Component - BEM Pattern */ -.status-item { - display: flex; - flex-direction: column; - gap: var(--size-2-1); - padding: var(--size-2-2) var(--size-2-3); - background: var(--background-modifier-hover); - border-radius: var(--radius-s); - border: var(--border-width) solid var(--background-modifier-border); - transition: all var(--anim-duration-fast) ease; - min-width: 0; - cursor: pointer; -} - -.status-item:hover { - transform: translateY(-1px); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - border-color: var(--interactive-accent); -} - -.status-item--active { - background: var(--interactive-accent); - color: var(--text-on-accent); - border-color: var(--interactive-accent); -} - -.status-item--disabled { - opacity: 0.6; - cursor: not-allowed; -} - -.status-item--disabled:hover { - transform: none; - box-shadow: none; - border-color: var(--background-modifier-border); -} - -.status-item__header { - display: flex; - align-items: center; - gap: var(--size-2-2); -} - -.status-item__icon { - font-size: var(--font-ui-medium); - flex-shrink: 0; - transition: all var(--anim-duration-fast) ease; -} - -.status-item__name { - font-size: var(--font-ui-small); - font-weight: var(--font-weight-medium); - color: var(--text-normal); - flex: 1; -} - -.status-item__description { - color: var(--text-muted); - font-size: var(--font-ui-smaller); - line-height: 1.3; - background: var(--background-primary-alt); - padding: var(--size-2-1) var(--size-2-2); - border-radius: var(--radius-s); - border-left: 2px solid var(--interactive-accent); - font-style: italic; - opacity: 0.8; - word-wrap: break-word; - hyphens: auto; -} - -.status-item__count { - background: var(--background-modifier-border); - color: var(--text-muted); - font-size: var(--font-ui-smaller); - font-weight: var(--font-weight-medium); - padding: var(--size-2-1) var(--size-2-2); - border-radius: var(--radius-s); - min-width: 16px; - text-align: center; -} - -.status-item__actions { - display: flex; - gap: var(--size-2-1); - margin-top: var(--size-2-1); -} - -.status-item__action { - background: transparent; - border: 1px solid var(--background-modifier-border); - border-radius: var(--radius-s); - padding: var(--size-2-1) var(--size-2-2); - color: var(--text-muted); - cursor: pointer; - transition: all var(--anim-duration-fast) ease; - font-size: var(--font-ui-smaller); -} - -.status-item__action:hover { - background: var(--background-modifier-active); - color: var(--text-normal); - border-color: var(--interactive-accent); -} - -.status-item__action--primary { - background: var(--interactive-accent); - color: var(--text-on-accent); - border-color: var(--interactive-accent); -} - -.status-item__action--primary:hover { - background: var(--interactive-accent-hover); - border-color: var(--interactive-accent-hover); -} - -.status-item__action--danger { - color: var(--text-error); - border-color: var(--background-modifier-error); -} - -.status-item__action--danger:hover { - background: var(--background-modifier-error-hover); - border-color: var(--text-error); -} diff --git a/styles/components/status-modal.css b/styles/components/status-modal.css deleted file mode 100644 index 121633d..0000000 --- a/styles/components/status-modal.css +++ /dev/null @@ -1,195 +0,0 @@ -/* Status Modal Component - BEM Pattern */ -.status-modal { - position: fixed; - left: 50%; - transform: translateX(-50%); - background: var(--background-primary); - border: var(--border-width) solid var(--background-modifier-border); - border-radius: var(--radius-l); - box-shadow: var(--shadow-l); - z-index: var(--layer-tooltip); - min-width: 280px; - max-width: 360px; - animation: statusModalIn 0.15s ease-out; - backdrop-filter: blur(8px); -} - -.status-modal--position-bottom { - top: calc(100% + 8px); -} - -.status-modal--position-top { - bottom: calc(100% + 8px); -} - -.status-modal__header { - display: flex; - justify-content: space-between; - align-items: center; - padding: var(--size-4-4) var(--size-4-4) var(--size-4-2) var(--size-4-4); - border-bottom: var(--border-width) solid var(--background-modifier-border); -} - -.status-modal__title { - font-size: var(--font-ui-medium); - font-weight: var(--font-semibold); - color: var(--text-normal); -} - -.status-modal__total { - background: var(--background-modifier-hover); - color: var(--text-muted); - font-size: var(--font-smallest); - font-weight: var(--font-medium); - padding: var(--size-2-1) var(--size-2-3); - border-radius: var(--radius-m); -} - -.status-modal__content { - padding: var(--size-4-2); - max-height: 400px; - overflow-y: auto; -} - -.status-modal__group { - margin-bottom: var(--size-4-4); -} - -.status-modal__group:last-child { - margin-bottom: 0; -} - -.status-modal__group-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: var(--size-2-3); -} - -.status-modal__group-name { - font-size: var(--font-ui-small); - font-weight: var(--font-semibold); - color: var(--text-normal); - text-transform: capitalize; -} - -.status-modal__group-count { - background: var(--background-modifier-hover); - color: var(--text-muted); - font-size: var(--font-smallest); - font-weight: var(--font-medium); - padding: var(--size-2-1) var(--size-2-2); - border-radius: var(--radius-s); - min-width: 16px; - text-align: center; -} - -.status-modal__item-list { - display: flex; - flex-direction: column; - gap: var(--size-2-2); -} - -.status-modal__item { - display: flex; - align-items: center; - gap: var(--size-4-2); - padding: var(--size-2-3) var(--size-4-2); - background: color-mix(in srgb, var(--item-color) 8%, transparent); - border: var(--border-width) solid - color-mix(in srgb, var(--item-color) 20%, transparent); - border-radius: var(--radius-s); - transition: all var(--anim-duration-fast) ease; - cursor: pointer; -} - -.status-modal__item:hover { - background: color-mix(in srgb, var(--item-color) 12%, transparent); - border-color: color-mix(in srgb, var(--item-color) 35%, transparent); - transform: translateX(2px); -} - -.status-modal__item-icon { - font-size: var(--font-ui-medium); - flex-shrink: 0; -} - -.status-modal__item-info { - display: flex; - flex-direction: column; - gap: var(--size-2-1); - min-width: 0; - flex: 1; -} - -.status-modal__item-name { - font-size: var(--font-ui-small); - font-weight: var(--font-medium); - color: var(--text-normal); -} - -.status-modal__item-description { - font-size: var(--font-smallest); - color: var(--text-muted); - line-height: var(--line-height-tight); -} - -.status-modal__arrow { - position: absolute; - left: 50%; - transform: translateX(-50%); - width: 10px; - height: 10px; - background: var(--background-primary); - border: var(--border-width) solid var(--background-modifier-border); - rotate: 45deg; -} - -.status-modal--position-bottom .status-modal__arrow { - top: -5px; - border-bottom: none; - border-right: none; -} - -.status-modal--position-top .status-modal__arrow { - bottom: -5px; - border-top: none; - border-left: none; -} - -.status-modal__empty { - padding: var(--size-4-4) var(--size-4-3); - text-align: center; - color: var(--text-muted); - font-size: var(--font-ui-smaller); - background: var(--background-primary); - border: var(--border-width) solid var(--background-modifier-border); - border-radius: var(--radius-l); - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 1000; - pointer-events: none; - display: flex; - flex-direction: column; - align-items: center; - gap: var(--size-2-2); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); -} - -.status-modal__empty-icon { - font-size: var(--font-ui-large); - opacity: 0.6; -} - -@keyframes statusModalIn { - from { - opacity: 0; - transform: translateX(-50%) scale(0.95); - } - to { - opacity: 1; - transform: translateX(-50%) scale(1); - } -} diff --git a/styles/components/template-item.css b/styles/components/template-item.css deleted file mode 100644 index 90883e1..0000000 --- a/styles/components/template-item.css +++ /dev/null @@ -1,37 +0,0 @@ -.template-item { - border: var(--border-width) solid var(--color-base-30); - border-radius: var(--radius-xl); - margin-bottom: var(--size-4-2); - padding: var(--size-4-3); - background: var(--background-primary-alt); - cursor: pointer; - transition: background-color 0.1s ease; -} - -.template-item:hover { - background: var(--background-modifier-hover); -} - -.template-item.enabled { - background: var(--background-modifier-success-hover); -} - -.template-item.enabled:hover { - background: var(--background-modifier-success); -} - -.template-header { - display: flex; - align-items: center; -} - -.template-checkbox { - pointer-events: none; -} - -.template-statuses { - margin-top: 7px; - display: flex; - flex-wrap: wrap; - gap: 5px; -} diff --git a/styles/components/template-status-chip.css b/styles/components/template-status-chip.css deleted file mode 100644 index ad3158a..0000000 --- a/styles/components/template-status-chip.css +++ /dev/null @@ -1,17 +0,0 @@ -.template-status-chip { - display: inline-flex; - align-items: center; - padding: 2px 8px; - border-radius: var(--radius-xl); - background: var(--background-secondary); - font-size: 0.85em; - border: 1px solid var(--color-base-30); - gap: 4px; -} -.template-status-color-dot { - display: inline-block; - width: 8px; - height: 8px; - border-radius: 50%; - background-color: var(--dot-color, --color-base-30); -} diff --git a/styles/globals.css b/styles/globals.css deleted file mode 100644 index 40d4828..0000000 --- a/styles/globals.css +++ /dev/null @@ -1,134 +0,0 @@ -/* Global utility classes */ -.status-plugin-hidden { - display: none !important; -} - -.status-plugin-visible { - display: block !important; -} - -.status-plugin-flex { - display: flex !important; -} - -.status-plugin-inline-flex { - display: inline-flex !important; -} - -.status-plugin-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.status-plugin-no-wrap { - white-space: nowrap; -} - -.status-plugin-loading { - opacity: 0.6; - pointer-events: none; -} - -.status-plugin-disabled { - opacity: 0.5; - cursor: not-allowed; - pointer-events: none; -} - -/* Animation keyframes */ -@keyframes statusFadeIn { - from { - opacity: 0; - transform: translateY(4px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes statusSlideIn { - from { - opacity: 0; - transform: scale(0.8) translateY(4px); - } - to { - opacity: 1; - transform: scale(1) translateY(0); - } -} - -@keyframes statusPulse { - 0%, - 100% { - opacity: 1; - } - 50% { - opacity: 0.5; - } -} - -@keyframes statusSpin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - -/* Responsive design utilities */ -@media (max-width: 768px) { - .status-plugin-mobile-hidden { - display: none !important; - } - - .status-plugin-mobile-full-width { - width: 100% !important; - } - - .status-plugin-mobile-stack { - flex-direction: column !important; - } -} - -/* Theme-specific overrides */ -.theme-dark { - --status-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3); - --status-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4); - --status-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.5); -} - -.theme-light { - --status-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1); - --status-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.15); - --status-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.2); -} - -/* Focus styles for accessibility */ -.status-plugin-focus-ring:focus { - outline: 2px solid var(--interactive-accent); - outline-offset: 2px; -} - -/* High contrast mode support */ -@media (prefers-contrast: high) { - .status-chip, - .status-badge, - .status-item, - .status-btn { - border-width: 2px; - } -} - -/* Reduced motion support */ -@media (prefers-reduced-motion: reduce) { - *, - *::before, - *::after { - animation-duration: 0.01ms !important; - animation-iteration-count: 1 !important; - transition-duration: 0.01ms !important; - } -} diff --git a/styles/index.css b/styles/index.css index 1cb860f..8370858 100644 --- a/styles/index.css +++ b/styles/index.css @@ -6,25 +6,11 @@ */ /* Import component stylesheets */ -@import "variables.css"; -@import "globals.css"; -@import "components/status-chip.css"; -@import "components/status-badge.css"; -@import "components/status-item.css"; -@import "components/status-button.css"; -@import "components/status-modal.css"; -@import "components/status-group.css"; -@import "components/template-status-chip.css"; -@import "components/template-item.css"; -@import "components/custom-status-item.css"; -@import "components/setting-item.css"; -@import "components/quick-commands-settings.css"; -@import "components/status-bar-enable-button.css"; -@import "components/status-bar-group.css"; @import "components/status-bar.css"; -@import "components/collapsible-counter.css"; +@import "components/settings.css"; +@import "components/dashboard.css"; +@import "components/grouped-view.css"; +@import "components/file-explorer.css"; @import "components/group-label.css"; -@import "components/file-explorer-icon.css"; -@import "components/status-file-info-popup.css"; -@import "components/grouped-status-view.css"; -@import "components/status-dashboard.css"; +@import "components/collapsible-counter.css"; +@import "components/status-display.css"; diff --git a/styles/variables.css b/styles/variables.css deleted file mode 100644 index a14b50d..0000000 --- a/styles/variables.css +++ /dev/null @@ -1,31 +0,0 @@ -:root { - /* Status color palette */ - --status-color-primary: var(--interactive-accent); - --status-color-success: var(--color-green); - --status-color-warning: var(--color-orange); - --status-color-error: var(--color-red); - --status-color-info: var(--color-blue); - --status-color-neutral: var(--color-base-60); - - /* Status spacing */ - --status-spacing-xs: 2px; - --status-spacing-sm: 4px; - --status-spacing-md: 8px; - --status-spacing-lg: 12px; - --status-spacing-xl: 16px; - - /* Status borders */ - --status-border-radius: var(--radius-s); - --status-border-width: 1px; - --status-border-color: var(--background-modifier-border); - - /* Status shadows */ - --status-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1); - --status-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.15); - --status-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.2); - - /* Status animations */ - --status-transition-fast: all 0.15s ease; - --status-transition-normal: all 0.2s ease; - --status-transition-slow: all 0.3s ease; -}