Chat fills the space next to the sidebar (no more dead strip)
The conversation column was max-w-3xl and centred, which on a 1280 window left a ~140px empty strip between the rail and the messages - "the chat cuts off weirdly". It now uses the library's container (max-w-6xl, lg:px-10) and the composer's content padding matches, so the chat starts right next to the sidebar and every row shares one left edge. Contrast 0 findings, chat 102/102, mobile 126/126, i18n 13/13, native 33/33. Version 0.5.0 (the 0.4.9 rollover), SW -> freezmo-v74.
This commit is contained in:
parent
8651674cf5
commit
e2676be080
5 changed files with 13 additions and 4 deletions
|
|
@ -1411,6 +1411,13 @@ Things I chose while building, with the reasoning:
|
||||||
pre-blurred wallpaper — the scene is clearly visible through the glass, and the
|
pre-blurred wallpaper — the scene is clearly visible through the glass, and the
|
||||||
pixel-contrast scan still passes.
|
pixel-contrast scan still passes.
|
||||||
|
|
||||||
|
83. **The chat fills the space next to the sidebar.** The conversation column was `max-w-3xl`
|
||||||
|
centred, which on a 1280 window left a ~140px dead strip between the rail and the messages —
|
||||||
|
"the chat cuts off weirdly". It now uses the library's container (`max-w-6xl`, `lg:px-10`) and
|
||||||
|
the composer's content is padded to match, so the conversation starts right next to the sidebar
|
||||||
|
(measured: column left = 268 = the rail's edge at 1280) and every row — messages, table, action
|
||||||
|
chips, input, chips, note — shares one left edge.
|
||||||
|
|
||||||
82. **First run offers the choice: free Ollama or a paid provider.** The gate (user-key installs)
|
82. **First run offers the choice: free Ollama or a paid provider.** The gate (user-key installs)
|
||||||
now shows Ollama with a "Free" badge as the headline option, and below it an "or · Use a paid
|
now shows Ollama with a "Free" badge as the headline option, and below it an "or · Use a paid
|
||||||
provider instead" button that opens the same provider rows as Settings — with the framing that
|
provider instead" button that opens the same provider rows as Settings — with the framing that
|
||||||
|
|
|
||||||
|
|
@ -599,7 +599,9 @@ export function ChatScreen() {
|
||||||
<div ref={scrollRef} onScroll={onScroll} className="chat-scroll h-full overflow-y-auto overscroll-contain">
|
<div ref={scrollRef} onScroll={onScroll} className="chat-scroll h-full overflow-y-auto overscroll-contain">
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
"mx-auto w-full max-w-3xl space-y-4 px-4 py-4",
|
// The same container as the library page: the conversation starts
|
||||||
|
// right next to the sidebar, not centred in a narrower strip.
|
||||||
|
"mx-auto w-full max-w-6xl space-y-4 px-4 py-4 lg:px-10 lg:py-6",
|
||||||
messages.length === 0 && "flex min-h-full flex-col justify-center",
|
messages.length === 0 && "flex min-h-full flex-col justify-center",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ export function Composer({
|
||||||
const canSend = online && !busy && value.trim().length > 0;
|
const canSend = online && !busy && value.trim().length > 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="border-t border-[var(--glass-border)] bg-[var(--glass-bg)] px-3 pb-safe pt-2 backdrop-blur-xl">
|
<div className="border-t border-[var(--glass-border)] bg-[var(--glass-bg)] px-4 pb-safe pt-2 backdrop-blur-xl lg:px-10">
|
||||||
{attachments.length > 0 ? (
|
{attachments.length > 0 ? (
|
||||||
<ul className="mb-2 flex flex-wrap gap-1.5">
|
<ul className="mb-2 flex flex-wrap gap-1.5">
|
||||||
{attachments.map((entry, index) => (
|
{attachments.map((entry, index) => (
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "freezmo",
|
"name": "freezmo",
|
||||||
"version": "0.4.9",
|
"version": "0.5.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
*
|
*
|
||||||
* Bumping CACHE_VERSION is how a new deploy invalidates old assets.
|
* Bumping CACHE_VERSION is how a new deploy invalidates old assets.
|
||||||
*/
|
*/
|
||||||
const CACHE_VERSION = "freezmo-v73";
|
const CACHE_VERSION = "freezmo-v74";
|
||||||
const SHELL_CACHE = `${CACHE_VERSION}-shell`;
|
const SHELL_CACHE = `${CACHE_VERSION}-shell`;
|
||||||
const ASSET_CACHE = `${CACHE_VERSION}-assets`;
|
const ASSET_CACHE = `${CACHE_VERSION}-assets`;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue