diff --git a/frontend/index.html b/frontend/index.html index f560145..24d2a5a 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -5,7 +5,7 @@ Egalware's LM Studio Chat App - +
diff --git a/frontend/src/App.css b/frontend/src/App.css index 0a5c788..4c813c1 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -7,12 +7,59 @@ html, body, #root { height: 100%; margin: 0; padding: 0; - overflow: hidden; /* lo scroll รจ gestito dal main della chat */ + overflow: hidden; } body { background-color: var(--bs-body-bg); - font-family: sans-serif; + font-family: 'Roboto', sans-serif; /* Font principale */ + font-weight: 400; + line-height: 1.5; + color: #212529; +} + +/* ========================= + TITOLI & ELEMENTI EVIDENZIATI + ========================= */ +h1, h2, /*h3, h4, h5, h6,*/ +label, +button, +.send-button, +.offcanvas-title, +.session-table th { + font-family: 'Montserrat', sans-serif; + font-weight: 600; + line-height: 1.1; +} + +/* ========================= + BOTTONI + ========================= */ +button, +.send-button { + font-family: 'Montserrat', sans-serif; + font-weight: 600; + letter-spacing: 0.3px; +} + +/* ========================= + CHAT TITLES / HEADER + ========================= */ +.chat-header, +.chat-layout header, +.offcanvas-header { + font-family: 'Montserrat', sans-serif; + font-weight: 700; +} + +/* ========================= + LABELS & PICCOLI ELEMENTI + ========================= */ +label, +.badge, +.nav-link { + font-family: 'Montserrat', sans-serif; + font-weight: 600; } /* ========================= diff --git a/frontend/src/AssistantMessage.jsx b/frontend/src/AssistantMessage.jsx index 5833350..4ea4529 100644 --- a/frontend/src/AssistantMessage.jsx +++ b/frontend/src/AssistantMessage.jsx @@ -155,7 +155,7 @@ function CodeWithCopy({ inline, className = "", children, ...props }) { background: "transparent", cursor: "pointer" }} - className="btn-copy" + className="btn btn-copy shadow" title="Copy to clipboard" > ๐Ÿ“‹ diff --git a/moved/MessageContent.css b/moved/MessageContent.css deleted file mode 100644 index d9b749e..0000000 --- a/moved/MessageContent.css +++ /dev/null @@ -1,27 +0,0 @@ -/* MessageContent.css */ -.table { - width: auto; - border-collapse: collapse; -} - -.table th, -.table td { - border: 1px solid #dee2e6; - padding: 0.25rem 0.5rem; - vertical-align: top; -} - -code { - white-space: pre-wrap; - word-break: break-word; -} - -.md-pre-wrapper { - min-height: 5rem; /* adjust to taste */ -} - -.md-pre-wrapper pre, -.md-pre-wrapper > div { /* syntax highlighter wrapper */ - margin: 0; - overflow: auto; -} diff --git a/moved/MessageContent.jsx b/moved/MessageContent.jsx deleted file mode 100644 index c835b52..0000000 --- a/moved/MessageContent.jsx +++ /dev/null @@ -1,71 +0,0 @@ -// MessageContent.jsx -import React, { useCallback } from 'react'; -import ReactMarkdown from 'react-markdown'; -import remarkMath from 'remark-math'; -import remarkGfm from 'remark-gfm'; -import rehypeKatex from 'rehype-katex'; -import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; -import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism'; -import './MessageContent.css'; - -export default function MessageContent({ content }) { - const handleCopy = useCallback(async (text) => { - try { - await navigator.clipboard.writeText(text); - } catch { - /* you could add a toast here if desired */ - } - }, []); - - return ( - , - thead: (props) => , - code({ inline, className, children, ...props }) { - const codeText = String(children).replace(/\n$/, ''); - const match = /language-(\w+)/.exec(className || ''); - const isMultiLine = codeText.includes('\n'); - - if (inline || !isMultiLine) { - // Inline or single-line โ€” render plainly - return ( - - {children} - - ); - } - - // Multi-line fenced code block โ†’ highlight + copy button - return ( -
- - {codeText || ' '} {/* keep at least a space to hold height */} - - -
- ); - }, - }} - > - {content} - - ); -} - diff --git a/package-lock.json b/package-lock.json index 9037dd4..006bcdb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -216,7 +216,6 @@ "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", - "license": "MIT", "engines": { "node": ">=6" }