tremor-tracker/src/app/globals.css

231 lines
3.9 KiB
CSS
Raw Normal View History

2025-02-24 12:37:15 +00:00
@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
2025-06-01 14:18:32 +01:00
--background: #ffffff;
--foreground: #171717;
2025-02-24 12:37:15 +00:00
}
2025-03-19 19:20:18 +00:00
/* @media (prefers-color-scheme: dark) {
2025-02-24 12:37:15 +00:00
:root {
--background: #0a0a0a;
--foreground: #ededed;
}
2025-03-19 19:20:18 +00:00
} */
2025-02-24 12:37:15 +00:00
body {
2025-06-01 14:18:32 +01:00
color: var(--foreground);
background: var(--background);
2025-02-24 12:37:15 +00:00
}
2025-03-23 15:24:10 +00:00
/* Increase specificity and use !important where necessary */
.mapboxgl-popup .mapboxgl-popup-content {
2025-06-01 14:18:32 +01:00
@apply rounded-xl p-4 px-5 drop-shadow-lg border border-neutral-300 max-w-xs !important;
2025-03-23 15:24:10 +00:00
}
/* Hide the popup tip */
.mapboxgl-popup .mapboxgl-popup-tip {
2025-06-01 14:18:32 +01:00
display: none !important;
2025-03-23 15:24:10 +00:00
}
/* Child elements */
.mapboxgl-popup-content h3 {
2025-06-01 14:18:32 +01:00
@apply text-sm font-medium text-neutral-800 !important;
2025-03-23 15:24:10 +00:00
}
.mapboxgl-popup-content p {
2025-06-01 14:18:32 +01:00
@apply text-xs text-neutral-600 !important;
2025-03-23 15:24:10 +00:00
}
2025-06-01 14:18:32 +01:00
.mapboxgl-popup-content p + p {
@apply text-neutral-500 !important;
2025-03-23 15:24:10 +00:00
}
2025-05-25 19:59:53 +01:00
.icon-link {
2025-06-01 14:18:32 +01:00
/* default styles if needed */
2025-05-25 19:59:53 +01:00
}
.icon-link:hover,
.icon-link:focus {
2025-06-01 14:18:32 +01:00
background-color: #16424b;
2025-05-25 19:59:53 +01:00
}
.icon-link:hover h3,
.icon-link:focus h3,
.icon-link:hover p,
.icon-link:focus p {
2025-06-01 14:18:32 +01:00
color: #fff !important;
2025-05-25 19:59:53 +01:00
}
.icon-link:hover h3,
.icon-link:hover p,
.icon-link:focus h3,
.icon-link:focus p {
2025-06-01 14:18:32 +01:00
color: #111;
/* or black */
2025-05-31 17:54:56 +01:00
}
/* ---- LAVA FLOOD OVERLAY ---- */
.lava-flood-overlay {
2025-06-01 14:18:32 +01:00
pointer-events: none;
position: fixed;
top: -100vh;
left: 0;
right: 0;
width: 100vw;
height: 100vh;
z-index: 9999;
display: flex;
justify-content: center;
align-items: flex-start;
transition: top 0.9s cubic-bezier(0.6, 0, 0.2, 1);
2025-05-31 17:54:56 +01:00
}
.lava-flood-overlay.lava-active {
2025-06-01 14:18:32 +01:00
top: 0;
transition: top 0.33s cubic-bezier(0.6, 0, 0.2, 1);
2025-05-31 17:54:56 +01:00
}
.lava-flood-overlay img,
.lava-gradient {
2025-06-01 14:18:32 +01:00
width: 100vw;
height: 100vh;
object-fit: cover;
pointer-events: none;
user-select: none;
filter: brightness(1.15) saturate(1.8) drop-shadow(0 0 80px #ff5500);
2025-05-31 17:54:56 +01:00
}
/* ---- INSANE SCREEN SHAKE (LinkedIn) ---- */
@keyframes supershake {
2025-06-01 14:18:32 +01:00
0% {
transform: translate(0, 0) rotate(0);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
5% {
transform: translate(-20px, 5px) rotate(-2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
10% {
transform: translate(18px, -8px) rotate(2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
15% {
transform: translate(-22px, 8px) rotate(-4deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
20% {
transform: translate(22px, -2px) rotate(4deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
25% {
transform: translate(-18px, 12px) rotate(-2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
30% {
transform: translate(18px, -10px) rotate(2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
35% {
transform: translate(-22px, 14px) rotate(-4deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
40% {
transform: translate(22px, -12px) rotate(4deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
45% {
transform: translate(-18px, 8px) rotate(-2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
50% {
transform: translate(18px, -14px) rotate(4deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
55% {
transform: translate(-22px, 12px) rotate(-4deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
60% {
transform: translate(22px, -8px) rotate(2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
65% {
transform: translate(-18px, 10px) rotate(-2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
70% {
transform: translate(18px, -12px) rotate(2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
75% {
transform: translate(-22px, 14px) rotate(-4deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
80% {
transform: translate(22px, -10px) rotate(4deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
85% {
transform: translate(-18px, 8px) rotate(-2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
90% {
transform: translate(18px, -14px) rotate(2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
95% {
transform: translate(-20px, 5px) rotate(-2deg);
}
2025-05-31 17:54:56 +01:00
2025-06-01 14:18:32 +01:00
100% {
transform: translate(0, 0) rotate(0);
}
2025-05-31 17:54:56 +01:00
}
.shake-screen {
2025-06-01 14:18:32 +01:00
animation: supershake 1s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
2025-05-31 17:54:56 +01:00
}
/* ---- CRACK + COLLAPSE OVERLAY (X icon) ---- */
.crack-overlay {
2025-06-01 14:18:32 +01:00
pointer-events: none;
position: fixed;
inset: 0;
width: 100vw;
height: 100vh;
z-index: 9999;
transition: transform 1.1s cubic-bezier(0.65, 0.05, 0.45, 1), opacity 0.5s;
will-change: transform, opacity;
2025-05-31 17:54:56 +01:00
}
.crack {
2025-06-01 14:18:32 +01:00
position: absolute;
pointer-events: none;
2025-05-31 17:54:56 +01:00
}
.crack1 {
2025-06-01 14:18:32 +01:00
width: 35vw;
left: 10vw;
top: 22vh;
opacity: 0.8;
2025-05-31 17:54:56 +01:00
}
.crack2 {
2025-06-01 14:18:32 +01:00
width: 32vw;
right: 12vw;
top: 42vh;
opacity: 0.7;
transform: rotate(-8deg);
2025-05-31 17:54:56 +01:00
}
/* Add more .crackN classes if using more cracks */
/* Collapse falling effect */
.crack-collapse {
2025-06-01 14:18:32 +01:00
transform: perspective(900px) rotateX(75deg) translateY(80vh) scale(0.9);
opacity: 0;
transition: transform 1.1s cubic-bezier(0.65, 0.05, 0.45, 1), opacity 0.6s;
}