Gtk
Your app is a GTK 4 program, and Libadwaita adds a design system on top of GTK
instead of replacing it — so a GNOME app draws widgets from both. There is no
Adw.Entry, no Adw.DropDown and no Adw.MenuButton. An app that needs one uses
GTK’s own widget, and the Adwaita stylesheet paints it.
This section holds those widgets: Gtk.Entry is here and Adw.EntryRow is under
Adwaita, and the two are different widgets one namespace
apart.
Get the widgets
Section titled “Get the widgets”On the desktop the widgets come from the GTK 4 library already installed on the
machine. @girs/gtk-4.0 is the type package for it, and nothing else is needed:
import Gtk from 'gi://Gtk?version=4.0';
const entry = new Gtk.Entry({ placeholderText: 'Search files…' });In the browser and on a phone these widgets come from the same packages as the
Adwaita ones, installed the same way, and the
GType rule names them there too: Gtk.Entry is <gtk-entry> and Gtk.MenuButton
is <gtk-menu-button> in @gjsify/adwaita-web, and Gtk.Entry and
Gtk.MenuButton in
@gjsify/adwaita-nativescript.
Both export them from a Gtk namespace. What makes them look Adwaita is the
stylesheet, not the widget.
<gtk-entry placeholder="Search files…"></gtk-entry>Browse the widgets
Section titled “Browse the widgets”Where the Adwaita widgets are
Section titled “Where the Adwaita widgets are”Everything libadwaita ships has its own section: boxed lists and their rows, header bars and clamps, split views, view switchers, avatars, banners and dialogs. Start at Adwaita.
The Adwaita Storybook carries both sets
in one component browser you can poke at. Run it as a native window with
gjsify storybook.