Files
BrewJournal/src/index.css
Aditya Gupta 4e234d075f
All checks were successful
Deploy Brew Application / deploy (push) Successful in 10s
feat: Improved sync editor
2026-06-06 19:18:30 +05:30

178 lines
3.7 KiB
CSS

@import "tailwindcss";
@custom-variant dark (&:where(.dark, .dark *));
@theme {
--color-brew-bg: #FAF6F1;
--color-brew-bg2: #F3EDE4;
--color-brew-card: #FFFFFF;
--color-brew-text: #2C1810;
--color-brew-text2: #6B5744;
--color-brew-text3: #9C8B7A;
--color-brew-accent: #8B6914;
--color-brew-accent2: #C4941A;
--color-brew-border: #E8DFD3;
--color-brew-espresso: #5C3317;
--color-brew-coldbrew: #2F4F6F;
--color-brew-pourover: #8B6914;
--color-brew-danger: #B44040;
--color-brew-success: #4A7C59;
--font-serif: "Playfair Display", serif;
--font-sans: "Source Sans 3", sans-serif;
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 20px;
--shadow-card: 0 1px 3px rgba(44,24,16,0.06), 0 4px 12px rgba(44,24,16,0.04);
--shadow-card-lg: 0 4px 16px rgba(44,24,16,0.08), 0 12px 32px rgba(44,24,16,0.06);
}
@layer base {
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scrollbar-gutter: stable;
font-family: "Source Sans 3", sans-serif;
background-color: #F3EDE4;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transition: background-color 0.2s ease, color 0.2s ease;
}
html.dark {
background-color: #0E0704;
}
body {
margin: 0;
background-color: #F3EDE4;
transition: background-color 0.2s ease, color 0.2s ease;
}
html.dark body {
background-color: #0E0704;
}
#root {
width: 100%;
min-height: 100svh;
display: flex;
flex-direction: column;
box-sizing: border-box;
}
input, select, textarea {
font-family: "Source Sans 3", sans-serif;
}
button {
font-family: "Source Sans 3", sans-serif;
}
}
@layer utilities {
.font-serif {
font-family: "Playfair Display", serif;
}
.font-sans-brew {
font-family: "Source Sans 3", sans-serif;
}
/* Sync badge pulse animation */
.animate-sync-pulse {
animation: sync-pulse 1.5s infinite;
}
@keyframes sync-pulse {
0%, 100% { opacity: 0.3; }
50% { opacity: 1; }
}
/* Modal animations */
.animate-fade-in {
animation: fade-in 0.2s ease-out;
}
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
.animate-slide-up {
animation: slide-up 0.3s ease-out;
}
@keyframes slide-up {
from { transform: translateY(100%); }
to { transform: translateY(0); }
}
.animate-page-enter {
animation: page-enter 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes page-enter {
from {
opacity: 0;
transform: translateY(8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Brew method bar */
.brew-method-bar {
position: absolute;
left: 0;
top: 12px;
bottom: 12px;
width: 4px;
border-radius: 0 4px 4px 0;
}
/* ── Sync cup indicator ── */
.sync-cup-success {
animation: sync-cup-fade 2.4s ease-in-out forwards;
}
@keyframes sync-cup-fade {
0% { opacity: 0; transform: scale(0.88); }
8% { opacity: 1; transform: scale(1); }
68% { opacity: 1; }
100% { opacity: 0; }
}
.sync-steam {
opacity: 0;
}
.sync-steam-1 { animation: sync-steam-rise 1.4s ease-out 0.1s forwards; }
.sync-steam-2 { animation: sync-steam-rise 1.4s ease-out 0.3s forwards; }
.sync-steam-3 { animation: sync-steam-rise 1.4s ease-out 0.5s forwards; }
@keyframes sync-steam-rise {
0% { opacity: 0; transform: translateY(0); }
25% { opacity: 0.5; }
100% { opacity: 0; transform: translateY(-4px); }
}
.sync-check {
stroke-dasharray: 14;
stroke-dashoffset: 14;
animation: sync-check-draw 0.45s ease-out 0.65s forwards;
}
@keyframes sync-check-draw {
to { stroke-dashoffset: 0; }
}
}