elemes/frontend/src/app.css

117 lines
2.8 KiB
CSS
Raw Normal View History

2026-03-25 09:39:51 +07:00
/* ── Reset & base ─────────────────────────────────────────────── */
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--color-primary: #0d6efd;
--color-primary-dark: #0a58ca;
--color-bg: #ffffff;
--color-bg-secondary: #f8f9fa;
--color-text: #212529;
--color-text-muted: #6c757d;
--color-border: #dee2e6;
--color-success: #198754;
--color-danger: #dc3545;
--color-warning: #ffc107;
--radius: 8px;
--shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
--font-mono: 'Fira Code', 'JetBrains Mono', 'Cascadia Code', monospace;
}
[data-theme='dark'] {
--color-bg: #1a1a2e;
--color-bg-secondary: #16213e;
--color-text: #e0e0e0;
--color-text-muted: #a0a0a0;
--color-border: #2a2a4a;
--shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}
html {
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
color: var(--color-text);
background: var(--color-bg);
line-height: 1.6;
}
body {
min-height: 100dvh;
display: flex;
flex-direction: column;
}
a {
color: var(--color-primary);
text-decoration: none;
}
a:hover {
color: var(--color-primary-dark);
text-decoration: underline;
}
/* ── Utilities ────────────────────────────────────────────────── */
.container {
width: 100%;
max-width: 1200px;
margin-inline: auto;
padding-inline: 1rem;
}
.btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
border: none;
border-radius: var(--radius);
font-size: 0.875rem;
font-weight: 500;
cursor: pointer;
transition: background 0.15s, transform 0.1s;
}
.btn:active {
transform: scale(0.97);
}
.btn-primary {
background: var(--color-primary);
color: #fff;
}
.btn-primary:hover {
background: var(--color-primary-dark);
}
.btn-success {
background: var(--color-success);
color: #fff;
}
.btn-danger {
background: var(--color-danger);
color: #fff;
}
/* ── Code blocks (markdown rendered) ─────────────────────────── */
pre code {
font-family: var(--font-mono);
font-size: 0.85rem;
}
/* ── Cards ────────────────────────────────────────────────────── */
.card {
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: var(--radius);
box-shadow: var(--shadow);
overflow: hidden;
}
/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width: 768px) {
.container {
padding-inline: 0.75rem;
}
}