forked from fa/breadcrumb-the-shire
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>
83 lines
1.9 KiB
CSS
83 lines
1.9 KiB
CSS
@layer components {
|
|
/* List page title bar — heading, action buttons, and breadcrumb row. */
|
|
.app-list-titlebar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
margin-bottom: calc(var(--app-spacing) * 2);
|
|
}
|
|
|
|
.app-list-titlebar h1,
|
|
.app-list-titlebar h2,
|
|
.app-list-titlebar h3,
|
|
.app-list-titlebar h4,
|
|
.app-list-titlebar h5,
|
|
.app-list-titlebar h6 {
|
|
margin: 0;
|
|
}
|
|
|
|
.app-list-titlebar button,
|
|
.app-list-titlebar [role="button"] {
|
|
--app-button-padding-horizontal: 10px;
|
|
--app-button-padding-vertical: 6px;
|
|
font-size: var(--text-sm);
|
|
margin: 0;
|
|
}
|
|
|
|
.app-list-titlebar-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.app-list-titlebar h1 i {
|
|
background: var(--app-muted-border-color);
|
|
width: 35px;
|
|
height: 35px;
|
|
font-size: 16px; /* icon-font metric — intentional px */
|
|
border-radius: var(--app-border-radius);
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.app-list-titlebar h1:has(i) {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
}
|
|
|
|
.app-list-titlebar details.dropdown {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.app-list-titlebar details.dropdown summary:after {
|
|
display: none;
|
|
}
|
|
|
|
.app-list-titlebar details.dropdown li {
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.app-list-titlebar details.dropdown li button,
|
|
.app-list-titlebar details.dropdown li [role="button"] {
|
|
margin: 0;
|
|
border: none;
|
|
border-radius: 3px;
|
|
width: 100%;
|
|
text-align: left;
|
|
padding: 0.375rem 0.5rem;
|
|
}
|
|
|
|
.app-list-titlebar details.dropdown li button:hover,
|
|
.app-list-titlebar details.dropdown li button:focus-visible,
|
|
.app-list-titlebar details.dropdown li [role="button"]:hover,
|
|
.app-list-titlebar details.dropdown li [role="button"]:focus-visible {
|
|
background: color-mix(in srgb, var(--app-contrast) 8%, transparent);
|
|
}
|
|
}
|