diff --git a/ui/demo-pwa/src/page-card.ts b/ui/demo-pwa/src/page-card.ts new file mode 100644 index 000000000..8ee0e3212 --- /dev/null +++ b/ui/demo-pwa/src/page-card.ts @@ -0,0 +1,65 @@ +import {customElement, AlwatrSmartElement, css, html} from '@alwatr/element'; + +import '@alwatr/ui-kit/card/card.js'; + +declare global { + interface HTMLElementTagNameMap { + 'alwatr-page-card': AlwatrPageCard; + } +} + +/** + * Alwatr Demo Home Page + */ +@customElement('alwatr-page-card') +export class AlwatrPageCard extends AlwatrSmartElement { + static override styles = css` + :host { + display: flex; + flex-wrap: wrap; + padding: var(--sys-spacing-track); + box-sizing: border-box; + height: 100%; + gap: var(--sys-spacing-track); + } + + alwatr-card { + flex-grow: 1; + display: flex; + align-items: flex-end; + width: 25%; + user-select: none; + } + + input { + padding: var(--sys-spacing-track); + color: inherit; + background-color: transparent; + border: 0; + border-bottom: 1px solid transparent; + } + + input:focus { + border-bottom-color: currentColor; + outline: 0; + } + `; + + override render(): unknown { + super.render(); + return html` + + + + + + + + + + + + + `; + } +} diff --git a/ui/demo-pwa/src/pwa-root.ts b/ui/demo-pwa/src/pwa-root.ts index 218bc89a3..10bfa48c9 100644 --- a/ui/demo-pwa/src/pwa-root.ts +++ b/ui/demo-pwa/src/pwa-root.ts @@ -1,7 +1,7 @@ -import {AlwatrRootElement, html} from '@alwatr/element'; -import {customElement} from 'lit/decorators.js'; +import {AlwatrRootElement, html, customElement} from '@alwatr/element'; import './page-chat.js'; +import './page-card.js'; import type {RoutesConfig} from '@alwatr/router'; @@ -22,6 +22,9 @@ export class AlwatrPwaRoot extends AlwatrRootElement { home: { render: () => html``, }, + card: { + render: () => html``, + }, }, }; } diff --git a/ui/demo-pwa/style/tokens/elevation.css b/ui/demo-pwa/style/tokens/elevation.css index 39eea3796..2006641f8 100644 --- a/ui/demo-pwa/style/tokens/elevation.css +++ b/ui/demo-pwa/style/tokens/elevation.css @@ -1,127 +1,127 @@ :root { --elevation-0: - 0px 0px 0px 0px rgba(0, 0, 0, 0.2), - 0px 0px 0px 0px rgba(0, 0, 0, 0.14), - 0px 0px 0px 0px rgba(0, 0, 0, 0.12) + 0px 0px 0px 0px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 0px 0px 0px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 0px 0px 0px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-1: - 0px 2px 1px -1px rgba(0, 0, 0, 0.2), - 0px 1px 1px 0px rgba(0, 0, 0, 0.14), - 0px 1px 3px 0px rgba(0, 0, 0, 0.12) + 0px 2px 1px -1px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 1px 1px 0px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 1px 3px 0px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-2: - 0px 3px 1px -2px rgba(0, 0, 0, 0.2), - 0px 2px 2px 0px rgba(0, 0, 0, 0.14), - 0px 1px 5px 0px rgba(0, 0, 0, 0.12) + 0px 3px 1px -2px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 2px 2px 0px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 1px 5px 0px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-3: - 0px 3px 3px -2px rgba(0, 0, 0, 0.2), - 0px 3px 4px 0px rgba(0, 0, 0, 0.14), - 0px 1px 8px 0px rgba(0, 0, 0, 0.12) + 0px 3px 3px -2px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 3px 4px 0px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 1px 8px 0px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-4: - 0px 2px 4px -1px rgba(0, 0, 0, 0.2), - 0px 4px 5px 0px rgba(0, 0, 0, 0.14), - 0px 1px 10px 0px rgba(0, 0, 0, 0.12) + 0px 2px 4px -1px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 4px 5px 0px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 1px 10px 0px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-5: - 0px 3px 5px -1px rgba(0, 0, 0, 0.2), - 0px 5px 8px 0px rgba(0, 0, 0, 0.14), - 0px 1px 14px 0px rgba(0, 0, 0, 0.12) + 0px 3px 5px -1px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 5px 8px 0px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 1px 14px 0px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-6: - 0px 3px 5px -1px rgba(0, 0, 0, 0.2), - 0px 6px 10px 0px rgba(0, 0, 0, 0.14), - 0px 1px 18px 0px rgba(0, 0, 0, 0.12) + 0px 3px 5px -1px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 6px 10px 0px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 1px 18px 0px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-7: - 0px 4px 5px -2px rgba(0, 0, 0, 0.2), - 0px 7px 10px 1px rgba(0, 0, 0, 0.14), - 0px 2px 16px 1px rgba(0, 0, 0, 0.12) + 0px 4px 5px -2px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 7px 10px 1px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 2px 16px 1px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-8: - 0px 5px 5px -3px rgba(0, 0, 0, 0.2), - 0px 8px 10px 1px rgba(0, 0, 0, 0.14), - 0px 3px 14px 2px rgba(0, 0, 0, 0.12) + 0px 5px 5px -3px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 8px 10px 1px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 3px 14px 2px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-9: - 0px 5px 6px -3px rgba(0, 0, 0, 0.2), - 0px 9px 12px 1px rgba(0, 0, 0, 0.14), - 0px 3px 16px 2px rgba(0, 0, 0, 0.12) + 0px 5px 6px -3px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 9px 12px 1px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 3px 16px 2px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-10: - 0px 6px 6px -3px rgba(0, 0, 0, 0.2), - 0px 10px 14px 1px rgba(0, 0, 0, 0.14), - 0px 4px 18px 3px rgba(0, 0, 0, 0.12) + 0px 6px 6px -3px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 10px 14px 1px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 4px 18px 3px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-11: - 0px 6px 7px -4px rgba(0, 0, 0, 0.2), - 0px 11px 15px 1px rgba(0, 0, 0, 0.14), - 0px 4px 20px 3px rgba(0, 0, 0, 0.12) + 0px 6px 7px -4px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 11px 15px 1px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 4px 20px 3px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-12: - 0px 7px 8px -4px rgba(0, 0, 0, 0.2), - 0px 12px 17px 2px rgba(0, 0, 0, 0.14), - 0px 5px 22px 4px rgba(0, 0, 0, 0.12) + 0px 7px 8px -4px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 12px 17px 2px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 5px 22px 4px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-13: - 0px 7px 8px -4px rgba(0, 0, 0, 0.2), - 0px 13px 19px 2px rgba(0, 0, 0, 0.14), - 0px 5px 24px 4px rgba(0, 0, 0, 0.12) + 0px 7px 8px -4px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 13px 19px 2px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 5px 24px 4px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-14: - 0px 7px 9px -4px rgba(0, 0, 0, 0.2), - 0px 14px 21px 2px rgba(0, 0, 0, 0.14), - 0px 5px 26px 4px rgba(0, 0, 0, 0.12) + 0px 7px 9px -4px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 14px 21px 2px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 5px 26px 4px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-15: - 0px 8px 9px -5px rgba(0, 0, 0, 0.2), - 0px 15px 22px 2px rgba(0, 0, 0, 0.14), - 0px 6px 28px 5px rgba(0, 0, 0, 0.12) + 0px 8px 9px -5px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 15px 22px 2px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 6px 28px 5px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-16: - 0px 8px 10px -5px rgba(0, 0, 0, 0.2), - 0px 16px 24px 2px rgba(0, 0, 0, 0.14), - 0px 6px 30px 5px rgba(0, 0, 0, 0.12) + 0px 8px 10px -5px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 16px 24px 2px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 6px 30px 5px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-17: - 0px 8px 11px -5px rgba(0, 0, 0, 0.2), - 0px 17px 26px 2px rgba(0, 0, 0, 0.14), - 0px 6px 32px 5px rgba(0, 0, 0, 0.12) + 0px 8px 11px -5px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 17px 26px 2px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 6px 32px 5px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-18: - 0px 9px 11px -5px rgba(0, 0, 0, 0.2), - 0px 18px 28px 2px rgba(0, 0, 0, 0.14), - 0px 7px 34px 6px rgba(0, 0, 0, 0.12) + 0px 9px 11px -5px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 18px 28px 2px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 7px 34px 6px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-19: - 0px 9px 12px -6px rgba(0, 0, 0, 0.2), - 0px 19px 29px 2px rgba(0, 0, 0, 0.14), - 0px 7px 36px 6px rgba(0, 0, 0, 0.12) + 0px 9px 12px -6px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 19px 29px 2px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 7px 36px 6px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-20: - 0px 10px 13px -6px rgba(0, 0, 0, 0.2), - 0px 20px 31px 3px rgba(0, 0, 0, 0.14), - 0px 8px 38px 7px rgba(0, 0, 0, 0.12) + 0px 10px 13px -6px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 20px 31px 3px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 8px 38px 7px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-21: - 0px 10px 13px -6px rgba(0, 0, 0, 0.2), - 0px 21px 33px 3px rgba(0, 0, 0, 0.14), - 0px 8px 40px 7px rgba(0, 0, 0, 0.12) + 0px 10px 13px -6px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 21px 33px 3px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 8px 40px 7px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-22: - 0px 10px 14px -6px rgba(0, 0, 0, 0.2), - 0px 22px 35px 3px rgba(0, 0, 0, 0.14), - 0px 8px 42px 7px rgba(0, 0, 0, 0.12) + 0px 10px 14px -6px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 22px 35px 3px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 8px 42px 7px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-23: - 0px 11px 14px -7px rgba(0, 0, 0, 0.2), - 0px 23px 36px 3px rgba(0, 0, 0, 0.14), - 0px 9px 44px 8px rgba(0, 0, 0, 0.12) + 0px 11px 14px -7px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 23px 36px 3px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 9px 44px 8px hsla(var(--sys-color-shadow-hsl), 0.12) ; --elevation-24: - 0px 11px 15px -7px rgba(0, 0, 0, 0.2), - 0px 24px 38px 3px rgba(0, 0, 0, 0.14), - 0px 9px 46px 8px rgba(0, 0, 0, 0.12) + 0px 11px 15px -7px hsla(var(--sys-color-shadow-hsl), 0.2), + 0px 24px 38px 3px hsla(var(--sys-color-shadow-hsl), 0.14), + 0px 9px 46px 8px hsla(var(--sys-color-shadow-hsl), 0.12) ; } diff --git a/ui/demo-pwa/style/tokens/palette.css b/ui/demo-pwa/style/tokens/palette.css index 56914eb5d..bebc7124c 100644 --- a/ui/demo-pwa/style/tokens/palette.css +++ b/ui/demo-pwa/style/tokens/palette.css @@ -1,8 +1,9 @@ :root { - --ref-palette-primary-hue: 207; - --ref-palette-secondary-hue: calc(var(--ref-palette-primary-hue) + 12); - --ref-palette-tertiary-hue: calc(var(--ref-palette-primary-hue) + 70); - --ref-palette-neutral-hue: calc(var(--ref-palette-primary-hue) + 20); + --ref-palette-primary-hue: 256; + --ref-palette-secondary-hue: 260; /* calc(var(--ref-palette-primary-hue) + 12); */ + --ref-palette-tertiary-hue: 340; /* calc(var(--ref-palette-primary-hue) + 70); */ + --ref-palette-neutral-hue: 342; /* calc(var(--ref-palette-primary-hue) + 20); */ + --ref-palette-neutral-variant-hue: 270; /* calc(var(--ref-palette-primary-hue) + 20); */ --ref-palette-error-hue: 356; /* primary */ @@ -78,22 +79,22 @@ --ref-palette-neutral100: var(--ref-palette-neutral-hue), 100%, 100%; /* neutral-variant */ - --ref-palette-neutral-variant0: var(--ref-palette-neutral-hue), 0%, 0%; - --ref-palette-neutral-variant10: var(--ref-palette-neutral-hue), 17%, 11%; - --ref-palette-neutral-variant20: var(--ref-palette-neutral-hue), 11%, 20%; - --ref-palette-neutral-variant25: var(--ref-palette-neutral-hue), 9%, 24%; - --ref-palette-neutral-variant30: var(--ref-palette-neutral-hue), 8%, 28%; - --ref-palette-neutral-variant35: var(--ref-palette-neutral-hue), 7%, 33%; - --ref-palette-neutral-variant40: var(--ref-palette-neutral-hue), 6%, 38%; - --ref-palette-neutral-variant50: var(--ref-palette-neutral-hue), 5%, 48%; - --ref-palette-neutral-variant60: var(--ref-palette-neutral-hue), 5.6%, 58%; - --ref-palette-neutral-variant70: var(--ref-palette-neutral-hue), 7.4%, 68%; - --ref-palette-neutral-variant80: var(--ref-palette-neutral-hue), 11.1%, 79%; - --ref-palette-neutral-variant90: var(--ref-palette-neutral-hue), 23.1%, 90%; - --ref-palette-neutral-variant95: var(--ref-palette-neutral-hue), 54.5%, 95%; - --ref-palette-neutral-variant98: var(--ref-palette-neutral-hue), 100%, 98%; - --ref-palette-neutral-variant99: var(--ref-palette-neutral-hue), 100%, 99%; - --ref-palette-neutral-variant100: var(--ref-palette-neutral-hue), 100%, 100%; + --ref-palette-neutral-variant0: var(--ref-palette-neutral-variant-hue), 0%, 0%; + --ref-palette-neutral-variant10: var(--ref-palette-neutral-variant-hue), 17%, 11%; + --ref-palette-neutral-variant20: var(--ref-palette-neutral-variant-hue), 11%, 20%; + --ref-palette-neutral-variant25: var(--ref-palette-neutral-variant-hue), 9%, 24%; + --ref-palette-neutral-variant30: var(--ref-palette-neutral-variant-hue), 8%, 28%; + --ref-palette-neutral-variant35: var(--ref-palette-neutral-variant-hue), 7%, 33%; + --ref-palette-neutral-variant40: var(--ref-palette-neutral-variant-hue), 6%, 38%; + --ref-palette-neutral-variant50: var(--ref-palette-neutral-variant-hue), 5%, 48%; + --ref-palette-neutral-variant60: var(--ref-palette-neutral-variant-hue), 5.6%, 58%; + --ref-palette-neutral-variant70: var(--ref-palette-neutral-variant-hue), 7.4%, 68%; + --ref-palette-neutral-variant80: var(--ref-palette-neutral-variant-hue), 11.1%, 79%; + --ref-palette-neutral-variant90: var(--ref-palette-neutral-variant-hue), 23.1%, 90%; + --ref-palette-neutral-variant95: var(--ref-palette-neutral-variant-hue), 54.5%, 95%; + --ref-palette-neutral-variant98: var(--ref-palette-neutral-variant-hue), 100%, 98%; + --ref-palette-neutral-variant99: var(--ref-palette-neutral-variant-hue), 100%, 99%; + --ref-palette-neutral-variant100: var(--ref-palette-neutral-variant-hue), 100%, 100%; /* error */ --ref-palette-error0: var(--ref-palette-error-hue), 0%, 0%; @@ -131,8 +132,8 @@ --sys-color-tertiary-container-hsl: var(--ref-palette-tertiary90); --sys-color-on-tertiary-container-hsl: var(--ref-palette-tertiary10); - /* --sys-color-background-hsl: var(--ref-palette-neutral99); */ - --sys-color-background-hsl: var(--ref-palette-neutral95); + --sys-color-background-hsl: var(--ref-palette-neutral98); + /* --sys-color-background-hsl: var(--ref-palette-neutral95); */ --sys-color-on-background-hsl: var(--ref-palette-neutral10); --sys-color-surface-hsl: var(--ref-palette-neutral99); @@ -217,8 +218,8 @@ --sys-color-tertiary-container-hsl: var(--ref-palette-tertiary30); --sys-color-on-tertiary-container-hsl: var(--ref-palette-tertiary90); - /* --sys-color-background-hsl: var(--ref-palette-neutral10); */ - --sys-color-background-hsl: var(--ref-palette-neutral20); + --sys-color-background-hsl: var(--ref-palette-neutral10); + /* --sys-color-background-hsl: var(--ref-palette-neutral20); */ --sys-color-on-background-hsl: var(--ref-palette-neutral90); --sys-color-surface-hsl: var(--ref-palette-neutral10); diff --git a/ui/demo-pwa/web-dev-server.config.js b/ui/demo-pwa/web-dev-server.config.js index 037818a25..e8bd8ec0c 100644 --- a/ui/demo-pwa/web-dev-server.config.js +++ b/ui/demo-pwa/web-dev-server.config.js @@ -1,9 +1,11 @@ +import {existsSync} from 'node:fs'; + // https://modern-web.dev/docs/dev-server/cli-and-configuration/#configuration-file -export default { +const config = { port: 8080, open: true, watch: true, - // appIndex: 'index.html', + appIndex: 'index.html', nodeResolve: { exportConditions: ['development'] }, @@ -13,5 +15,17 @@ export default { // debug: false, preserveSymlinks: true, plugins: [], - middleware: [], + middleware: [(context, next) => { + // if file not found, return app index.html + if (!( + context.url === '/' || + context.url.startsWith('/__w') || + existsSync(config.rootDir + context.url) + )) { + context.url = config.appIndex; + } + return next(); + }], }; + +export default config; diff --git a/ui/ui-kit/src/card/card.ts b/ui/ui-kit/src/card/card.ts new file mode 100644 index 000000000..71025a33f --- /dev/null +++ b/ui/ui-kit/src/card/card.ts @@ -0,0 +1,70 @@ +import {AlwatrDummyElement, css, customElement, html} from '@alwatr/element'; + +import {focusRingStyle} from '../style/helper/focus-ring.js'; + +import type {CSSResultGroup} from '@alwatr/element'; + +export type CardType = 'elevated' | 'filled' | 'outlined'; + +declare global { + interface HTMLElementTagNameMap { + 'alwatr-card': AlwatrCard; + } +} + +/** + * Alwatr Card Base Element + * + * @attr {elevated|filled|outlined} type + * @attr {boolean} disabled + */ +@customElement('alwatr-card') +export class AlwatrCard extends AlwatrDummyElement { + static override styles: CSSResultGroup = [ + focusRingStyle, + css` + :host /* filled */ { + --_color-hsl: var(--sys-color-on-surface-variant-hsl); + display: block; + padding: calc(2 * var(--sys-spacing-track)); + border-radius: var(--sys-radius-medium); + box-shadow: var(--elevation-0); + background-color: var(--sys-color-surface-variant); + transition: box-shadow var(--sys-motion-duration-small-out) var(--sys-motion-easing-linear); + } + + :host(:hover:not(:active)) { + box-shadow: var(--elevation-1); + } + + :host([type='elevated']) { + --_color-hsl: var(--sys-color-on-surface-hsl); + box-shadow: var(--elevation-1); + background-color: var(--sys-color-surface); + } + + :host([type='elevated']:hover:not(:active)) { + box-shadow: var(--elevation-2); + } + + :host([type='elevated']:active) { + box-shadow: var(--elevation-1); + } + + :host([type='outlined']) { + --_color-hsl: var(--sys-color-on-surface-hsl); + background-color: var(--sys-color-surface); + border: 1px solid var(--sys-color-outline); + } + + :host([type='outlined'][disabled]) { + opacity: 0.12; + } + `, + ]; + + override render(): unknown { + super.render(); + return html``; + } +} diff --git a/ui/ui-kit/src/chat/chat.ts b/ui/ui-kit/src/chat/chat.ts index aab77a865..9014699dd 100644 --- a/ui/ui-kit/src/chat/chat.ts +++ b/ui/ui-kit/src/chat/chat.ts @@ -122,8 +122,8 @@ export class AlwatrChat extends AlwatrSmartElement { alwatr-chat-list { height: 100%; - color: var(--sys-color-on-secondary-container); - background-color: var(--sys-color-secondary-container); + color: var(--sys-color-on-surface-variant); + background-color: var(--sys-color-surface-variant); padding-bottom: calc(12 * var(--sys-spacing-track)); } diff --git a/ui/ui-kit/src/style/helper/focus-ring.ts b/ui/ui-kit/src/style/helper/focus-ring.ts index 174e54cf0..25557ff19 100644 --- a/ui/ui-kit/src/style/helper/focus-ring.ts +++ b/ui/ui-kit/src/style/helper/focus-ring.ts @@ -3,6 +3,7 @@ import {css} from '@alwatr/element'; export const focusRingStyle = css` :host { color: hsl(var(--_color-hsl, 0, 100%, 50%)); + outline: 0; } :host(:hover) { @@ -19,10 +20,17 @@ export const focusRingStyle = css` ); } - :host(:focus) { + :host(:focus), + :host(:focus-within) { background-image: linear-gradient( hsla(var(--_color-hsl), var(--sys-opacity-focus)), hsla(var(--_color-hsl), var(--sys-opacity-focus)) ); } + + :host([disabled]) { + opacity: 0.38; + pointer-events: none; + box-shadow: var(--elevation-0) !important; + } `;