UNPKG

@aegisjsproject/styles

Version:

Pre-made and reusable styles for `@aegisjsproject/core`

2,230 lines (1,798 loc) 48.3 kB
@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)); } } @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, #212529), var(--aegis-color-dark, #f8f9fa)); background-color: light-dark(var(--aegis-bg-light, #f8f9fa), var(--aegis-bg-dark, #212529)); } } @layer components.aegisjsproject.button { .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, .disabled, :state(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, .disabled, :state(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:state(disabled) { pointer-events: none; } .btn:focus-visible { outline: 2px solid; outline-offset: 2px; } } @layer components.aegisjsproject.button { .btn.btn-danger { background-color: var(--aegis-btn-danger, #dc3545); color: var(--aegis-color-dark, #f8f9fa); border-color: #842029; } .btn.btn-danger:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-danger:focus-visible { background-color: var(--aegis-btn-danger-hover, #b02a37); border-color: #58151c; } .btn.btn-danger:focus-visible { outline-color: var(--aegis-btn-danger, #dc3545); } .btn.btn-danger:active { background-color: var(--aegis-btn-danger-active, #842029); border-color: #2c0b0e; } } @layer components.aegisjsproject.button { .btn.btn-dark { background-color: var(--aegis-btn-dark, #212529); color: var(--aegis-color-dark, #f8f9fa); border-color: #343a40; } .btn.btn-dark:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-dark:focus-visible { background-color: var(--aegis-btn-dark-hover, #495057); border-color: #212529; } .btn.btn-dark:focus-visible { outline-color: var(--aegis-btn-dark, #212529); } .btn.btn-dark:active { background-color: var(--aegis-btn-dark-active, #343a40); border-color: #212529; } } @layer components.aegisjsproject.button { .btn.btn-info { background-color: var(--aegis-btn-info, #0dcaf0); color: var(--aegis-color-dark, #f8f9fa); border-color: #087990; } .btn.btn-info:not(:disabled, .disabled, :state(disabled)), .btn.btn-info:focus-visible { background-color: var(--aegis-btn-info-hover, #087990); border-color: #055160; } .btn.btn-info:focus-visible { outline-color: var(--aegis-btn-info, #0dcaf0); } .btn.btn-info:active { background-color: var(--aegis-btn-info-active, #0aa2c0); border-color: #032830; } } @layer components.aegisjsproject.button { .btn.btn-light { background-color: var(--aegis-btn-light, #f8f9fa); color: var(--aegis-color-light, #212529); border-color: #dee2e6; } .btn.btn-light:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-light:focus-visible { background-color: var(--aegis-btn-light-hover, #e9ecef); border-color: #ced4da; } .btn.btn-light:focus-visible { outline-color: var(--aegis-btn-light, #f8f9fa); } .btn.btn-light:active { background-color: var(--aegis-btn-light-active, #dee2e6); border-color: #adb5bd; } } @layer components.aegisjsproject.button { .btn.btn-link { background-color: var(--aegis-btn-link, transparent); color: LinkText; border-color: transparent; text-decoration: none; } .btn.btn-link:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-link:focus-visible { background-color: var(--aegis-btn-link-hover, transparent); text-decoration: underline; } .btn.btn-link:focus-visible { outline-color: var(--aegis-btn-link, transparent); } .btn.btn-link:active { background-color: var(--aegis-btn-link-active, transparent); text-decoration: underline; } } @layer components.aegisjsproject.button { .btn.btn-outline-danger { background-color: transparent; color: var(--aegis-btn-danger, #dc3545); border-color: currentColor; } .btn.btn-outline-danger:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-outline-danger:focus-visible { background-color: var(--aegis-btn-danger-hover, #b02a37); border-color: #58151c; color: var(--aegis-color-dark, #f8f9fa); } .btn.btn-outline-danger:focus-visible { outline-color: var(--aegis-btn-danger, #dc3545); } .btn.btn-outline-danger:active { background-color: var(--aegis-btn-danger-active, #842029); border-color: #2c0b0e; color: var(--aegis-color-dark, #f8f9fa); } } @layer components.aegisjsproject.button { .btn.btn-outline-dark { background-color: transparent; color: var(--aegis-btn-dar, #212529); border-color: currentColor; } .btn.btn-outline-dark:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-outline-dark:focus-visible { background-color: var(--aegis-btn-dark-hover, #495057); border-color: #212529; color: var(--aegis-color-dark, #f8f9fa); } .btn.btn-outline-dark:focus-visible { outline-color: var(--aegis-btn-dark, #212529); } .btn.btn-outline-dark:active { background-color: var(--aegis-btn-dark-active, #343a40); border-color: #212529; color: var(--aegis-color-dark, #f8f9fa); } .btn.btn-outline-secondary:disabled, .btn.btn-outline-secondary.disabled, .btn.btn-outline-secondary:state(disabled) { color: var(--aegis-btn-active-disabled, #6c757d); } } @layer components.aegisjsproject.button { .btn.btn-outline-info { background-color: transparent; color: var(--aegis-btn-info, #0dcaf0); border-color: currentColor; } .btn.btn-outline-info:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-outline-info:focus-visible { background-color: var(--aegis-btn-info-hover, #087990); border-color: #055160; color: var(--aegis-color-dark, #f8f9fa); } .btn.btn-outline-info:focus-visible { outline-color: var(--aegis-btn-info, #0dcaf0); } .btn.btn-outline-info:active { background-color: var(--aegis-btn-info-active, #0aa2c0); border-color: #032830; color: var(--aegis-color-dark, #f8f9fa); } } @layer components.aegisjsproject.button { .btn.btn-outline-light { background-color: transparent; color: var(--aegis-btn-light, #f8f9fa); border-color: currentColor; } .btn.btn-outline-light:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-outline-light:focus-visible { background-color: var(--aegis-btn-light-hover, #e9ecef); border-color: #ced4da; color: var(--aegis-color-light, #212529); } .btn.btn-outline-light:focus-visible { outline-color: var(--aegis-btn-light, #f8f9fa); } .btn.btn-outline-light:active { background-color: var(--aegis-btn-light-active, #dee2e6); border-color: #adb5bd; color: var(--aegis-btn-light-active, #dee2e6); } } @layer components.aegisjsproject.button { .btn.btn-outline-primary { background-color: transparent; color: var(--aegis-btn-primary, #0d6efd); border-color: currentColor; } .btn.btn-outline-primary:focus-visible { outline-color: var(--aegis-btn-primary, #0d6efd); } .btn.btn-outline-primary:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-outline-primary:focus-visible { background-color: var(--aegis-btn-primary-hover, #0a58ca); border-color: #052c65; color: var(--aegis-color-dark, #f8f9fa); } .btn.btn-outline-primary:active { background-color: var(--aegis-btn-primary-active, #084298); border-color: #031633; color: var(--aegis-color-dark, #f8f9fa); } } @layer components.aegisjsproject.button { .btn.btn-outline-secondary { background-color: transparent; color: var(--aegis-btn-secondary, #6c757d); border-color: currentColor; } .btn.btn-outline-secondary:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-outline-secondary:focus-visible { background-color: var(--aegis-btn-secondary-hover, #495057); border-color: #212529; color: var(--aegis-color-dark, #f8f9fa); } .btn.btn-outline-secondary:focus-visible { outline-color: var(--aegis-btn-secondary, #6c757d); } .btn.btn-outline-secondary:active { background-color: var(--aegis-btn-secondary-active, #343a40); border-color: #212529; color: var(--aegis-color-dark, #f8f9fa); } .btn.btn-outline-secondary:disabled, .btn.btn-outline-secondary.disabled, .btn.btn-outline-seconday:state(disabled) { color: var(--aegis-btn-active-disabled, #6c757d); } } @layer components.aegisjsproject.button { .btn.btn-outline-success { background-color: transparent; color: var(--aegis-btn-success, #198754); border-color: currentColor; } .btn.btn-outline-success:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-outline-success:focus-visible { background-color: var(--aegis-btn-success-hover, #146c43); border-color: #0a3622; color: var(--aegis-color-dark, #f8f9fa); } .btn.btn-outline-success:focus-visible { outline-color: var(--aegis-btn-success, #198754); } .btn.btn-outline-success:active { background-color: var(--aegis-btn-success-active, #0f5132); border-color: #051b11; color: var(--aegis-color-dark, #f8f9fa); } } @layer components.aegisjsproject.button { .btn.btn-outline-warning { background-color: transparent; color: var(--aegis-btn-warning, #ffc107); border-color: currentColor; } .btn.btn-outline-warning:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-outline-warning:focus-visible { background-color: var(--aegis-btn-warning-hover, #cc9a06); border-color: #664d03; color: var(--aegis-color-light, #212529); } .btn.btn-outline-warning:active { background-color: var(--aegis-btn-warning-active, #997404); border-color: #332701; color: var(--aegis-color-light, #212529); } .btn.btn-outline-warning:focus-visible { outline-color: var(--aegis-btn-warning, #ffc107); } } @layer components.aegisjsproject.button { .btn.btn-primary { background-color: var(--aegis-btn-primary, #0d6efd); color: var(--aegis-color-dark, #f8f9fa); border-color: #084298; } .btn.btn-primary:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-primary:focus-visible { background-color: var(--aegis-btn-primary-hover, #0a58ca); border-color: #052c65; } .btn.btn-primary:focus-visible { outline-color: var(--aegis-btn-primary, #0d6efd); } .btn.btn-primary:active { background-color: var(--aegis-btn-primary-active, #084298); border-color: #031633; } } @layer components.aegisjsproject.button { .btn.btn-secondary { background-color: var(--aegis-btn-secondary, #6c757d); color: var(--aegis-color-dark, #f8f9fa); border-color: #343a40; } .btn.btn-secondary:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-secondary:focus-visible { background-color: var(--aegis-btn-secondary-hover, #495057); border-color: #212529; } .btn.btn-secondary:focus-visible { outline-color: var(--aegis-btn-secondary, #6c757d); } .btn.btn-secondary:active { background-color: var(--aegis-btn-secondary-active, #343a40); border-color: #212529; } } @layer components.aegisjsproject.button { .btn.btn-success { background-color: var(--aegis-btn-success, #198754); color: var(--aegis-color-dark, #f8f9fa); border-color: #0f5132; } .btn.btn-success:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-success:focus-visible { background-color: var(--aegis-btn-success-hover, #146c43); border-color: #0a3622; } .btn.btn-success:focus-visible { outline-color: var(--aegis-btn-success, #198754); } .btn.btn-success:active { background-color: var(--aegis-btn-success-active, #0f5132); border-color: #051b11; } } @layer components.aegisjsproject.button { .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:state(disabled) { background-color: hsl(from ButtonFace h calc(s * 0.2) l); border-color: hsl(from ButtonFace h calc(s * 0.2) l); color: GrayText; } } @layer components.aegisjsproject.button { .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:state(disabled) { background-color: hsl(from AccentColor h calc(s * 0.2) l); border-color: hsl(from AccentColor h calc(s * 0.2) l); color: GrayText; } } @layer components.aegisjsproject.button { .btn.btn-warning { background-color: var(--aegis-btn-warning, #ffc107); color: var(--aegis-color-light, #212529); border-color: #997404; } .btn.btn-warning:hover:not(:disabled, .disabled, :state(disabled)), .btn.btn-warning:focus-visible { background-color: var(--aegis-btn-warning-hover, #cc9a06); border-color: #664d03; } .btn.btn-warning:focus-visible { outline-color: var(--aegis-btn-warning, #ffc107); } .btn.btn-warning:active { background-color: var(--aegis-btn-warning-active, #997404); border-color: #332701; } } @layer base.aegisjsproject.colors { .current-color { fill: currentColor; } .color-initial { color: initial; } .color-inherit { color: inherit; } } @layer components.aegisjsproject.theme { :host { color: var(--aegis-color-light, #212529); color: light-dark(var(--aegis-color-light, #212529), var(--aegis-color-dark, #f8f9fa)); background-color: var(--aegis-bg-light, #f8f9fa); background-color: light-dark(var(--aegis-bg-light, #f8f9fa), var(--aegis-bg-dark, #212529)); 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; } } @layer components.aegisjsproject.theme { :host { border-width: 1px; border-style: solid; border-color: light-dark(var(--aegis-border-color-light, #dee2e6), var(--aegis-border-color-dark, #495057)); border-radius: var(--aegis-border-radius, 8px); } } @layer component.aegisjsproject.scrollbar { :host { scrollbar-color: var(--aegis-scrollbar-color, #0d6efd) var(--aegis-scrollbar-track, #212529); scrollbar-width: var(----aegis-scrollbar-width, auto); } } @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; } } @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(:state(disabled)) { 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(:state(disabled))) { background-color: color-mix(in srgb, ButtonFace, ButtonText 10%); } :host(:active:not(:state(disabled))) { background-color: color-mix(in srgb, ButtonFace, ButtonText 20%); } } @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; } } @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; } } @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; } } @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; } } @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; } } } @layer reset, vendor, base, layout, components, utilities; @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; } } @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; } } @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; } } @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-end rem); } [data-margin-inline-end] { margin-inline-end: attr(data-margin-inline-end rem); } [data-margin-block-start] { margin-block-start: attr(data-margin-block-start rem); } [data-margin-inline-start] { margin-inline-start: attr(data-margin-inline-start rem); } [data-border-width] { border-width: attr(data-border-width px); } [data-border-color] { border-color: attr(data-border-color type(<color>)); } [data-border-style] { border-style: attr(data-border-style type(<custom-ident>), solid); } [data-border-width]:not([data-border-style]) { border-style: solid; } [data-border-radius] { border-radius: attr(data-border-radius px); } [data-inset-block] { inset-block: attr(data-inset-block px); } [data-inset-inline] { inset-inline: attr(data-inset-inline px); } [data-inset-block-start] { inset-block-start: attr(data-inset-block-start px); } [data-inset-block-end] { inset-block-end: attr(data-inset-block-end px); } [data-inset-inline-start] { inset-inline-start: attr(data-inset-inline-start px); } [data-inset-inline-end] { inset-inline-end: attr(data-inset-inline-end px); } [data-outline-width] { outline-width: attr(data-outline-width px); } [data-outline-color] { outline-color: attr(data-outline-color type(<color>)); } [data-outline-offset] { outline-offset: attr(data-outline-offset px); } [data-outline-width]:not([data-outline-style]) { outline-style: solid; } [data-gap] { gap: attr(data-gap rem); } [data-row-gap] { row-gap: attr(data-row-gap rem); } [data-column-gap] { column-gap: attr(data-column-gap rem); } [data-flex-basis] { flex-basis: attr(data-flex-basis rem); } [data-flex-grow] { flex-grow: attr(data-flex-grow type(<number>)); } [data-flex-shrink] { flex-shrink: attr(data-flex-shrink type(<number>)); } [data-column-span] { grid-column: span attr(data-column-span type(<integer>)); } [data-row-span] { grid-row: span attr(data-row-span type(<integer>)); } [data-grid-columns] { grid-template-columns: repeat(attr(data-grid-columns type(<integer>)), 1fr); } [data-grid-rows] { grid-template-rows: repeat(attr(data-grid-rows type(<integer>)), 1fr); } [data-grid-area] { grid-area: attr(data-grid-area type(<custom-ident>)); } [data-font-size] { font-size: attr(data-font-size rem); } [data-font-family] { font-family: attr(data-font-family type(<custom-ident>)); } [data-font-weight] { font-weight: attr(data-font-weight type(<number>)); } [data-line-height] { line-height: attr(data-line-height type(<number>)); } [data-letter-spacing] { letter-spacing: attr(data-letter-spacing em); } [data-word-spacing] { word-spacing: attr(data-word-spacing em); } [data-text-transform] { text-transform: attr(data-text-transform type(<custom-ident>)); } [data-text-decoration-thickness] { text-decoration-thickness: attr(data-text-decoration-thickness px); } [data-text-underline-offset] { text-underline-offset: attr(data-text-underline-offset px); } [data-text-indent] { text-indent: attr(data-text-indent rem); } /* scroll margin */ [data-scroll-margin] { scroll-margin: attr(data-scroll-margin px); } [data-scroll-margin-block] { scroll-margin-block: attr(data-scroll-margin-block px); } [data-scroll-margin-inline] { scroll-margin-inline: attr(data-scroll-margin-inline px); } [data-scroll-margin-block-start] { scroll-margin-block-start: attr(data-scroll-margin-block-start px); } [data-scroll-margin-block-end] { scroll-margin-block-end: attr(data-scroll-margin-block-end px); } [data-scroll-margin-inline-start] { scroll-margin-inline-start: attr(data-scroll-margin-inline-start px); } [data-scroll-margin-inline-end] { scroll-margin-inline-end: attr(data-scroll-margin-inline-end px);} /* scroll padding */ [data-scroll-padding] { scroll-padding: attr(data-scroll-padding px); } [data-scroll-padding-block] { scroll-padding-block: attr(data-scroll-padding-block px); } [data-scroll-padding-inline] { scroll-padding-inline: attr(data-scroll-padding-inline px); } [data-scroll-padding-block-start] { scroll-padding-block-start: attr(data-scroll-padding-block-start px); } [data-scroll-padding-block-end] { scroll-padding-block-end: attr(data-scroll-padding-block-end px); } [data-scroll-padding-inline-start] { scroll-padding-inline-start: attr(data-scroll-padding-inline-start px); } [data-scroll-padding-inline-end] { scroll-padding-inline-end: attr(data-scroll-padding-inline-end px); } [data-rotate] { rotate: attr(data-rotate deg); } [data-scale] { scale: attr(data-scale type(<number>)); } [data-opacity] { opacity: attr(data-opacity type(<number>)); } [data-color] { color: attr(data-color type(<color>)); } [data-background-color] { background-color: attr(data-background-color type(<color>)); } [data-accent-color] { accent-color: attr(data-accent-color type(<color>)); } [data-z-index] { z-index: attr(data-z-index type(<integer>)); } [data-animation-duration] { animation-duration: attr(data-animation-duration ms); } [data-transition-duration] { transition-duration: attr(data-transition-duration ms, 0); } /* Filters — single-property, non-composed (last one wins if multiple are present) */ [data-filter-blur] { filter: blur(attr(data-filter-blur px)); } [data-filter-brightness] { filter: brightness(attr(data-filter-brightness type(<number>))); } [data-filter-contrast] { filter: contrast(attr(data-filter-contrast type(<number>))); } [data-filter-grayscale] { filter: grayscale(attr(data-filter-grayscale type(<number>))); } [data-filter-hue-rotate] { filter: hue-rotate(attr(data-filter-hue-rotate deg)); } [data-filter-invert] { filter: invert(attr(data-filter-invert type(<number>))); } [data-filter-opacity] { filter: opacity(attr(data-filter-opacity type(<number>))); } [data-filter-saturate] { filter: saturate(attr(data-filter-saturate type(<number>))); } [data-filter-sepia] { filter: sepia(attr(data-filter-sepia type(<number>))); } } @property --aegis-font { syntax: "<custom-ident> | <string>"; inherits: true; initial-value: system-ui; } @property --aegis-btn-border-radius { syntax: "<length>"; inherits: true; initial-value: 5px; } @property --aegis-btn-border-width { syntax: "<length>"; inherits: true; initial-value: 0px; } @property --aegis-color-light { syntax: "<color>"; inherits: true; initial-value: #212529; } @property --aegis-color-dark { syntax: "<color>"; inherits: true; initial-value: #f8f9fa; } @property --aegis-bg-light { syntax: "<color>"; inherits: true; initial-value: #f8f9fa; } @property --aegis-bg-dark { syntax: "<color>"; inherits: true; initial-value: #212529; } @property --aegis-border-color-light { syntax: "<color>"; inherits: true; initial-value: #dee2e6; } @property --aegis-border-color-dark { syntax: "<color>"; inherits: true; initial-value: #495057; } @property --aegis-border-radius { syntax: "<length>"; inherits: true; initial-value: 8px; } @property --aegis-btn-primary { syntax: "<color>"; inherits: true; initial-value: #0d6efd; } @property --aegis-btn-primary-hover { syntax: "<color>"; inherits: true; initial-value: #0a58ca; } @property --aegis-btn-primary-active { syntax: "<color>"; inherits: true; initial-value: #084298; } @property --aegis-btn-primary-disabled { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-btn-secondary { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-btn-secondary-hover { syntax: "<color>"; inherits: true; initial-value: #495057; } @property --aegis-btn-secondary-active { syntax: "<color>"; inherits: true; initial-value: #343a40; } @property --aegis-btn-success { syntax: "<color>"; inherits: true; initial-value: #198754; } @property --aegis-btn-success-hover { syntax: "<color>"; inherits: true; initial-value: #146c43; } @property --aegis-btn-success-active { syntax: "<color>"; inherits: true; initial-value: #0f5132; } @property --aegis-btn-success-disabled { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-btn-info { syntax: "<color>"; inherits: true; initial-value: #0dcaf0; } @property --aegis-btn-info-hover { syntax: "<color>"; inherits: true; initial-value: #087990; } @property --aegis-btn-info-active { syntax: "<color>"; inherits: true; initial-value: #0aa2c0; } @property --aegis-btn-info-disabled { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-btn-warning { syntax: "<color>"; inherits: true; initial-value: #ffc107; } @property --aegis-btn-warning-hover { syntax: "<color>"; inherits: true; initial-value: #cc9a06; } @property --aegis-btn-warning-active { syntax: "<color>"; inherits: true; initial-value: #997404; } @property --aegis-btn-warning-disabled { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-btn-danger { syntax: "<color>"; inherits: true; initial-value: #dc3545; } @property --aegis-btn-danger-hover { syntax: "<color>"; inherits: true; initial-value: #b02a37; } @property --aegis-btn-danger-active { syntax: "<color>"; inherits: true; initial-value: #842029; } @property --aegis-btn-danger-disabled { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-btn-dark { syntax: "<color>"; inherits: true; initial-value: #212529; } @property --aegis-btn-dark-hover { syntax: "<color>"; inherits: true; initial-value: #495057; } @property --aegis-btn-dark-active { syntax: "<color>"; inherits: true; initial-value: #343a40; } @property --aegis-btn-dark-disabled { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-btn-light { syntax: "<color>"; inherits: true; initial-value: #f8f9fa; } @property --aegis-btn-light-hover { syntax: "<color>"; inherits: true; initial-value: #e9ecef; } @property --aegis-btn-light-active { syntax: "<color>"; inherits: true; initial-value: #dee2e6; } @property --aegis-btn-light-disabled { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-btn-link { syntax: "<color>"; inherits: true; initial-value: transparent; } @property --aegis-btn-link-hover { syntax: "<color>"; inherits: true; initial-value: transparent; } @property --aegis-btn-link-active { syntax: "<color>"; inherits: true; initial-value: transparent; } @property --aegis-btn-link-disabled { syntax: "<color>"; inherits: true; initial-value: #6c757d; } @property --aegis-link-color { syntax: "<color>"; inherits: true; initial-value: LinkText; } @property --aegis-scrollbar-color { syntax: "<color>"; inherits: true; initial-value: #0d6efd; } @property --aegis-scrollbar-track { syntax: "<color>"; inherits: true; initial-value: #212529; } @property --aegis-scrollbar-width { syntax: "<custom-ident>"; inherits: true; initial-value: auto; } @property --aegis-blink-speed { syntax: "<time>"; inherits: true; initial-value: 200ms; } @property --aegis-fast-speed { syntax: "<time>"; inherits: true; initial-value: 400ms; } @property --aegis-normal-speed { syntax: "<time>"; inherits: true; initial-value: 600ms; } @property --aegis-slow-speed { syntax: "<time>"; inherits: true; initial-value: 800ms; } @property --aegis-crawl-speed { syntax: "<time>"; inherits: true; initial-value: 1200ms; } @property --aegis-btn-disabled-opacity { syntax: "<number>"; inherits: true; initial-value: 0.65; } @property --aegis-btn-disabled-saturation { syntax: "<percentage>"; inherits: true; initial-value: 50%; } @property --aegis-btn-disabled-brightness { syntax: "<percentage>"; inherits: true; initial-value: 90%; } @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; } } @layer base.aegisjsproject.scrollbar { :root { scrollbar-color: var(--aegis-scrollbar-color, #0d6efd) var(--aegis-scrollbar-track, #212529); scrollbar-width: var(----aegis-scrollbar-width, auto); } } @layer base.aegisjsproject.scrollbar { @supports not (scrollbar-color: currentColor transparent) { ::-webkit-scrollbar { display: block; } ::-webkit-scrollbar-thumb { background-color: var(--aegis-scrollbar-color, #0d6efd); } ::-webkit-scrollbar-track { background-color: var(--aegis-scrollbar-track, #212529); } } } @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); } } @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; } } @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; } } @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)); } } @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; } }