@aegisjsproject/styles
Version:
Pre-made and reusable styles for `@aegisjsproject/core`
2,170 lines (1,764 loc) • 59.7 kB
JavaScript
'use strict';
/**
* Bootstrap Colors mapped to JS arrays.
* `export const red[100` maps to `red[0]` and `export const red[900` maps to `red[9]`
* or generally `(### / 100) - 1`.
*/
const red$1 = [
'#f8d7da', '#f1aeb5', '#ea868f', '#e35d6a',
'#dc3545', '#b02a37', '#842029', '#58151c', '#2c0b0e',
];
const blue$1 = [
'#cfe2ff', '#9ec5fe', '#6ea8fe', '#3d8bfd',
'#0d6efd', '#0a58ca', '#084298', '#052c65', '#031633',
];
const indigo = [
'#e0cffc', '#c29ffa', '#a370f7', '#8540f5',
'#6610f2', '#520dc2', '#3d0a91', '#290661', '#140330',
];
const purple$1 = [
'#e2d9f3', '#c5b3e6', '#a98eda', '#8c68cd',
'#6f42c1', '#59359a', '#432874', '#2c1a4d', '#160d27',
];
const pink = [
'#f7d6e6', '#efadce', '#e685b5', '#de5c9d',
'#d63384', '#ab296a', '#801f4f', '#561435', '#2b0a1a',
];
const orange$1 = [
'#ffe5d0', '#fecba1', '#feb272', '#fd9843',
'#fd7e14', '#ca6510', '#984c0c', '#653208', '#331904'
];
const yellow$1 = [
'#fff3cd', '#ffe69c', '#ffda6a', '#ffcd39',
'#ffc107', '#cc9a06', '#997404', '#664d03', '#332701',
];
const green$1 = [
'#d1e7dd', '#a3cfbb', '#75b798', '#479f76',
'#198754', '#146c43', '#0f5132', '#0a3622', '#051b11',
];
const teal = [
'#d2f4ea', '#a6e9d5', '#79dfc1', '#4dd4ac',
'#20c997', '#1aa179', '#13795b', '#0d503c', '#06281e',
];
const cyan = [
'#cff4fc', '#9eeaf9', '#6edff6', '#3dd5f3',
'#0dcaf0', '#0aa2c0', '#087990', '#055160', '#032830',
];
const gray = [
'#f8f9fa', '#e9ecef', '#dee2e6', '#ced4da',
'#adb5bd', '#6c757d', '#495057', '#343a40', '#212529',
];
const light$2 = gray[0];
const grayDark = gray[7];
const dark$2 = gray[8];
const primary$1 = blue$1[4];
const secondary$1 = gray[5];
const success$1 = green$1[4];
const info$1 = cyan[4];
const warning$1 = yellow$1[4];
const danger$1 = red$1[4];
var bootstrap = /*#__PURE__*/Object.freeze({
__proto__: null,
blue: blue$1,
cyan: cyan,
danger: danger$1,
dark: dark$2,
gray: gray,
grayDark: grayDark,
green: green$1,
indigo: indigo,
info: info$1,
light: light$2,
orange: orange$1,
pink: pink,
primary: primary$1,
purple: purple$1,
red: red$1,
secondary: secondary$1,
success: success$1,
teal: teal,
warning: warning$1,
yellow: yellow$1
});
const blue = ['#99c1f1', '#62a0ea', '#3584e4', '#1c71d8', '#1a5fb4'];
const green = ['#8ff0a4', '#57e389', '#33d17a', '#2ec27e', '#26a269'];
const yellow = ['#f9f06b', '#f8e45c', '#f6d32d', '#f5c211', '#e5a50a'];
const orange = ['#ffbe6f', '#ffa348', '#ff7800', '#e66100', '#c64600'];
const red = ['#f66151', '#ed333b', '#e01b24', '#c01c28', '#a51d2d'];
const purple = ['#dc8add', '#c061cb', '#9141ac', '#813d9c', '#613583'];
const brown = ['#cdab8f', '#b5835a', '#986a44', '#865e3c', '#63452c'];
const light$1 = ['#ffffff', '#f6f5f4', '#deddda', '#c0bfbc', '#9a9996'];
const dark$1 = ['#77767b', '#5e5c64', '#3d3846', '#241f31', '#000000'];
var gnome = /*#__PURE__*/Object.freeze({
__proto__: null,
blue: blue,
brown: brown,
dark: dark$1,
green: green,
light: light$1,
orange: orange,
purple: purple,
red: red,
yellow: yellow
});
const colorLight = dark$2;
const colorDark = light$2;
const bgLight = light$2;
const bgDark = dark$2;
const borderLight = gray[2];
const borderDark = gray[6];
const btnPrimary = primary$1;
const btnPrimaryActive = blue$1[6];
const btnPrimaryHover = blue$1[5];
const btnSecondary = secondary$1;
const btnSecondaryActive = gray[7];
const btnSecondaryHover = gray[6];
const btnDisabled = gray[5];
const btnSuccess = success$1;
const btnSuccessActive = green$1[6];
const btnSuccessHover = green$1[5];
const btnInfo = info$1;
const btnInfoActive = cyan[5];
const btnInfoHover = cyan[6];
const btnWarning = warning$1;
const btnWarningActive = yellow$1[6];
const btnWarningHover = yellow$1[5];
const btnDanger = danger$1;
const btnDangerActive = red$1[6];
const btnDangerHover = red$1[5];
const btnLight = light$2;
const btnLightActive = gray[2];
const btnLightHover = gray[1];
const btnDark = dark$2;
const btnDarkActive = gray[7];
const btnDarkHover = gray[6];
const btnLink = 'transparent'; // Link button background should be transparent
const btnLinkHover = 'transparent';
const btnLinkActive = 'transparent';
const linkColor = 'LinkText';
const scrollbarColor = primary$1;
const scrollbarTrack = gray[8];
var aegis = /*#__PURE__*/Object.freeze({
__proto__: null,
bgDark: bgDark,
bgLight: bgLight,
borderDark: borderDark,
borderLight: borderLight,
btnDanger: btnDanger,
btnDangerActive: btnDangerActive,
btnDangerHover: btnDangerHover,
btnDark: btnDark,
btnDarkActive: btnDarkActive,
btnDarkHover: btnDarkHover,
btnDisabled: btnDisabled,
btnInfo: btnInfo,
btnInfoActive: btnInfoActive,
btnInfoHover: btnInfoHover,
btnLight: btnLight,
btnLightActive: btnLightActive,
btnLightHover: btnLightHover,
btnLink: btnLink,
btnLinkActive: btnLinkActive,
btnLinkHover: btnLinkHover,
btnPrimary: btnPrimary,
btnPrimaryActive: btnPrimaryActive,
btnPrimaryHover: btnPrimaryHover,
btnSecondary: btnSecondary,
btnSecondaryActive: btnSecondaryActive,
btnSecondaryHover: btnSecondaryHover,
btnSuccess: btnSuccess,
btnSuccessActive: btnSuccessActive,
btnSuccessHover: btnSuccessHover,
btnWarning: btnWarning,
btnWarningActive: btnWarningActive,
btnWarningHover: btnWarningHover,
colorDark: colorDark,
colorLight: colorLight,
linkColor: linkColor,
scrollbarColor: scrollbarColor,
scrollbarTrack: scrollbarTrack
});
const stringify = thing => {
switch(typeof thing) {
case 'undefined':
return '';
case 'boolean':
return thing ? 'true' : 'false';
case 'object':
if (thing === null) {
return '';
} else if (thing instanceof CSSStyleSheet) {
return [...thing.cssRules].map(rule => rule.cssText).join('\n\n');
} else if (thing instanceof CSSRule) {
return thing.cssText;
} else if (thing instanceof HTMLLinkElement) {
return stringify(thing.sheet);
} else if (thing instanceof ArrayBuffer && Uint8Array.prototype.toBase64 instanceof Function) {
return new Uint8Array(thing).toBase64();
} else if (ArrayBuffer.isView(thing) && thing.toBase64 instanceof Function) {
return thing.toBase64();
} else if (thing instanceof Blob) {
return URL.createObjectURL(thing);
} else {
return thing.toString();
}
default:
return thing.toString();
}
};
function createStyleSheet(cssRules, { media, disabled, baseURL } = {}) {
const sheet = new CSSStyleSheet({
media: media instanceof MediaQueryList ? media.media : media,
disabled,
baseURL
});
sheet.replace(cssRules).catch(reportError);
return sheet;
}
function createStyleSheetSync(cssRules, { media, disabled, baseURL } = {}) {
const sheet = new CSSStyleSheet({
media: media instanceof MediaQueryList ? media.media : media,
disabled,
baseURL
});
sheet.replaceSync(cssRules);
return sheet;
}
const createCSSParser = ({ media, disabled, baseURL, sync = false } = {}) => sync
? (strings, ...args) => createStyleSheetSync(String.raw(strings, ...args.map(stringify)).trim(), { media, disabled, baseURL })
: (strings, ...args) => createStyleSheet(String.raw(strings, ...args.map(stringify)).trim(), { media, disabled, baseURL });
const css = createCSSParser();
const layers = css`@layer reset, vendor, base, layout, components, utilities;`;
const reset = css`@layer reset.aegisjsproject {
:root {
color-scheme: light dark;
interpolate-size: allow-keywords;
-webkit-text-size-adjust: none;
text-size-adjust: none;
}
body {
margin: 0;
hanging-punctuation: first last;
-webkit-font-smoothing: antialiased;
}
*, ::before, *::after {
box-sizing: border-box;
transition-behavior: allow-discrete;
}
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
}
p {
text-wrap: pretty;
}
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
input, button, textarea, select {
font: inherit;
color: inherit;
}
}`;
const customProperties = {
'font': { initialValue: 'system-ui', syntax: '<custom-ident> | <string>' },
'btn-border-radius': { initialValue: '5px', syntax: '<length>' },
'btn-border-width': { initialValue: '0px', syntax: '<length>' },
'color-light': { initialValue: colorLight, syntax: '<color>' },
'color-dark': { initialValue: colorDark, syntax: '<color>' },
'bg-light': { initialValue: bgLight, syntax: '<color>' },
'bg-dark': { initialValue: bgDark, syntax: '<color>' },
'border-color-light': { initialValue: borderLight, syntax: '<color>' },
'border-color-dark': { initialValue: borderDark, syntax: '<color>' },
'border-radius': { initialValue: '8px', syntax: '<length>' },
'btn-primary': { initialValue: btnPrimary, syntax: '<color>' },
'btn-primary-hover': { initialValue: btnPrimaryHover, syntax: '<color>' },
'btn-primary-active': { initialValue: btnPrimaryActive, syntax: '<color>' },
'btn-primary-disabled': { initialValue: btnDisabled, syntax: '<color>' },
'btn-secondary': { initialValue: btnSecondary, syntax: '<color>' },
'btn-secondary-hover': { initialValue: btnSecondaryHover, syntax: '<color>' },
'btn-secondary-active': { initialValue: btnSecondaryActive, syntax: '<color>' },
'btn-success': { initialValue: btnSuccess, syntax: '<color>' },
'btn-success-hover': { initialValue: btnSuccessHover, syntax: '<color>' },
'btn-success-active': { initialValue: btnSuccessActive, syntax: '<color>' },
'btn-success-disabled': { initialValue: btnDisabled, syntax: '<color>' },
'btn-info': { initialValue: btnInfo, syntax: '<color>' },
'btn-info-hover': { initialValue: btnInfoHover, syntax: '<color>' },
'btn-info-active': { initialValue: btnInfoActive, syntax: '<color>' },
'btn-info-disabled': { initialValue: btnDisabled, syntax: '<color>' },
'btn-warning': { initialValue: btnWarning, syntax: '<color>' },
'btn-warning-hover': { initialValue: btnWarningHover, syntax: '<color>' },
'btn-warning-active': { initialValue: btnWarningActive, syntax: '<color>' },
'btn-warning-disabled': { initialValue: btnDisabled, syntax: '<color>' },
'btn-danger': { initialValue: btnDanger, syntax: '<color>' },
'btn-danger-hover': { initialValue: btnDangerHover, syntax: '<color>' },
'btn-danger-active': { initialValue: btnDangerActive, syntax: '<color>' },
'btn-danger-disabled': { initialValue: btnDisabled, syntax: '<color>' },
'btn-dark': { initialValue: btnDark, syntax: '<color>' },
'btn-dark-hover': { initialValue: btnDarkHover, syntax: '<color>' },
'btn-dark-active': { initialValue: btnDarkActive, syntax: '<color>' },
'btn-dark-disabled': { initialValue: btnDisabled, syntax: '<color>' },
'btn-light': { initialValue: btnLight, syntax: '<color>' },
'btn-light-hover': { initialValue: btnLightHover, syntax: '<color>' },
'btn-light-active': { initialValue: btnLightActive, syntax: '<color>' },
'btn-light-disabled': { initialValue: btnDisabled, syntax: '<color>' },
'btn-link': { initialValue: btnLink, syntax: '<color>' },
'btn-link-hover': { initialValue: btnLinkHover, syntax: '<color>' },
'btn-link-active': { initialValue: btnLinkActive, syntax: '<color>' },
'btn-link-disabled': { initialValue: btnDisabled, syntax: '<color>' },
'link-color': { initialValue: linkColor, syntax: '<color>' },
'scrollbar-color': { initialValue: scrollbarColor, syntax: '<color>' },
'scrollbar-track': { initialValue: scrollbarTrack, syntax: '<color>' },
'scrollbar-width': { initialValue: 'auto', syntax: '<custom-ident>' },
'blink-speed': { initialValue: '200ms', syntax: '<time>' },
'fast-speed': { initialValue: '400ms', syntax: '<time>' },
'normal-speed': { initialValue: '600ms', syntax: '<time>' },
'slow-speed': { initialValue: '800ms', syntax: '<time>' },
'crawl-speed': { initialValue: '1200ms', syntax: '<time>' },
'btn-disabled-opacity': { initialValue: 0.65, syntax: '<number>' },
'btn-disabled-saturation': { initialValue: '50%', syntax: '<percentage>' },
'btn-disabled-brightness': { initialValue: '90%', syntax: '<percentage>' },
};
const SUPPORTS_CUSTOM_STATES = CSS.supports('selector(:state(foo))');
const LAYER_PREFIX = 'vendor.aegis';
const properties = css`${Object.entries(customProperties).map(
([name, { initialValue, inherits = true, syntax = '*' }]) => `@property --aegis-${name} {
syntax: "${syntax}";
inherits: ${inherits};
initial-value: ${initialValue};
}`
).join('\n\n')}`;
const baseTheme = css`@layer base.aegisjsproject.theme {
:root {
color-scheme: light dark;
font-family: var(--aegis-font, system-ui);
}
[data-theme="light"] {
color-scheme: only light;
}
[data-theme="dark"] {
color-scheme: only dark;
}
:root, [data-theme] {
color: light-dark(var(--aegis-color-light, ${dark$2}), var(--aegis-color-dark, ${light$2}));
background-color: light-dark(var(--aegis-bg-light, ${light$2}), var(--aegis-bg-dark, ${dark$2}));
}
}`;
const componentBase = css`@layer components.aegisjsproject.theme {
:host {
color: var(--aegis-color-light, ${dark$2});
color: light-dark(var(--aegis-color-light, ${dark$2}), var(--aegis-color-dark, ${light$2}));
background-color: var(--aegis-bg-light, ${light$2});
background-color: light-dark(var(--aegis-bg-light, ${light$2}), var(--aegis-bg-dark, ${dark$2}));
font-family: system-ui;
}
:host(:not([hidden]):not([popover])) {
display: block;
}
:host([theme="light"]) {
color-scheme: only light;
}
:host([theme="dark"]) {
color-scheme: only dark;
}
}`;
const componentBorder = css`@layer components.aegisjsproject.theme {
:host {
border-width: 1px;
border-style: solid;
border-color: light-dark(var(--aegis-border-color-light, ${gray[2]}), var(--aegis-border-color-dark, ${gray[6]}));
border-radius: var(--aegis-border-radius, 8px);
}
}`;
/**
* @deprecated
*
* Preserving sheets just to avoid breaking on import. Now using `color-scheme` & `light-dark()` only.
*/
const componentDarkTheme = new CSSStyleSheet({ disabled: true });
/**
* @deprecated
*
* Preserving sheets just to avoid breaking on import. Now using `color-scheme` & `light-dark()` only.
*/
const componentLightTheme = new CSSStyleSheet({ disabled: true });
/**
* @deprecated
*
* Preserving sheets just to avoid breaking on import. Now using `color-scheme` & `light-dark()` only.
*/
const darkTheme = new CSSStyleSheet({ disabled: true });
/**
* @deprecated
*
* Preserving sheets just to avoid breaking on import. Now using `color-scheme` & `light-dark()` only.
*/
const lightTheme = new CSSStyleSheet({ disabled: true });
const DISABLED_STATE = SUPPORTS_CUSTOM_STATES ? ':state(disabled)' : '._state--disabled';
const DISABLED = `:disabled, .disabled, ${DISABLED_STATE}`;
const LAYER = 'components.aegisjsproject.button';
const btn = css`@layer ${LAYER} {
.btn:not([hidden]) {
cursor: pointer;
display: inline-block;
padding: 0.6em 1.3em;
border-width: var(--aegis-btn-border-width, 0px);
border-style: solid;
appearance: button;
line-height: 1.5;
text-align: center;
vertical-align: middle;
font-family: inherit;
font-size: 1rem;
border-radius: var(--aegis-btn-border-radius, 5px);
text-decoration: none;
transition: background-color 150ms ease-in-out, border-color 150ms ease-in-out, color 150ms ease-in-out;
}
.btn${DISABLED} {
pointer-events: none;
}
.btn.btn-sm {
padding: 0.5em 1em;
font-size: 0.7rem;
}
.btn.btn-lg {
padding: 0.5em 1.1em;
font-size: 1.3rem;
}
.btn.btn-block {
display: block;
width: 100%;
}
.btn:disabled:not(.btn-system, .btn-system-accent), .btn.disabled:not(.btn-system, .btn-system-accent), .btn${DISABLED} {
cursor: not-allowed;
opacity: var(--aegis-btn-disabled-opacity, 0.65);
filter: saturate(var(--aegis-btn-disabled-saturation, 50%)) brightness(var(--aegis-btn-disabled-brightness, 90%));
}
.btn.disabled, .btn${DISABLED_STATE} {
pointer-events: none;
}
.btn:focus-visible {
outline: 2px solid;
outline-offset: 2px;
}
}`;
const system = css`@layer ${LAYER} {
.btn.btn-system {
background-color: ButtonFace;
color: ButtonText;
border-color: hsl(from ButtonFace h s calc(l - 0.2));
}
.btn.btn-system:hover {
background-color: hsl(from ButtonFace h s calc(l * 1.1));
border-color: hsl(from ButtonFace h s calc(l * 1.1));
}
.btn.btn-system:focus-visible {
background-color: hsl(from ButtonFace h calc(s * 1.05) calc(l * 1.05));
border-color: hsl(from ButtonFace h calc(s * 1.05) calc(l * 1.05));
outline: 2px solid ButtonText;
outline-offset: 2px;
}
.btn.btn-system:active {
background-color: hsl(from ButtonFace h s calc(l * 0.8));
border-color: hsl(from ButtonFace h s calc(l * 0.8));
}
.btn.btn-system:disabled, .btn.btn-system.disabled, .btn.btn-system${DISABLED_STATE} {
background-color: hsl(from ButtonFace h calc(s * 0.2) l);
border-color: hsl(from ButtonFace h calc(s * 0.2) l);
color: GrayText;
}
}`;
const systemAccent = css`@layer ${LAYER} {
.btn.btn-system-accent {
background-color: AccentColor;
color: AccentColorText;
border-color: hsl(from AccentColor h s calc(l - 0.2));
}
.btn.btn-system-accent:hover {
background-color: hsl(from AccentColor h s calc(l * 1.1));
border-color: hsl(from AccentColor h s calc(l * 1.1));
}
.btn.btn-system-accent:focus-visible {
background-color: hsl(from AccentColor h calc(s * 1.05) calc(l * 1.05));
border-color: hsl(from AccentColor h calc(s * 1.05) calc(l * 1.05));
outline: 2px solid hsl(from AccentColor h s calc(l - 0.3));
outline-offset: 2px;
}
.btn.btn-system-accent:active {
background-color: hsl(from AccentColor h s calc(l * 0.8));
border-color: hsl(from AccentColor h s calc(l * 0.8));
}
.btn.btn-system-accent:disabled, .btn.btn-system-accent.disabled, .btn.btn-system${DISABLED_STATE} {
background-color: hsl(from AccentColor h calc(s * 0.2) l);
border-color: hsl(from AccentColor h calc(s * 0.2) l);
color: GrayText;
}
}`;
const primary = css`@layer ${LAYER} {
.btn.btn-primary {
background-color: var(--aegis-btn-primary, ${btnPrimary});
color: var(--aegis-color-dark, ${colorDark});
border-color: ${blue$1[6]};
}
.btn.btn-primary:hover:not(${DISABLED}), .btn.btn-primary:focus-visible {
background-color: var(--aegis-btn-primary-hover, ${btnPrimaryHover});
border-color: ${blue$1[7]};
}
.btn.btn-primary:focus-visible {
outline-color: var(--aegis-btn-primary, ${btnPrimary});
}
.btn.btn-primary:active {
background-color: var(--aegis-btn-primary-active, ${btnPrimaryActive});
border-color: ${blue$1[8]};
}
}`;
const btnOutlinePrimary = css`@layer ${LAYER} {
.btn.btn-outline-primary {
background-color: transparent;
color: var(--aegis-btn-primary, ${btnPrimary});
border-color: currentColor;
}
.btn.btn-outline-primary:focus-visible {
outline-color: var(--aegis-btn-primary, ${btnPrimary});
}
.btn.btn-outline-primary:hover:not(${DISABLED}), .btn.btn-outline-primary:focus-visible {
background-color: var(--aegis-btn-primary-hover, ${btnPrimaryHover});
border-color: ${blue$1[7]};
color: var(--aegis-color-dark, ${colorDark});
}
.btn.btn-outline-primary:active {
background-color: var(--aegis-btn-primary-active, ${btnPrimaryActive});
border-color: ${blue$1[8]};
color: var(--aegis-color-dark, ${colorDark});
}
}`;
const secondary = css`@layer ${LAYER} {
.btn.btn-secondary {
background-color: var(--aegis-btn-secondary, ${btnSecondary});
color: var(--aegis-color-dark, ${colorDark});
border-color: ${gray[7]};
}
.btn.btn-secondary:hover:not(${DISABLED}), .btn.btn-secondary:focus-visible {
background-color: var(--aegis-btn-secondary-hover, ${btnSecondaryHover});
border-color: ${gray[8]};
}
.btn.btn-secondary:focus-visible {
outline-color: var(--aegis-btn-secondary, ${btnSecondary});
}
.btn.btn-secondary:active {
background-color: var(--aegis-btn-secondary-active, ${btnSecondaryActive});
border-color: ${gray[8]};
}
}`;
const btnOutlineSecondary = css`@layer ${LAYER} {
.btn.btn-outline-secondary {
background-color: transparent;
color: var(--aegis-btn-secondary, ${btnSecondary});
border-color: currentColor;
}
.btn.btn-outline-secondary:hover:not(${DISABLED}), .btn.btn-outline-secondary:focus-visible {
background-color: var(--aegis-btn-secondary-hover, ${btnSecondaryHover});
border-color: ${gray[8]};
color: var(--aegis-color-dark, ${colorDark});
}
.btn.btn-outline-secondary:focus-visible {
outline-color: var(--aegis-btn-secondary, ${btnSecondary});
}
.btn.btn-outline-secondary:active {
background-color: var(--aegis-btn-secondary-active, ${btnSecondaryActive});
border-color: ${gray[8]};
color: var(--aegis-color-dark, ${colorDark});
}
.btn.btn-outline-secondary:disabled, .btn.btn-outline-secondary.disabled, .btn.btn-outline-seconday${DISABLED_STATE} {
color: var(--aegis-btn-active-disabled, ${btnDisabled});
}
}`;
const success = css`@layer ${LAYER} {
.btn.btn-success {
background-color: var(--aegis-btn-success, ${btnSuccess});
color: var(--aegis-color-dark, ${colorDark});
border-color: ${green$1[6]};
}
.btn.btn-success:hover:not(${DISABLED}), .btn.btn-success:focus-visible {
background-color: var(--aegis-btn-success-hover, ${btnSuccessHover});
border-color: ${green$1[7]};
}
.btn.btn-success:focus-visible {
outline-color: var(--aegis-btn-success, ${btnSuccess});
}
.btn.btn-success:active {
background-color: var(--aegis-btn-success-active, ${btnSuccessActive});
border-color: ${green$1[8]};
}
}`;
const btnOutlineSuccess = css`@layer ${LAYER} {
.btn.btn-outline-success {
background-color: transparent;
color: var(--aegis-btn-success, ${btnSuccess});
border-color: currentColor;
}
.btn.btn-outline-success:hover:not(${DISABLED}), .btn.btn-outline-success:focus-visible {
background-color: var(--aegis-btn-success-hover, ${btnSuccessHover});
border-color: ${green$1[7]};
color: var(--aegis-color-dark, ${colorDark});
}
.btn.btn-outline-success:focus-visible {
outline-color: var(--aegis-btn-success, ${btnSuccess});
}
.btn.btn-outline-success:active {
background-color: var(--aegis-btn-success-active, ${btnSuccessActive});
border-color: ${green$1[8]};
color: var(--aegis-color-dark, ${colorDark});
}
}`;
const info = css`@layer ${LAYER} {
.btn.btn-info {
background-color: var(--aegis-btn-info, ${btnInfo});
color: var(--aegis-color-dark, ${colorDark});
border-color: ${cyan[6]};
}
.btn.btn-info:not(${DISABLED}), .btn.btn-info:focus-visible {
background-color: var(--aegis-btn-info-hover, ${btnInfoHover});
border-color: ${cyan[7]};
}
.btn.btn-info:focus-visible {
outline-color: var(--aegis-btn-info, ${btnInfo});
}
.btn.btn-info:active {
background-color: var(--aegis-btn-info-active, ${btnInfoActive});
border-color: ${cyan[8]};
}
}`;
const btnOutlineInfo = css`@layer ${LAYER} {
.btn.btn-outline-info {
background-color: transparent;
color: var(--aegis-btn-info, ${btnInfo});
border-color: currentColor;
}
.btn.btn-outline-info:hover:not(${DISABLED}), .btn.btn-outline-info:focus-visible {
background-color: var(--aegis-btn-info-hover, ${btnInfoHover});
border-color: ${cyan[7]};
color: var(--aegis-color-dark, ${colorDark});
}
.btn.btn-outline-info:focus-visible {
outline-color: var(--aegis-btn-info, ${btnInfo});
}
.btn.btn-outline-info:active {
background-color: var(--aegis-btn-info-active, ${btnInfoActive});
border-color: ${cyan[8]};
color: var(--aegis-color-dark, ${colorDark});
}
}`;
const danger = css`@layer ${LAYER} {
.btn.btn-danger {
background-color: var(--aegis-btn-danger, ${btnDanger});
color: var(--aegis-color-dark, ${colorDark});
border-color: ${red$1[6]};
}
.btn.btn-danger:hover:not(${DISABLED}), .btn.btn-danger:focus-visible {
background-color: var(--aegis-btn-danger-hover, ${btnDangerHover});
border-color: ${red$1[7]};
}
.btn.btn-danger:focus-visible {
outline-color: var(--aegis-btn-danger, ${btnDanger});
}
.btn.btn-danger:active {
background-color: var(--aegis-btn-danger-active, ${btnDangerActive});
border-color: ${red$1[8]};
}
}`;
const btnOutlineDanger = css`@layer ${LAYER} {
.btn.btn-outline-danger {
background-color: transparent;
color: var(--aegis-btn-danger, ${btnDanger});
border-color: currentColor;
}
.btn.btn-outline-danger:hover:not(${DISABLED}), .btn.btn-outline-danger:focus-visible {
background-color: var(--aegis-btn-danger-hover, ${btnDangerHover});
border-color: ${red$1[7]};
color: var(--aegis-color-dark, ${colorDark});
}
.btn.btn-outline-danger:focus-visible {
outline-color: var(--aegis-btn-danger, ${btnDanger});
}
.btn.btn-outline-danger:active {
background-color: var(--aegis-btn-danger-active, ${btnDangerActive});
border-color: ${red$1[8]};
color: var(--aegis-color-dark, ${colorDark});
}
}`;
const warning = css`@layer ${LAYER} {
.btn.btn-warning {
background-color: var(--aegis-btn-warning, ${btnWarning});
color: var(--aegis-color-light, ${colorLight});
border-color: ${yellow$1[6]};
}
.btn.btn-warning:hover:not(${DISABLED}), .btn.btn-warning:focus-visible {
background-color: var(--aegis-btn-warning-hover, ${btnWarningHover});
border-color: ${yellow$1[7]};
}
.btn.btn-warning:focus-visible {
outline-color: var(--aegis-btn-warning, ${btnWarning});
}
.btn.btn-warning:active {
background-color: var(--aegis-btn-warning-active, ${btnWarningActive});
border-color: ${yellow$1[8]};
}
}`;
const btnOutlineWarning = css`@layer ${LAYER} {
.btn.btn-outline-warning {
background-color: transparent;
color: var(--aegis-btn-warning, ${btnWarning});
border-color: currentColor;
}
.btn.btn-outline-warning:hover:not(${DISABLED}), .btn.btn-outline-warning:focus-visible {
background-color: var(--aegis-btn-warning-hover, ${btnWarningHover});
border-color: ${yellow$1[7]};
color: var(--aegis-color-light, ${colorLight});
}
.btn.btn-outline-warning:active {
background-color: var(--aegis-btn-warning-active, ${btnWarningActive});
border-color: ${yellow$1[8]};
color: var(--aegis-color-light, ${colorLight});
}
.btn.btn-outline-warning:focus-visible {
outline-color: var(--aegis-btn-warning, ${btnWarning});
}
}`;
const light = css`@layer ${LAYER} {
.btn.btn-light {
background-color: var(--aegis-btn-light, ${btnLight});
color: var(--aegis-color-light, ${colorLight});
border-color: ${gray[2]};
}
.btn.btn-light:hover:not(${DISABLED}), .btn.btn-light:focus-visible {
background-color: var(--aegis-btn-light-hover, ${btnLightHover});
border-color: ${gray[3]};
}
.btn.btn-light:focus-visible {
outline-color: var(--aegis-btn-light, ${btnLight});
}
.btn.btn-light:active {
background-color: var(--aegis-btn-light-active, ${btnLightActive});
border-color: ${gray[4]};
}
}`;
const btnOutlineLight = css`@layer ${LAYER} {
.btn.btn-outline-light {
background-color: transparent;
color: var(--aegis-btn-light, ${btnLight});
border-color: currentColor;
}
.btn.btn-outline-light:hover:not(${DISABLED}), .btn.btn-outline-light:focus-visible {
background-color: var(--aegis-btn-light-hover, ${btnLightHover});
border-color: ${gray[3]};
color: var(--aegis-color-light, ${colorLight});
}
.btn.btn-outline-light:focus-visible {
outline-color: var(--aegis-btn-light, ${btnLight});
}
.btn.btn-outline-light:active {
background-color: var(--aegis-btn-light-active, ${btnLightActive});
border-color: ${gray[4]};
color: var(--aegis-btn-light-active, ${btnLightActive});
}
}`;
const dark = css`@layer ${LAYER} {
.btn.btn-dark {
background-color: var(--aegis-btn-dark, ${btnDark});
color: var(--aegis-color-dark, ${colorDark});
border-color: ${gray[7]};
}
.btn.btn-dark:hover:not(${DISABLED}), .btn.btn-dark:focus-visible {
background-color: var(--aegis-btn-dark-hover, ${btnDarkHover});
border-color: ${gray[8]};
}
.btn.btn-dark:focus-visible {
outline-color: var(--aegis-btn-dark, ${btnDark});
}
.btn.btn-dark:active {
background-color: var(--aegis-btn-dark-active, ${btnDarkActive});
border-color: ${gray[8]};
}
}`;
const btnOutlineDark = css`@layer ${LAYER} {
.btn.btn-outline-dark {
background-color: transparent;
color: var(--aegis-btn-dar, ${btnDark});
border-color: currentColor;
}
.btn.btn-outline-dark:hover:not(${DISABLED}), .btn.btn-outline-dark:focus-visible {
background-color: var(--aegis-btn-dark-hover, ${btnDarkHover});
border-color: ${gray[8]};
color: var(--aegis-color-dark, ${colorDark});
}
.btn.btn-outline-dark:focus-visible {
outline-color: var(--aegis-btn-dark, ${btnDark});
}
.btn.btn-outline-dark:active {
background-color: var(--aegis-btn-dark-active, ${btnDarkActive});
border-color: ${gray[8]};
color: var(--aegis-color-dark, ${colorDark});
}
.btn.btn-outline-secondary:disabled, .btn.btn-outline-secondary.disabled, .btn.btn-outline-secondary${DISABLED_STATE} {
color: var(--aegis-btn-active-disabled, ${btnDisabled});
}
}`;
const link = css`@layer ${LAYER} {
.btn.btn-link {
background-color: var(--aegis-btn-link, ${btnLink});
color: ${linkColor};
border-color: transparent;
text-decoration: none;
}
.btn.btn-link:hover:not(${DISABLED}), .btn.btn-link:focus-visible {
background-color: var(--aegis-btn-link-hover, ${btnLinkHover});
text-decoration: underline;
}
.btn.btn-link:focus-visible {
outline-color: var(--aegis-btn-link, ${btnLink});
}
.btn.btn-link:active {
background-color: var(--aegis-btn-link-active, ${btnLinkActive});
text-decoration: underline;
}
}`;
const DISABLED_SELECTOR = ':state(disabled)';
const customButton = css`@layer components.aegisjsproject.button {
:host {
display: inline flow-root;
appearance: button;
user-select: none;
white-space: nowrap;
align-items: flex-start;
text-align: center;
cursor: default;
box-sizing: border-box;
background-color: ButtonFace;
color: ButtonText;
border: 1px outset ButtonBorder;
border-radius: 2px;
padding: 2px 6px;
font-family: system-ui, -apple-system, sans-serif;
font-size: small;
}
:host(:focus-visible) {
/* Universal fallback for older engines or high contrast overrides */
outline: auto;
outline: 2px solid CanvasText;
outline-offset: 2px;
}
/* WebKit & Blink (Chrome, Safari, Edge) native focus ring targeting */
@supports (outline-color: -webkit-focus-ring-color) {
:host(:focus-visible) {
outline: 5px auto -webkit-focus-ring-color;
}
}
/* Firefox cross-platform fallback (Windows, Android, Linux) */
@supports (-moz-appearance: none) {
:host(:focus-visible) {
outline: 2px solid AccentColor;
}
}
:host(${DISABLED_SELECTOR}) {
color: GrayText;
border-color: color-mix(in srgb, GrayText, transparent 50%);
background-color: color-mix(in srgb, ButtonFace, transparent 50%);
pointer-events: none;
}
:host(:hover:not(${DISABLED_SELECTOR})) {
background-color: color-mix(in srgb, ButtonFace, ButtonText 10%);
}
:host(:active:not(${DISABLED_SELECTOR})) {
background-color: color-mix(in srgb, ButtonFace, ButtonText 20%);
}
}`;
const displays = css`@layer layout.aegisjsproject.displays {
.block:not([hidden]):not([popover]) {
display: block;
}
.inline:not([hidden]):not([popover]) {
display: inline;
}
.inline-block:not([hidden]):not([popover]) {
display: inline-block;
}
.flex:not([hidden]):not([popover]) {
display: flex;
}
.inline-flex:not([hidden]):not([popover]) {
display: inline-flex;
}
.grid:not([hidden]):not([popover]) {
display: grid;
}
.inline-grid:not([hidden]):not([popover]) {
display: inline-grid;
}
}`;
const positions = css`@layer layout.aegisjsproject.positions {
.fixed {
position: fixed;
}
.relative {
position: relative;
}
.absolute {
position: absolute;
}
.sticky {
position: sticky;
}
.top {
top: 0;
}
.bottom {
bottom: 0;
}
.left {
left: 0;
}
.right {
right: 0;
}
.z-0 {
z-index: 0;
}
.z-1 {
z-index: 1;
}
.z-2 {
z-index: 2;
}
.z-3 {
z-index: 3;
}
.z-4 {
z-index: 4;
}
.z-top {
z-index: var(--z-top, 9999);
}
.z-max {
z-index: 2147483647;
}
}`;
const floats = css`@layer layout.aegisjsproject.floats {
.float-left {
float: left;
}
.float-right {
float: right;
}
.float-none {
float: none;
}
.clear-left {
clear: left;
}
.clear-right {
clear: right;
}
.clear-both {
clear: both;
}
}`;
const fonts = css`@layer base.aegisjsproject.fonts {
.system-ui {
font-family: system-ui, sans-serif;
}
.ui-sans-serif {
font-family: ui-sans-serif, sans-serif;
}
.ui-serif {
font-family: ui-serif, serif;
}
.ui-monospace {
font-family: ui-monospace, monospace;
}
}`;
const overflows = css`@layer layout.aegisjsproject.overflows {
.overflow-hidden {
overflow: hidden;
}
.overflow-visible {
overflow: visible;
}
.overflow-scroll {
overflow: scroll;
}
.overflow-auto {
overflow: auto;
}
.overflow-x-hidden {
overflow-x: hidden;
}
.overflow-x-visible {
overflow-x: visible;
}
.overflow-x-scroll {
overflow-x: scroll;
}
.overflow-x-auto {
overflow-x: auto;
}
.overflow-y-hidden {
overflow-y: hidden;
}
.overflow-y-visible {
overflow-y: visible;
}
.overflow-y-scroll {
overflow-y: scroll;
}
.overflow-y-auto {
overflow-y: auto;
}
}`;
const colors = css`@layer base.aegisjsproject.colors {
.current-color {
fill: currentColor;
}
.color-initial {
color: initial;
}
.color-inherit {
color: inherit;
}
}`;
const objectFits = css`@layer layout.aegisjsproject.fit {
.fit-contain {
object-fit: contain;
}
.fit-cover {
object-fit: cover;
}
.fit-fill {
object-fit: fill;
}
.fit-none {
object-fit: none;
}
.fit-scale-down {
object-fit: scale-down;
}
}`;
const textRules = css`@layer base.aegisjsproject.text {
.text-align-left {
text-align: left;
}
.text-align-right {
text-align: right;
}
.text-align-center {
text-align: center;
}
.text-align-justify {
text-align: justify;
}
.text-align-justify-all {
text-align: justify-all;
}
.text-align-start {
text-align: start;
}
.text-align-end {
text-align: end;
}
.text-decoration-solid {
text-decoration-style: solid;
}
.text-decoration-wavy {
text-decoration-style: wavy;
}
.text-decoration-dotted {
text-decoration-style: dotted;
}
.text-decoration-dashed {
text-decoration-style: dashed;
}
.text-decoration-double {
text-decoration-style: double;
}
.no-text-decoration, .no-text-decoration * {
text-decoration: none;
}
.underline {
text-decoration-line: underline;
}
.overline {
text-decoration-line: overline;
}
.line-through {
text-decoration-line: line-through;
}
.optimize-speed {
text-rendering: optimizeSpeed;
}
.optimize-legibility {
text-rendering: optimizeLegibility;
}
.geometric-precision {
text-rendering: geometricPrecision;
}
.capitalize {
text-transform: capitalize;
}
.uppercase {
text-transform: uppercase;
}
.lowercase {
text-transform: lowercase;
}
.center, .align-center {
text-align: center;
}
.align-left {
text-align: left;
}
.align-right {
text-align: right;
}
.indent {
text-indent: var(--indent, 4ch);
}
.indent-all {
text-indent: var(--indent, 4ch) each-line;
}
.indent-hanging {
text-indent: var(--indent, 4ch) hanging;
}
}`;
const cursors = css`@layer base.aegisjsproject.cursors {
.no-pointer-events {
pointer-events: none;
}
.cursor-auto {
cursor: auto;
}
.cursor-default {
cursor: var(--default-cursor, default);
}
.cursor-none {
cursor: none;
}
.cursor-context-menu {
cursor: context-menu;
}
.cursor-help {
cursor: help;
}
.cursor-pointer {
cursor: var(--pointer-cursor, pointer);
}
.cursor-progress {
cursor: var(--progress-cursor, progress);
}
.cursor-wait {
cursor: var(--wait-cursor, wait);
}
.cursor-cell {
cursor: cell;
}
.cursor-crosshair {
cursor: crosshair;
}
.cursor-text {
cursor: text;
}
.cursor-vertical-text, .cursor-text-vertical {
cursor: vertical-text;
}
.cursor-alias {
cursor: alias;
}
.cursor-copy {
cursor: copy;
}
.cursor-move {
cursor: move;
}
.cursor-no-drop {
cursor: no-drop;
}
.cursor-not-allowed {
cursor: not-allowed;
}
.cursor-all-scroll {
cursor: all-scroll;
}
.cursor-col-resize {
cursor: col-resize;
}
.cursor-row-resize {
cursor: row-resize;
}
.cursor-n-resize {
cursor: n-resize;
}
.cursor-e-resize {
cursor: e-resize;
}
.cursor-s-resize {
cursor: s-resize;
}
.cursor-w-resize {
cursor: w-resize;
}
.cursor-ne-resize {
cursor: ne-resize;
}
.cursor-nw-resize {
cursor: nw-resize;
}
.cursor-se-resize {
cursor: se-resize;
}
.cursor-sw-resize {
cursor: sw-resize;
}
.cursor-zoom-in {
cursor: zoom-in;
}
.cursor-zoom-out {
cursor: zoom-out;
}
.cursor-grab {
cursor: grab;
}
.cursor-grabbing {
cursor: grabbing;
}
}`;
const utilities = css`@layer utilities.aegisjsproject {
.clearfix::after {
clear: both;
content: '';
display: block;
}
.shadow {
box-shadow: var(--shadow-x, 0) var(--shadow-y, 2px) var(--shadow-blur, 10px) var(--shadow-spread, 0) var(--shadow-color, rgba(0,0,0,.2));
}
.shadow-dark {
box-shadow: var(--shadow-x, 0) var(--shadow-y, 2px) var(--shadow-blur, 10px) var(--shadow-spread, 0) var(--shadow-dark-color, rgba(0,0,0,.6));
}
.icon, .icon * {
color: inherit;
max-width: 100%;
max-height: 100%;
width: var(--icon-size, 1em);
height: var(--icon-size, 1em);
vertical-align: middle;
}
.round {
border-radius: 50%;
}
}
@layer component.aegisjsproject {
.card {
border: var(--card-border, 1px solid #ccc);
border-radius: var(--card-radius, 2px);
background: var(--card-bg, var(--primary-color, white));
padding: var(--card-padding, 0.7em);
}
.custom-element:not(:defined) .if-defined[slot], .custom-element.if-defined:not(:defined) {
display: none;
}
}`;
const statusBoxes = css`@layer component.aegisjsproject.status-box {
.status-box {
padding: 1.2em;
border: 1px dashed currentColor;
text-align: center;
margin-top: 0.7em;
border-radius: 8px;
}
.status-box.alert, .status-box.error {
color: var(--alert-color, #6f0606);
background-color: var(--alert-background, #e88a8a);
}
.status-box.warn {
color: var(--warn-color, #51430c);
background-color: var(--warn-background, #f0d155);
}
.status-box.info {
color: var(--info-color, #555553);
background-color: var(--info-background, #d2d2d2);
}
.status-box.success {
color: var(--success-color, #1d4f01);
background-color: var(--success-background, #8cee69);
}
}`;
const forms = css`@layer component.aegisjsproject.forms {
.form-group {
border: 1px solid transparent;
padding: var(--form-group-padding, 0.4em 0.8em);
margin-bottom: 0.4em;
border-radius: 6px;
transition: border-color 200ms ease-in-out;
}
.form-group:focus-within {
border-color: var(--form-group-border, #cacaca);
}
.form-group .input-label {
display: block;
margin: 0.4em 0;
}
.form-group .input-label.required::after {
content: ' *';
display: inline;
font-size: 0.8em;
font-weight: 800;
}
.form-group .input, .form-group .input:required:invalid:placeholder-shown {
display: block;
width: var(--input-width, 100%);
max-width: 100%;
color: currentColor;
border-style: solid;
border-color: var(--input-border, #cacaca);
border-width: 0 0 1px 0;
background: transparent;
padding: var(--form-group-padding, 0.5em 0.3em);
transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
}
.form-group textarea.input {
resize: vertical;
}
.form-group .input:invalid {
box-shadow: none;
}
.form-group .input:invalid:not(:focus) {
color: var(--invalid-color, #-871717);
border-color: currentColor;
background-color: var(--invalid-background, #F7C1C1);
}
.form-group input[hidden] + label[for].btn-toggle {
background-color: var(--button-disabled-background);
margin: var(--form-group-margin, 0.3rem);
transition: background-color 300ms ease-in-out;
}
.form-group input[hidden]:checked + label[for].btn-toggle {
background-color: var(--button-background);
}
.form-group input[hidden]:not(:checked) + label[for].btn-toggle .when-checked {
display: none;
}
.form-group input[hidden]:checked + label[for].btn-toggle .when-unchecked {
display: none;
}
}`;
const scrollbarFallback = css`@layer base.aegisjsproject.scrollbar {
@supports not (scrollbar-color: currentColor transparent) {
::-webkit-scrollbar {
display: block;
}
::-webkit-scrollbar-thumb {
background-color: var(--aegis-scrollbar-color, ${scrollbarColor});
}
::-webkit-scrollbar-track {
background-color: var(--aegis-scrollbar-track, ${scrollbarTrack});
}
}
}`;
const scrollbar = css`@layer base.aegisjsproject.scrollbar {
:root {
scrollbar-color: var(--aegis-scrollbar-color, ${scrollbarColor}) var(--aegis-scrollbar-track, ${scrollbarTrack});
scrollbar-width: var(----aegis-scrollbar-width, auto);
}
}`;
const componentScrollbar = css`@layer component.aegisjsproject.scrollbar {
:host {
scrollbar-color: var(--aegis-scrollbar-color, ${scrollbarColor}) var(--aegis-scrollbar-track, ${scrollbarTrack});
scrollbar-width: var(----aegis-scrollbar-width, auto);
}
}`;
const transform = css`@layer utilities.aegisjsproject.animations {
.transform-origin-center {
transform-origin: center;
}
.transform-origin-top {
transform-origin: top;
}
.transform-origin-bottom {
transform-origin: bottom;
}
.transform-origin-left {
transform-origin: left;
}
.transform-origin-right {
transform-origin: right;
}
.transform-origin-top-center {
transform-origin: top center;
}
.transform-origin-top-left {
transform-origin: top left;
}
.transform-origin-top-right {
transform-origin: top right;
}
.transform-origin-bottom-left {
transform-origin: bottom left;
}
.transform-origin-bottom-right {
transform-origin: bottom right;
}
}`;
const transition = css`@layer utilities.aegisjsproject.animations {
.transition-linear {
transition-timing-function: linear;
}
.transition-ease {
transition-timing-function: ease;
}
.transition-ease-in {
transition-timing-function: ease-in;
}
.transition-ease-out {
transition-timing-function: ease-out;
}
.transition-ease-in-out {
transition-timing-function: ease-in-out;
}
.transition-speed-blink {
transition-duration: var(--aegis-blink-speed, 200ms);
}
.transition-speed-fast {
transition-duration: var(--aegis-fast-speed, 400ms);
}
.transition-speed-normal {
transition-duration: var(--aegis-normal-speed, 600ms);
}
.transition-speed-slow {
transition-duration: var(--aegis-slow-speed, 800ms);
}
.transition-speed-crawl {
transition-duration: var(--aegis-crawl-speed, 1600ms);
}
.transition-none {
transition-property: none;
}
.transition-all {
transition-property: all;
}
.transition-transform {
transition-property: transform;
}
.transition-opacity {
transition-property: opacity;
}
.transition-filter {
transition-property: filter;
}
.transition-background-position {
transition-property: background-position;
}
.transition-top {
transition-property: top;
}
.transition-right {
transition-property: right;
}
.transition-bottom {
transition-property: bottom;
}
.transition-left {
transition-property: left;
}
.transition-margin {
transition-property: margin;
}
.transition-padding {
transition-property: padding;
}
.transtion-color {
transition-property: color;
}
.transition-background-color {
transition-property: background-color;
}
.transition-color {
transition-property: color;
}
.transition-background {
transition-property: background;
}
.transition-width {
transition-property: width;
}
.transition-height {
transition-property: height;
}
.transition-max-width {
transition-property: max-width;
}
.transition-max-height {
transition-property: max-height;
}
.transition-stagger > :nth-child(5n+1) {
transition-delay: calc(1 * var(--aegis-transition-stagger, 200ms));
}
.transition-stagger > :nth-child(5n+2) {
transition-delay: calc(2 * var(--aegis-transition-stagger, 200ms));
}
.transition-stagger > :nth-child(5n+3) {
transition-delay: calc(3 * var(--aegis-transition-stagger, 200ms));
}
.transition-stagger > :nth-child(5n+4) {
transition-delay: calc(4 * var(--aegis-transition-stagger, 200ms));
}
.transition-stagger > :nth-child(5n+5) {
transition-delay: calc(5 * var(--aegis-transition-stagger, 200ms));
}
}`;
const animate = css`@layer utilities.aegisjsproject.animations {
.animation-trampoline {
animation-name: trampoline;
}
.animation-fade-in {
animation-name: fade-in;
}
.animation-fade-out {
animation-name: fade-out;
}
.animation-shrink {
animation-name: shrink;
}
.animation-grow {
animation-name: grow;
}
.animation-fly-in {
animation-name: fly-in;
}
.animation-slide-up {
animation-name: slide-up;
}
.animation-flip-down {
animation-name: flip-down;
}
.animation-tear-off {
animation-name: tear-off;
}
.animation-blink {
animation-name: blink;
}
.animation-paused {
animation-play-state: paused;
}
.animation-running {
animation-play-state: running;
}
.animation-speed-blink {
animation-duration: var(--aegis-blink-speed, 200ms);
}
.animation-speed-fast {
animation-duration: var(--aegis-fast-speed, 400ms);
}
.animation-speed-normal {
animation-duration: var(--aegis-normal-speed, 600ms);
}
.animation-speed-slow {
animation-duration: var(--aegis-slow-speed, 800ms);
}
.animation-speed-crawl {
animation-duration: var(--aegis-crawl-speed, 1200ms);
}
.animation-infinite {
animation-iteration-count: infinite;
}
.animation-alternate {
animation-direction: alternate;
}
.animation-reverse {
animation-direction: reverse;
}
.animation-alternate-reverse {
animation-direction: alternate-reverse;
}
.animation-normal {
animation-direction: normal;
}
.animation-fill-forwards {
animation-fill-mode: forwards;
}
.animation-fill-backwards {
animation-fill-mode: backwards;
}
.animation-fill-both {
animation-fill-mode: both;
}
.animation-fill-none {
animation-fill-mode: none;
}
.animation-linear {
animation-timing-function: linear;
}
.animation-ease {
animation-timing-function: ease;
}
.animation-ease-in {
animation-timing-function: ease-in;
}
.animation-ease-out {
animation-timing-function: ease-out;
}
.animation-ease-in-out {
animation-timing-function: ease-in-out;
}
.animation-overshoot {
animation-timing-function: cubic-bezier(.59,1.16,.83,1.11);
}
.animation-stagger > :nth-child(5n+1) {
animation-delay: calc(1 * var(--aegis-animation-stagger, 200ms));
}
.animation-stagger > :nth-child(5n+2) {
animation-delay: calc(2 * var(--aegis-animation-stagger, 200ms));
}
.animation-stagger > :nth-child(5n+3) {
animation-delay: calc(3 * var(--aegis-animation-stagger, 200ms));
}
.animation-stagger > :nth-child(5n+4) {
animation-delay: calc(4 * var(--aegis-animation-stagger, 200ms));
}
.animation-stagger > :nth-child(5n+5) {
animation-delay: calc(5 * var(--aegis-animation-stagger, 200ms));
}
}`;
const keyframes = css`@layer base.aegisjsproject.animations {
@keyframes trampoline {
from {
transform: scaleY(.85);
filter: drop-shadow(0 0.3em 0.1em rgba(0,0,0,0.7));
}
to {
filter: drop-shadow(0 0.7em 0.3em rgba(0,0,0,0.7));
transform: translateY(-1.2em);
}
}
@keyframes fade-in {
from {
opacity: 0;
}
}
@keyframes fade-out {
to {
opacity: 0;
}
}
@keyframes shrink {
to {
transform: scale(0);
}
}
@keyframes grow {
from {
transform: scale(0);
}
}
@keyframes fly-in {
from {
transform: translate(100vw, -3vh) scaleX(0.1) skew(-20deg);
}
}
@keyframes flip-down {
from {
transform: rotateX(-90deg);
}
}
@keyframes tear-off {
40% {
transform: rotateZ(30deg) rotateX(40deg) skew(-20deg);
}
99% {
transform: rotateZ(40deg) translate(-30vw, 120vh) skew(20deg);
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes slide {
from {
left: 100%;
}
to {
left: 0;
}
}
@keyframes slide-up {
from {
top: 100%;
}
to {
top: 0%;
}
}
@keyframes progress {
to {
background-position: right;
}
}
@keyframes hanger {
from {
transform: rotateX(-90deg);
transform-origin: center -40%;
}
}
@keyframes door {
from {
transform: rotateY(90deg);
}
}
@keyframes sidekick {
from {
left: 100%;
transform: rotate(270deg) scale(0);
}
}
@keyframes cube {
from {
left: 100%;
transform: matrix(0.133,-0.489,-0.200,2.489,-100.667,80.000);
}
}
@keyframes shine {
0% {
text-shadow: 4px 8px 2px #ddd;
}
25% {
text-shadow: 4px -8px 2px #ddd;
}
50% {
text-shadow: -2px -8px 2px #ddd;
}
75% {
text-shadow: -2px 8px 2px #ddd;
}
100% {
text-shadow: 4px 8px 2px #ddd;
}
}
@keyframes blink {
from {
opacity: 0;
}
}
}`;
const presentation = css` @layer utilities.aegisjsproject.presentation {
[data-width] { width: attr(data-width rem); }
[data-min-width] { min-width: attr(data-min-width rem); }
[data-max-width] { max-width: attr(data-max-width rem); }
[data-height] { height: attr(data-height rem); }
[data-min-height] { min-height: attr(data-min-height rem); }
[data-max-height] { max-height: attr(data-max-height rem); }
[data-aspect-ratio] { aspect-ratio: attr(data-aspect-ratio type(<number>)); }
[data-padding-block] { padding-block: attr(data-padding-block rem); }
[data-padding-inline] { padding-inline: attr(data-padding-inline rem); }
[data-padding-block-end] { padding-block-end: attr(data-padding-block-end rem); }
[data-padding-inline-end] { padding-inline-end: attr(data-padding-inline-end rem); }
[data-padding-block-start] { padding-block-start: attr(data-padding-block-start rem); }
[data-padding-inline-start] { padding-inline-start: attr(data-padding-inline-start rem); }
[data-margin-block] { margin-block: attr(data-margin-block rem); }
[data-margin-inline] { margin-inline: attr(data-margin-inline rem); }
[data-margin-block-end] { margin-block-end: attr(data-margin-block