mirror of
https://github.com/shoelace-style/webawesome.git
synced 2026-01-12 04:09:12 +00:00
Move appearance utils to separate file
This commit is contained in:
@@ -10,6 +10,7 @@ import { watch } from '../../internal/watch.js';
|
||||
import { WebAwesomeFormAssociatedElement } from '../../internal/webawesome-element.js';
|
||||
import nativeStyles from '../../styles/native/button.css';
|
||||
import sizeStyles from '../../styles/shadow/size.css';
|
||||
import appearanceStyles from '../../styles/utilities/appearance.css';
|
||||
import variantStyles from '../../styles/utilities/variants.css';
|
||||
import { LocalizeController } from '../../utilities/localize.js';
|
||||
import '../icon/icon.js';
|
||||
@@ -52,7 +53,7 @@ import styles from './button.css';
|
||||
*/
|
||||
@customElement('wa-button')
|
||||
export default class WaButton extends WebAwesomeFormAssociatedElement {
|
||||
static shadowStyle = [variantStyles, sizeStyles, nativeStyles, styles];
|
||||
static shadowStyle = [variantStyles, appearanceStyles, sizeStyles, nativeStyles, styles];
|
||||
|
||||
static get validators() {
|
||||
return [...super.validators, MirrorValidator()];
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
@import url('shadow/size.css');
|
||||
@import url('utilities/variants.css');
|
||||
@import url('utilities/appearance.css');
|
||||
|
||||
/**
|
||||
* Applied styles are used to "reset" a page and provide defaults for typography and native HTML elements based on
|
||||
|
||||
@@ -96,46 +96,6 @@ input:is([type='button'], [type='reset'], [type='submit']),
|
||||
|
||||
/* Styles */
|
||||
|
||||
.wa-outlined,
|
||||
:host([appearance~='outlined']) {
|
||||
--background-color: transparent;
|
||||
--background-color-hover: var(--wa-color-fill-quiet);
|
||||
--background-color-active: color-mix(in oklab, var(--background-color-hover), transparent 20%);
|
||||
|
||||
--border-color: var(--wa-color-border-loud);
|
||||
--border-color-hover: var(--wa-color-border-loud);
|
||||
|
||||
--label-color: var(--wa-color-on-quiet);
|
||||
--label-color-hover: var(--wa-color-on-quiet);
|
||||
}
|
||||
|
||||
.wa-filled,
|
||||
:host([appearance~='filled']) {
|
||||
--background-color: var(--wa-color-fill-loud, var(--wa-color-neutral-fill-loud));
|
||||
--background-color-hover: color-mix(in oklab, var(--background-color), var(--wa-color-mix-hover));
|
||||
--background-color-active: color-mix(in oklab, var(--background-color), var(--wa-color-mix-active));
|
||||
|
||||
--label-color: var(--wa-color-on-loud, var(--wa-color-neutral-on-loud));
|
||||
}
|
||||
|
||||
.wa-tinted,
|
||||
:host([appearance~='tinted']) {
|
||||
--background-color: var(--wa-color-fill-normal, var(--wa-color-neutral-fill-normal));
|
||||
--label-color: var(--wa-color-on-normal, var(--wa-color-neutral-on-normal));
|
||||
|
||||
--background-color-hover: color-mix(in oklab, var(--background-color), transparent 10%);
|
||||
--background-color-active: color-mix(in oklab, var(--background-color), transparent 20%);
|
||||
}
|
||||
|
||||
.wa-text,
|
||||
:host([appearance~='text']) {
|
||||
--background-color: transparent;
|
||||
--label-color: var(--wa-color-on-quiet);
|
||||
|
||||
--background-color-hover: var(--wa-color-fill-quiet);
|
||||
--background-color-active: color-mix(in oklab, var(--background-color-hover), transparent 20%);
|
||||
}
|
||||
|
||||
.wa-pill,
|
||||
:host([pill]) {
|
||||
border-radius: var(--wa-border-radius-pill);
|
||||
|
||||
39
src/styles/utilities/appearance.css
Normal file
39
src/styles/utilities/appearance.css
Normal file
@@ -0,0 +1,39 @@
|
||||
.wa-outlined,
|
||||
:host([appearance~='outlined']) {
|
||||
--background-color: transparent;
|
||||
--background-color-hover: var(--wa-color-fill-quiet);
|
||||
--background-color-active: color-mix(in oklab, var(--background-color-hover), transparent 20%);
|
||||
|
||||
--border-color: var(--wa-color-border-loud);
|
||||
--border-color-hover: var(--wa-color-border-loud);
|
||||
|
||||
--label-color: var(--wa-color-on-quiet);
|
||||
--label-color-hover: var(--wa-color-on-quiet);
|
||||
}
|
||||
|
||||
.wa-filled,
|
||||
:host([appearance~='filled']) {
|
||||
--background-color: var(--wa-color-fill-loud, var(--wa-color-neutral-fill-loud));
|
||||
--background-color-hover: color-mix(in oklab, var(--background-color), var(--wa-color-mix-hover));
|
||||
--background-color-active: color-mix(in oklab, var(--background-color), var(--wa-color-mix-active));
|
||||
|
||||
--label-color: var(--wa-color-on-loud, var(--wa-color-neutral-on-loud));
|
||||
}
|
||||
|
||||
.wa-tinted,
|
||||
:host([appearance~='tinted']) {
|
||||
--background-color: var(--wa-color-fill-normal, var(--wa-color-neutral-fill-normal));
|
||||
--label-color: var(--wa-color-on-normal, var(--wa-color-neutral-on-normal));
|
||||
|
||||
--background-color-hover: color-mix(in oklab, var(--background-color), transparent 10%);
|
||||
--background-color-active: color-mix(in oklab, var(--background-color), transparent 20%);
|
||||
}
|
||||
|
||||
.wa-text,
|
||||
:host([appearance~='text']) {
|
||||
--background-color: transparent;
|
||||
--label-color: var(--wa-color-on-quiet);
|
||||
|
||||
--background-color-hover: var(--wa-color-fill-quiet);
|
||||
--background-color-active: color-mix(in oklab, var(--background-color-hover), transparent 20%);
|
||||
}
|
||||
Reference in New Issue
Block a user