CSS: - Remove duplicate li::before block in app-search.css - Fix typo: search-reuslt → search-result in app-search.css - Remove commented-out CSS rules in app-flash.css - Add descriptive header comment to all 27 CSS component files JS: - Complete WAI-ARIA Tabs pattern: generate IDs, add aria-controls on tab buttons and aria-labelledby on tab panels (app-tabs.js) - Add JSDoc header comments to ~33 JS files (core + components) - Add explanatory block comment to app-boot.js (why classic IIFE) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
65 lines
1.6 KiB
CSS
65 lines
1.6 KiB
CSS
@layer components {
|
|
/* Empty state placeholders — dashed border cards with icon, message, and optional action. */
|
|
.app-empty-state {
|
|
border: 1px dashed var(--app-empty-border-color);
|
|
border-radius: var(--app-border-radius);
|
|
background: var(--app-empty-bg);
|
|
color: var(--app-empty-text);
|
|
padding: calc(var(--app-spacing) * 1.5) var(--app-spacing);
|
|
display: grid;
|
|
gap: calc(var(--app-spacing) * 0.35);
|
|
text-align: center;
|
|
justify-items: center;
|
|
}
|
|
|
|
.app-empty-state[data-size="compact"] {
|
|
padding: calc(var(--app-spacing) * 0.75) calc(var(--app-spacing) * 0.75);
|
|
gap: calc(var(--app-spacing) * 0.25);
|
|
}
|
|
.app-empty-state[data-size="small"] {
|
|
padding: calc(var(--app-spacing) * 0.5) calc(var(--app-spacing) * 0.5);
|
|
gap: calc(var(--app-spacing) * 0.15);
|
|
}
|
|
|
|
.app-empty-state[data-align="left"] {
|
|
text-align: left;
|
|
justify-items: start;
|
|
}
|
|
|
|
.app-empty-state-icon {
|
|
color: var(--app-empty-hint);
|
|
opacity: 0.5;
|
|
margin-bottom: calc(var(--app-spacing) * 0.15);
|
|
}
|
|
|
|
.app-empty-state[data-size="compact"] .app-empty-state-icon {
|
|
width: 28px;
|
|
height: 28px;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.app-empty-state-message {
|
|
margin: 0;
|
|
color: var(--app-empty-hint);
|
|
font-size: 12px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.app-empty-state-hint {
|
|
margin: 0;
|
|
color: var(--app-empty-hint);
|
|
font-size: 0.85rem;
|
|
line-height: 1.3;
|
|
opacity: 0.75;
|
|
}
|
|
|
|
.app-empty-state-action {
|
|
justify-self: center;
|
|
margin-top: calc(var(--app-spacing) * 0.25);
|
|
}
|
|
|
|
.app-empty-state[data-align="left"] .app-empty-state-action {
|
|
justify-self: start;
|
|
}
|
|
}
|