Files
breadcrumb-the-shire/web/css/components/app-details-titlebar.css
fs e145b7d089 feat: introduce mathematical type scale with single-source-of-truth typography tokens
Define a major-third (1.25) type scale as CSS custom properties in the tokens
layer (--text-2xs through --text-5xl), along with line-height (--leading-*),
font-weight (--font-*), and letter-spacing (--tracking-*) tokens. Migrate all
28 core CSS files from ad-hoc values to token references with clamp()-based
responsive scaling for headings. Add TypographyTokenContractTest to enforce
token-only usage via grep-based assertions.

Task run: UI-TYPOGRAPHY-SCALE-001

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:47:55 +01:00

97 lines
2.4 KiB
CSS

@layer components {
/* Detail page title bar — sticky save/close actions with unsaved-changes indicator. */
.app-details-titlebar {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 10px;
margin-bottom: calc(var(--app-spacing) * 2);
}
.app-details-titlebar h1,
.app-details-titlebar h2,
.app-details-titlebar h3,
.app-details-titlebar h4,
.app-details-titlebar h5,
.app-details-titlebar h6 {
margin: 0;
}
.app-details-titlebar button,
.app-details-titlebar [role="button"] {
--app-button-padding-horizontal: 10px;
--app-button-padding-vertical: 6px;
font-size: var(--text-sm);
margin: 0;
}
.app-details-titlebar button i,
.app-details-titlebar [role="button"] i {
font-size: 10px; /* icon-font metric — intentional px */
}
.app-details-titlebar-actions {
display: flex;
align-items: center;
gap: 10px;
white-space: nowrap;
}
.app-details-titlebar .app-detail-unsaved-indicator {
margin: 0;
white-space: nowrap;
}
.app-details-titlebar h1 i {
background: var(--app-background-color);
width: 35px;
height: 29px;
font-size: 15px; /* icon-font metric — intentional px */
border-radius: var(--app-border-radius);
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--app-contrast);
border: 1px solid var(--app-border);
color: var(--app-muted-color);
box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 2px;
}
.app-details-titlebar h1:has(i) {
display: flex;
align-items: center;
gap: 7px;
line-height: var(--leading-none);
}
.app-details-titlebar details.dropdown {
margin-bottom: 0;
}
.app-details-titlebar details.dropdown summary:after {
display: none;
}
.app-details-titlebar details.dropdown li {
padding: 0;
margin: 0;
}
.app-details-titlebar details.dropdown li button,
.app-details-titlebar details.dropdown li [role="button"] {
margin: 0;
border: none;
border-radius: 3px;
width: 100%;
text-align: left;
padding: 0.375rem 0.5rem;
}
.app-details-titlebar details.dropdown li button:hover,
.app-details-titlebar details.dropdown li button:focus-visible,
.app-details-titlebar details.dropdown li [role="button"]:hover,
.app-details-titlebar details.dropdown li [role="button"]:focus-visible {
background: color-mix(in srgb, var(--app-contrast) 8%, transparent);
}
}