UNPKG

@sandlada/mdc

Version:

@sandlada/mdc is an open source component library that follows the Material Design 3 design specifications.

327 lines (286 loc) 10.9 kB
import{css as e,unsafeCSS as t}from"../../node_modules/@lit/reactive-element/css-tag.js";import"../../node_modules/lit/index.js";import{defineVars as n}from"../../node_modules/@sandlada/jss/dist/define-vars.js";import{defineTokenRefsRecord as r}from"../../node_modules/@sandlada/jss/dist/define-token-refs.js";import{AppBarDefinition as i}from"../../component-definitions/appbar.definition.js"; /** * @license * Copyright 2026 Kai-Orion & Sandlada * SPDX-License-Identifier: MIT */ const a=r(i,{expandShapes:!0,useBaseFallback:!0,prefix:`--mdc-appbar`}),o=t(n(a,!0).join(``)),s=e` :host { ${o}; } :host { display: block; width: 100%; box-sizing: border-box; position: relative; } .container { position: relative; display: flex; flex-direction: column; width: 100%; box-sizing: border-box; background-color: var(--_enabled-container-color); color: var(--_enabled-headline-color); border-top-left-radius: var(--_enabled-container-shape-start-start); border-top-right-radius: var(--_enabled-container-shape-start-end); border-bottom-right-radius: var(--_enabled-container-shape-end-end); border-bottom-left-radius: var(--_enabled-container-shape-end-start); transition: background-color 200ms cubic-bezier(0.2, 0, 0, 1), box-shadow 200ms cubic-bezier(0.2, 0, 0, 1); z-index: 1; } .container.scrolled { background-color: var(--_enabled-container-color-scrolled); } /* Elevation integration */ .container > mdc-elevation { --mdc-elevation-enabled-level: var(--_enabled-container-elevation); --mdc-elevation-enabled-shadow-color: var(--_enabled-container-shadow-color); position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: -1; } .container.scrolled > mdc-elevation { --mdc-elevation-enabled-level: var(--_enabled-container-elevation-scrolled); } /* App bar row layout */ .appbar-row { position: relative; display: flex; align-items: center; width: 100%; min-height: var(--_enabled-small-container-height); box-sizing: border-box; padding-inline-start: var(--_enabled-container-inline-leading-padding-space); padding-inline-end: var(--_enabled-container-inline-trailing-padding-space); padding-block-start: var(--_enabled-container-block-leading-padding-space); padding-block-end: var(--_enabled-container-block-trailing-padding-space); } /* 48px touch targets for leading and trailing sections */ .leading-section { display: flex; align-items: center; justify-content: center; flex-shrink: 0; min-width: var(--_enabled-icon-button-size); min-height: var(--_enabled-icon-button-size); color: var(--_enabled-leading-icon-color); } .container:not(.has-leading) .leading-section { display: none; } .trailing-section { display: flex; align-items: center; flex-shrink: 0; gap: var(--_enabled-actions-gap-space); color: var(--_enabled-trailing-icon-color); margin-inline-start: auto; } .spacer { flex: 1 1 auto; } /* Button and icon sizing inside app bar */ .leading-section ::slotted(mdc-icon-button), .leading-section ::slotted(button), .trailing-section ::slotted(mdc-icon-button), .trailing-section ::slotted(button) { width: var(--_enabled-icon-button-size); height: var(--_enabled-icon-button-size); } .leading-section ::slotted(mdc-icon), .trailing-section ::slotted(mdc-icon) { font-size: var(--_enabled-icon-size); --mdc-icon-size: var(--_enabled-icon-size); } /* Title and Subtitle */ .title-container { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; justify-content: center; padding-inline-end: var(--_enabled-title-gap-space); } /* When leading button is present, 4px gap after 48px button gives 56px inset */ .container.has-leading .title-container { padding-inline-start: var(--_enabled-title-gap-space); } /* When no leading button is present, title has 16px inset */ .container:not(.has-leading) .title-container { padding-inline-start: var(--_enabled-title-without-leading-inline-leading-space); } .headline { margin: 0; font-family: var(--_enabled-small-headline-font); font-size: var(--_enabled-small-headline-size); line-height: var(--_enabled-small-headline-line-height); font-weight: var(--_enabled-small-headline-weight); letter-spacing: var(--_enabled-small-headline-tracking); color: var(--_enabled-headline-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .headline ::slotted(img), .headline ::slotted(svg) { max-height: 36px; width: auto; vertical-align: middle; } .subtitle { margin: 0; font-family: var(--_enabled-subtitle-font); font-size: var(--_enabled-subtitle-size); line-height: var(--_enabled-subtitle-line-height); font-weight: var(--_enabled-subtitle-weight); letter-spacing: var(--_enabled-subtitle-tracking); color: var(--_enabled-subtitle-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Centered alignment */ .container.centered .title-container { text-align: center; align-items: center; padding-inline: var(--_enabled-title-gap-space); } .container.centered .headline, .container.centered .subtitle { text-align: center; } .container.small.centered .leading-section { min-width: var(--_enabled-icon-button-size); } .container.small.centered .trailing-section { min-width: var(--_enabled-icon-button-size); } /* Medium flexible variant */ .container.medium-flexible { min-height: var(--_enabled-medium-container-min-height); } .container.medium-flexible .top-row { min-height: var(--_enabled-flexible-top-row-height); padding-block-start: 4px; } .container.medium-flexible .flexible-content { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: flex-end; padding-inline-start: var(--_enabled-flexible-content-inline-leading-padding-space); padding-inline-end: var(--_enabled-flexible-content-inline-trailing-padding-space); padding-block-start: 4px; padding-block-end: var(--_enabled-flexible-content-block-trailing-padding-space); } .container.medium-flexible .flexible-content .title-container { padding-inline: 0; } .container.medium-flexible .headline { font-family: var(--_enabled-medium-headline-font); font-size: var(--_enabled-medium-headline-size); line-height: var(--_enabled-medium-headline-line-height); font-weight: var(--_enabled-medium-headline-weight); letter-spacing: var(--_enabled-medium-headline-tracking); white-space: normal; overflow: visible; word-break: break-word; } /* Large flexible variant */ .container.large-flexible { min-height: var(--_enabled-large-container-min-height); } .container.large-flexible .top-row { min-height: var(--_enabled-flexible-top-row-height); padding-block-start: 4px; } .container.large-flexible .flexible-content { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: flex-end; padding-inline-start: var(--_enabled-flexible-content-inline-leading-padding-space); padding-inline-end: var(--_enabled-flexible-content-inline-trailing-padding-space); padding-block-start: 4px; padding-block-end: var(--_enabled-flexible-content-block-trailing-padding-space); } .container.large-flexible .flexible-content .title-container { padding-inline: 0; } .container.large-flexible .headline { font-family: var(--_enabled-large-headline-font); font-size: var(--_enabled-large-headline-size); line-height: var(--_enabled-large-headline-line-height); font-weight: var(--_enabled-large-headline-weight); letter-spacing: var(--_enabled-large-headline-tracking); white-space: normal; overflow: visible; word-break: break-word; } /* Search app bar variant */ .container.search { min-height: var(--_enabled-search-container-height); } .search-row { gap: 0; } .search-container { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; margin-inline-start: var(--_enabled-search-box-gap-space); margin-inline-end: var(--_enabled-search-box-gap-space); } .search-box { display: flex; align-items: center; width: 100%; height: var(--_enabled-search-box-height); background-color: var(--_enabled-search-box-container-color); border-radius: var(--_enabled-search-box-shape-start-start); padding-inline: var(--_enabled-search-box-inline-padding-space); gap: 8px; box-sizing: border-box; transition: background-color 200ms cubic-bezier(0.2, 0, 0, 1); cursor: pointer; } .container.scrolled .search-box { background-color: var(--_enabled-search-box-container-color-scrolled); } .search-icon { display: inline-flex; align-items: center; justify-content: center; width: var(--_enabled-icon-size); height: var(--_enabled-icon-size); color: var(--_enabled-search-box-icon-color); flex-shrink: 0; } .search-input-wrapper { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; } .search-placeholder { font-family: var(--_enabled-search-text-font); font-size: var(--_enabled-search-text-size); line-height: var(--_enabled-search-text-line-height); letter-spacing: var(--_enabled-search-text-tracking); color: var(--_enabled-search-box-placeholder-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; user-select: none; } .search-box ::slotted(mdc-icon-button), .search-box ::slotted(button) { width: var(--_enabled-icon-button-size); height: var(--_enabled-icon-button-size); } `;export{s as AppBarStyles}; //# sourceMappingURL=appbar.style.js.map