fix(app): scope user-select:none to chrome elements only
Body had user-select:none globally so users could not copy error strings, model paths, profile names, transcripts, status messages, or any text into search or another tool. The brand essence is "clarity without friction" and this was friction. Body now defaults to user-select:text (the standard for text content), and the chrome elements that should never be drag-selected (button, summary, role=button|switch|tab|menuitem, data-no-select) opt out. Verified live: body=text, button=none, paragraph=text (inherited).
This commit is contained in:
16
src/app.css
16
src/app.css
@@ -200,6 +200,22 @@ html, body {
|
|||||||
letter-spacing: var(--letter-spacing-body);
|
letter-spacing: var(--letter-spacing-body);
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
/* Selection allowed on content by default. Users need to copy error
|
||||||
|
strings, model paths, profile names, transcripts, etc. Chrome
|
||||||
|
elements opt out below. */
|
||||||
|
user-select: text;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Chrome elements opt out of selection so a click on a button label
|
||||||
|
doesn't drag-select. data-no-select is an escape hatch for app
|
||||||
|
surfaces (titlebar, drag handles) that should never select. */
|
||||||
|
button,
|
||||||
|
summary,
|
||||||
|
[role="button"],
|
||||||
|
[role="switch"],
|
||||||
|
[role="tab"],
|
||||||
|
[role="menuitem"],
|
||||||
|
[data-no-select] {
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user