devonthesofa_obsidian-note-.../styles/components/settings.css
2025-11-21 08:39:40 +01:00

574 lines
12 KiB
CSS

/* ==========================================================================
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);
}
/* Custom Status Item - BEM Methodology */
.custom-status-item {
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
padding: var(--size-4-3);
margin-bottom: var(--size-4-2);
transition: all var(--anim-duration-fast) ease;
}
.custom-status-item:hover {
border-color: var(--interactive-hover);
}
.custom-status-item__row {
display: flex;
align-items: end;
gap: var(--size-4-2);
margin-bottom: var(--size-4-2);
}
.custom-status-item__row--icons {
align-items: stretch;
flex-wrap: wrap;
}
.custom-status-item__field {
display: flex;
flex-direction: column;
gap: var(--size-2-1);
}
.custom-status-item__field--icon,
.custom-status-item__field--lucide {
flex: 1;
min-width: 240px;
}
.custom-status-item__field--name {
flex: 2;
min-width: 120px;
}
.custom-status-item__field--description {
flex: 2;
min-width: 120px;
}
.custom-status-item__field--color {
flex: 0 0 auto;
}
.custom-status-item__field--reorder {
flex: 0 0 auto;
padding-top: var(--size-4-1);
}
.custom-status-item__field--actions {
flex: 0 0 auto;
padding-top: var(--size-4-1);
}
.custom-status-item__label {
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
color: var(--text-muted);
margin-bottom: var(--size-2-1);
}
.custom-status-item__label--required {
color: var(--text-error);
}
.custom-status-item__input {
/* Base input styles handled by Input component */
}
.custom-status-item__input--icon {
width: 100% !important;
text-align: left;
font-size: 1em;
}
.custom-status-item__hint {
margin: 0;
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.custom-status-item__input--name {
font-weight: var(--font-medium);
}
.custom-status-item__input--name.custom-status-item__input--invalid {
border-color: var(--text-error) !important;
background: var(--background-modifier-error) !important;
}
.custom-status-item__input--description {
color: var(--text-muted);
}
.custom-status-item__input--color {
width: 40px !important;
height: 32px !important;
border-radius: var(--radius-s);
cursor: pointer;
border: 2px solid var(--background-modifier-border) !important;
}
.custom-status-item__input--color:hover {
border-color: var(--interactive-hover) !important;
}
.custom-status-item__remove-btn {
width: 32px;
height: 32px;
border-radius: var(--radius-s);
background: var(--background-modifier-error);
color: var(--text-on-accent);
border: none;
cursor: pointer;
font-size: 18px;
font-weight: bold;
transition: all var(--anim-duration-fast) ease;
}
.custom-status-item__remove-btn:hover {
background: var(--text-error);
transform: scale(1.05);
}
.custom-status-item__reorder-buttons {
display: flex;
flex-direction: column;
gap: 2px;
}
.custom-status-item__reorder-btn {
width: 24px;
height: 24px;
border-radius: var(--radius-s);
background: var(--background-modifier-border);
color: var(--text-normal);
border: none;
cursor: pointer;
font-size: 12px;
font-weight: bold;
transition: all var(--anim-duration-fast) ease;
display: flex;
align-items: center;
justify-content: center;
line-height: 1;
}
.custom-status-item__reorder-btn:hover:not(:disabled) {
background: var(--interactive-hover);
transform: scale(1.05);
}
.custom-status-item__reorder-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.custom-status-item__preview {
display: flex;
align-items: center;
gap: var(--size-2-2);
padding: var(--size-2-3) var(--size-4-2);
background: var(--background-primary-alt);
border-radius: var(--radius-s);
border-left: 3px solid var(--background-modifier-border);
font-size: var(--font-ui-small);
}
.custom-status-item__preview-icon {
font-size: 1.1em;
min-width: 20px;
text-align: center;
}
.custom-status-item__preview-text {
font-weight: var(--font-medium);
}
.custom-status-item__preview-desc {
color: var(--text-muted);
font-style: italic;
}
.custom-status-item__preview-desc::before {
content: "— ";
}
.custom-status-item__error {
color: var(--text-error);
font-size: var(--font-ui-smaller);
margin-top: var(--size-2-1);
padding: var(--size-2-1) var(--size-2-2);
background: var(--background-modifier-error);
border-radius: var(--radius-s);
border-left: 3px solid var(--text-error);
}
.lucide-icon-picker {
position: relative;
display: flex;
flex-direction: column;
gap: var(--size-2-1);
}
.lucide-icon-picker__text-input {
max-width: 220px;
}
.lucide-icon-picker__actions {
display: flex;
gap: var(--size-2-1);
align-items: center;
}
.lucide-icon-picker__trigger {
display: inline-flex;
align-items: center;
gap: var(--size-2-1);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
padding: var(--size-2-1) var(--size-4-1);
background: var(--background-secondary);
cursor: pointer;
transition:
border var(--anim-duration-fast) ease,
background var(--anim-duration-fast) ease;
min-width: 220px;
justify-content: space-between;
}
.lucide-icon-picker__trigger.is-active {
border-color: var(--interactive-accent);
}
.lucide-icon-picker__trigger-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
}
.lucide-icon-picker__trigger-label {
flex: 1;
text-align: left;
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.lucide-icon-picker__clear-trigger {
background: transparent;
border: none;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
cursor: pointer;
padding: var(--size-2-1) var(--size-2-2);
}
.lucide-icon-picker__clear-trigger:hover {
color: var(--text-normal);
text-decoration: underline;
}
.lucide-icon-picker__popover {
position: absolute;
top: calc(100% + 4px);
left: 0;
width: min(320px, 90vw);
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
box-shadow: var(--shadow-l);
padding: var(--size-2-2);
z-index: var(--layer-popover);
display: flex;
flex-direction: column;
gap: var(--size-2-1);
}
.lucide-icon-picker__search {
width: 100%;
}
.lucide-icon-picker__count {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.lucide-icon-picker__options {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
gap: var(--size-2-1);
max-height: 280px;
overflow-y: auto;
padding-right: var(--size-2-1);
}
.lucide-icon-picker__option {
display: flex;
align-items: center;
gap: var(--size-2-1);
padding: var(--size-2-1);
border-radius: var(--radius-s);
border: 1px solid transparent;
cursor: pointer;
font-size: var(--font-ui-smaller);
background: var(--background-secondary);
}
.lucide-icon-picker__option:hover {
background: var(--background-modifier-hover);
}
.lucide-icon-picker__option--selected {
border-color: var(--interactive-accent);
background: var(--background-modifier-success);
}
.lucide-icon-picker__empty {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
padding: var(--size-2-2);
text-align: center;
}
/* Custom Status List - BEM */
.custom-status-list {
/* Container for multiple custom status items */
}
.custom-status-list__empty {
text-align: center;
padding: var(--size-4-4) var(--size-4-2);
color: var(--text-muted);
font-style: italic;
border: 2px dashed var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-primary-alt);
}
.custom-status-list__empty p {
margin: 0;
}
/* Status Group for Quick Commands */
.status-group {
margin-bottom: var(--size-4-4);
padding: var(--size-4-3);
background: var(--background-primary-alt);
border-radius: var(--radius-m);
border: 1px solid var(--background-modifier-border);
}
.status-group__header {
margin-bottom: var(--size-4-2);
padding-bottom: var(--size-2-2);
border-bottom: 1px solid var(--background-modifier-border);
}
.status-group__title {
font-weight: var(--font-semibold);
color: var(--text-normal);
font-size: var(--font-ui-medium);
}
.status-group__description {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
margin-top: var(--size-2-1);
line-height: var(--line-height-tight);
}
.status-group__items {
display: flex;
flex-direction: column;
gap: var(--size-2-2);
}
/* Status Selector for Quick Commands */
.status-selector {
display: flex;
align-items: center;
justify-content: space-between;
padding: var(--size-2-3) var(--size-4-2);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-primary);
cursor: pointer;
transition: all var(--anim-duration-fast) ease;
position: relative;
}
.status-selector:hover {
background: var(--background-modifier-hover);
border-color: var(--background-modifier-border-hover);
}
.status-selector--selected {
background: var(--background-modifier-success);
border-color: var(--interactive-success);
}
.status-selector--selected:hover {
background: var(--background-modifier-success-hover);
}
.status-selector__content {
flex: 1;
min-width: 0;
}
.status-selector__status {
display: flex;
align-items: center;
gap: var(--size-2-2);
margin-bottom: var(--size-2-1);
}
.status-selector__icon {
font-size: var(--font-ui-medium);
width: var(--size-4-3);
text-align: center;
flex-shrink: 0;
}
.status-selector__name {
font-weight: var(--font-medium);
color: var(--text-normal);
}
.status-selector__description {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
line-height: var(--line-height-tight);
}
.status-selector__checkbox {
margin-left: var(--size-4-2);
pointer-events: none;
flex-shrink: 0;
}
/* 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 */
align-items: stretch;
}
.note-status-option .selectable-list-item-icon {
display: flex;
align-items: center;
justify-content: center;
}
.note-status-option__icon-wrapper {
display: inline-flex;
align-items: center;
justify-content: center;
padding: var(--size-2-1);
border-radius: var(--radius-m);
border: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
min-width: 36px;
transition:
border-color var(--anim-duration-fast) ease,
background var(--anim-duration-fast) ease;
}
.note-status-option:hover .note-status-option__icon-wrapper,
.note-status-option.selectable-list-item[data-selected="true"]
.note-status-option__icon-wrapper {
border-color: var(--interactive-accent);
background: var(--background-modifier-hover);
}
.note-status-option__text {
display: flex;
flex-direction: column;
gap: 2px;
}
.note-status-option__name {
font-weight: var(--font-medium);
color: var(--text-normal);
}
.note-status-option__description {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.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);
}