Mistral responsive + customizations

Mistral website is more suitable for wide screens.

От 27.09.2025. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

/* ==UserStyle==
@name           Mistral responsive + customizations
@version        1.0.21
@description    Mistral website is more suitable for wide screens.
@author         BreatFR (https://breat.fr)
@namespace      https://gitlab.com/breatfr
@homepageURL    https://gitlab.com/breatfr/mistral
@supportURL     https://discord.gg/Q8KSHzdBxs
@license        AGPL-3.0-or-later; https://www.gnu.org/licenses/agpl-3.0.txt
@preprocessor   stylus

@var    checkbox    chatmode                "Chat mode"                             1
@var    checkbox    avatar                  "Custom avatar for us"                  0
@var    text        avatarurl               "Custom avatar URL"                     "URL between quotes"
@var    checkbox    cmmistralavatar         "Custom Mistral avatar"                 0
@var    text        cmmistralavatarurl      "Custom Mistral avatar URL"             "URL between quotes"
@var    text        cmmistralavatarsize     "Custom Mistral avatar size"            calc(100vh - 64px - 124px - 3em)
@var    text        cmmistralavatarcorner   "Custom Mistral avatar corner"          50%
@var    text        fontsize                "Custom font size"                      1.2rem
@var    checkbox    hidepro                 "Hide pro"                              1
@var    checkbox    widemode                "Wide mode"                             1
==/UserStyle== */

/* === Credits ===
Website         https://breat.fr
facebook        https://www.facebook.com/breatfroff
mastodon        https://mastodon.social/@breat_fr
telegram        https://t.me/breatfr
vk              https://vk.com/breatfroff
X (twitter)     https://x.com/breatfroff
=== Credits === */

@-moz-document domain("chat.mistral.ai") {
    /* Mistral Chat */
    /* Versions */
    :root {
        --themeversion: 'Theme v1.0.21 by BreatFR (https://breat.fr)';
        --install1: ' usercssjs.breat.fr \A';
        --install2: ' gitlab.com/breatfr/mistral \A \A';
        --support1: ' ko-fi.com/breatfr \A';
        --support2: ' paypal.me/breat';
    }

    @media (min-width: 900px) {
        main main::after {
			align-items: center;
            background: linear-gradient(88.55deg, rgb(253, 73, 2) 22.43%, rgb(254, 206, 0) 92.28%);
            background-clip: text;
            -webkit-background-clip: text;
            color: transparent;
            content: var(--themeversion);
            display: flex;
            font-family: inherit;
            font-size: 1.2rem;
			height: 64px;
			justify-content: space-evenly;
            line-height: 1.5;
            pointer-events: none;
            position: absolute;
            text-align: center;
            width: 100%;
            white-space: wrap;
        }
    }
    
    [data-state="expanded"] [data-sidebar="sidebar"]::after,
    [data-mobile="true"][data-sidebar="sidebar"]::after {
        background: linear-gradient(88.55deg, rgb(253, 73, 2) 22.43%, rgb(254, 206, 0) 92.28%);
        background-clip: text;
        -webkit-background-clip: text;
        bottom: 1em;
        color: transparent;
        content: 'Install: \A' url("https://gitlab.com/breatfr/kindroid/-/raw/main/images/icon_breat.fr.png") var(--install1) url("https://gitlab.com/breatfr/kindroid/-/raw/main/images/icon_gitlab.png") var(--install2) 'Support me: \A' url("https://gitlab.com/breatfr/kindroid/-/raw/main/images/icon_ko-fi.png") var(--support1) url("https://gitlab.com/breatfr/kindroid/-/raw/main/images/icon_paypal.png") var(--support2);
        display: block;
        font-family: ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
        font-size: 1.2rem;
        left: 0;
        line-height: 1.5;
        max-width: 256px;
        pointer-events: none;
        position: fixed;
        text-align: center;
        width: 100%;
        white-space: pre-line;
    }
    
    body {
		height: 100vh;
        max-height: 100vh;
        overflow: hidden;
    }
    
    /* Textarea focused */
    body:has(.ProseMirror:focus) {
        [class="relative w-full overflow-hidden rounded-[12px] bg-card transition-colors duration-300 ease-in-out"] {
            border-radius: calc(var(--radius) + 4px);
            box-shadow: rgba(255, 149, 0, 0.4) -2px -2px 2px 2px,
                        rgba(255, 149, 0, 0.4) -2px 2px 2px 2px,
                        rgba(255, 69, 0, 0.4) 2px -2px 2px 2px,
                        rgba(255, 69, 0, 0.4) 2px 2px 2px 2px;
        }
    }
    
    /* Custom font size */
    .prose,
    code,
    textarea,
    .max-w-screen-md:has(textarea) button {
        font-size: fontsize !important;
        line-height: 1.5 !important;
    }
    textarea.py-2 {
        min-height: max-content !important;
    }
    
    if avatar {
        [data-sidebar="header"] button:nth-of-type(1) > div > div:nth-of-type(1) {
            background: transparent;
            color: transparent;
        }
        [class="flex h-fit w-full flex-col"] > div:nth-child(odd) {
            position: relative;
        }
        [class="flex h-fit w-full flex-col"] > div:nth-child(odd) > div {
            margin-right: calc(32px + .5em);
        }
        [class="flex h-fit w-full flex-col"] > div:nth-child(odd) > div::before {
            position: absolute;
            right: 0;
        }
        [data-sidebar="header"] button:nth-of-type(1) > div > div:nth-of-type(1):before,
        [class="flex h-fit w-full flex-col"] > div:nth-child(odd) > div::before {
            background: url(avatarurl) no-repeat center center / cover;
            border-radius: 50%;
            content: "";
            display: inline-block;
            height: 32px;
            width: 32px;
        }
    }
    
    if cmmistralavatar {
        /* Avatar new chat */
        [class="absolute bottom-[65%] flex w-full justify-center"] {
            bottom: auto;
            max-width: 100%;
            top: 0px;
        }
        [class="absolute bottom-[65%] flex w-full justify-center"] {
            height: auto;
            margin: 0;
            max-height: calc(100vh - 64px - 163.56px - .5rem) !important;
            overflow: hidden;
            position: absolute;
        }
        [class="absolute bottom-[65%] flex w-full justify-center"] svg {
            aspect-ratio: 1 / 1;
            background: url(cmmistralavatarurl) no-repeat center center;
            background-size: cover;
            border-radius: cmmistralavatarcorner;
            height: 0;
            margin: 0 auto;
            padding-left: cmmistralavatarsize;
            padding-top: cmmistralavatarsize;
            width: 0;
        }
        /* Textarea new chat */
        [class="absolute flex w-full max-w-(--breakpoint-md) flex-col px-2"] {
            bottom: 5em !important;
            top: auto !important;
        }
        
        /* Avatar in chat */
		[class="flex items-center justify-center bg-brand-500"] {
			background-color: transparent;
		}
        [class="flex items-center justify-center bg-brand-500"] > svg {
            aspect-ratio: 1 / 1;
            background: url(cmmistralavatarurl) no-repeat center center / cover;
            border-radius: 50%;
            height: 0;
            padding-left: 32px;
            padding-top: 32px;
            width: 0;
        }
		
		/* Avatar in textarea */
		.bg-state-brand, .bg-state-brand\\/10,
 		[class="flex items-center justify-center bg-brand-500 size-[1em] rounded-[2.5px]"] {
			background-color: transparent;
		}
		[class="flex items-center justify-center size-[1em] rounded-[6px] bg-transparent"] > svg {
			aspect-ratio: 1 / 1;
            background: url(cmmistralavatarurl) no-repeat center center / cover;
            border-radius: 50%;
            height: 0;
            padding-left: 28px;
            padding-top: 28px;
            width: 0;
        }
		[class="flex items-center justify-center bg-brand-500 size-[1em] rounded-[2.5px]"] > svg {
			aspect-ratio: 1 / 1;
            background: url(cmmistralavatarurl) no-repeat center center / cover;
            border-radius: 50%;
            height: 0;
            padding-left: 14px;
            padding-top: 14px;
            width: 0;
        }
    }
	data-radix-popper-content-wrapper > div {
		width: 100% !important;
	}
    
    if chatmode {
        [data-message-author-role="assistant"],
 		[data-message-author-role="user"] {
            max-width: 80%;
        }
		[data-message-author-role="user"] {
			margin-left: auto;
		}
		[data-message-author-role="user"] [class="flex flex-shrink-1 flex-row flex-wrap items-start gap-1 pb-1"] {
			justify-content: space-evenly;
		}
        code[style*="white-space: pre"],
        code[style*="white-space:pre"] {
            white-space: break-spaces !important;
        }
    }
    
    if hidepro {
        [data-sidebar="menu"] > li:nth-of-type(3) {
            display: none;
        }
    }
    
    if widemode {
        .max-w-\\(--breakpoint-md\\) {
            max-width: 98%;
        }
        .max-h-\\[300px\\]:has(textarea) {
            max-height: 50vh !important;
        }
        .max-w-screen-md:has(textarea) {
            padding: 1em 1.75em;
        }
        
        /* Avatars */
        .h-7 {
            height: 32px;
        }
        .w-7 {
            width: 32px;
        }
        
        body:has(iframe[sandbox="allow-scripts allow-same-origin"]) {
            .cm-content {
                flex-shrink: 1;
            }
            .cm-line {
                white-space: wrap;
                width: 100% !important;
            }
        }
        
        /* Generated images */
        [class="group flex w-full gap-3"] > div:nth-of-type(2) p:has(img) {
            margin-left: auto;
            margin-right: auto;
        }
        
        /* Textarea box */
        [class="relative overflow-hidden mb-2 min-h-10 w-full"] {
            margin-bottom: 0 !important;
        }
        
        /* Scroll down icon */
        button:has(svg.lucide-arrow-down) {
            height: 40px;
            width: 40px;
        }
        svg.lucide-arrow-down path {
            stroke: rgb(255, 69, 0);
        }
        
        /* Small space between date and edit button */
        [aria-label="Edit question"] {
            margin-left: 1em !important;
        }
        
        /* Search box */
        div[role="dialog"][style="pointer-events: auto;"] {
            max-height: 90%;
            max-width: 90%;
        }
        
        /* Documentation et contact */
        [class="fixed right-3 bottom-3 z-40 hidden gap-2 sm:flex"],
        [class="fixed right-3 bottom-3 z-40 hidden gap-2 md:flex"],
        [class="fixed right-3 bottom-3 z-40 hidden gap-2 lg:flex"] {
            left: calc(var(--spacing)*3);
            right: auto;
        }
		
		[class="absolute top-5 left-0 flex w-full justify-center max-sm:hidden"] {
			bottom: 9.5em;
			justify-content: flex-end;
			padding-right: 1.5em;
			top: auto !important;
		}
    }
}

@-moz-document domain("console.mistral.ai") {
    /* Mistral Console */
    button[class*="flex w-full items-center gap-3 rounded px-3 py-2"] > div:nth-of-type(1),
    .user-initials {
        background: transparent !important;
        color: transparent;
    }
    button[class*="flex w-full items-center gap-3 rounded px-3 py-2"] > div:nth-of-type(1)::before,
    .user-initials::before {
        background: url(avatarurl) no-repeat center center / cover;
        border-radius: 50%;
        content: "";
        display: inline-block;
        height: 32px;
        width: 32px;
    }
}