Files
pipeline-lifetime/static/css/app.src.css
T

315 lines
6.2 KiB
CSS

@font-face {
font-family: 'Material Symbols Outlined';
font-style: normal;
font-weight: 400;
font-display: block;
src: url('../fonts/material-symbols-outlined.ttf') format('truetype');
}
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
h1,
h2,
h3,
h4 {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
}
@layer components {
.material-symbols-outlined {
font-family: 'Material Symbols Outlined';
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-flex;
width: 1em;
height: 1em;
min-width: 1em;
flex: 0 0 auto;
align-items: center;
justify-content: center;
overflow: hidden;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
vertical-align: middle;
font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.ui-btn {
box-sizing: border-box;
display: inline-flex;
min-height: 44px;
height: 44px;
align-items: center;
justify-content: center;
gap: .5rem;
border-radius: .375rem;
border: 1px solid transparent;
padding: 0 1rem;
font-size: .875rem;
font-weight: 700;
line-height: 1;
white-space: nowrap;
transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.ui-btn-lg {
min-height: 52px;
height: 52px;
font-size: .875rem;
}
.ui-btn-sm {
min-height: 40px;
height: 40px;
padding: 0 .75rem;
}
.ui-btn-compact {
min-height: 34px;
height: 34px;
padding: 0 .65rem;
gap: .35rem;
font-size: .8125rem;
}
.ui-btn-field {
min-height: 50px;
height: 50px;
}
.ui-btn-primary {
background: #005EB8;
color: #fff;
box-shadow: 0 18px 34px rgba(15, 23, 42, .06);
}
.ui-btn-primary:hover {
background: #0c4188;
}
.ui-btn-secondary {
border-color: #e2e8f0;
background: #fff;
color: #334155;
box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.ui-btn-secondary:hover {
border-color: #005EB8;
color: #005EB8;
}
.ui-btn:disabled,
.ui-btn[aria-disabled="true"] {
cursor: not-allowed;
box-shadow: none;
opacity: .7;
}
.ui-btn[aria-busy="true"] {
pointer-events: none;
}
.ui-btn-primary:disabled {
background: #cbd5e1;
}
.ui-btn-icon,
.ui-btn .material-symbols-outlined {
width: 20px;
height: 20px;
flex: 0 0 20px;
font-size: 20px;
}
.ui-icon-btn {
box-sizing: border-box;
display: inline-flex;
width: 28px;
height: 28px;
flex: 0 0 28px;
align-items: center;
justify-content: center;
border-radius: .375rem;
line-height: 1;
transition: background-color .15s ease, color .15s ease;
}
.ui-action-row {
box-sizing: border-box;
display: flex;
min-height: 44px;
align-items: center;
justify-content: space-between;
gap: .75rem;
border-radius: .375rem;
border: 1px solid #e2e8f0;
padding: 0 .75rem;
font-size: .875rem;
font-weight: 700;
line-height: 1;
transition: border-color .15s ease, color .15s ease;
}
.ui-action-row:hover {
border-color: #005EB8;
color: #005EB8;
}
.spinner {
display: inline-flex;
width: 20px;
height: 20px;
flex: 0 0 20px;
border-radius: 9999px;
border: 2px solid rgba(255,255,255,.35);
border-top-color: #fff;
animation: spin .75s linear infinite;
}
.ui-btn-secondary .spinner {
border-color: rgba(0, 94, 184, .22);
border-top-color: #005EB8;
}
/* Authentication-specific controls, compiled with the shared Tailwind bundle. */
.password-toggle {
position: absolute;
top: 50%;
right: .75rem;
display: inline-flex;
width: 32px;
height: 32px;
align-items: center;
justify-content: center;
transform: translateY(-50%);
border: 0;
border-radius: .5rem;
background: transparent;
color: #64748b;
padding: 0;
transition: background-color .15s ease, color .15s ease;
}
.password-toggle:hover {
background: rgba(148, 163, 184, .16);
color: #005EB8;
}
.password-toggle:focus-visible {
outline: 2px solid #005EB8;
outline-offset: 2px;
}
.password-toggle:disabled {
cursor: not-allowed;
opacity: .45;
}
.password-toggle .material-symbols-outlined {
font-size: 20px;
line-height: 1;
}
.auth-input-error {
border-color: #dc2626 !important;
background: #fff7f7 !important;
box-shadow: 0 0 0 3px rgba(220, 38, 38, .12) !important;
}
.captcha-token {
-webkit-user-select: none;
user-select: none;
}
.dot-grid {
background-image: radial-gradient(circle at 1px 1px, rgba(148, 163, 184, .30) 1.2px, transparent 0);
background-size: 42px 42px;
}
.panel-frame {
border: none;
box-shadow: none;
}
.gradient-board {
background: linear-gradient(180deg, #2455a3 0%, #123e7d 100%);
}
.auth-alert {
pointer-events: none;
top: max(1rem, env(safe-area-inset-top));
right: auto;
left: 50%;
width: calc(100vw - 2rem);
max-width: 26rem;
max-height: calc(100dvh - 2rem);
overflow-y: auto;
opacity: 0;
transform: translate(-50%, .5rem);
}
.auth-alert::before {
position: absolute;
top: -7px;
left: 24px;
width: 14px;
height: 14px;
transform: rotate(45deg);
border-top: 1px solid currentColor;
border-left: 1px solid currentColor;
background: #fff;
color: #bfdbfe;
content: '';
}
.auth-alert.is-error::before {
color: #fecaca;
}
.auth-alert.is-visible {
pointer-events: auto;
opacity: 1;
transform: translate(-50%, 0);
}
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
@media (min-width: 1280px) {
.auth-alert {
width: 320px;
max-width: calc(100vw - 2rem);
transform: translateX(.75rem);
}
.auth-alert::before {
top: var(--auth-alert-arrow-top, 44px);
left: -7px;
border: 0;
border-bottom: 1px solid currentColor;
border-left: 1px solid currentColor;
}
.auth-alert.is-visible {
transform: translateX(0);
}
}