279 lines
6.6 KiB
CSS
279 lines
6.6 KiB
CSS
@import url('https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,200..900;1,200..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap');
|
|
@import "tailwindcss";
|
|
|
|
:root {
|
|
--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
--font-serif: 'Crimson Pro', Georgia, serif;
|
|
--font-mono: 'JetBrains Mono', monospace;
|
|
}
|
|
|
|
@custom-variant dark (&:where(.dark, .dark *));
|
|
|
|
body {
|
|
font-family: var(--font-sans);
|
|
font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1;
|
|
}
|
|
|
|
h1, h2, h3 {
|
|
font-family: var(--font-serif);
|
|
letter-spacing: -0.025em;
|
|
}
|
|
|
|
.nav-card {
|
|
transform: translateY(0);
|
|
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
.nav-card:hover {
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.nav-card:focus {
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
/* Headings */
|
|
.post h1 {
|
|
@apply text-3xl sm:text-4xl font-bold mb-6 mt-8 text-neutral-900 dark:text-neutral-100 border-b border-neutral-200 dark:border-neutral-700 pb-2;
|
|
}
|
|
|
|
.post h2 {
|
|
@apply text-2xl sm:text-3xl font-bold mb-5 mt-8 text-neutral-900 dark:text-neutral-100 border-b border-neutral-200 dark:border-neutral-700 pb-2;
|
|
}
|
|
|
|
.post h3 {
|
|
@apply text-xl sm:text-2xl font-serif font-semibold mb-4 mt-6 text-neutral-800 dark:text-neutral-200;
|
|
}
|
|
|
|
.post h4 {
|
|
@apply text-lg sm:text-xl font-serif font-semibold mb-3 mt-5 text-neutral-800 dark:text-neutral-200;
|
|
}
|
|
|
|
.post h5 {
|
|
@apply text-base sm:text-lg font-medium mb-3 mt-4 text-neutral-700 dark:text-neutral-300;
|
|
}
|
|
|
|
.post h6 {
|
|
@apply text-sm sm:text-base font-serif font-medium mb-2 mt-4 text-neutral-700 dark:text-neutral-300 uppercase tracking-wide;
|
|
}
|
|
|
|
/* Paragraphs and Text */
|
|
.post p {
|
|
@apply text-lg text-neutral-600 dark:text-neutral-300 leading-relaxed mb-4 text-justify;
|
|
}
|
|
|
|
.post strong, .prose b {
|
|
@apply font-semibold text-neutral-800 dark:text-neutral-200;
|
|
}
|
|
|
|
.post em, .prose i {
|
|
@apply italic text-neutral-700 dark:text-neutral-300;
|
|
}
|
|
|
|
.post small {
|
|
@apply text-sm text-neutral-500 dark:text-neutral-400;
|
|
}
|
|
|
|
.post mark {
|
|
@apply bg-yellow-200 dark:bg-yellow-800 text-neutral-900 dark:text-neutral-100 px-1 rounded;
|
|
}
|
|
|
|
.post del, .prose s {
|
|
@apply line-through text-neutral-500 dark:text-neutral-400;
|
|
}
|
|
|
|
.post ins, .prose u {
|
|
@apply underline text-neutral-700 dark:text-neutral-300;
|
|
}
|
|
|
|
/* Links */
|
|
.post a {
|
|
@apply text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline underline-offset-2 transition-colors duration-200;
|
|
}
|
|
|
|
.post a:visited {
|
|
@apply text-purple-600 dark:text-purple-400;
|
|
}
|
|
|
|
/* Lists */
|
|
.post ul {
|
|
@apply list-disc list-inside mb-4 text-lg text-neutral-600 dark:text-neutral-300 leading-relaxed space-y-2;
|
|
}
|
|
|
|
.post ol {
|
|
@apply list-decimal list-inside mb-4 text-lg text-neutral-600 dark:text-neutral-300 leading-relaxed space-y-2;
|
|
}
|
|
|
|
.post li {
|
|
@apply mb-1;
|
|
}
|
|
|
|
.post li::marker {
|
|
@apply text-neutral-500 dark:text-neutral-400;
|
|
}
|
|
|
|
.post ul ul, .prose ol ol, .prose ul ol, .prose ol ul {
|
|
@apply mt-2 mb-2 ml-6;
|
|
}
|
|
|
|
/* Blockquotes */
|
|
.post blockquote {
|
|
@apply border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 py-2 mb-4 italic text-neutral-700 dark:text-neutral-300 bg-neutral-50 dark:bg-neutral-800 rounded-r-md px-3;
|
|
}
|
|
|
|
.post blockquote p {
|
|
@apply mb-2 last:mb-0;
|
|
}
|
|
|
|
.post blockquote cite {
|
|
@apply text-sm text-neutral-500 dark:text-neutral-400 not-italic block mt-2;
|
|
}
|
|
|
|
/* Code */
|
|
.post code {
|
|
@apply bg-neutral-100 dark:bg-neutral-800 text-neutral-800 dark:text-neutral-200 px-2 py-1 rounded text-sm font-mono border border-neutral-200 dark:border-neutral-700;
|
|
}
|
|
|
|
.post pre {
|
|
@apply bg-neutral-900 dark:bg-neutral-950 text-neutral-100 dark:text-neutral-200 p-4 rounded-lg overflow-x-auto mb-4 border border-neutral-200 dark:border-neutral-700;
|
|
}
|
|
|
|
.post pre code {
|
|
@apply bg-transparent border-none p-0 text-inherit;
|
|
}
|
|
|
|
/* Tables */
|
|
.post table {
|
|
@apply w-full border-collapse mb-4 text-sm sm:text-base;
|
|
}
|
|
|
|
.post thead {
|
|
@apply bg-neutral-100 dark:bg-neutral-800;
|
|
}
|
|
|
|
.post th {
|
|
@apply border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold text-neutral-900 dark:text-neutral-100;
|
|
}
|
|
|
|
.post td {
|
|
@apply border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-neutral-700 dark:text-neutral-300;
|
|
}
|
|
|
|
.post tbody tr:nth-child(even) {
|
|
@apply bg-neutral-50 dark:bg-neutral-800/50;
|
|
}
|
|
|
|
.post tbody tr:hover {
|
|
@apply bg-neutral-100 dark:bg-neutral-700/50 transition-colors duration-150;
|
|
}
|
|
|
|
/* Horizontal Rule */
|
|
.post hr {
|
|
@apply border-0 h-px bg-neutral-300 dark:bg-neutral-600 my-8;
|
|
}
|
|
|
|
/* Images */
|
|
.post img {
|
|
@apply max-w-full h-auto rounded-lg shadow-md mb-4 border border-neutral-200 dark:border-neutral-700;
|
|
}
|
|
|
|
.post figure {
|
|
@apply mb-4;
|
|
}
|
|
|
|
.post figcaption {
|
|
@apply text-sm text-neutral-500 dark:text-neutral-400 text-center mt-2 italic;
|
|
}
|
|
|
|
/* Keyboard Keys */
|
|
.post kbd {
|
|
@apply bg-neutral-200 dark:bg-neutral-700 text-neutral-800 dark:text-neutral-200 px-2 py-1 rounded text-sm font-mono border border-neutral-300 dark:border-neutral-600 shadow-sm;
|
|
}
|
|
|
|
/* Abbreviations */
|
|
.post abbr {
|
|
@apply underline decoration-dotted cursor-help;
|
|
}
|
|
|
|
/* Definition Lists */
|
|
.post dl {
|
|
@apply mb-4;
|
|
}
|
|
|
|
.post dt {
|
|
@apply font-semibold text-neutral-800 dark:text-neutral-200 mb-1;
|
|
}
|
|
|
|
.post dd {
|
|
@apply text-neutral-600 dark:text-neutral-300 ml-4 mb-2;
|
|
}
|
|
|
|
/* Details and Summary */
|
|
.post details {
|
|
@apply border border-neutral-200 dark:border-neutral-700 rounded-lg p-4 mb-4 bg-neutral-50 dark:bg-neutral-800;
|
|
}
|
|
|
|
.post summary {
|
|
@apply font-semibold text-neutral-800 dark:text-neutral-200 cursor-pointer hover:text-neutral-600 dark:hover:text-neutral-400 transition-colors duration-200;
|
|
}
|
|
|
|
.post details[open] summary {
|
|
@apply mb-3 pb-2 border-b border-neutral-200 dark:border-neutral-700;
|
|
}
|
|
|
|
/* Address */
|
|
.post address {
|
|
@apply not-italic text-neutral-600 dark:text-neutral-300 mb-4;
|
|
}
|
|
|
|
/* Subscript and Superscript */
|
|
.post sub, .prose sup {
|
|
@apply text-xs;
|
|
}
|
|
|
|
/* Selection */
|
|
.post ::selection {
|
|
@apply bg-blue-200 dark:bg-blue-800 text-neutral-900 dark:text-neutral-100;
|
|
}
|
|
|
|
/* Focus styles for accessibility */
|
|
.post a:focus,
|
|
.post button:focus,
|
|
.post summary:focus {
|
|
@apply outline-2 outline-blue-500 dark:outline-blue-400 outline-offset-2;
|
|
}
|
|
|
|
/* Responsive adjustments */
|
|
@media (max-width: 640px) {
|
|
.post {
|
|
@apply text-base;
|
|
}
|
|
|
|
.post p {
|
|
@apply text-base;
|
|
}
|
|
|
|
.post ul, .prose ol {
|
|
@apply text-base;
|
|
}
|
|
}
|
|
|
|
/* Print styles */
|
|
@media print {
|
|
.post {
|
|
@apply text-black;
|
|
}
|
|
|
|
.post h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 {
|
|
@apply text-black border-black;
|
|
}
|
|
|
|
.post a {
|
|
@apply text-black underline;
|
|
}
|
|
|
|
.post code, .prose pre {
|
|
@apply bg-gray-100 text-black border-gray-300;
|
|
}
|
|
}
|