Spaces:
Running
Running

davanstrien
HF Staff
Add support for reasoning trace display from NuMarkdown-8B-Thinking model
34cedd8
/** | |
* Custom styles for OCR Text Explorer | |
* Extends Tailwind CSS with specific styling needs | |
*/ | |
/* Custom scrollbar styling */ | |
::-webkit-scrollbar { | |
width: 8px; | |
height: 8px; | |
} | |
::-webkit-scrollbar-track { | |
@apply bg-gray-100 dark:bg-gray-800; | |
} | |
::-webkit-scrollbar-thumb { | |
@apply bg-gray-400 dark:bg-gray-600 rounded; | |
} | |
::-webkit-scrollbar-thumb:hover { | |
@apply bg-gray-500 dark:bg-gray-500; | |
} | |
/* Firefox scrollbar */ | |
* { | |
scrollbar-width: thin; | |
scrollbar-color: theme('colors.gray.400') theme('colors.gray.100'); | |
} | |
.dark * { | |
scrollbar-color: theme('colors.gray.600') theme('colors.gray.800'); | |
} | |
/* Smooth transitions for theme switching */ | |
body { | |
transition: background-color 0.3s ease, color 0.3s ease; | |
} | |
/* Image panel sticky positioning adjustment */ | |
.sticky { | |
position: -webkit-sticky; | |
position: sticky; | |
} | |
/* Diff content styling */ | |
.diff-content { | |
line-height: 1.6; | |
word-break: break-word; | |
} | |
/* Reasoning trace styling */ | |
.reasoning-panel { | |
@apply bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-950/20 dark:to-indigo-950/20; | |
@apply border-l-4 border-blue-500 dark:border-blue-400; | |
} | |
.reasoning-step { | |
@apply transition-all hover:bg-gray-50 dark:hover:bg-gray-800/50 rounded-md p-2 -m-2; | |
} | |
.reasoning-step-number { | |
@apply inline-flex items-center justify-center w-7 h-7; | |
@apply bg-gradient-to-br from-blue-500 to-indigo-600; | |
@apply text-white text-xs font-bold rounded-full; | |
@apply shadow-sm; | |
} | |
.reasoning-step-title { | |
@apply font-semibold text-gray-900 dark:text-gray-100; | |
@apply border-b border-gray-200 dark:border-gray-700 pb-1 mb-2; | |
} | |
.reasoning-step-content { | |
@apply text-sm text-gray-700 dark:text-gray-300; | |
@apply leading-relaxed; | |
} | |
/* Collapse animation for reasoning panel */ | |
[x-collapse] { | |
overflow: hidden; | |
transition: max-height 0.3s ease-out; | |
} | |
[x-collapse].collapsed { | |
max-height: 0; | |
} | |
/* Reasoning trace indicators */ | |
.reasoning-indicator { | |
@apply animate-pulse; | |
} | |
.reasoning-badge { | |
@apply inline-flex items-center px-3 py-1 rounded-full text-xs font-medium; | |
@apply bg-gradient-to-r from-blue-100 to-indigo-100 dark:from-blue-900 dark:to-indigo-900; | |
@apply text-blue-800 dark:text-blue-200; | |
@apply border border-blue-200 dark:border-blue-700; | |
} | |
/* Keyboard hint styling */ | |
kbd { | |
@apply inline-block px-2 py-1 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-300 rounded dark:bg-gray-700 dark:text-gray-200 dark:border-gray-600; | |
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); | |
} | |
/* Loading spinner animation (in case Tailwind's animate-spin needs adjustment) */ | |
@keyframes spin { | |
to { | |
transform: rotate(360deg); | |
} | |
} | |
.animate-spin { | |
animation: spin 1s linear infinite; | |
} | |
/* Tab hover effect */ | |
nav button { | |
position: relative; | |
transition: color 0.2s ease; | |
} | |
nav button::after { | |
content: ''; | |
position: absolute; | |
bottom: -2px; | |
left: 0; | |
right: 0; | |
height: 2px; | |
background-color: transparent; | |
transition: background-color 0.2s ease; | |
} | |
nav button:hover::after { | |
@apply bg-gray-300 dark:bg-gray-600; | |
} | |
/* Image loading state */ | |
img { | |
@apply bg-gray-200 dark:bg-gray-700; | |
min-height: 200px; | |
} | |
img[src=""] { | |
visibility: hidden; | |
} | |
/* Print styles */ | |
@media print { | |
header, footer { | |
display: none ; | |
} | |
.no-print { | |
display: none ; | |
} | |
main { | |
height: auto ; | |
} | |
.diff-content { | |
page-break-inside: avoid; | |
} | |
} | |
/* Responsive adjustments */ | |
@media (max-width: 768px) { | |
/* Stack panels vertically on mobile */ | |
main.flex { | |
@apply flex-col; | |
} | |
/* Full width for panels on mobile */ | |
main > div:first-child { | |
@apply w-full max-h-96; | |
} | |
/* Adjust text size */ | |
.prose-sm { | |
@apply text-xs; | |
} | |
/* Hide keyboard hints on mobile */ | |
footer .text-sm:last-child { | |
@apply hidden; | |
} | |
} | |
/* Focus styles for accessibility */ | |
button:focus, input:focus, select:focus { | |
@apply outline-none ring-2 ring-blue-500 ring-offset-2 dark:ring-offset-gray-900; | |
} | |
/* Custom tooltip styles (if needed later) */ | |
.tooltip { | |
@apply invisible absolute z-10 px-2 py-1 text-xs text-white bg-gray-900 rounded shadow-lg dark:bg-gray-700; | |
} | |
.tooltip-trigger:hover .tooltip { | |
@apply visible; | |
} | |
/* Preserve whitespace in diff views */ | |
.whitespace-pre-wrap { | |
white-space: pre-wrap; | |
word-wrap: break-word; | |
} | |
/* Enhanced diff highlighting with better dark mode contrast */ | |
.diff-delete { | |
@apply bg-red-200 dark:bg-red-950 text-red-800 dark:text-red-300; | |
text-decoration: line-through; | |
text-decoration-color: currentColor; | |
text-decoration-thickness: 2px; | |
} | |
.diff-insert { | |
@apply bg-green-200 dark:bg-green-950 text-green-800 dark:text-green-300; | |
position: relative; | |
} | |
/* Dark mode specific improvements */ | |
.dark .prose { | |
@apply text-gray-200; | |
} | |
.dark .prose h3 { | |
@apply text-gray-100; | |
} | |
/* Remove this - handled inline with classes | |
.dark pre { | |
@apply bg-gray-800 text-gray-200; | |
} */ | |
/* Line numbers for future enhancement */ | |
.line-numbers { | |
counter-reset: line; | |
} | |
.line-numbers > div::before { | |
counter-increment: line; | |
content: counter(line); | |
@apply inline-block w-12 mr-4 text-right text-gray-400 dark:text-gray-600 select-none; | |
} | |
/* Markdown content styling */ | |
.markdown-content { | |
@apply text-gray-900 dark:text-gray-100; | |
} | |
.markdown-content h1 { | |
@apply text-2xl font-bold mb-4 text-gray-900 dark:text-gray-100; | |
} | |
.markdown-content h2 { | |
@apply text-xl font-bold mb-3 text-gray-900 dark:text-gray-100; | |
} | |
.markdown-content h3 { | |
@apply text-lg font-bold mb-2 text-gray-900 dark:text-gray-100; | |
} | |
.markdown-content h4 { | |
@apply text-base font-bold mb-2 text-gray-900 dark:text-gray-100; | |
} | |
.markdown-content p { | |
@apply mb-4 leading-relaxed; | |
} | |
.markdown-content ul { | |
@apply list-disc list-inside mb-4 pl-4; | |
} | |
.markdown-content ol { | |
@apply list-decimal list-inside mb-4 pl-4; | |
} | |
.markdown-content li { | |
@apply mb-1; | |
} | |
.markdown-content blockquote { | |
@apply border-l-4 border-gray-300 dark:border-gray-600 pl-4 my-4 italic text-gray-700 dark:text-gray-300; | |
} | |
.markdown-content code { | |
@apply bg-gray-100 dark:bg-gray-800 px-1 py-0.5 rounded text-sm font-mono; | |
} | |
.markdown-content pre { | |
@apply bg-gray-100 dark:bg-gray-800 p-4 rounded-lg overflow-x-auto mb-4; | |
} | |
.markdown-content pre code { | |
@apply bg-transparent p-0; | |
} | |
.markdown-content a { | |
@apply text-blue-600 dark:text-blue-400 underline hover:text-blue-800 dark:hover:text-blue-300; | |
} | |
.markdown-content table { | |
@apply w-full mb-4 border-collapse; | |
display: table ; | |
} | |
.markdown-content th, .markdown-content td { | |
@apply border border-gray-300 dark:border-gray-600 px-3 py-2; | |
} | |
.markdown-content th { | |
@apply bg-gray-100 dark:bg-gray-800 font-bold; | |
} | |
/* Override prose styles for tables */ | |
.prose table { | |
@apply w-full mb-4 border-collapse; | |
display: table ; | |
} | |
.prose thead { | |
@apply bg-gray-50 dark:bg-gray-800; | |
} | |
.prose tbody { | |
@apply bg-white dark:bg-gray-900; | |
} | |
.prose th { | |
@apply px-3 py-3.5 text-left text-sm font-semibold text-gray-900 dark:text-gray-100 border border-gray-300 dark:border-gray-600; | |
} | |
.prose td { | |
@apply px-3 py-4 text-sm text-gray-900 dark:text-gray-100 border border-gray-300 dark:border-gray-600; | |
} | |
.markdown-content hr { | |
@apply border-t border-gray-300 dark:border-gray-600 my-6; | |
} |