diff --git a/src/uix/eidos/components/words/words.css b/src/uix/eidos/components/words/words.css index fd7adfc36..b780b8b7f 100644 --- a/src/uix/eidos/components/words/words.css +++ b/src/uix/eidos/components/words/words.css @@ -4,6 +4,11 @@ --_words-content-px: var(--words-content-px-md); --_words-content-py: var(--words-content-py-md); --_words-content-min-block-size: var(--words-content-min-block-size-md); + /* Gutter reserved for the block-handle grip + inserter "+" overlay. + Content is padded by this much on the side OPPOSITE to the drawer + so the floating overlays have a visible band to land in. ~40px + fits a 28×28 hit area with 12px breathing room before the text. */ + --_words-rail-px: 2.5rem; --_words-toolbar-px: var(--words-toolbar-px-md); --_words-toolbar-py: var(--words-toolbar-py-md); --_words-button-size: var(--words-button-size-md); @@ -1759,7 +1764,9 @@ [data-words-placeholder] { display: block; padding-block-start: var(--_words-content-py); - padding-inline: var(--_words-content-px); + /* Default (drawer on right): rail on the LEFT for the grip. */ + padding-inline-start: calc(var(--_words-content-px) + var(--_words-rail-px)); + padding-inline-end: var(--_words-content-px); color: var(--words-placeholder-color); pointer-events: none; } @@ -1772,7 +1779,9 @@ [data-words-content] { min-block-size: var(--_words-content-min-block-size); padding-block: var(--_words-content-py); - padding-inline: var(--_words-content-px); + /* Default (drawer on right): rail on the LEFT for the grip + "+". */ + padding-inline-start: calc(var(--_words-content-px) + var(--_words-rail-px)); + padding-inline-end: var(--_words-content-px); color: var(--words-content-color); outline: none; overflow-wrap: anywhere; @@ -1782,6 +1791,14 @@ -webkit-user-select: text; } +/* When the drawer lives on the LEFT, mirror: rail moves to the RIGHT + so the grip + "+" don't fight the drawer's gutter. */ +[data-words]:has([data-words-drawer][data-side='left']) > [data-words-content], +[data-words]:has([data-words-drawer][data-side='left']) > [data-words-placeholder] { + padding-inline-start: var(--_words-content-px); + padding-inline-end: calc(var(--_words-content-px) + var(--_words-rail-px)); +} + [data-words-content] * { user-select: text; -webkit-user-select: text;