callumalpass_tasknotes/styles/reminder-modal.css
2026-06-25 21:34:18 +10:00

849 lines
23 KiB
CSS

/* =====================================================================
REMINDER MODAL - Consistent with Task Modal Styling
===================================================================== */
.tasknotes-plugin .tasknotes-reminder-modal {
max-width: 600px;
min-width: 480px;
min-height: 400px;
max-height: 75vh;
display: flex;
flex-direction: column;
border-radius: var(--radius-l);
box-shadow: var(--shadow-l);
}
/* =====================================================================
HEADER SECTION
===================================================================== */
.tasknotes-plugin .reminder-modal__header {
padding: var(--size-4-4) var(--size-4-4) var(--size-4-3);
border-bottom: 1px solid var(--background-modifier-border);
}
.tasknotes-plugin .reminder-modal__header h2 {
margin: 0 0 var(--size-4-1) 0;
font-size: var(--font-ui-large);
font-weight: 600;
color: var(--text-normal);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.tasknotes-plugin .reminder-modal__task-title {
font-size: var(--font-ui-medium);
font-weight: 500;
color: var(--interactive-accent);
display: block;
margin-bottom: var(--size-4-1);
overflow-wrap: anywhere;
}
.tasknotes-plugin .reminder-modal__task-dates {
font-size: var(--font-ui-small);
color: var(--text-muted);
font-style: italic;
}
/* =====================================================================
CONTENT AREA
===================================================================== */
.tasknotes-plugin .reminder-modal__content {
flex: 1;
padding: var(--size-4-4);
overflow-y: auto;
display: flex;
flex-direction: column;
gap: var(--size-4-3);
}
/* Section Styling - Match Task Modal Details */
.tasknotes-plugin .reminder-modal__section {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
}
.tasknotes-plugin .reminder-modal__section-header {
display: flex;
align-items: center;
gap: var(--size-4-2);
}
.tasknotes-plugin .reminder-modal__section-header h3 {
margin: 0;
font-size: var(--font-ui-small);
font-weight: 600;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.tasknotes-plugin .reminder-modal__reminder-count {
font-size: var(--font-ui-small);
color: var(--text-muted);
font-weight: 400;
}
/* Empty State - Match Task Modal Secondary Background */
.tasknotes-plugin .reminder-modal__empty-state {
display: flex;
flex-direction: column;
align-items: center;
padding: var(--size-4-3);
text-align: center;
background: var(--background-secondary);
border-radius: var(--radius-s);
border: 1px dashed var(--background-modifier-border);
}
.tasknotes-plugin .reminder-modal__empty-icon {
width: 24px;
height: 24px;
color: var(--text-faint);
margin-bottom: var(--size-4-2);
}
.tasknotes-plugin .reminder-modal__empty-text {
font-size: var(--font-ui-small);
color: var(--text-muted);
font-weight: 500;
}
/* =====================================================================
REMINDER CARDS - Match Task Modal Item Styling
===================================================================== */
.tasknotes-plugin .reminder-modal__reminder-list {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
}
.tasknotes-plugin .reminder-modal__reminder-card {
display: flex;
align-items: center;
gap: var(--size-4-2);
padding: var(--size-4-2);
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
transition: background-color 0.2s ease, border-color 0.2s ease;
}
.tasknotes-plugin .reminder-modal__reminder-card:hover {
border-color: var(--interactive-accent);
background: var(--background-primary);
}
.tasknotes-plugin .reminder-modal__reminder-icon {
width: 16px;
height: 16px;
color: var(--interactive-accent);
flex-shrink: 0;
}
.tasknotes-plugin .reminder-modal__reminder-content {
flex: 1;
display: flex;
flex-direction: column;
gap: var(--size-4-1);
}
.tasknotes-plugin .reminder-modal__reminder-primary {
font-weight: 500;
color: var(--text-normal);
font-size: var(--font-ui-medium);
}
.tasknotes-plugin .reminder-modal__reminder-description {
font-size: var(--font-ui-small);
color: var(--interactive-accent);
font-style: italic;
}
.tasknotes-plugin .reminder-modal__reminder-actions {
display: flex;
flex-shrink: 0;
}
.tasknotes-plugin .reminder-modal__action-btn {
padding: var(--size-4-1);
background: transparent;
border: none;
cursor: pointer;
color: var(--text-muted);
transition: background-color 0.2s ease, color 0.2s ease;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--radius-s);
}
.tasknotes-plugin .reminder-modal__action-btn:hover {
color: var(--text-error);
background: var(--background-modifier-hover);
}
body.is-mobile .tasknotes-plugin .reminder-modal__reminder-actions {
align-self: stretch;
align-items: center;
}
body.is-mobile .tasknotes-plugin .reminder-modal__action-btn {
width: 44px;
height: 44px;
color: var(--text-error);
}
body.is-mobile .tasknotes-plugin .reminder-modal__action-btn svg {
width: 18px;
height: 18px;
}
/* =====================================================================
QUICK ACTIONS - Icon-Based Controls Like Task Modal
===================================================================== */
.tasknotes-plugin .reminder-modal__quick-actions {
padding: var(--size-4-2);
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
margin-bottom: var(--size-4-3);
}
.tasknotes-plugin .reminder-modal__quick-buttons {
display: flex;
gap: var(--size-4-1);
justify-content: space-between;
}
.tasknotes-plugin .reminder-modal__quick-btn {
display: flex;
align-items: center;
justify-content: center;
gap: var(--size-4-1);
padding: var(--size-4-1) var(--size-4-2);
background: transparent;
border: none;
cursor: pointer;
transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
font-size: var(--font-ui-small);
color: var(--text-muted);
flex: 1;
min-width: 0;
border-radius: var(--radius-s);
}
.tasknotes-plugin .reminder-modal__quick-btn:hover {
background: var(--background-modifier-hover);
color: var(--text-normal);
transform: translateY(-1px);
}
.tasknotes-plugin .reminder-modal__quick-btn-icon {
width: 14px;
height: 14px;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
}
.tasknotes-plugin .reminder-modal__quick-btn-label {
font-weight: 500;
}
/* =====================================================================
FORM STYLING - Match Task Modal Input Styles
===================================================================== */
.tasknotes-plugin .reminder-modal__form {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: var(--size-4-3);
margin-top: var(--size-4-2);
}
.tasknotes-plugin .reminder-modal__type-selector {
display: flex;
background: var(--background-primary);
border-radius: var(--radius-s);
padding: 2px;
border: 1px solid var(--background-modifier-border);
}
.tasknotes-plugin .reminder-modal__type-tab {
flex: 1;
padding: var(--size-4-1) var(--size-4-3);
background: transparent;
border: none;
border-radius: var(--radius-s);
cursor: pointer;
font-weight: 500;
color: var(--text-muted);
transition: background-color 0.2s ease, color 0.2s ease;
text-align: center;
font-size: var(--font-ui-small);
display: flex;
align-items: center;
justify-content: center;
}
.tasknotes-plugin .reminder-modal__type-tab--active {
background: var(--interactive-accent);
color: var(--text-on-accent);
}
.tasknotes-plugin .reminder-modal__type-tab:not(.reminder-modal__type-tab--active):hover {
background: var(--background-modifier-hover);
color: var(--text-normal);
}
.tasknotes-plugin .relative-fields,
.tasknotes-plugin .absolute-fields {
padding: var(--size-4-2);
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
display: flex;
flex-direction: column;
gap: var(--size-4-2);
margin-top: var(--size-4-2);
}
.tasknotes-plugin .relative-fields.reminder-modal__fields--hidden,
.tasknotes-plugin .absolute-fields.reminder-modal__fields--hidden {
display: none;
}
/* Form controls - Match Task Modal Details Section */
.tasknotes-plugin .reminder-modal__form .setting-item {
padding: var(--size-4-2) 0;
border: none;
}
.tasknotes-plugin .reminder-modal__form .setting-item-name {
font-size: var(--font-ui-small);
font-weight: 600;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.tasknotes-plugin .reminder-modal__form .setting-item-control input,
.tasknotes-plugin .reminder-modal__form .setting-item-control select {
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: var(--size-4-1) var(--size-4-2);
font-size: var(--font-ui-medium);
transition: background-color 0.2s ease, border-color 0.2s ease;
}
.tasknotes-plugin .reminder-modal__form .setting-item-control input:focus,
.tasknotes-plugin .reminder-modal__form .setting-item-control select:focus {
border-color: var(--interactive-accent);
background: var(--background-primary);
outline: none;
}
.tasknotes-plugin .reminder-add-btn {
align-self: flex-start;
padding: var(--size-4-2) var(--size-4-3);
background: var(--tn-interactive-accent, var(--interactive-accent));
color: var(--text-on-accent);
border: none;
cursor: pointer;
font-weight: 500;
font-size: var(--font-ui-medium);
transition: background-color 0.2s ease, opacity 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
gap: var(--size-4-1);
border-radius: var(--radius-s);
min-width: 80px;
}
.tasknotes-plugin .reminder-add-btn:hover {
background: var(--tn-interactive-accent-hover, var(--interactive-accent-hover));
box-shadow: none;
}
.tasknotes-plugin .reminder-add-btn:disabled,
.tasknotes-plugin .reminder-add-btn--loading {
opacity: 0.6;
cursor: not-allowed;
}
.tasknotes-plugin .reminder-add-btn--loading .reminder-add-btn-icon {
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
/* =====================================================================
ACTION BUTTONS - Match Task Modal Button Container
===================================================================== */
.tasknotes-plugin .reminder-modal__actions {
display: flex;
justify-content: flex-end;
align-items: center;
gap: var(--size-4-2);
margin-top: var(--size-4-4);
padding: var(--size-4-3) var(--size-4-4);
border-top: 1px solid var(--background-modifier-border);
}
.tasknotes-plugin .reminder-modal__save-btn,
.tasknotes-plugin .reminder-modal__cancel-btn {
padding: var(--size-4-2) var(--size-4-3);
font-weight: 500;
font-size: var(--font-ui-medium);
cursor: pointer;
transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
border: none;
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--radius-s);
min-width: 80px;
}
.tasknotes-plugin .reminder-modal__save-btn {
background: var(--tn-interactive-accent, var(--interactive-accent));
color: var(--text-on-accent);
box-shadow: none;
}
.tasknotes-plugin .reminder-modal__save-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
background: var(--background-modifier-border);
color: var(--text-muted);
}
.tasknotes-plugin .reminder-modal__save-btn:not(:disabled):hover {
background: var(--tn-interactive-accent-hover, var(--interactive-accent-hover));
box-shadow: none;
}
.tasknotes-plugin .reminder-modal__cancel-btn {
background: transparent;
color: var(--text-muted);
box-shadow: none;
}
.tasknotes-plugin .reminder-modal__cancel-btn:hover {
background: var(--tn-interactive-hover, var(--background-modifier-hover));
box-shadow: none;
}
/* =====================================================================
RESPONSIVE DESIGN - Match Task Modal Breakpoints
===================================================================== */
@media (max-width: 600px) {
.tasknotes-plugin .tasknotes-reminder-modal {
min-width: 90vw;
max-width: 90vw;
min-height: 60vh;
max-height: 90vh;
}
.tasknotes-plugin .reminder-modal__header,
.tasknotes-plugin .reminder-modal__content,
.tasknotes-plugin .reminder-modal__actions {
padding-left: var(--size-4-3);
padding-right: var(--size-4-3);
}
.tasknotes-plugin .reminder-modal__quick-buttons {
flex-wrap: wrap;
gap: var(--size-4-2);
}
.tasknotes-plugin .reminder-modal__actions {
flex-direction: column;
gap: var(--size-4-2);
}
.tasknotes-plugin .reminder-modal__save-btn,
.tasknotes-plugin .reminder-modal__cancel-btn {
width: 100%;
}
.tasknotes-plugin .reminder-modal__shortcuts {
order: -1;
}
}
/* =====================================================================
DARK MODE ADJUSTMENTS - Match Task Modal
===================================================================== */
.theme-dark .tasknotes-plugin .tasknotes-reminder-modal {
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}
/* =====================================================================
BACKWARD COMPATIBILITY
===================================================================== */
.reminder-section {
margin-bottom: var(--size-4-6);
}
.reminder-section h3 {
margin-bottom: var(--size-4-3);
color: var(--text-normal);
font-size: var(--font-size-md);
font-weight: var(--font-weight-semibold);
}
.no-reminders {
padding: var(--size-4-4);
text-align: center;
color: var(--text-muted);
font-style: italic;
background: var(--background-secondary);
border-radius: var(--radius-m);
}
.reminder-list {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
}
.reminder-item {
display: flex;
align-items: flex-start;
gap: var(--size-4-3);
padding: var(--size-4-3);
background: var(--background-secondary);
border-radius: var(--radius-m);
border: 1px solid var(--border-color);
}
.reminder-item__content {
flex: 1;
}
.reminder-item__timing {
font-weight: var(--font-weight-semibold);
color: var(--text-normal);
margin-bottom: var(--size-4-1);
}
.reminder-item__description {
font-size: var(--font-size-sm);
color: var(--text-accent);
margin-bottom: var(--size-4-1);
font-style: italic;
}
.reminder-item__details {
font-size: var(--font-size-xs);
color: var(--text-muted);
}
.reminder-item__actions {
display: flex;
gap: var(--size-4-1);
}
.reminder-item__remove-btn {
padding: var(--size-4-1);
background: transparent;
border: none;
cursor: pointer;
color: var(--text-muted);
border-radius: var(--radius-s);
transition: background-color 0.2s ease, color 0.2s ease;
}
.reminder-item__remove-btn:hover {
background: var(--background-modifier-error);
color: var(--text-error);
}
.reminder-form {
padding: var(--size-4-4);
background: var(--background-secondary);
border-radius: var(--radius-m);
border: 1px solid var(--border-color);
}
/* =====================================================================
REMINDER DEFAULTS SECTION - Settings Tab Styling
===================================================================== */
.tasknotes-plugin .reminder-defaults-section {
margin-bottom: var(--size-4-4);
padding: var(--size-4-3);
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
}
.tasknotes-plugin .reminder-defaults-list {
margin-bottom: var(--size-4-3);
}
/* Empty State */
.tasknotes-plugin .reminder-defaults-empty {
display: flex;
flex-direction: column;
align-items: center;
padding: var(--size-4-3);
text-align: center;
background: var(--background-primary);
border-radius: var(--radius-s);
border: 1px dashed var(--background-modifier-border);
}
.tasknotes-plugin .reminder-defaults-empty-icon {
width: 24px;
height: 24px;
color: var(--text-faint);
margin-bottom: var(--size-4-2);
}
.tasknotes-plugin .reminder-defaults-empty-text {
font-size: var(--font-ui-small);
color: var(--text-muted);
font-weight: 500;
}
/* Reminder Items */
.tasknotes-plugin .reminder-defaults-items {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
}
.tasknotes-plugin .reminder-defaults-card {
display: flex;
align-items: center;
gap: var(--size-4-2);
padding: var(--size-4-2);
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
transition: background-color 0.2s ease, border-color 0.2s ease;
}
.tasknotes-plugin .reminder-defaults-card:hover {
border-color: var(--interactive-accent);
background: var(--background-secondary);
}
.tasknotes-plugin .reminder-defaults-icon {
width: 16px;
height: 16px;
color: var(--interactive-accent);
flex-shrink: 0;
}
.tasknotes-plugin .reminder-defaults-content {
flex: 1;
display: flex;
flex-direction: column;
gap: var(--size-4-1);
}
.tasknotes-plugin .reminder-defaults-primary {
font-weight: 500;
color: var(--text-normal);
font-size: var(--font-ui-medium);
}
.tasknotes-plugin .reminder-defaults-description {
font-size: var(--font-ui-small);
color: var(--interactive-accent);
font-style: italic;
}
.tasknotes-plugin .reminder-defaults-actions {
display: flex;
flex-shrink: 0;
}
.tasknotes-plugin .reminder-defaults-remove-btn {
padding: var(--size-4-1);
background: transparent;
border: none;
cursor: pointer;
color: var(--text-muted);
transition: background-color 0.2s ease, color 0.2s ease;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--radius-s);
}
.tasknotes-plugin .reminder-defaults-remove-btn:hover {
color: var(--text-error);
background: var(--background-modifier-hover);
}
/* Form Styling */
.tasknotes-plugin .reminder-defaults-form {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: var(--size-4-3);
margin-top: var(--size-4-3);
}
.tasknotes-plugin .reminder-defaults-form-header {
margin: 0 0 var(--size-4-2) 0;
font-size: var(--font-ui-small);
font-weight: 600;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
}
/* Type Selector */
.tasknotes-plugin .reminder-defaults-type-selector {
display: flex;
background: var(--background-secondary);
border-radius: var(--radius-s);
padding: 2px;
border: 1px solid var(--background-modifier-border);
margin-bottom: var(--size-4-2);
}
.tasknotes-plugin .reminder-defaults-type-tab {
flex: 1;
padding: var(--size-4-1) var(--size-4-3);
background: transparent;
border: none;
border-radius: var(--radius-s);
cursor: pointer;
font-weight: 500;
color: var(--text-muted);
transition: background-color 0.2s ease, color 0.2s ease;
text-align: center;
font-size: var(--font-ui-small);
display: flex;
align-items: center;
justify-content: center;
}
.tasknotes-plugin .reminder-defaults-type-tab--active {
background: var(--interactive-accent);
color: var(--text-on-accent);
}
.tasknotes-plugin .reminder-defaults-type-tab:not(.reminder-defaults-type-tab--active):hover {
background: var(--background-modifier-hover);
color: var(--text-normal);
}
/* Form Fields */
.tasknotes-plugin .reminder-defaults-relative-fields,
.tasknotes-plugin .reminder-defaults-absolute-fields {
padding: var(--size-4-2);
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
display: flex;
flex-direction: column;
gap: var(--size-4-2);
margin-bottom: var(--size-4-2);
}
.tasknotes-plugin .reminder-defaults-absolute-fields {
display: none;
}
/* Form controls - Match Task Modal Details Section */
.tasknotes-plugin .reminder-defaults-form .setting-item {
padding: var(--size-4-2) 0;
border: none;
}
.tasknotes-plugin .reminder-defaults-form .setting-item-name {
font-size: var(--font-ui-small);
font-weight: 600;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.tasknotes-plugin .reminder-defaults-form .setting-item-control input,
.tasknotes-plugin .reminder-defaults-form .setting-item-control select {
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: var(--size-4-1) var(--size-4-2);
font-size: var(--font-ui-medium);
transition: background-color 0.2s ease, border-color 0.2s ease;
}
.tasknotes-plugin .reminder-defaults-form .setting-item-control input:focus,
.tasknotes-plugin .reminder-defaults-form .setting-item-control select:focus {
border-color: var(--interactive-accent);
background: var(--background-secondary);
outline: none;
}
/* Add Button */
.tasknotes-plugin .reminder-defaults-add-btn {
align-self: flex-start;
padding: var(--size-4-2) var(--size-4-3);
background: var(--tn-interactive-accent, var(--interactive-accent));
color: var(--text-on-accent);
border: none;
cursor: pointer;
font-weight: 500;
font-size: var(--font-ui-medium);
transition: background-color 0.2s ease, opacity 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
gap: var(--size-4-1);
border-radius: var(--radius-s);
min-width: 120px;
}
.tasknotes-plugin .reminder-defaults-add-btn:hover {
background: var(--tn-interactive-accent-hover, var(--interactive-accent-hover));
box-shadow: none;
}
.tasknotes-plugin .reminder-defaults-add-btn:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.tasknotes-plugin .reminder-defaults-add-icon {
width: 16px;
height: 16px;
flex-shrink: 0;
}
.tasknotes-plugin .reminder-defaults-add-text {
font-weight: 500;
}