stratoflights-web/src/app.scss
2026-08-14 00:01:49 +09:00

62 lines
1.5 KiB
SCSS

// Bootstrap, compiled from source so the theme in scss/_theme.scss applies.
// Order matters: functions provide shade-color() to the theme, the theme sets
// its !default values before Bootstrap declares its own, and theme-overrides
// patches what 5.3 no longer derives from variables.
@import 'bootstrap/scss/functions';
@import 'scss/theme';
@import 'bootstrap/scss/bootstrap';
@import 'scss/theme-overrides';
// bootstrap-icons is imported from +layout.svelte, not here: its @font-face
// uses `url(./fonts/…)`, and Vite only rebases that to an emitted asset when
// the stylesheet goes through the CSS pipeline rather than the Sass one.
:root {
--navbar-height: 56px;
}
html,
body {
height: 100%;
}
/* Centered auth surface used by the login and register screens. */
.auth-shell {
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 1.5rem;
}
.auth-card {
width: 100%;
max-width: 26rem;
}
.auth-logo {
width: 220px;
max-width: 70%;
height: auto;
}
/*
* Keyboard focus must stay visible over the map, where panels sit on a busy
* background and Bootstrap's default ring can wash out.
*/
:focus-visible {
outline: 2px solid var(--bs-primary);
outline-offset: 2px;
}
/* Respect reduced-motion: the wind particles and spinners are the only motion. */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.001ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.001ms !important;
}
}