main character

search bar · 3 states · 2 modes
source: static/css/components.css

Search bar

One --bg-muted box holding everything search needs: the query, the mode, and the button. The input gives up its own well and border to the box, so the box takes the focus colour: it is the field. Enter submits; the button is there for pointers. Below about 28rem the controls wrap under the query.

States and modes

The mode is a soft toggle made a touch wider (1.8rem tall, .75rem sides). Off reads meaning: passages close to what you describe, ranked. On reads exact text: literal matches, newest first. The search button is a send pill.

Anatomy
form.search-bar[role=search]
  input[type=text]              grows, at least 12rem; no well of its own
  div.controls                  pushed right
    button.chip-toggle.soft     the mode
    button.send.pill            search ↵
box
--bg-muted, --border-default hairline, a 12px radius (a literal, shared with the chat bar), padding .55rem .6rem .55rem .9rem. The border turns --border-accent while anything inside has focus.
query
The input with its well, border and padding taken away: body serif, 1.8rem tall, line-height 1.4.
controls
.5rem apart, after a .9rem gap; they wrap below the query when the bar is narrow.
Tokens

Fill --bg-muted; rule --border-default, focus --border-accent; query --text-default, placeholder --text-muted. In Figma: Search bar, state × mode, with query and mode properties; the search button is a Button instance.