Settle on one visual language
The interface had drifted into two of everything. The calendar and its popovers were built around a blue accent the rest of the app had long since replaced with green, five different sizes served the same class of small label, and page sections were a stack of identical bordered cards that gave no sense of what mattered most. Sections now separate by space and a hairline, the overview leads with its headline figure at a size that says so, and the palette, type scale and spacing live in one place as variables rather than scattered literals. Two things were not styled at all. The sign-in screen was an unstyled form in the top-left corner, and the tip cards had no rules whatsoever despite their markup already carrying a severity, so every tip rendered identically with a plain green square for its dismiss control. The calendar was also unusable on a narrow screen: the preset rail never collapsed and covered the last three columns of the grid.
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
background-color: var(--overlay);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -12,9 +12,9 @@
|
||||
}
|
||||
|
||||
.period-popover__content {
|
||||
background-color: #fff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
||||
background-color: var(--c-surface);
|
||||
border-radius: var(--radius);
|
||||
box-shadow: var(--shadow-md);
|
||||
max-width: 480px;
|
||||
width: 90%;
|
||||
max-height: 80vh;
|
||||
@@ -25,166 +25,186 @@
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
padding: var(--sp-5);
|
||||
border-bottom: 1px solid var(--c-border);
|
||||
}
|
||||
|
||||
.period-popover__header h2 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
font-size: var(--fs-xl);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.period-popover__close {
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 28px;
|
||||
font-size: var(--fs-xl);
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
color: #666;
|
||||
color: var(--c-text-muted);
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.period-popover__close:hover {
|
||||
color: #000;
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.period-popover__close:focus-visible {
|
||||
outline: 2px solid var(--c-accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.period-popover__body {
|
||||
padding: 20px;
|
||||
padding: var(--sp-5);
|
||||
}
|
||||
|
||||
.period-popover__error {
|
||||
background-color: #ffebee;
|
||||
color: #c62828;
|
||||
padding: 12px;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 16px;
|
||||
font-size: 14px;
|
||||
background-color: var(--c-danger-weak);
|
||||
color: var(--c-danger);
|
||||
padding: var(--sp-3);
|
||||
border-radius: var(--radius-sm);
|
||||
margin-bottom: var(--sp-4);
|
||||
font-size: var(--fs-sm);
|
||||
}
|
||||
|
||||
.period-popover__adhoc-notice {
|
||||
font-size: 13px;
|
||||
color: #666;
|
||||
margin: 0 0 12px 0;
|
||||
font-size: var(--fs-sm);
|
||||
color: var(--c-text-muted);
|
||||
margin: 0 0 var(--sp-3) 0;
|
||||
}
|
||||
|
||||
.period-popover__date-range {
|
||||
font-size: 15px;
|
||||
font-size: var(--fs-base);
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.period-popover__field {
|
||||
margin-bottom: 16px;
|
||||
margin-bottom: var(--sp-4);
|
||||
}
|
||||
|
||||
.period-popover__label {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-size: var(--fs-sm);
|
||||
font-weight: 500;
|
||||
margin-bottom: 6px;
|
||||
color: #333;
|
||||
margin-bottom: var(--sp-2);
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.period-popover__input,
|
||||
.period-popover__select {
|
||||
width: 100%;
|
||||
padding: 8px 10px;
|
||||
border: 1px solid #d0d0d0;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
background-color: #fff;
|
||||
padding: var(--sp-2) var(--sp-3);
|
||||
border: 1px solid var(--c-border);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: var(--fs-sm);
|
||||
background-color: var(--c-surface);
|
||||
}
|
||||
|
||||
.period-popover__input:focus,
|
||||
.period-popover__select:focus {
|
||||
outline: none;
|
||||
border-color: var(--c-accent);
|
||||
box-shadow: 0 0 0 3px var(--c-accent-weak);
|
||||
}
|
||||
|
||||
.period-popover__input:disabled,
|
||||
.period-popover__select:disabled {
|
||||
background-color: #f5f5f5;
|
||||
background-color: var(--c-bg);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.period-popover__fieldset {
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0 0 16px 0;
|
||||
margin: 0 0 var(--sp-4) 0;
|
||||
}
|
||||
|
||||
.period-popover__radio-label,
|
||||
.period-popover__checkbox-label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
font-size: var(--fs-sm);
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
margin-bottom: 8px;
|
||||
margin-bottom: var(--sp-2);
|
||||
}
|
||||
|
||||
.period-popover__radio-label input,
|
||||
.period-popover__checkbox-label input {
|
||||
margin-right: 8px;
|
||||
margin-right: var(--sp-2);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.period-popover__footer {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
gap: var(--sp-2);
|
||||
justify-content: flex-end;
|
||||
padding: 16px 20px;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
background-color: #fafafa;
|
||||
padding: var(--sp-4) var(--sp-5);
|
||||
border-top: 1px solid var(--c-border);
|
||||
background-color: var(--c-bg);
|
||||
}
|
||||
|
||||
.period-popover__button {
|
||||
padding: 8px 16px;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
padding: var(--sp-2) var(--sp-4);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: var(--fs-sm);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.period-popover__button:focus-visible {
|
||||
outline: 2px solid var(--c-accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.period-popover__button:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.period-popover__button--primary {
|
||||
background-color: #0066cc;
|
||||
color: #fff;
|
||||
background-color: var(--c-accent);
|
||||
color: var(--c-surface);
|
||||
}
|
||||
|
||||
.period-popover__button--primary:hover:not(:disabled) {
|
||||
background-color: #0052a3;
|
||||
background-color: var(--c-accent-hover);
|
||||
}
|
||||
|
||||
.period-popover__button--secondary {
|
||||
background-color: #e0e0e0;
|
||||
color: #333;
|
||||
background-color: var(--c-bg);
|
||||
color: var(--c-text);
|
||||
border: 1px solid var(--c-border);
|
||||
}
|
||||
|
||||
.period-popover__button--secondary:hover:not(:disabled) {
|
||||
background-color: #d0d0d0;
|
||||
background-color: var(--c-border);
|
||||
}
|
||||
|
||||
.period-popover__button--danger {
|
||||
background-color: #d32f2f;
|
||||
color: #fff;
|
||||
background-color: var(--c-danger-weak);
|
||||
color: var(--c-danger);
|
||||
border: 1px solid var(--c-danger);
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.period-popover__button--danger:hover:not(:disabled) {
|
||||
background-color: #b71c1c;
|
||||
background-color: var(--c-danger);
|
||||
color: var(--c-surface);
|
||||
}
|
||||
|
||||
.period-popover__delete-confirm {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
gap: var(--sp-3);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.period-popover__delete-confirm-text {
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
font-size: var(--fs-sm);
|
||||
color: var(--c-text);
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
.preset-rail {
|
||||
width: 200px;
|
||||
flex-shrink: 0;
|
||||
padding: 16px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #e0e0e0;
|
||||
border-radius: 4px;
|
||||
padding: var(--sp-4);
|
||||
background-color: var(--c-surface);
|
||||
border-radius: var(--radius);
|
||||
box-shadow: var(--shadow-sm);
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.preset-rail__heading {
|
||||
margin: 0 0 4px 0;
|
||||
font-size: 14px;
|
||||
margin: 0 0 var(--sp-1) 0;
|
||||
font-size: var(--fs-sm);
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.preset-rail__hint {
|
||||
margin: 0 0 12px 0;
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
margin: 0 0 var(--sp-3) 0;
|
||||
font-size: var(--fs-xs);
|
||||
color: var(--c-text-muted);
|
||||
}
|
||||
|
||||
.preset-rail__buttons {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
gap: var(--sp-2);
|
||||
}
|
||||
|
||||
.preset-rail__button {
|
||||
@@ -32,18 +32,18 @@
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 2px;
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #d0d0d0;
|
||||
border-radius: 4px;
|
||||
background-color: #fff;
|
||||
padding: var(--sp-2) var(--sp-3);
|
||||
border: 1px solid var(--c-border);
|
||||
border-radius: var(--radius-sm);
|
||||
background-color: var(--c-surface);
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
transition: background-color 0.2s, border-color 0.2s;
|
||||
}
|
||||
|
||||
.preset-rail__button:hover:not(:disabled) {
|
||||
background-color: #f0f8ff;
|
||||
border-color: #0066cc;
|
||||
background-color: var(--c-accent-weak);
|
||||
border-color: var(--c-accent);
|
||||
}
|
||||
|
||||
.preset-rail__button:disabled {
|
||||
@@ -52,12 +52,12 @@
|
||||
}
|
||||
|
||||
.preset-rail__button-name {
|
||||
font-size: 14px;
|
||||
font-size: var(--fs-sm);
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.preset-rail__button-detail {
|
||||
font-size: 11px;
|
||||
color: #666;
|
||||
font-size: var(--fs-2xs);
|
||||
color: var(--c-text-muted);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
max-width: var(--maxw);
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
padding: var(--sp-5);
|
||||
padding: var(--sp-6) var(--sp-5);
|
||||
}
|
||||
|
||||
/* Dashboard & Pages */
|
||||
@@ -23,16 +23,31 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Sections separate by whitespace and a hairline rule, not a stack of
|
||||
* bordered/shadowed cards — every section on a page looking equally "boxed"
|
||||
* flattens the hierarchy the headline figures above them are meant to have.
|
||||
* The `<details>` accordions (plan-fold, dashboard__more-details) keep their
|
||||
* own bordered treatment in components.css since they're interactive
|
||||
* disclosure controls, not passive content groups. */
|
||||
.dashboard__section,
|
||||
.settings-page__section,
|
||||
.calendar__section,
|
||||
.tips-page__section {
|
||||
background-color: var(--c-surface);
|
||||
border: 1px solid var(--c-border);
|
||||
border-radius: var(--radius);
|
||||
padding: var(--sp-5);
|
||||
margin-bottom: var(--sp-5);
|
||||
box-shadow: var(--shadow-sm);
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
border-top: 1px solid var(--c-border);
|
||||
border-radius: 0;
|
||||
padding: var(--sp-6) 0 0;
|
||||
margin-bottom: var(--sp-6);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.dashboard__section:first-child,
|
||||
.settings-page__section:first-child,
|
||||
.calendar__section:first-child,
|
||||
.tips-page__section:first-child {
|
||||
border-top: none;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.dashboard__section:last-child,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
background-color: var(--overlay);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -12,9 +12,9 @@
|
||||
}
|
||||
|
||||
.manual-fetch-modal__content {
|
||||
background-color: #fff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
||||
background-color: var(--c-surface);
|
||||
border-radius: var(--radius);
|
||||
box-shadow: var(--shadow-md);
|
||||
max-width: 600px;
|
||||
width: 90%;
|
||||
max-height: 85vh;
|
||||
@@ -25,53 +25,58 @@
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
padding: var(--sp-5);
|
||||
border-bottom: 1px solid var(--c-border);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__header h2 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
font-size: var(--fs-xl);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__close {
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 28px;
|
||||
font-size: var(--fs-xl);
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
color: #666;
|
||||
color: var(--c-text-muted);
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__close:hover {
|
||||
color: #000;
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__close:focus-visible {
|
||||
outline: 2px solid var(--c-accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__body {
|
||||
padding: 20px;
|
||||
padding: var(--sp-5);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__description {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
margin: 0 0 16px 0;
|
||||
font-size: var(--fs-sm);
|
||||
color: var(--c-text-muted);
|
||||
margin: 0 0 var(--sp-4) 0;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__error {
|
||||
background-color: #ffebee;
|
||||
color: #c62828;
|
||||
padding: 12px;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 16px;
|
||||
font-size: 14px;
|
||||
background-color: var(--c-danger-weak);
|
||||
color: var(--c-danger);
|
||||
padding: var(--sp-3);
|
||||
border-radius: var(--radius-sm);
|
||||
margin-bottom: var(--sp-4);
|
||||
font-size: var(--fs-sm);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__section {
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 20px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
margin-bottom: var(--sp-5);
|
||||
padding-bottom: var(--sp-5);
|
||||
border-bottom: 1px solid var(--c-border);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__section:last-child {
|
||||
@@ -81,85 +86,97 @@
|
||||
}
|
||||
|
||||
.manual-fetch-modal__section h3 {
|
||||
margin: 0 0 12px 0;
|
||||
font-size: 14px;
|
||||
margin: 0 0 var(--sp-3) 0;
|
||||
font-size: var(--fs-sm);
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__field {
|
||||
margin-bottom: 12px;
|
||||
margin-bottom: var(--sp-3);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__field label {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
font-size: var(--fs-xs);
|
||||
font-weight: 500;
|
||||
margin-bottom: 4px;
|
||||
color: #555;
|
||||
margin-bottom: var(--sp-1);
|
||||
color: var(--c-text-muted);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__field input {
|
||||
width: 100%;
|
||||
padding: 8px 10px;
|
||||
border: 1px solid #d0d0d0;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
padding: var(--sp-2) var(--sp-3);
|
||||
border: 1px solid var(--c-border);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: var(--fs-sm);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__field input:focus {
|
||||
outline: none;
|
||||
border-color: var(--c-accent);
|
||||
box-shadow: 0 0 0 3px var(--c-accent-weak);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__field input:disabled {
|
||||
background-color: #f5f5f5;
|
||||
background-color: var(--c-bg);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__info {
|
||||
font-size: 13px;
|
||||
color: #666;
|
||||
margin-top: 8px;
|
||||
padding: 8px;
|
||||
background-color: #f9f9f9;
|
||||
border-radius: 4px;
|
||||
font-size: var(--fs-xs);
|
||||
color: var(--c-text-muted);
|
||||
margin-top: var(--sp-2);
|
||||
padding: var(--sp-2);
|
||||
background-color: var(--c-bg);
|
||||
border-radius: var(--radius-sm);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__footer {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
gap: var(--sp-2);
|
||||
justify-content: flex-end;
|
||||
padding: 16px 20px;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
background-color: #fafafa;
|
||||
padding: var(--sp-4) var(--sp-5);
|
||||
border-top: 1px solid var(--c-border);
|
||||
background-color: var(--c-bg);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__button {
|
||||
padding: 8px 16px;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
padding: var(--sp-2) var(--sp-4);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: var(--fs-sm);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__button:focus-visible {
|
||||
outline: 2px solid var(--c-accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__button:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.manual-fetch-modal__button--primary {
|
||||
background-color: #0066cc;
|
||||
color: #fff;
|
||||
background-color: var(--c-accent);
|
||||
color: var(--c-surface);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__button--primary:hover:not(:disabled) {
|
||||
background-color: #0052a3;
|
||||
background-color: var(--c-accent-hover);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__button--secondary {
|
||||
background-color: #e0e0e0;
|
||||
color: #333;
|
||||
background-color: var(--c-bg);
|
||||
color: var(--c-text);
|
||||
border: 1px solid var(--c-border);
|
||||
}
|
||||
|
||||
.manual-fetch-modal__button--secondary:hover:not(:disabled) {
|
||||
background-color: #d0d0d0;
|
||||
background-color: var(--c-border);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
background-color: var(--overlay);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -12,9 +12,9 @@
|
||||
}
|
||||
|
||||
.planned-day-modal__content {
|
||||
background-color: #fff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
||||
background-color: var(--c-surface);
|
||||
border-radius: var(--radius);
|
||||
box-shadow: var(--shadow-md);
|
||||
max-width: 500px;
|
||||
width: 90%;
|
||||
max-height: 80vh;
|
||||
@@ -25,87 +25,98 @@
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
padding: var(--sp-5);
|
||||
border-bottom: 1px solid var(--c-border);
|
||||
}
|
||||
|
||||
.planned-day-modal__header h2 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
font-size: var(--fs-xl);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.planned-day-modal__close {
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 28px;
|
||||
font-size: var(--fs-xl);
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
color: #666;
|
||||
color: var(--c-text-muted);
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.planned-day-modal__close:hover {
|
||||
color: #000;
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.planned-day-modal__close:focus-visible {
|
||||
outline: 2px solid var(--c-accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.planned-day-modal__body {
|
||||
padding: 20px;
|
||||
padding: var(--sp-5);
|
||||
}
|
||||
|
||||
.planned-day-modal__date {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
margin: 0 0 16px 0;
|
||||
font-size: var(--fs-sm);
|
||||
color: var(--c-text-muted);
|
||||
margin: 0 0 var(--sp-4) 0;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.planned-day-modal__error {
|
||||
background-color: #ffebee;
|
||||
color: #c62828;
|
||||
padding: 12px;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 16px;
|
||||
font-size: 14px;
|
||||
background-color: var(--c-danger-weak);
|
||||
color: var(--c-danger);
|
||||
padding: var(--sp-3);
|
||||
border-radius: var(--radius-sm);
|
||||
margin-bottom: var(--sp-4);
|
||||
font-size: var(--fs-sm);
|
||||
}
|
||||
|
||||
.planned-day-modal__field {
|
||||
margin-bottom: 16px;
|
||||
margin-bottom: var(--sp-4);
|
||||
}
|
||||
|
||||
.planned-day-modal__label {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-size: var(--fs-sm);
|
||||
font-weight: 500;
|
||||
margin-bottom: 6px;
|
||||
color: #333;
|
||||
margin-bottom: var(--sp-2);
|
||||
color: var(--c-text);
|
||||
}
|
||||
|
||||
.planned-day-modal__select {
|
||||
width: 100%;
|
||||
padding: 8px 10px;
|
||||
border: 1px solid #d0d0d0;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
background-color: #fff;
|
||||
padding: var(--sp-2) var(--sp-3);
|
||||
border: 1px solid var(--c-border);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: var(--fs-sm);
|
||||
background-color: var(--c-surface);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.planned-day-modal__select:focus {
|
||||
outline: none;
|
||||
border-color: var(--c-accent);
|
||||
box-shadow: 0 0 0 3px var(--c-accent-weak);
|
||||
}
|
||||
|
||||
.planned-day-modal__select:disabled {
|
||||
background-color: #f5f5f5;
|
||||
background-color: var(--c-bg);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.planned-day-modal__checkbox-label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
font-size: var(--fs-sm);
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.planned-day-modal__checkbox-label input[type='checkbox'] {
|
||||
margin-right: 8px;
|
||||
margin-right: var(--sp-2);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -114,23 +125,23 @@
|
||||
}
|
||||
|
||||
.planned-day-modal__hint {
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
margin-top: 6px;
|
||||
margin-left: 24px;
|
||||
font-size: var(--fs-xs);
|
||||
color: var(--c-text-faint);
|
||||
margin-top: var(--sp-2);
|
||||
margin-left: var(--sp-6);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.planned-day-modal__pinned-notice {
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
margin: -8px 0 16px 0;
|
||||
font-size: var(--fs-xs);
|
||||
color: var(--c-text-muted);
|
||||
margin: calc(var(--sp-2) * -1) 0 var(--sp-4) 0;
|
||||
}
|
||||
|
||||
.planned-day-modal__override-switch {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
margin-top: 6px;
|
||||
gap: var(--sp-4);
|
||||
margin-top: var(--sp-2);
|
||||
}
|
||||
|
||||
.planned-day-modal__override-switch .planned-day-modal__checkbox-label {
|
||||
@@ -139,64 +150,72 @@
|
||||
|
||||
.planned-day-modal__footer {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
gap: var(--sp-2);
|
||||
justify-content: flex-end;
|
||||
padding: 16px 20px;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
background-color: #fafafa;
|
||||
padding: var(--sp-4) var(--sp-5);
|
||||
border-top: 1px solid var(--c-border);
|
||||
background-color: var(--c-bg);
|
||||
}
|
||||
|
||||
.planned-day-modal__button {
|
||||
padding: 8px 16px;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
padding: var(--sp-2) var(--sp-4);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: var(--fs-sm);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.planned-day-modal__button:focus-visible {
|
||||
outline: 2px solid var(--c-accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.planned-day-modal__button:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.planned-day-modal__button--primary {
|
||||
background-color: #0066cc;
|
||||
color: #fff;
|
||||
background-color: var(--c-accent);
|
||||
color: var(--c-surface);
|
||||
}
|
||||
|
||||
.planned-day-modal__button--primary:hover:not(:disabled) {
|
||||
background-color: #0052a3;
|
||||
background-color: var(--c-accent-hover);
|
||||
}
|
||||
|
||||
.planned-day-modal__button--secondary {
|
||||
background-color: #e0e0e0;
|
||||
color: #333;
|
||||
background-color: var(--c-bg);
|
||||
color: var(--c-text);
|
||||
border: 1px solid var(--c-border);
|
||||
}
|
||||
|
||||
.planned-day-modal__button--secondary:hover:not(:disabled) {
|
||||
background-color: #d0d0d0;
|
||||
background-color: var(--c-border);
|
||||
}
|
||||
|
||||
.planned-day-modal__button--danger {
|
||||
background-color: #d32f2f;
|
||||
color: #fff;
|
||||
background-color: var(--c-danger-weak);
|
||||
color: var(--c-danger);
|
||||
border: 1px solid var(--c-danger);
|
||||
}
|
||||
|
||||
.planned-day-modal__button--danger:hover:not(:disabled) {
|
||||
background-color: #b71c1c;
|
||||
background-color: var(--c-danger);
|
||||
color: var(--c-surface);
|
||||
}
|
||||
|
||||
.planned-day-modal__delete-confirm {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
gap: var(--sp-3);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.planned-day-modal__delete-confirm-text {
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
font-size: var(--fs-sm);
|
||||
color: var(--c-text);
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
}
|
||||
|
||||
.qrcode-modal__button--success:hover {
|
||||
background-color: #0d6a37;
|
||||
background-color: var(--c-success-hover);
|
||||
}
|
||||
|
||||
.qrcode-modal__button--danger {
|
||||
@@ -192,7 +192,7 @@
|
||||
}
|
||||
|
||||
.qrcode-modal__button--danger:hover {
|
||||
background-color: #8a1a15;
|
||||
background-color: var(--c-danger-hover);
|
||||
}
|
||||
|
||||
.qrcode-modal__button:disabled {
|
||||
|
||||
Reference in New Issue
Block a user