Files
m3e-canvas/web/vendor/globals.css
T
pastilhasandClaude Fable 5 240d63940d vendor m3e-canvas 5c83ac6, with the import rewrite scripted
upstream imports through a @/ alias, and this platform already binds
@/* to src/apps/officer-web and @/components/* to its own shared
components — so an unrewritten import resolves to the WRONG module
rather than failing. the rewrite is mechanical and lives in
scripts/vendor.sh so a re-vendor produces a readable diff.

lib/ai.ts and AiPanel are vendored despite being unwanted: deleting them
meant editing vendored code, and Canvas.tsx references them throughout.
a faithful copy carrying an unused module beats a doctored one.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 12:00:17 +01:00

198 lines
4.4 KiB
CSS

@import "tailwindcss";
html,
body {
height: 100%;
}
/* in-app browsers (X, Instagram, LINE) may not know dvh; fall back to vh
and let JS override with the measured visual viewport when available */
.app-root {
height: 100vh;
height: 100dvh;
height: var(--app-h, 100dvh);
}
body {
background: #ffffff;
color: #1d1b20;
overscroll-behavior: none;
}
/* Material Symbols Rounded (variable font) */
.msr {
font-family: "Material Symbols Rounded";
font-weight: normal;
font-style: normal;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-webkit-font-feature-settings: "liga";
-webkit-font-smoothing: antialiased;
font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
user-select: none;
}
.msr[data-fill="1"] {
font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
}
.no-scrollbar {
scrollbar-width: thin;
scrollbar-color: var(--sb, #d6cfe0) transparent;
}
.no-scrollbar::-webkit-scrollbar {
width: 6px;
}
.no-scrollbar::-webkit-scrollbar-thumb {
background: var(--sb, #d6cfe0);
border-radius: 999px;
}
.no-scrollbar::-webkit-scrollbar-track {
background: transparent;
}
/* press feedback shared by toolbar and inspector buttons */
.m3-press {
transition: transform 120ms cubic-bezier(0.2, 0, 0, 1), background 120ms, color 120ms;
}
.m3-press:active:not(:disabled) {
transform: scale(0.94);
}
/* parts palette tiles: the star only shows on hover */
.m3-tile {
transition: transform 140ms cubic-bezier(0.2, 0, 0, 1), background 120ms;
}
.m3-tile:hover {
transform: translateY(-1px);
}
.m3-tile:active {
transform: scale(0.96);
}
.m3-tile .m3-star {
opacity: 0;
transition: opacity 120ms;
}
.m3-tile:hover .m3-star,
.m3-tile .m3-star[style*="opacity: 1"] {
opacity: 1;
}
/* range input, themed per palette via CSS vars */
input[type="range"].m3-range {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 28px;
background: transparent;
cursor: pointer;
margin: 0;
}
input[type="range"].m3-range::-webkit-slider-runnable-track {
height: 10px;
border-radius: 5px;
background: var(--track, #e8def8);
}
input[type="range"].m3-range::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 6px;
height: 26px;
margin-top: -8px;
border-radius: 3px;
background: var(--thumb, #6750a4);
border: none;
}
input[type="range"].m3-range::-moz-range-track {
height: 10px;
border-radius: 5px;
background: var(--track, #e8def8);
}
input[type="range"].m3-range::-moz-range-thumb {
width: 6px;
height: 26px;
border-radius: 3px;
background: var(--thumb, #6750a4);
border: none;
}
input.m3-number::-webkit-outer-spin-button,
input.m3-number::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input.m3-number {
-moz-appearance: textfield;
appearance: textfield;
}
@media (prefers-reduced-motion: reduce) {
.m3-press,
.m3-tile {
transition: none;
}
.m3-spin,
.m3e-reveal [data-screen] > * {
animation: none;
}
.m3e-reveal,
.m3e-reveal * {
transition: none !important;
}
[style*="m3e-drift"] {
animation: none;
}
}
/* a design arriving from a model or a link: colours ease over instead of snapping,
and the screens fade in. The class stays on the root only for the moment it takes. */
.m3e-reveal,
.m3e-reveal * {
transition:
background-color 700ms ease,
background 700ms ease,
color 700ms ease,
border-color 700ms ease,
box-shadow 700ms ease,
fill 700ms ease !important;
}
@keyframes m3e-fadein {
from { opacity: 0; }
to { opacity: 1; }
}
.m3e-reveal [data-screen] > * {
animation: m3e-fadein 600ms cubic-bezier(0.2, 0, 0, 1) both;
}
/* the screens while a model drafts: a gradient that drifts across them */
@keyframes m3e-drift {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
/* the AI button while a request is in flight */
@keyframes m3-spin {
to {
transform: rotate(360deg);
}
}
.m3-spin {
animation: m3-spin 1.1s linear infinite;
}
/* buttons inside a run share fused corners, like a connected button group */
.m3-run > * {
border-radius: 8px !important;
}
.m3-run > :first-child {
border-top-left-radius: 22px !important;
border-bottom-left-radius: 22px !important;
}
.m3-run > :last-child {
border-top-right-radius: 22px !important;
border-bottom-right-radius: 22px !important;
}