portal_publico/static/css/base.css

127 lines
1.9 KiB
CSS

*,
*::before,
*::after {
box-sizing: border-box;
}
/* Garante que o atributo/propriedade "hidden" sempre vença, mesmo em
elementos cujo próprio componente define display:flex/grid/etc. */
[hidden] {
display: none !important;
}
html,
body {
height: 100%;
}
body {
margin: 0;
font-family: var(--font-sans);
background: var(--bg-canvas);
color: var(--text-primary);
-webkit-font-smoothing: antialiased;
transition: background var(--transition-base), color var(--transition-base);
}
h1,
h2,
h3,
h4,
p {
margin: 0;
}
button,
input {
font-family: inherit;
color: inherit;
}
button {
cursor: pointer;
border: none;
background: none;
}
a {
color: inherit;
text-decoration: none;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
svg {
display: block;
flex-shrink: 0;
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
}
::selection {
background: var(--accent);
color: var(--accent-contrast);
}
/* Animações globais — rápidas de propósito (a ideia é sensação de fluidez, não
"efeito"), e sem nenhum @media (prefers-reduced-motion) desativando: decisão
deliberada do usuário, essas animações devem rodar sempre, independente da
preferência de acessibilidade do sistema operacional. */
@keyframes pidFadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes pidFadeSlideUp {
from {
opacity: 0;
transform: translateY(6px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes pidScaleIn {
from {
opacity: 0;
transform: scale(0.96);
}
to {
opacity: 1;
transform: scale(1);
}
}
/* scrollbar discreta */
* {
scrollbar-width: thin;
scrollbar-color: var(--border-subtle) transparent;
}
*::-webkit-scrollbar {
width: 8px;
height: 8px;
}
*::-webkit-scrollbar-thumb {
background: var(--border-subtle);
border-radius: var(--radius-pill);
}