Files
marketplaces/src/app/features/project-editor/sections/footer-section.component.scss
sdarbinyan 4ebc15fff8 fix(builder): composition audit fixes for project editor sections
- Reset-section button: raw <button> with hardcoded colors -> app-button variant="danger"
- section.shared.scss: raw button/input/select colors switched to CSS theme vars (--primary-color, --bg-primary, --bg-secondary, --error-color) instead of bare hex
- save-bar scss referenced nonexistent CSS vars (--surface, --border, --warning, --danger, --muted-foreground, --info-bg, --info) that always fell back to hardcoded hex; renamed to the real theme vars (--bg-primary, --border-color, --warning-color, --error-color, --text-secondary, --info-color) so the save bar is actually theme-aware
- footer/homepage/widgets section scss: nonexistent --danger-color var renamed to --error-color
- static-pages-editor: replaced dead `.editor-section-card` wrapper class (removed from shared stylesheet in the Sprint 30 redesign, never migrated here) with app-section-card, restoring the card chrome every sibling editor section has
- widgets-section: empty state (no widgets) rendered nothing; added app-empty-state
- homepage-section: empty state (no homepage page) rendered nothing; added app-empty-state
- navigation-section: header/footer nav move-up/move-down buttons had no accessible name (bare uarr/darr glyphs); added aria-label
- Added builder.widgetsEmptyTitle/Desc and builder.homepageEmptyTitle/Desc i18n keys (en/ru/hy)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 10:47:37 +04:00

97 lines
2.2 KiB
SCSS

.contact-row {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 6px;
app-input { flex: 1; }
}
.contact-row__remove {
border: none;
background: transparent;
cursor: pointer;
color: var(--text-secondary, #6b7280);
font-size: var(--font-size-lg, 1rem);
&:hover { color: var(--error-color, #c0392b); }
}
.footer-columns {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin: 8px 0;
}
.footer-column {
display: grid;
gap: 8px;
width: 260px;
padding: 10px;
border: 1px solid var(--border-color, #d3dad9);
border-radius: var(--radius-sm);
background: var(--bg-secondary, #f7f8f8);
&.cdk-drag-preview { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); }
&.cdk-drag-placeholder { opacity: 0.4; }
}
.footer-column__head {
display: flex;
align-items: center;
gap: 6px;
app-input { flex: 1; }
}
.footer-column__grip { cursor: grab; color: var(--text-secondary, #6b7280); }
.footer-column__remove {
border: none;
background: transparent;
cursor: pointer;
color: var(--text-secondary, #6b7280);
font-size: var(--font-size-lg, 1rem);
&:hover { color: var(--error-color, #c0392b); }
}
.footer-column__links {
display: grid;
gap: 6px;
min-height: 20px;
}
.footer-link {
display: grid;
grid-template-columns: auto 1fr auto;
grid-template-areas:
"grip label remove"
"source source source"
"target target target";
gap: 4px 6px;
align-items: center;
padding: 6px;
border: 1px solid var(--border-color, #d3dad9);
border-radius: var(--radius-sm);
background: #fff;
&.cdk-drag-preview { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); }
&.cdk-drag-placeholder { opacity: 0.4; }
}
.footer-link__grip { grid-area: grip; cursor: grab; color: var(--text-secondary, #6b7280); }
.footer-link app-input:first-of-type { grid-area: label; }
.footer-link__remove {
grid-area: remove;
border: none;
background: transparent;
cursor: pointer;
color: var(--text-secondary, #6b7280);
}
.footer-link__source { grid-area: source; }
.footer-link app-input[type="url"], .footer-link select:not(.footer-link__source) { grid-area: target; }
.cdk-drag-animating { transition: transform 200ms cubic-bezier(0, 0, 0.2, 1); }