@gjsify/adwaita-web 0.53.0 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adwaita-web.css +8070 -3037
- package/dist/adwaita-web.css.map +1 -1
- package/lib/types/adw-application-window.spec.d.ts +1 -0
- package/lib/types/adw-bin.spec.d.ts +1 -0
- package/lib/types/adw-breakpoint-bin.spec.d.ts +1 -0
- package/lib/types/adw-clamp-scrollable.spec.d.ts +1 -0
- package/lib/types/adw-multi-layout-view.spec.d.ts +1 -0
- package/lib/types/adw-preferences-row.spec.d.ts +1 -0
- package/lib/types/adw-shortcuts.spec.d.ts +1 -0
- package/lib/types/adw-tab-bar.spec.d.ts +1 -0
- package/lib/types/adw-tab-button.spec.d.ts +1 -0
- package/lib/types/adw-tab-overview.spec.d.ts +1 -0
- package/lib/types/adw-view-switcher-sidebar.spec.d.ts +1 -0
- package/lib/types/adw-window.spec.d.ts +1 -0
- package/lib/types/breakpoints.d.ts +14 -3
- package/lib/types/construct-vectors.spec.d.ts +1 -0
- package/lib/types/elements/adw-application-window.d.ts +27 -0
- package/lib/types/elements/adw-bin.d.ts +17 -0
- package/lib/types/elements/adw-breakpoint-bin.d.ts +67 -0
- package/lib/types/elements/adw-clamp-scrollable.d.ts +38 -0
- package/lib/types/elements/adw-dialog.d.ts +10 -0
- package/lib/types/elements/adw-layout-slot.d.ts +19 -0
- package/lib/types/elements/adw-multi-layout-view.d.ts +101 -0
- package/lib/types/elements/adw-preferences-row.d.ts +31 -0
- package/lib/types/elements/adw-shortcuts-dialog.d.ts +13 -0
- package/lib/types/elements/adw-shortcuts-item.d.ts +36 -0
- package/lib/types/elements/adw-shortcuts-section.d.ts +14 -0
- package/lib/types/elements/adw-sidebar.d.ts +5 -0
- package/lib/types/elements/adw-switch-row.d.ts +3 -0
- package/lib/types/elements/adw-tab-bar.d.ts +108 -0
- package/lib/types/elements/adw-tab-button.d.ts +32 -0
- package/lib/types/elements/adw-tab-overview.d.ts +199 -0
- package/lib/types/elements/adw-tab-view.d.ts +19 -23
- package/lib/types/elements/adw-view-switcher-sidebar.d.ts +84 -0
- package/lib/types/elements/adw-window.d.ts +40 -0
- package/lib/types/elements/gtk-about-dialog.d.ts +146 -0
- package/lib/types/elements/gtk-application-window.d.ts +34 -0
- package/lib/types/elements/gtk-aspect-frame.d.ts +27 -0
- package/lib/types/elements/gtk-button.d.ts +9 -0
- package/lib/types/elements/gtk-calendar.d.ts +159 -0
- package/lib/types/elements/gtk-center-box.d.ts +39 -0
- package/lib/types/elements/gtk-color-dialog-button.d.ts +69 -0
- package/lib/types/elements/gtk-column-view.d.ts +50 -0
- package/lib/types/elements/gtk-drag-icon.d.ts +78 -0
- package/lib/types/elements/gtk-drawing-area.d.ts +95 -0
- package/lib/types/elements/gtk-editable-label.d.ts +33 -0
- package/lib/types/elements/gtk-emoji-chooser.d.ts +84 -0
- package/lib/types/elements/gtk-entry.d.ts +20 -1
- package/lib/types/elements/gtk-expander.d.ts +49 -0
- package/lib/types/elements/gtk-fixed.d.ts +13 -0
- package/lib/types/elements/gtk-flow-box-child.d.ts +14 -0
- package/lib/types/elements/gtk-flow-box.d.ts +87 -0
- package/lib/types/elements/gtk-font-dialog-button.d.ts +83 -0
- package/lib/types/elements/gtk-frame.d.ts +24 -0
- package/lib/types/elements/gtk-gl-area.d.ts +136 -0
- package/lib/types/elements/gtk-graphics-offload.d.ts +24 -0
- package/lib/types/elements/gtk-grid-view.d.ts +39 -0
- package/lib/types/elements/gtk-grid.d.ts +27 -0
- package/lib/types/elements/gtk-header-bar.d.ts +60 -0
- package/lib/types/elements/gtk-inscription.d.ts +64 -0
- package/lib/types/elements/gtk-label.d.ts +3 -0
- package/lib/types/elements/gtk-level-bar.d.ts +59 -0
- package/lib/types/elements/gtk-link-button.d.ts +29 -0
- package/lib/types/elements/gtk-list-box-row.d.ts +54 -0
- package/lib/types/elements/gtk-list-box.d.ts +100 -0
- package/lib/types/elements/gtk-list-view.d.ts +73 -0
- package/lib/types/elements/gtk-media-controls.d.ts +142 -0
- package/lib/types/elements/gtk-notebook.d.ts +148 -0
- package/lib/types/elements/gtk-overlay.d.ts +22 -0
- package/lib/types/elements/gtk-page-setup-unix-dialog.d.ts +87 -0
- package/lib/types/elements/gtk-paned.d.ts +121 -0
- package/lib/types/elements/gtk-password-entry.d.ts +27 -0
- package/lib/types/elements/gtk-picture.d.ts +66 -0
- package/lib/types/elements/gtk-popover-bin.d.ts +82 -0
- package/lib/types/elements/gtk-popover-menu-bar.d.ts +66 -0
- package/lib/types/elements/gtk-popover-menu.d.ts +83 -0
- package/lib/types/elements/gtk-popover.d.ts +28 -3
- package/lib/types/elements/gtk-print-unix-dialog.d.ts +167 -0
- package/lib/types/elements/gtk-revealer.d.ts +55 -0
- package/lib/types/elements/gtk-scale-button.d.ts +59 -0
- package/lib/types/elements/gtk-scale.d.ts +98 -0
- package/lib/types/elements/gtk-scrollbar.d.ts +124 -0
- package/lib/types/elements/gtk-scrolled-window.d.ts +121 -0
- package/lib/types/elements/gtk-search-bar.d.ts +39 -0
- package/lib/types/elements/gtk-search-entry.d.ts +27 -0
- package/lib/types/elements/gtk-separator.d.ts +10 -0
- package/lib/types/elements/gtk-spin-button.d.ts +94 -0
- package/lib/types/elements/gtk-spinner.d.ts +14 -0
- package/lib/types/elements/gtk-stack-sidebar.d.ts +43 -0
- package/lib/types/elements/gtk-stack-switcher.d.ts +58 -0
- package/lib/types/elements/gtk-stack.d.ts +154 -0
- package/lib/types/elements/gtk-switch.d.ts +4 -1
- package/lib/types/elements/gtk-text-view.d.ts +62 -0
- package/lib/types/elements/gtk-text.d.ts +45 -0
- package/lib/types/elements/gtk-toggle-button.d.ts +45 -0
- package/lib/types/elements/gtk-tree-expander.d.ts +38 -0
- package/lib/types/elements/gtk-video.d.ts +97 -0
- package/lib/types/elements/gtk-viewport.d.ts +84 -0
- package/lib/types/elements/gtk-window-controls.d.ts +80 -0
- package/lib/types/elements/gtk-window-handle.d.ts +39 -0
- package/lib/types/elements/gtk-window.d.ts +97 -0
- package/lib/types/elements/justification.d.ts +2 -0
- package/lib/types/elements/popover-menu.d.ts +18 -0
- package/lib/types/elements/roving-focus.d.ts +29 -1
- package/lib/types/emoji-data.d.ts +38 -0
- package/lib/types/font-description.d.ts +96 -0
- package/lib/types/gtk-about-dialog.spec.d.ts +1 -0
- package/lib/types/gtk-action-bar.spec.d.ts +1 -0
- package/lib/types/gtk-application-window.spec.d.ts +1 -0
- package/lib/types/gtk-aspect-frame.spec.d.ts +1 -0
- package/lib/types/gtk-calendar.spec.d.ts +1 -0
- package/lib/types/gtk-center-box.spec.d.ts +1 -0
- package/lib/types/gtk-color-dialog-button.spec.d.ts +1 -0
- package/lib/types/gtk-column-view.spec.d.ts +1 -0
- package/lib/types/gtk-drag-icon.spec.d.ts +1 -0
- package/lib/types/gtk-drawing-area.spec.d.ts +1 -0
- package/lib/types/gtk-editable-label.spec.d.ts +1 -0
- package/lib/types/gtk-emoji-chooser.spec.d.ts +1 -0
- package/lib/types/gtk-expander.spec.d.ts +1 -0
- package/lib/types/gtk-fixed.spec.d.ts +1 -0
- package/lib/types/gtk-flow-box.spec.d.ts +1 -0
- package/lib/types/gtk-font-dialog-button.spec.d.ts +1 -0
- package/lib/types/gtk-frame.spec.d.ts +1 -0
- package/lib/types/gtk-gl-area.spec.d.ts +1 -0
- package/lib/types/gtk-graphics-offload.spec.d.ts +1 -0
- package/lib/types/gtk-grid-view.spec.d.ts +1 -0
- package/lib/types/gtk-grid.spec.d.ts +1 -0
- package/lib/types/gtk-header-bar.spec.d.ts +1 -0
- package/lib/types/gtk-inscription.spec.d.ts +1 -0
- package/lib/types/gtk-level-bar.spec.d.ts +1 -0
- package/lib/types/gtk-link-button.spec.d.ts +1 -0
- package/lib/types/gtk-list-box.spec.d.ts +1 -0
- package/lib/types/gtk-list-view.spec.d.ts +1 -0
- package/lib/types/gtk-media-controls.spec.d.ts +1 -0
- package/lib/types/gtk-notebook.spec.d.ts +1 -0
- package/lib/types/gtk-overlay.spec.d.ts +1 -0
- package/lib/types/gtk-paned.spec.d.ts +1 -0
- package/lib/types/gtk-password-entry.spec.d.ts +1 -0
- package/lib/types/gtk-picture.spec.d.ts +1 -0
- package/lib/types/gtk-popover-bin.spec.d.ts +1 -0
- package/lib/types/gtk-popover-menu-bar.spec.d.ts +1 -0
- package/lib/types/gtk-popover-menu.spec.d.ts +1 -0
- package/lib/types/gtk-popover-role.spec.d.ts +1 -0
- package/lib/types/gtk-popover.spec.d.ts +1 -0
- package/lib/types/gtk-print-dialogs.spec.d.ts +1 -0
- package/lib/types/gtk-revealer.spec.d.ts +1 -0
- package/lib/types/gtk-scale-button.spec.d.ts +1 -0
- package/lib/types/gtk-scale.spec.d.ts +1 -0
- package/lib/types/gtk-scrollbar.spec.d.ts +1 -0
- package/lib/types/gtk-scrolled-window.spec.d.ts +1 -0
- package/lib/types/gtk-search-bar.spec.d.ts +1 -0
- package/lib/types/gtk-search-entry.spec.d.ts +1 -0
- package/lib/types/gtk-separator.spec.d.ts +1 -0
- package/lib/types/gtk-spin-button.spec.d.ts +1 -0
- package/lib/types/gtk-spinner.spec.d.ts +1 -0
- package/lib/types/gtk-stack-sidebar.spec.d.ts +1 -0
- package/lib/types/gtk-stack-switcher.spec.d.ts +1 -0
- package/lib/types/gtk-stack.spec.d.ts +1 -0
- package/lib/types/gtk-text-view.spec.d.ts +1 -0
- package/lib/types/gtk-text.spec.d.ts +1 -0
- package/lib/types/gtk-toggle-button.spec.d.ts +1 -0
- package/lib/types/gtk-tree-expander.spec.d.ts +1 -0
- package/lib/types/gtk-video.spec.d.ts +1 -0
- package/lib/types/gtk-viewport.spec.d.ts +1 -0
- package/lib/types/gtk-window-controls.spec.d.ts +1 -0
- package/lib/types/gtk-window-handle.spec.d.ts +1 -0
- package/lib/types/gtk-window.spec.d.ts +1 -0
- package/lib/types/index.d.ts +4 -1
- package/lib/types/list-view-dom.d.ts +44 -0
- package/lib/types/namespace/adw.d.ts +12 -0
- package/lib/types/namespace/gtk.d.ts +61 -0
- package/lib/types/page-setup.d.ts +100 -0
- package/lib/types/scroll-shading.d.ts +15 -1
- package/lib/types/shared-tree-builder.d.ts +30 -2
- package/lib/types/signals.d.ts +4 -0
- package/lib/types/styles.generated.d.ts +1 -1
- package/lib/types/tab-chip.d.ts +73 -0
- package/lib/types/template-classes.d.ts +11 -0
- package/package.json +12 -8
- package/scss/_action_row.scss +2 -2
- package/scss/_application_window.scss +26 -0
- package/scss/_aspect_frame.scss +25 -0
- package/scss/_bin.scss +26 -0
- package/scss/_button.scss +45 -0
- package/scss/_calendar.scss +176 -0
- package/scss/_center_box.scss +25 -0
- package/scss/_checks.scss +6 -1
- package/scss/_clamp_scrollable.scss +28 -0
- package/scss/_color_button.scss +67 -0
- package/scss/_column_view.scss +126 -0
- package/scss/_drag_icon.scss +55 -0
- package/scss/_drawing.scss +85 -0
- package/scss/_emoji_chooser.scss +213 -0
- package/scss/_entry.scss +13 -5
- package/scss/_entry_row.scss +1 -1
- package/scss/_expander.scss +113 -0
- package/scss/_fixed.scss +29 -0
- package/scss/_flow_box.scss +94 -0
- package/scss/_font_button.scss +63 -0
- package/scss/_frame.scss +41 -0
- package/scss/_grid.scss +19 -0
- package/scss/_grid_view.scss +46 -0
- package/scss/_gtk_about_dialog.scss +186 -0
- package/scss/_headerbar.scss +132 -0
- package/scss/_icons.generated.scss +186 -0
- package/scss/_inscription.scss +125 -0
- package/scss/_level_bar.scss +190 -0
- package/scss/_link.scss +82 -0
- package/scss/_list_box.scss +88 -0
- package/scss/_list_view.scss +96 -0
- package/scss/_media_controls.scss +139 -0
- package/scss/_overlay.scss +68 -0
- package/scss/_paned.scss +130 -0
- package/scss/_password_entry.scss +83 -0
- package/scss/_picture.scss +80 -0
- package/scss/_popover_bin.scss +53 -0
- package/scss/_popover_menu_bar.scss +104 -0
- package/scss/_preferences_row.scss +51 -0
- package/scss/_print_dialogs.scss +328 -0
- package/scss/_reset.scss +21 -19
- package/scss/_revealer.scss +37 -0
- package/scss/_row.scss +20 -5
- package/scss/_scale.scss +298 -0
- package/scss/_scale_button.scss +167 -0
- package/scss/_scrollbar.scss +230 -0
- package/scss/_scrolled_window.scss +131 -0
- package/scss/_search_bar.scss +118 -0
- package/scss/_search_entry.scss +86 -0
- package/scss/_separator.scss +44 -0
- package/scss/_shortcuts_dialog.scss +100 -0
- package/scss/_spin_button.scss +172 -0
- package/scss/_spin_row.scss +56 -8
- package/scss/_spinner.scss +85 -4
- package/scss/_stack.scss +729 -0
- package/scss/_switch.scss +13 -5
- package/scss/_switch_row.scss +10 -0
- package/scss/_tab_bar.scss +317 -0
- package/scss/_tab_button.scss +98 -0
- package/scss/_tab_overview.scss +483 -0
- package/scss/_text.scss +182 -0
- package/scss/_theme.scss +1 -1
- package/scss/_tree_expander.scss +62 -0
- package/scss/_variables.scss +43 -21
- package/scss/_video.scss +146 -0
- package/scss/_view_switcher_sidebar.scss +112 -0
- package/scss/_viewport.scss +50 -0
- package/scss/_window.scss +118 -1
- package/scss/_window_handle.scss +20 -0
- package/scss/adwaita-skin.scss +109 -0
- package/src/adw-action-rows.spec.ts +76 -0
- package/src/adw-application-window.spec.ts +118 -0
- package/src/adw-bin.spec.ts +75 -0
- package/src/adw-breakpoint-bin.spec.ts +324 -0
- package/src/adw-clamp-scrollable.spec.ts +189 -0
- package/src/adw-multi-layout-view.spec.ts +243 -0
- package/src/adw-preferences-row.spec.ts +164 -0
- package/src/adw-row-state.spec.ts +142 -0
- package/src/adw-shortcuts.spec.ts +155 -0
- package/src/adw-tab-bar.spec.ts +287 -0
- package/src/adw-tab-button.spec.ts +101 -0
- package/src/adw-tab-overview.spec.ts +443 -0
- package/src/adw-view-switcher-sidebar.spec.ts +281 -0
- package/src/adw-window.spec.ts +129 -0
- package/src/breakpoints.ts +25 -8
- package/src/capabilities.d.mts +3 -0
- package/src/capabilities.mjs +18 -0
- package/src/connect-lifecycle.spec.ts +12 -0
- package/src/construct-vectors.spec.ts +175 -0
- package/src/elements/adw-application-window.ts +154 -0
- package/src/elements/adw-bin.ts +101 -0
- package/src/elements/adw-breakpoint-bin.ts +287 -0
- package/src/elements/adw-clamp-scrollable.ts +207 -0
- package/src/elements/adw-dialog.ts +19 -0
- package/src/elements/adw-layout-slot.ts +95 -0
- package/src/elements/adw-multi-layout-view.ts +326 -0
- package/src/elements/adw-preferences-row.ts +150 -0
- package/src/elements/adw-shortcuts-dialog.ts +52 -0
- package/src/elements/adw-shortcuts-item.ts +171 -0
- package/src/elements/adw-shortcuts-section.ts +86 -0
- package/src/elements/adw-sidebar.ts +42 -3
- package/src/elements/adw-switch-row.ts +28 -1
- package/src/elements/adw-tab-bar.ts +529 -0
- package/src/elements/adw-tab-button.ts +194 -0
- package/src/elements/adw-tab-overview.ts +1011 -0
- package/src/elements/adw-tab-view.ts +66 -145
- package/src/elements/adw-toggle-group.ts +20 -5
- package/src/elements/adw-view-stack.ts +18 -0
- package/src/elements/adw-view-switcher-sidebar.ts +332 -0
- package/src/elements/adw-window.ts +185 -11
- package/src/elements/checks.ts +35 -8
- package/src/elements/gtk-about-dialog.ts +811 -0
- package/src/elements/gtk-application-window.ts +108 -0
- package/src/elements/gtk-aspect-frame.ts +160 -0
- package/src/elements/gtk-button.ts +12 -0
- package/src/elements/gtk-calendar.ts +757 -0
- package/src/elements/gtk-center-box.ts +184 -0
- package/src/elements/gtk-color-dialog-button.ts +278 -0
- package/src/elements/gtk-column-view.ts +320 -0
- package/src/elements/gtk-drag-icon.ts +257 -0
- package/src/elements/gtk-drawing-area.ts +303 -0
- package/src/elements/gtk-editable-label.ts +204 -0
- package/src/elements/gtk-emoji-chooser.ts +542 -0
- package/src/elements/gtk-entry.ts +39 -5
- package/src/elements/gtk-expander.ts +301 -0
- package/src/elements/gtk-fixed.ts +99 -0
- package/src/elements/gtk-flow-box-child.ts +68 -0
- package/src/elements/gtk-flow-box.ts +480 -0
- package/src/elements/gtk-font-dialog-button.ts +432 -0
- package/src/elements/gtk-frame.ts +174 -0
- package/src/elements/gtk-gl-area.ts +476 -0
- package/src/elements/gtk-graphics-offload.ts +130 -0
- package/src/elements/gtk-grid-view.ts +168 -0
- package/src/elements/gtk-grid.ts +127 -0
- package/src/elements/gtk-header-bar.ts +273 -0
- package/src/elements/gtk-inscription.ts +387 -0
- package/src/elements/gtk-label.ts +19 -11
- package/src/elements/gtk-level-bar.ts +323 -0
- package/src/elements/gtk-link-button.ts +138 -0
- package/src/elements/gtk-list-box-row.ts +195 -0
- package/src/elements/gtk-list-box.ts +413 -0
- package/src/elements/gtk-list-view.ts +370 -0
- package/src/elements/gtk-media-controls.ts +509 -0
- package/src/elements/gtk-notebook.ts +664 -0
- package/src/elements/gtk-overlay.ts +149 -0
- package/src/elements/gtk-page-setup-unix-dialog.ts +420 -0
- package/src/elements/gtk-paned.ts +597 -0
- package/src/elements/gtk-password-entry.ts +170 -0
- package/src/elements/gtk-picture.ts +254 -0
- package/src/elements/gtk-popover-bin.ts +332 -0
- package/src/elements/gtk-popover-menu-bar.ts +355 -0
- package/src/elements/gtk-popover-menu.ts +339 -0
- package/src/elements/gtk-popover.ts +92 -10
- package/src/elements/gtk-print-unix-dialog.ts +989 -0
- package/src/elements/gtk-progress-bar.ts +24 -11
- package/src/elements/gtk-revealer.ts +406 -0
- package/src/elements/gtk-scale-button.ts +358 -0
- package/src/elements/gtk-scale.ts +492 -0
- package/src/elements/gtk-scrollbar.ts +528 -0
- package/src/elements/gtk-scrolled-window.ts +642 -0
- package/src/elements/gtk-search-bar.ts +200 -0
- package/src/elements/gtk-search-entry.ts +172 -0
- package/src/elements/gtk-separator.ts +52 -0
- package/src/elements/gtk-spin-button.ts +475 -0
- package/src/elements/gtk-spinner.ts +126 -0
- package/src/elements/gtk-stack-sidebar.ts +212 -0
- package/src/elements/gtk-stack-switcher.ts +279 -0
- package/src/elements/gtk-stack.ts +748 -0
- package/src/elements/gtk-switch.ts +52 -19
- package/src/elements/gtk-text-view.ts +290 -0
- package/src/elements/gtk-text.ts +219 -0
- package/src/elements/gtk-toggle-button.ts +239 -0
- package/src/elements/gtk-tree-expander.ts +243 -0
- package/src/elements/gtk-video.ts +423 -0
- package/src/elements/gtk-viewport.ts +277 -0
- package/src/elements/gtk-window-controls.ts +341 -0
- package/src/elements/gtk-window-handle.ts +221 -0
- package/src/elements/gtk-window.ts +366 -0
- package/src/elements/justification.ts +24 -0
- package/src/elements/popover-menu.ts +24 -0
- package/src/elements/roving-focus.ts +53 -21
- package/src/emoji-data.ts +577 -0
- package/src/entry-rows.spec.ts +31 -0
- package/src/font-description.ts +238 -0
- package/src/gtk-about-dialog.spec.ts +250 -0
- package/src/gtk-action-bar.spec.ts +89 -0
- package/src/gtk-application-window.spec.ts +107 -0
- package/src/gtk-aspect-frame.spec.ts +114 -0
- package/src/gtk-calendar.spec.ts +589 -0
- package/src/gtk-center-box.spec.ts +125 -0
- package/src/gtk-color-dialog-button.spec.ts +141 -0
- package/src/gtk-column-view.spec.ts +154 -0
- package/src/gtk-drag-icon.spec.ts +190 -0
- package/src/gtk-drawing-area.spec.ts +211 -0
- package/src/gtk-editable-label.spec.ts +190 -0
- package/src/gtk-emoji-chooser.spec.ts +173 -0
- package/src/gtk-entry.spec.ts +23 -0
- package/src/gtk-expander.spec.ts +170 -0
- package/src/gtk-fixed.spec.ts +97 -0
- package/src/gtk-flow-box.spec.ts +289 -0
- package/src/gtk-font-dialog-button.spec.ts +166 -0
- package/src/gtk-frame.spec.ts +119 -0
- package/src/gtk-gl-area.spec.ts +361 -0
- package/src/gtk-graphics-offload.spec.ts +119 -0
- package/src/gtk-grid-view.spec.ts +106 -0
- package/src/gtk-grid.spec.ts +122 -0
- package/src/gtk-header-bar.spec.ts +202 -0
- package/src/gtk-inscription.spec.ts +235 -0
- package/src/gtk-level-bar.spec.ts +199 -0
- package/src/gtk-link-button.spec.ts +117 -0
- package/src/gtk-list-box.spec.ts +422 -0
- package/src/gtk-list-view.spec.ts +203 -0
- package/src/gtk-media-controls.spec.ts +295 -0
- package/src/gtk-notebook.spec.ts +546 -0
- package/src/gtk-overlay.spec.ts +141 -0
- package/src/gtk-paned.spec.ts +267 -0
- package/src/gtk-password-entry.spec.ts +150 -0
- package/src/gtk-picture.spec.ts +172 -0
- package/src/gtk-popover-bin.spec.ts +229 -0
- package/src/gtk-popover-menu-bar.spec.ts +296 -0
- package/src/gtk-popover-menu.spec.ts +261 -0
- package/src/gtk-popover-role.spec.ts +138 -0
- package/src/gtk-popover.spec.ts +264 -0
- package/src/gtk-print-dialogs.spec.ts +251 -0
- package/src/gtk-revealer.spec.ts +164 -0
- package/src/gtk-scale-button.spec.ts +218 -0
- package/src/gtk-scale.spec.ts +213 -0
- package/src/gtk-scrollbar.spec.ts +244 -0
- package/src/gtk-scrolled-window.spec.ts +262 -0
- package/src/gtk-search-bar.spec.ts +179 -0
- package/src/gtk-search-entry.spec.ts +142 -0
- package/src/gtk-separator.spec.ts +74 -0
- package/src/gtk-spin-button.spec.ts +186 -0
- package/src/gtk-spinner.spec.ts +130 -0
- package/src/gtk-stack-sidebar.spec.ts +217 -0
- package/src/gtk-stack-switcher.spec.ts +249 -0
- package/src/gtk-stack.spec.ts +432 -0
- package/src/gtk-text-view.spec.ts +189 -0
- package/src/gtk-text.spec.ts +163 -0
- package/src/gtk-toggle-button.spec.ts +186 -0
- package/src/gtk-tree-expander.spec.ts +201 -0
- package/src/gtk-video.spec.ts +240 -0
- package/src/gtk-viewport.spec.ts +140 -0
- package/src/gtk-window-controls.spec.ts +232 -0
- package/src/gtk-window-handle.spec.ts +158 -0
- package/src/gtk-window.spec.ts +190 -0
- package/src/index.ts +9 -1
- package/src/keyboard-operable.spec.ts +33 -1
- package/src/list-view-dom.ts +121 -0
- package/src/namespace/adw.ts +12 -0
- package/src/namespace/gtk.ts +61 -0
- package/src/page-setup.ts +222 -0
- package/src/scroll-shading.ts +18 -1
- package/src/shared-tree-builder.ts +263 -21
- package/src/signals.ts +15 -0
- package/src/source-view/theme.ts +11 -5
- package/src/style-classes.spec.ts +9 -8
- package/src/styles.generated.ts +1 -1
- package/src/tab-chip.ts +200 -0
- package/src/template-classes.ts +45 -0
- package/src/test.browser.mts +152 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// _flow_box.scss — <gtk-flow-box> and its cells, the elements GTK names `flowbox` and
|
|
2
|
+
// `flowboxchild`.
|
|
3
|
+
//
|
|
4
|
+
// Upstream writes `flowbox > flowboxchild, gridview > child` as ONE rule (_views.scss:52-91):
|
|
5
|
+
// the same 3px padding, the same `$button_radius` corner, the same focus ring and the same four
|
|
6
|
+
// state colours — and `<gtk-grid-view>` already wears the grid half in `_grid_view.scss`, which
|
|
7
|
+
// `@include`s `adw-list-selectable` from `_list_view.scss` for exactly that reason. The cell
|
|
8
|
+
// here therefore includes the same mixin rather than restating four colours, because a drifted
|
|
9
|
+
// copy is four wrong ones and the hover-over-selected pair is the pair nobody checks by eye.
|
|
10
|
+
//
|
|
11
|
+
// `flex-flow: row wrap` IS the allocation. GTK hands each child a slot on a running line in
|
|
12
|
+
// the given orientation and starts a new one when the next would not fit
|
|
13
|
+
// (gtkflowbox.c:1640-1900), and a wrapping flex line with a per-child size share is that rule
|
|
14
|
+
// expressed in the browser's own layout language: `max-width: 100% / max-children-per-line`
|
|
15
|
+
// caps how many can share a line, and `min-width: 100% / min-children-per-line` is
|
|
16
|
+
// `min-children-per-line`, whose own documented job is that "a reasonably small height will be
|
|
17
|
+
// requested for the overall minimum width of the box" (gtkflowbox.c:3747-3755).
|
|
18
|
+
//
|
|
19
|
+
// `homogeneous` is `flex: 1 1 0` — GTK's "all children should be allocated the same size"
|
|
20
|
+
// (:3736-3739), which in a wrapping line is exactly equal growth from a zero basis.
|
|
21
|
+
//
|
|
22
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_views.scss:1-16 (.view), :52-91
|
|
23
|
+
// (flowbox > flowboxchild), :88-91 (flowbox, gridview disabled)
|
|
24
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
25
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
26
|
+
|
|
27
|
+
@use 'list_view';
|
|
28
|
+
|
|
29
|
+
gtk-flow-box {
|
|
30
|
+
display: block;
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
color: var(--view-fg-color);
|
|
33
|
+
background-color: var(--view-bg-color);
|
|
34
|
+
|
|
35
|
+
// The line container. `--adw-flow-box-*` are written by `gtk-flow-box.ts` from the
|
|
36
|
+
// properties, so the stylesheet stays declarative and a `homogeneous` write is one class.
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-flow: row wrap;
|
|
39
|
+
gap: var(--adw-flow-box-row-spacing, 0px) var(--adw-flow-box-column-spacing, 0px);
|
|
40
|
+
|
|
41
|
+
&.vertical {
|
|
42
|
+
flex-flow: column wrap;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&.view:disabled {
|
|
46
|
+
color: var(--view-fg-color);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
gtk-flow-box-child {
|
|
51
|
+
@include list_view.adw-list-selectable;
|
|
52
|
+
|
|
53
|
+
display: block;
|
|
54
|
+
box-sizing: border-box;
|
|
55
|
+
// `flowbox > flowboxchild { padding: 3px; border-radius: $button_radius }`
|
|
56
|
+
// (_views.scss:52-56).
|
|
57
|
+
padding: 3px;
|
|
58
|
+
border-radius: var(--button-radius);
|
|
59
|
+
// The line share. A browser lays the children out, so this is where GTK's
|
|
60
|
+
// `min`/`max-children-per-line` and `homogeneous` are honoured — and the share has to
|
|
61
|
+
// LEAVE ROOM FOR THE SPACING. `100% / N` alone does not: N children then need N shares
|
|
62
|
+
// PLUS the (N-1) gaps between them, so the row overflows by the gaps and the browser
|
|
63
|
+
// breaks it one child early. Measured on the gallery's flow box — `min-children-per-line`
|
|
64
|
+
// 2, `max` 4, a 6px spacing in a 320px box — the share came out at 50% (160px), two
|
|
65
|
+
// children plus one gap came to 326px, and the box showed ONE child per line where
|
|
66
|
+
// libadwaita packs four. The share is therefore (100% - (N-1) × spacing) / N.
|
|
67
|
+
max-width: calc(
|
|
68
|
+
(100% - (var(--adw-flow-box-max-children-per-line, 7) - 1) *
|
|
69
|
+
var(--adw-flow-box-column-spacing, 0px)) / var(--adw-flow-box-max-children-per-line, 7)
|
|
70
|
+
);
|
|
71
|
+
min-width: calc(
|
|
72
|
+
(100% - (var(--adw-flow-box-min-children-per-line, 1) - 1) *
|
|
73
|
+
var(--adw-flow-box-column-spacing, 0px)) / var(--adw-flow-box-min-children-per-line, 1)
|
|
74
|
+
);
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
gtk-flow-box.vertical > gtk-flow-box-child {
|
|
79
|
+
// The same arithmetic down the other axis, against the ROW spacing.
|
|
80
|
+
max-height: calc(
|
|
81
|
+
(100% - (var(--adw-flow-box-max-children-per-line, 7) - 1) *
|
|
82
|
+
var(--adw-flow-box-row-spacing, 0px)) / var(--adw-flow-box-max-children-per-line, 7)
|
|
83
|
+
);
|
|
84
|
+
max-width: none;
|
|
85
|
+
min-height: calc(
|
|
86
|
+
(100% - (var(--adw-flow-box-min-children-per-line, 1) - 1) *
|
|
87
|
+
var(--adw-flow-box-row-spacing, 0px)) / var(--adw-flow-box-min-children-per-line, 1)
|
|
88
|
+
);
|
|
89
|
+
min-width: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
gtk-flow-box.homogeneous > gtk-flow-box-child {
|
|
93
|
+
flex: 1 1 0;
|
|
94
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// _font_button.scss — `<gtk-font-dialog-button>`: the `button.font` node and the two
|
|
2
|
+
// labels it holds.
|
|
3
|
+
//
|
|
4
|
+
// libadwaita has no rule for it either: `_linked.scss:7` is the only place upstream names
|
|
5
|
+
// `fontbutton`, and it is there because the node is a button that participates in a linked
|
|
6
|
+
// group. So this partial is the node's layout and nothing else — and the node's layout IS
|
|
7
|
+
// the C's, which builds a horizontal box of the family label (hexpand, so it takes the
|
|
8
|
+
// room) and the size box, the latter a vertical separator followed by the size label
|
|
9
|
+
// (gtkfontdialogbutton.c:121-140).
|
|
10
|
+
//
|
|
11
|
+
// The element hides the size box itself when the level is below FONT, because
|
|
12
|
+
// `update_font_info` ends with `gtk_widget_set_visible (self->font_size_box, self->level >=
|
|
13
|
+
// GTK_FONT_LEVEL_FONT)` (:685) — a family chooser shows one word where a font chooser shows
|
|
14
|
+
// two, and the separator with it.
|
|
15
|
+
//
|
|
16
|
+
// Reference: refs/gtk/gtk/gtkfontdialogbutton.c:52-60 (the node), :118-152 (init, the box,
|
|
17
|
+
// the labels), :649-687 (update_font_info, and the size box's visibility)
|
|
18
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_linked.scss:7 (`fontbutton > button`)
|
|
19
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
20
|
+
// Modifications: Adapted for @gjsify/adwaita-web — the labels are `<span>`s inside an
|
|
21
|
+
// ordinary `<button>`, and `use-font` sets their inline `font` (apply_use_font).
|
|
22
|
+
|
|
23
|
+
gtk-font-dialog-button {
|
|
24
|
+
display: inline-flex;
|
|
25
|
+
position: relative;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.font-button-label {
|
|
29
|
+
flex: 1;
|
|
30
|
+
text-align: start;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// The size box: a separator and the size, in a row of their own — which is why the element
|
|
34
|
+
// wraps them in a span rather than appending both to the button.
|
|
35
|
+
.font-button-size {
|
|
36
|
+
display: inline-flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
gap: 6px;
|
|
39
|
+
margin-inline-start: 6px;
|
|
40
|
+
color: color-mix(in srgb, currentColor var(--dim-opacity), transparent);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.font-button-size-label {
|
|
44
|
+
min-width: 2ch;
|
|
45
|
+
font-variant-numeric: tabular-nums;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// The chooser: one row of families. A popover rather than a `<select>` on the button
|
|
49
|
+
// itself, because `gtk_font_dialog_button_new()` is given a dialog and shows nothing until
|
|
50
|
+
// it is pressed.
|
|
51
|
+
.font-button-popover {
|
|
52
|
+
.font-button-chooser {
|
|
53
|
+
min-width: 180px;
|
|
54
|
+
max-width: 320px;
|
|
55
|
+
padding: 4px;
|
|
56
|
+
border: none;
|
|
57
|
+
border-radius: 6px;
|
|
58
|
+
background-color: var(--popover-bg-color);
|
|
59
|
+
color: var(--popover-fg-color);
|
|
60
|
+
font-family: var(--font-family);
|
|
61
|
+
font-size: var(--font-size-base);
|
|
62
|
+
}
|
|
63
|
+
}
|
package/scss/_frame.scss
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// _frame.scss — <gtk-frame>: the 1px border, and the label that sits inside its top edge.
|
|
2
|
+
//
|
|
3
|
+
// libadwaita writes this rule TWICE, once for the widget node and once for the style
|
|
4
|
+
// class (`widgets/_misc.scss:4-7`); the widget half is here and the class half stays in
|
|
5
|
+
// `_style_classes.scss`, where every other `.frame` consumer already is. The label's
|
|
6
|
+
// `margin: 4px` (`_misc.scss:12-14`) is the inset it gets inside the border, keyed on the
|
|
7
|
+
// class the element puts on whatever stands in for GtkFrame's label widget — the internal
|
|
8
|
+
// `<gtk-label>` `label` builds, or an author's `label-widget`.
|
|
9
|
+
//
|
|
10
|
+
// The BOX is GtkFrame's, not libadwaita's: the label widget takes the top line and the
|
|
11
|
+
// child the rest (`gtk_frame_real_compute_child_allocation`, gtkframe.c:554-580), so the
|
|
12
|
+
// host is a flex column whose children grow into whatever the pinned label leaves.
|
|
13
|
+
// `overflow: hidden` is `GTK_OVERFLOW_HIDDEN` (gtkframe.c:246) — the GIR doc calls the
|
|
14
|
+
// clipping out as the way to round a child's corners, at the price of its shadows.
|
|
15
|
+
//
|
|
16
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_misc.scss:4-15
|
|
17
|
+
// Reference: refs/gtk/gtk/gtkframe.c:246, :519-580
|
|
18
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
19
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
20
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
21
|
+
|
|
22
|
+
gtk-frame {
|
|
23
|
+
display: flex;
|
|
24
|
+
flex-direction: column;
|
|
25
|
+
align-items: stretch;
|
|
26
|
+
border: 1px solid var(--border-color);
|
|
27
|
+
border-radius: var(--card-radius);
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
|
|
30
|
+
// GTK sizes the label widget itself and never grows it, so it is pinned at its own size
|
|
31
|
+
// (`flex: none`) and its `align-self` is the element's, written from `label-xalign`.
|
|
32
|
+
> .adw-frame-label {
|
|
33
|
+
flex: none;
|
|
34
|
+
margin: 4px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Everything else is the child, and it takes the height the label leaves.
|
|
38
|
+
> * {
|
|
39
|
+
flex: 1 1 auto;
|
|
40
|
+
}
|
|
41
|
+
}
|
package/scss/_grid.scss
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// _grid.scss — <gtk-grid>: a table of cells, sized by what is in them.
|
|
2
|
+
//
|
|
3
|
+
// libadwaita styles the `grid` node nowhere — the grid has no node of its own beyond what
|
|
4
|
+
// GtkGridLayout builds — so this partial is `display: grid` and the one default worth
|
|
5
|
+
// stating: a child written without a position is attached along the columns, which is
|
|
6
|
+
// `grid-auto-flow: row` (`gtk_grid_buildable_add_child`, gtkgrid.c:493-507).
|
|
7
|
+
//
|
|
8
|
+
// Everything else is per-instance and inline, because a selector cannot key on a number:
|
|
9
|
+
// the two spacings, the two `homogeneous` flags and the orientation all go on the element
|
|
10
|
+
// as `row-gap` / `column-gap` / `grid-auto-rows` / `grid-auto-columns` / `grid-auto-flow`.
|
|
11
|
+
//
|
|
12
|
+
// Reference: refs/gtk/gtk/gtkgrid.c:493-507
|
|
13
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
14
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
15
|
+
|
|
16
|
+
gtk-grid {
|
|
17
|
+
display: grid;
|
|
18
|
+
grid-auto-flow: row;
|
|
19
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// _grid_view.scss — <gtk-grid-view>: the same selectable items as a list view, reflowed
|
|
2
|
+
// into equal columns.
|
|
3
|
+
//
|
|
4
|
+
// Upstream writes `flowbox > flowboxchild, gridview > child` as ONE rule — the same
|
|
5
|
+
// padding, the same `$button_radius` corner and the same four state colours a list row
|
|
6
|
+
// has — so this partial includes `adw-list-selectable` from `_list_view.scss` and adds
|
|
7
|
+
// only the two things a grid has: the track container and the cell floor the column
|
|
8
|
+
// count is computed against.
|
|
9
|
+
//
|
|
10
|
+
// THE `min-width` IS LOAD-BEARING, not cosmetic. `gtk-grid-view.ts` reads it as the item
|
|
11
|
+
// size for `gridViewColumns` — GTK's `GTK_SCROLL_MINIMUM` branch — because the rendered
|
|
12
|
+
// width is `1fr`, i.e. the answer the count already produced. An author who wants wider
|
|
13
|
+
// cells sets `min-width` on `.adw-grid-view-child` and the count follows.
|
|
14
|
+
//
|
|
15
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_views.scss:52-91 (gridview > child)
|
|
16
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
17
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
18
|
+
|
|
19
|
+
@use 'list_view';
|
|
20
|
+
|
|
21
|
+
gtk-grid-view {
|
|
22
|
+
display: block;
|
|
23
|
+
box-sizing: border-box;
|
|
24
|
+
color: var(--view-fg-color);
|
|
25
|
+
background-color: var(--view-bg-color);
|
|
26
|
+
|
|
27
|
+
.adw-list-view-rows {
|
|
28
|
+
position: relative;
|
|
29
|
+
display: grid;
|
|
30
|
+
// Replaced per measurement by `_applyColumns`; one column is what a view with
|
|
31
|
+
// nothing to measure shows.
|
|
32
|
+
grid-template-columns: repeat(1, 1fr);
|
|
33
|
+
gap: 6px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.adw-grid-view-child {
|
|
37
|
+
@include list_view.adw-list-selectable;
|
|
38
|
+
|
|
39
|
+
// `gridview > child { padding: 3px; border-radius: $button_radius }`.
|
|
40
|
+
padding: 3px;
|
|
41
|
+
border-radius: var(--button-radius);
|
|
42
|
+
box-sizing: border-box;
|
|
43
|
+
min-width: 120px;
|
|
44
|
+
text-align: center;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
// _gtk_about_dialog.scss — <gtk-about-dialog> styling: the GTK about window's own
|
|
2
|
+
// layout, which is NOT libadwaita's `<adw-about-dialog>` (a navigation view of
|
|
3
|
+
// preference rows) but a bold name over a 128px logo and a four-page stack, with a
|
|
4
|
+
// stack switcher where the headerbar's title widget goes.
|
|
5
|
+
//
|
|
6
|
+
// The DIALOG itself (scrim, sheet, header, close button) is not restated here: it is
|
|
7
|
+
// `<adw-dialog>`'s chrome, which this element inherits, so the rules below only cover
|
|
8
|
+
// the parts `gtkaboutdialog.ui` declares and nothing styles upstream either.
|
|
9
|
+
//
|
|
10
|
+
// Reference: refs/gtk/gtk/ui/gtkaboutdialog.ui (the tree: 12px inner spacing, 5px
|
|
11
|
+
// outer margins, 8px page spacing, the 400x100 stack, the framed scrolled pages)
|
|
12
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss:46-56
|
|
13
|
+
// (`window.aboutdialog:not(.ssd-frame)`: a FLAT titlebar, and `image.large-icons`
|
|
14
|
+
// at 128px — which is `icon-size: 2`, GTK's DIALOG size)
|
|
15
|
+
// Reference: refs/gtk/gtk/gtkaboutdialog.c:1066-1082 (the bold name label, the
|
|
16
|
+
// centre justification, the version label's own markup)
|
|
17
|
+
// Copyright (c) 2008-2024 Red Hat, Inc. / The GTK authors. LGPLv2.1+.
|
|
18
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
19
|
+
|
|
20
|
+
gtk-about-dialog {
|
|
21
|
+
// The `.ui` spacing, verbatim: the outer box is 5px all round with 2px between the
|
|
22
|
+
// two children (the head), and the head is 5px all round with 12px between the logo,
|
|
23
|
+
// the name and the stack.
|
|
24
|
+
.adw-gtk-about-dialog-box {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
gap: 2px;
|
|
28
|
+
padding: 5px;
|
|
29
|
+
min-width: 320px;
|
|
30
|
+
min-height: 220px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.adw-gtk-about-dialog-head {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: 12px;
|
|
38
|
+
padding: 5px;
|
|
39
|
+
flex: 1 1 auto;
|
|
40
|
+
min-height: 0;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// `image.large-icons` → 128px. The slot exists so the logo can be absent entirely
|
|
44
|
+
// without the name moving up a line: `GtkImage` is a template child and is always
|
|
45
|
+
// there in GTK, so the space above the name is always reserved.
|
|
46
|
+
.adw-gtk-about-dialog-logo-slot {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
min-height: 128px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.adw-gtk-about-dialog-logo {
|
|
54
|
+
width: 128px;
|
|
55
|
+
height: 128px;
|
|
56
|
+
// `icon-dropshadow` on the `.ui`'s logo image.
|
|
57
|
+
filter: drop-shadow(0 1px 2px rgba(0, 0, 6, 0.25));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// `<span weight="bold">` from `update_name_version`, centred like every label in the
|
|
61
|
+
// box (`justify: 2`).
|
|
62
|
+
.adw-gtk-about-dialog-name {
|
|
63
|
+
font-weight: bold;
|
|
64
|
+
font-size: 1.1em;
|
|
65
|
+
text-align: center;
|
|
66
|
+
user-select: text;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// `GtkStack` with `width-request: 400`, `height-request: 100`, and the crossfade
|
|
70
|
+
// transition (16) at 600ms.
|
|
71
|
+
.adw-gtk-about-dialog-stack {
|
|
72
|
+
position: relative;
|
|
73
|
+
display: flex;
|
|
74
|
+
width: 100%;
|
|
75
|
+
min-width: 300px;
|
|
76
|
+
min-height: 100px;
|
|
77
|
+
flex: 1 1 auto;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.adw-gtk-about-dialog-page {
|
|
81
|
+
display: flex;
|
|
82
|
+
flex-direction: column;
|
|
83
|
+
gap: 8px;
|
|
84
|
+
flex: 1 1 auto;
|
|
85
|
+
justify-content: center;
|
|
86
|
+
text-align: center;
|
|
87
|
+
padding: 6px 12px;
|
|
88
|
+
// The crossfade between pages: 600ms is the `.ui`'s `transition-duration`.
|
|
89
|
+
animation: adw-gtk-about-dialog-page-in 600ms ease;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.adw-gtk-about-dialog-version,
|
|
93
|
+
.adw-gtk-about-dialog-comments,
|
|
94
|
+
.adw-gtk-about-dialog-copyright {
|
|
95
|
+
// `wrap: 1` with `max-width-chars: 60` on the comments and copyright labels.
|
|
96
|
+
max-width: 60ch;
|
|
97
|
+
margin: 0 auto;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.adw-gtk-about-dialog-website,
|
|
101
|
+
.adw-gtk-about-dialog-license,
|
|
102
|
+
.adw-gtk-about-dialog-license-link {
|
|
103
|
+
max-width: 60ch;
|
|
104
|
+
margin: 0 auto;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// `GtkStackSwitcher` in the titlebar: a row of flat buttons, the visible page's
|
|
108
|
+
// checked. No title text beside them, because the `.ui` declares none.
|
|
109
|
+
.adw-gtk-about-dialog-switcher {
|
|
110
|
+
display: flex;
|
|
111
|
+
align-items: center;
|
|
112
|
+
gap: 2px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.adw-gtk-about-dialog-switcher-item {
|
|
116
|
+
padding: 6px 12px;
|
|
117
|
+
border-radius: 999px;
|
|
118
|
+
font-weight: 500;
|
|
119
|
+
color: var(--window-fg-color);
|
|
120
|
+
background-color: transparent;
|
|
121
|
+
border: none;
|
|
122
|
+
|
|
123
|
+
&:hover {
|
|
124
|
+
background-color: var(--button-hover-color);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
&:checked,
|
|
128
|
+
&.checked {
|
|
129
|
+
background-color: var(--button-active-color);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// The three framed pages: a scrolled window with `has-frame` around a `.view`
|
|
134
|
+
// viewport, and the credits grid inside it.
|
|
135
|
+
.adw-gtk-about-dialog-scrolled {
|
|
136
|
+
flex: 1 1 auto;
|
|
137
|
+
min-height: 0;
|
|
138
|
+
overflow: auto;
|
|
139
|
+
border: 1px solid var(--border-color);
|
|
140
|
+
border-radius: 9px;
|
|
141
|
+
background-color: var(--view-bg-color);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.adw-gtk-about-dialog-text {
|
|
145
|
+
margin: 5px;
|
|
146
|
+
// `GTK_WRAP_NONE` unless `wrap-license` asked for `GTK_WRAP_WORD`.
|
|
147
|
+
white-space: pre;
|
|
148
|
+
font-size: 0.9em;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.adw-gtk-about-dialog-text-view.wrap .adw-gtk-about-dialog-text {
|
|
152
|
+
white-space: pre-wrap;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// `add_credits_section`: a two-column grid, headings right-aligned in column 0 and
|
|
156
|
+
// people left-aligned in column 1, with 2px between rows and 8px between columns.
|
|
157
|
+
.adw-gtk-about-dialog-credits-grid {
|
|
158
|
+
display: grid;
|
|
159
|
+
grid-template-columns: max-content 1fr;
|
|
160
|
+
gap: 2px 8px;
|
|
161
|
+
padding: 5px;
|
|
162
|
+
align-items: center;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.adw-gtk-about-dialog-credits-heading {
|
|
166
|
+
text-align: right;
|
|
167
|
+
font-size: 0.9em;
|
|
168
|
+
font-weight: 500;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.adw-gtk-about-dialog-credits-person {
|
|
172
|
+
text-align: left;
|
|
173
|
+
font-size: 0.9em;
|
|
174
|
+
user-select: text;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@keyframes adw-gtk-about-dialog-page-in {
|
|
179
|
+
from {
|
|
180
|
+
opacity: 0;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
to {
|
|
184
|
+
opacity: 1;
|
|
185
|
+
}
|
|
186
|
+
}
|
package/scss/_headerbar.scss
CHANGED
|
@@ -128,3 +128,135 @@ adw-window.devel adw-header-bar {
|
|
|
128
128
|
transparent 32px 64px
|
|
129
129
|
);
|
|
130
130
|
}
|
|
131
|
+
|
|
132
|
+
/*********************
|
|
133
|
+
* Gtk.HeaderBar *
|
|
134
|
+
*********************/
|
|
135
|
+
|
|
136
|
+
// GTK's own bar, in the SAME file upstream styles `Adw.HeaderBar` in: libadwaita keys
|
|
137
|
+
// `headerbar`, `windowhandle > box` and `box.start`/`box.end` off the GtkHeaderBar CSS tree
|
|
138
|
+
// (refs/gtk/gtk/gtkheaderbar.c:99-116), and the element builds that tree here — so the
|
|
139
|
+
// selectors are the same ones and the two bars sit on the same surface.
|
|
140
|
+
//
|
|
141
|
+
// `order` on the three children rather than their DOM order: the title widget is ADOPTED
|
|
142
|
+
// into the centre `box` after the two side boxes are already in it, and a flex row lays out
|
|
143
|
+
// in DOM order. The centring itself is the `flex: 1` centre track, which is
|
|
144
|
+
// `gtk_center_layout_distribute`'s rule that the centre is clamped to
|
|
145
|
+
// `size - (start.natural + end.natural)` (gtkcenterlayout.c:155-157) — the two ends keep
|
|
146
|
+
// their natural width and the title takes what is left.
|
|
147
|
+
//
|
|
148
|
+
// The `.title` label is the derived one, and `min-width: 5ch` is `width-chars = 5`
|
|
149
|
+
// (MIN_TITLE_CHARS, gtkheaderbar.c:117, :287) as CSS: a bar with a short title must not
|
|
150
|
+
// collapse its centre to nothing and drop the ends on each other.
|
|
151
|
+
gtk-header-bar {
|
|
152
|
+
display: flex;
|
|
153
|
+
flex-direction: column;
|
|
154
|
+
flex-shrink: 0;
|
|
155
|
+
min-height: 47px;
|
|
156
|
+
background-color: var(--headerbar-bg-color);
|
|
157
|
+
color: var(--headerbar-fg-color);
|
|
158
|
+
box-shadow: inset 0 -1px var(--headerbar-shade-color);
|
|
159
|
+
|
|
160
|
+
> .adw-gtk-header-bar-handle > .adw-gtk-header-bar-box {
|
|
161
|
+
display: flex;
|
|
162
|
+
align-items: center;
|
|
163
|
+
flex: 1;
|
|
164
|
+
// `_header-bar.scss:20-26` — the padding around the bar's whole content, and the 6px
|
|
165
|
+
// spacing between the packed children at either side.
|
|
166
|
+
padding: 6px 7px 7px 7px;
|
|
167
|
+
|
|
168
|
+
> .adw-gtk-header-bar-start {
|
|
169
|
+
order: 0;
|
|
170
|
+
display: flex;
|
|
171
|
+
align-items: center;
|
|
172
|
+
gap: 6px;
|
|
173
|
+
// `:29-37` — the gap libadwaita puts between the centre and a side.
|
|
174
|
+
margin-right: 6px;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
> .adw-gtk-header-bar-end {
|
|
178
|
+
order: 2;
|
|
179
|
+
display: flex;
|
|
180
|
+
align-items: center;
|
|
181
|
+
gap: 6px;
|
|
182
|
+
margin-left: 6px;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
> :not(.adw-gtk-header-bar-start):not(.adw-gtk-header-bar-end) {
|
|
186
|
+
order: 1;
|
|
187
|
+
flex: 1;
|
|
188
|
+
min-width: 0;
|
|
189
|
+
display: flex;
|
|
190
|
+
align-items: center;
|
|
191
|
+
justify-content: center;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// The derived `GtkLabel` (gtkheaderbar.c:274-290): no wrap, `single-line-mode`,
|
|
196
|
+
// `ellipsize = END`, `width-chars = 5`, and the `title` style class on top — which
|
|
197
|
+
// `_header-bar.scss:213-219` gives 12px of padding either side and a bold weight.
|
|
198
|
+
> .adw-gtk-header-bar-handle > .adw-gtk-header-bar-box > .adw-gtk-header-bar-title {
|
|
199
|
+
min-width: 5ch;
|
|
200
|
+
padding: 0 12px;
|
|
201
|
+
font-weight: bold;
|
|
202
|
+
white-space: nowrap;
|
|
203
|
+
overflow: hidden;
|
|
204
|
+
text-overflow: ellipsis;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/************************
|
|
209
|
+
* Gtk.WindowControls *
|
|
210
|
+
************************/
|
|
211
|
+
|
|
212
|
+
// The three frame buttons, off libadwaita's own `windowcontrols > button > image`
|
|
213
|
+
// (refs/libadwaita/src/stylesheet/widgets/_header-bar.scss:175-207). A button is a 24px
|
|
214
|
+
// square with 5px of padding; the IMAGE carries the whole hover/active affordance — a
|
|
215
|
+
// circular `$button_color` disc that grows darker — which is why the disc and not the button
|
|
216
|
+
// is what has a background here.
|
|
217
|
+
gtk-window-controls {
|
|
218
|
+
display: flex;
|
|
219
|
+
align-items: center;
|
|
220
|
+
// `:176` — the gap between two controls.
|
|
221
|
+
gap: 3px;
|
|
222
|
+
|
|
223
|
+
> .adw-window-controls-button {
|
|
224
|
+
display: flex;
|
|
225
|
+
align-items: center;
|
|
226
|
+
justify-content: center;
|
|
227
|
+
min-width: 24px;
|
|
228
|
+
min-height: 24px;
|
|
229
|
+
padding: 5px;
|
|
230
|
+
border: none;
|
|
231
|
+
background: none;
|
|
232
|
+
color: inherit;
|
|
233
|
+
cursor: pointer;
|
|
234
|
+
|
|
235
|
+
> .adw-icon {
|
|
236
|
+
// `:189-199` — the disc, its radius and its transitions.
|
|
237
|
+
background-color: var(--button-bg-color);
|
|
238
|
+
border-radius: 100%;
|
|
239
|
+
padding: 4px;
|
|
240
|
+
transition:
|
|
241
|
+
background-color 150ms ease-out,
|
|
242
|
+
box-shadow 150ms ease-out;
|
|
243
|
+
|
|
244
|
+
@media (prefers-contrast: more) {
|
|
245
|
+
box-shadow: inset 0 0 0 1px var(--border-color);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
&:hover > .adw-icon {
|
|
250
|
+
background-color: var(--button-hover-color);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
&:active > .adw-icon {
|
|
254
|
+
background-color: var(--button-active-color);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// `:204-206` — the window icon is not a button, so it takes a margin, not a padding.
|
|
258
|
+
> .icon {
|
|
259
|
+
margin: 9px;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|