@gjsify/adwaita-nativescript 0.31.0 → 0.32.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/lib/esm/index.js +1 -1
- package/lib/esm/widgets/adw-action-row.js +1 -1
- package/lib/esm/widgets/adw-avatar.js +1 -1
- package/lib/esm/widgets/adw-banner.js +1 -1
- package/lib/esm/widgets/adw-bottom-sheet.js +1 -1
- package/lib/esm/widgets/adw-button-content.js +1 -1
- package/lib/esm/widgets/adw-button-row.js +1 -1
- package/lib/esm/widgets/adw-carousel.js +1 -1
- package/lib/esm/widgets/adw-clamp.js +1 -1
- package/lib/esm/widgets/adw-combo-row.js +1 -1
- package/lib/esm/widgets/adw-data-grid.js +1 -0
- package/lib/esm/widgets/adw-drop-down.js +1 -0
- package/lib/esm/widgets/adw-entry-row.js +1 -1
- package/lib/esm/widgets/adw-entry.js +1 -0
- package/lib/esm/widgets/adw-expander-row.js +1 -1
- package/lib/esm/widgets/adw-header-bar.js +1 -1
- package/lib/esm/widgets/adw-inline-view-switcher.js +1 -1
- package/lib/esm/widgets/adw-navigation-split-view.js +1 -1
- package/lib/esm/widgets/adw-navigation-view.js +1 -1
- package/lib/esm/widgets/adw-overlay-split-view.js +1 -1
- package/lib/esm/widgets/adw-password-entry-row.js +1 -1
- package/lib/esm/widgets/adw-preferences-dialog.js +1 -1
- package/lib/esm/widgets/adw-preferences-group.js +1 -1
- package/lib/esm/widgets/adw-preferences-page.js +1 -1
- package/lib/esm/widgets/adw-sidebar.js +1 -1
- package/lib/esm/widgets/adw-spin-row.js +1 -1
- package/lib/esm/widgets/adw-spinner.js +1 -1
- package/lib/esm/widgets/adw-split-button.js +1 -1
- package/lib/esm/widgets/adw-status-page.js +1 -1
- package/lib/esm/widgets/adw-switch-row.js +1 -1
- package/lib/esm/widgets/adw-tab-view.js +1 -1
- package/lib/esm/widgets/adw-toolbar-view.js +1 -1
- package/lib/esm/widgets/adw-view-stack.js +1 -1
- package/lib/esm/widgets/adw-view-switcher-bar.js +1 -1
- package/lib/esm/widgets/adw-window-title.js +1 -1
- package/lib/esm/widgets/adw-wrap-box.js +1 -1
- package/lib/esm/widgets/avatar-color.js +1 -0
- package/lib/esm/widgets/bottom-sheet-state.js +1 -0
- package/lib/esm/widgets/button-content.js +1 -0
- package/lib/esm/widgets/carousel-state.js +1 -0
- package/lib/esm/widgets/chrome.js +1 -0
- package/lib/esm/widgets/data-grid-model.js +1 -0
- package/lib/esm/widgets/entry-row-view.js +1 -0
- package/lib/esm/widgets/icon-path.js +2 -2
- package/lib/esm/widgets/icons.ios.js +1 -0
- package/lib/esm/widgets/index.js +1 -1
- package/lib/esm/widgets/navigation-stack.js +1 -0
- package/lib/esm/widgets/preferences-group-state.js +1 -0
- package/lib/esm/widgets/preferences-search.js +1 -0
- package/lib/esm/widgets/row-state.js +1 -0
- package/lib/esm/widgets/sidebar-model.js +1 -0
- package/lib/esm/widgets/split-button.js +1 -0
- package/lib/esm/widgets/split-view-base.js +1 -1
- package/lib/esm/widgets/split-view-state.js +1 -0
- package/lib/esm/widgets/split-view-width.js +1 -0
- package/lib/esm/widgets/status-page-content.js +1 -0
- package/lib/esm/widgets/svg-path.js +2 -0
- package/lib/esm/widgets/tab-view-state.js +1 -0
- package/lib/esm/widgets/view-stack-state.js +1 -0
- package/lib/esm/widgets/view-switcher-base.js +1 -1
- package/lib/esm/widgets/view-switcher-model.js +1 -0
- package/lib/esm/widgets/wrap-box-layout.js +1 -0
- package/lib/types/banner.spec.d.ts +2 -0
- package/lib/types/bottom-sheet.spec.d.ts +2 -0
- package/lib/types/button-content.spec.d.ts +2 -0
- package/lib/types/carousel.spec.d.ts +1 -0
- package/lib/types/chrome.spec.d.ts +2 -0
- package/lib/types/data-grid.spec.d.ts +2 -0
- package/lib/types/drop-down.spec.d.ts +2 -0
- package/lib/types/entry-rows.spec.d.ts +2 -0
- package/lib/types/entry.spec.d.ts +2 -0
- package/lib/types/index.d.ts +2 -2
- package/lib/types/navigation-view.spec.d.ts +2 -0
- package/lib/types/preferences.spec.d.ts +2 -0
- package/lib/types/row-state.spec.d.ts +2 -0
- package/lib/types/sidebar.spec.d.ts +1 -0
- package/lib/types/split-button.spec.d.ts +1 -0
- package/lib/types/split-view-state.spec.d.ts +2 -0
- package/lib/types/split-view-width.spec.d.ts +2 -0
- package/lib/types/status-page.spec.d.ts +2 -0
- package/lib/types/svg-path.spec.d.ts +2 -0
- package/lib/types/tab-view.spec.d.ts +2 -0
- package/lib/types/view-stack.spec.d.ts +2 -0
- package/lib/types/view-switcher.spec.d.ts +1 -0
- package/lib/types/widgets/adw-action-row.d.ts +63 -7
- package/lib/types/widgets/adw-avatar.d.ts +2 -7
- package/lib/types/widgets/adw-banner.d.ts +26 -7
- package/lib/types/widgets/adw-bottom-sheet.d.ts +29 -11
- package/lib/types/widgets/adw-button-content.d.ts +41 -6
- package/lib/types/widgets/adw-button-row.d.ts +31 -9
- package/lib/types/widgets/adw-carousel.d.ts +70 -15
- package/lib/types/widgets/adw-clamp.d.ts +21 -4
- package/lib/types/widgets/adw-data-grid.d.ts +73 -0
- package/lib/types/widgets/adw-drop-down.d.ts +45 -0
- package/lib/types/widgets/adw-entry-row.d.ts +98 -2
- package/lib/types/widgets/adw-entry.d.ts +43 -0
- package/lib/types/widgets/adw-expander-row.d.ts +3 -0
- package/lib/types/widgets/adw-header-bar.d.ts +11 -2
- package/lib/types/widgets/adw-inline-view-switcher.d.ts +26 -0
- package/lib/types/widgets/adw-navigation-split-view.d.ts +2 -1
- package/lib/types/widgets/adw-navigation-view.d.ts +71 -16
- package/lib/types/widgets/adw-overlay-split-view.d.ts +29 -2
- package/lib/types/widgets/adw-password-entry-row.d.ts +33 -3
- package/lib/types/widgets/adw-preferences-dialog.d.ts +18 -0
- package/lib/types/widgets/adw-preferences-group.d.ts +56 -8
- package/lib/types/widgets/adw-preferences-page.d.ts +32 -1
- package/lib/types/widgets/adw-sidebar.d.ts +49 -7
- package/lib/types/widgets/adw-spinner.d.ts +8 -3
- package/lib/types/widgets/adw-split-button.d.ts +48 -13
- package/lib/types/widgets/adw-status-page.d.ts +5 -10
- package/lib/types/widgets/adw-switch-row.d.ts +21 -1
- package/lib/types/widgets/adw-tab-view.d.ts +129 -15
- package/lib/types/widgets/adw-toolbar-view.d.ts +39 -0
- package/lib/types/widgets/adw-view-stack.d.ts +30 -27
- package/lib/types/widgets/adw-view-switcher-bar.d.ts +22 -10
- package/lib/types/widgets/adw-window-title.d.ts +12 -8
- package/lib/types/widgets/adw-wrap-box.d.ts +21 -4
- package/lib/types/widgets/avatar-color.d.ts +14 -0
- package/lib/types/widgets/bottom-sheet-state.d.ts +73 -0
- package/lib/types/widgets/button-content.d.ts +43 -0
- package/lib/types/widgets/carousel-state.d.ts +85 -0
- package/lib/types/widgets/chrome.d.ts +159 -0
- package/lib/types/widgets/data-grid-model.d.ts +104 -0
- package/lib/types/widgets/entry-row-view.d.ts +88 -0
- package/lib/types/widgets/icon-path.d.ts +20 -0
- package/lib/types/widgets/icons.ios.d.ts +13 -0
- package/lib/types/widgets/index.d.ts +20 -5
- package/lib/types/widgets/navigation-stack.d.ts +153 -0
- package/lib/types/widgets/preferences-group-state.d.ts +52 -0
- package/lib/types/widgets/preferences-search.d.ts +68 -0
- package/lib/types/widgets/row-state.d.ts +71 -0
- package/lib/types/widgets/sidebar-model.d.ts +18 -0
- package/lib/types/widgets/split-button.d.ts +55 -0
- package/lib/types/widgets/split-view-base.d.ts +55 -12
- package/lib/types/widgets/split-view-state.d.ts +196 -0
- package/lib/types/widgets/split-view-width.d.ts +76 -0
- package/lib/types/widgets/status-page-content.d.ts +23 -0
- package/lib/types/widgets/svg-path.d.ts +28 -0
- package/lib/types/widgets/tab-view-state.d.ts +74 -0
- package/lib/types/widgets/view-stack-state.d.ts +35 -0
- package/lib/types/widgets/view-switcher-base.d.ts +61 -32
- package/lib/types/widgets/view-switcher-model.d.ts +114 -0
- package/lib/types/widgets/wrap-box-layout.d.ts +43 -0
- package/lib/types/wrap-box.spec.d.ts +2 -0
- package/package.json +7 -7
- package/src/theme/adwaita.css +393 -8
package/src/theme/adwaita.css
CHANGED
|
@@ -32,14 +32,36 @@ Page.adw-window {
|
|
|
32
32
|
margin: 12 12 6 12;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
/* The header box: title + description column, optional trailing suffix. The two
|
|
36
|
+
* metric rules below are libadwaita's, keyed off `is_single_line`
|
|
37
|
+
* (stylesheet/widgets/_preferences.scss:6-13): a header carrying a description
|
|
38
|
+
* is two lines and takes a 6 bottom gap, a title-only or suffix-only header is
|
|
39
|
+
* one line and takes a 34 height floor instead. Spelled as base + override
|
|
40
|
+
* rather than with `:not(.single-line)` — the NS CSS subset has no `:not()`. */
|
|
41
|
+
.adw-preferences-group-header {
|
|
42
|
+
margin: 6 2 6 2;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.adw-preferences-group-header.single-line {
|
|
46
|
+
margin: 6 2 0 2;
|
|
47
|
+
min-height: 34;
|
|
48
|
+
}
|
|
49
|
+
|
|
35
50
|
.adw-preferences-group-title {
|
|
36
51
|
font-size: 11;
|
|
37
52
|
font-weight: 700;
|
|
38
53
|
color: rgba(0, 0, 0, 0.55);
|
|
39
|
-
margin:
|
|
54
|
+
margin: 0;
|
|
40
55
|
/* NS has no text-transform; author titles in upper-case in markup if desired. */
|
|
41
56
|
}
|
|
42
57
|
|
|
58
|
+
/* Dimmed description line below the title. */
|
|
59
|
+
.adw-preferences-group-description {
|
|
60
|
+
font-size: 12;
|
|
61
|
+
color: rgba(0, 0, 0, 0.55);
|
|
62
|
+
margin: 2 0 0 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
43
65
|
/* The boxed list: rounded card holding the rows. */
|
|
44
66
|
.boxed-list,
|
|
45
67
|
.adw-preferences-group-listbox {
|
|
@@ -143,13 +165,23 @@ Page.adw-window {
|
|
|
143
165
|
margin: 0;
|
|
144
166
|
}
|
|
145
167
|
|
|
146
|
-
.
|
|
168
|
+
/* The text input itself, in BOTH entries: never any chrome of its own. Whatever
|
|
169
|
+
* surrounds it paints the Adwaita surface — the row for `.adw-entry-field`, the
|
|
170
|
+
* `.adw-entry` box for `.adw-entry-input`. (The widgets also set these two
|
|
171
|
+
* inline, which is the only thing that removes Android's Material underline;
|
|
172
|
+
* they are restated here so the rule is readable from the stylesheet.) */
|
|
173
|
+
.adw-entry-field,
|
|
174
|
+
.adw-entry-input {
|
|
147
175
|
font-size: 15;
|
|
148
176
|
color: rgba(0, 0, 0, 0.8);
|
|
149
177
|
background-color: transparent;
|
|
150
|
-
/* No Material underline — Adwaita
|
|
178
|
+
/* No Material underline — no Adwaita entry has a field border. */
|
|
151
179
|
border-width: 0;
|
|
152
180
|
padding: 0;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* Row only: the gap between the shrunken floating title and the value. */
|
|
184
|
+
.adw-entry-field {
|
|
153
185
|
margin: 2 0 0 0;
|
|
154
186
|
}
|
|
155
187
|
|
|
@@ -158,6 +190,23 @@ Page.adw-window {
|
|
|
158
190
|
color: rgba(0, 0, 0, 0.8);
|
|
159
191
|
}
|
|
160
192
|
|
|
193
|
+
/* ===== Entry (STANDALONE — the filled, rounded field, not a row) ===== */
|
|
194
|
+
|
|
195
|
+
/* The BOX carries the surface, because the field cannot: an entry's fill has to
|
|
196
|
+
* answer the light/dark question, and the inline `backgroundColor` that strips
|
|
197
|
+
* the Material underline is not overridable from CSS. Metrics are `entry`'s own
|
|
198
|
+
* — 34 min-height and 9px horizontal padding (_entries.scss:4-6) — over
|
|
199
|
+
* `$button_color`, i.e. currentColor at 10% (_entries.scss:9 with
|
|
200
|
+
* _buttons.scss:1), the same fill `.adw-button` carries, at `$button_radius`
|
|
201
|
+
* 9px (_common.scss:8). */
|
|
202
|
+
.adw-entry {
|
|
203
|
+
background-color: rgba(0, 0, 0, 0.08);
|
|
204
|
+
border-radius: 9;
|
|
205
|
+
min-height: 34;
|
|
206
|
+
padding: 0 9 0 9;
|
|
207
|
+
margin: 0;
|
|
208
|
+
}
|
|
209
|
+
|
|
161
210
|
/* ===== Combo row (inline value + chevron) ===== */
|
|
162
211
|
|
|
163
212
|
.adw-combo-suffix {
|
|
@@ -177,6 +226,47 @@ Page.adw-window {
|
|
|
177
226
|
vertical-align: middle;
|
|
178
227
|
}
|
|
179
228
|
|
|
229
|
+
/* ===== Drop down (STANDALONE — the toolbar twin of the combo row) ===== */
|
|
230
|
+
|
|
231
|
+
/* A plain Adwaita button carrying a label and an arrow. `_dropdowns.scss`
|
|
232
|
+
* declares no padding for it, and which of `.text-button` / `.image-text-button`
|
|
233
|
+
* GTK stamps on a dropdown's button is NOT verifiable in this tree (`refs/gtk`
|
|
234
|
+
* is empty), so these are the BASE `button` metrics: `padding: 5px 10px` over
|
|
235
|
+
* `min-height: 24px` — 34 in total, the same height as an entry — at
|
|
236
|
+
* `$button_radius` 9px with the `$button_color` fill (_buttons.scss:19-30). */
|
|
237
|
+
.adw-drop-down {
|
|
238
|
+
background-color: rgba(0, 0, 0, 0.08);
|
|
239
|
+
border-radius: 9;
|
|
240
|
+
min-height: 34;
|
|
241
|
+
padding: 5 10 5 10;
|
|
242
|
+
margin: 0;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/* `button { font-weight: bold }` (_buttons.scss:24). The label carries the
|
|
246
|
+
* colour because NS does not inherit `color` to a child Label. */
|
|
247
|
+
.adw-drop-down-label {
|
|
248
|
+
font-size: 15;
|
|
249
|
+
font-weight: 700;
|
|
250
|
+
color: rgba(0, 0, 0, 0.8);
|
|
251
|
+
vertical-align: center;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/* `dropdown > button > box { border-spacing: 6px }` (_dropdowns.scss:2-3) — the
|
|
255
|
+
* gap between label and arrow. The arrow's 16px size (_dropdowns.scss:10-13) is
|
|
256
|
+
* the AdwIcon default, and its colour follows the light/dark scheme, so neither
|
|
257
|
+
* is set anywhere. */
|
|
258
|
+
.adw-drop-down-chevron {
|
|
259
|
+
margin: 0 0 0 6;
|
|
260
|
+
vertical-align: middle;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/* Pressed — `$button_active_color`, in the shade `.adw-button:highlighted`
|
|
264
|
+
* already uses. Wired by `attachRowPressFeedback()` (NS only auto-highlights a
|
|
265
|
+
* Button, and this one is a StackLayout). */
|
|
266
|
+
.adw-drop-down:highlighted {
|
|
267
|
+
background-color: rgba(0, 0, 0, 0.19);
|
|
268
|
+
}
|
|
269
|
+
|
|
180
270
|
/* ===== Spin row (− value + stepper) ===== */
|
|
181
271
|
|
|
182
272
|
.adw-spin-control {
|
|
@@ -368,6 +458,14 @@ Page.adw-window {
|
|
|
368
458
|
margin: 0 0 0 8;
|
|
369
459
|
}
|
|
370
460
|
|
|
461
|
+
/* `button-style` (Since 1.7). ADW_BANNER_BUTTON_SUGGESTED adds `.suggested-action`
|
|
462
|
+
* to the banner button (adw-banner.c:769) — the accent appearance, restated here
|
|
463
|
+
* because the banner button is not an `.adw-button`. */
|
|
464
|
+
.adw-banner-button.suggested-action {
|
|
465
|
+
background-color: #3584e4;
|
|
466
|
+
color: #ffffff;
|
|
467
|
+
}
|
|
468
|
+
|
|
371
469
|
/* ===== Avatar (circular initials) ===== */
|
|
372
470
|
|
|
373
471
|
.adw-avatar {
|
|
@@ -457,6 +555,30 @@ Page.adw-window {
|
|
|
457
555
|
padding-bottom: var(--safeAreaInsetBottom, 0);
|
|
458
556
|
}
|
|
459
557
|
|
|
558
|
+
/* top-bar-style / bottom-bar-style = raised: an opaque background with a
|
|
559
|
+
* persistent separator. Adwaita uses a shadow there and swaps it for a subtler
|
|
560
|
+
* hairline under `.border` (adw-toolbar-view.c:1011-1024); the NS CSS subset has
|
|
561
|
+
* no shadow, so `raised` carries the hairline and `.border` darkens it — the same
|
|
562
|
+
* ordering of emphasis, in the vocabulary the platform has. */
|
|
563
|
+
.adw-toolbar-view-top.raised {
|
|
564
|
+
background-color: #ffffff;
|
|
565
|
+
border-bottom-width: 1;
|
|
566
|
+
border-bottom-color: rgba(0, 0, 0, 0.1);
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
.adw-toolbar-view-top.raised.border {
|
|
570
|
+
border-bottom-color: rgba(0, 0, 0, 0.24);
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
.adw-toolbar-view-bottom.raised {
|
|
574
|
+
background-color: #ffffff;
|
|
575
|
+
border-top-color: rgba(0, 0, 0, 0.1);
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.adw-toolbar-view-bottom.raised.border {
|
|
579
|
+
border-top-color: rgba(0, 0, 0, 0.24);
|
|
580
|
+
}
|
|
581
|
+
|
|
460
582
|
/* ===== View stack (page container) ===== */
|
|
461
583
|
|
|
462
584
|
.adw-view-stack {
|
|
@@ -506,16 +628,153 @@ Page.adw-window {
|
|
|
506
628
|
color: #3584e4;
|
|
507
629
|
}
|
|
508
630
|
|
|
631
|
+
/* AdwIndicatorBin's badge — the unread count, or (with .needs-attention and no
|
|
632
|
+
* count) a bare dot. Reference: refs/libadwaita/src/adw-indicator-bin.c */
|
|
633
|
+
.adw-viewswitcherbar-button-badge {
|
|
634
|
+
font-size: 10;
|
|
635
|
+
font-weight: 700;
|
|
636
|
+
color: #ffffff;
|
|
637
|
+
background-color: #3584e4;
|
|
638
|
+
border-radius: 8;
|
|
639
|
+
padding: 0 4 0 4;
|
|
640
|
+
horizontal-align: center;
|
|
641
|
+
text-align: center;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
.adw-viewswitcherbar-button-badge.needs-attention {
|
|
645
|
+
width: 6;
|
|
646
|
+
height: 6;
|
|
647
|
+
padding: 0;
|
|
648
|
+
border-radius: 3;
|
|
649
|
+
}
|
|
650
|
+
|
|
509
651
|
/* ===== Wrap box ===== */
|
|
510
652
|
|
|
511
|
-
.
|
|
512
|
-
|
|
653
|
+
/* Adw.WrapBox has NO margin of its own — it is a bare layout container whose
|
|
654
|
+
* only spacing is `child-spacing` / `line-spacing`, both defaulting to 0
|
|
655
|
+
* (adw-wrap-box.c:285-287, :393-395). The 6 DIP margin that used to sit here was
|
|
656
|
+
* invented, and stacked on top of the port's equally invented 6 DIP spacing
|
|
657
|
+
* default, so an EMPTY wrap box occupied 12 DIPs. Spacing comes from the child
|
|
658
|
+
* margins the widget applies (widgets/wrap-box-layout.ts), never from here. */
|
|
659
|
+
|
|
660
|
+
/* ===== Data grid (an aligned numeric grid — a financial statement) ===== */
|
|
661
|
+
|
|
662
|
+
/* ONE GridLayout with the CELLS as direct children, because NativeScript has no
|
|
663
|
+
* subgrid: a per-row grid would resolve its own `auto` tracks from its own row's
|
|
664
|
+
* content and stagger the columns. So everything the browser paints on a row
|
|
665
|
+
* ELEMENT is painted here on a full-width StackLayout that sits UNDER that row's
|
|
666
|
+
* cells and spans every column — which is also why the two are styled by SIBLING
|
|
667
|
+
* selectors below rather than by a descendant one. */
|
|
668
|
+
.adw-data-grid {
|
|
669
|
+
background-color: transparent;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
/* Airy Adwaita cell density, matching the boxed-list row rhythm (the browser's
|
|
673
|
+
* --spacing-s / --spacing-m, 9 and 12). Single-line is set on the widget: a
|
|
674
|
+
* wrapped figure column stops being a column of figures. */
|
|
675
|
+
.adw-data-grid-cell {
|
|
676
|
+
font-size: 15;
|
|
677
|
+
color: rgba(0, 0, 0, 0.8);
|
|
678
|
+
padding: 9 12 9 12;
|
|
679
|
+
vertical-align: center;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
/* Alignment. NS has no logical `start`/`end` text alignment, so the two ends are
|
|
683
|
+
* spelled left/right — this port lays out LTR throughout (widgets/split-view-state.ts
|
|
684
|
+
* records the same limitation for the split views). */
|
|
685
|
+
.adw-data-grid-cell.align-start {
|
|
686
|
+
text-align: left;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
.adw-data-grid-cell.align-end {
|
|
690
|
+
text-align: right;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.adw-data-grid-cell.align-center {
|
|
694
|
+
text-align: center;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
/* `.numeric` is `font-variant-numeric: tabular-nums` in libadwaita
|
|
698
|
+
* (_labels.scss:86-88) and the NS CSS subset has NO font-feature property at all,
|
|
699
|
+
* so a numeric column gets its right EDGE from the shared track and proportional
|
|
700
|
+
* digits INSIDE the number. `.mono` is the way to real tabular figures here,
|
|
701
|
+
* because a fixed-pitch face is tabular by construction. `@gjsify/adwaita-fonts`
|
|
702
|
+
* ships no mono TTF today, so unless the app installs one the generic tail is
|
|
703
|
+
* what resolves. */
|
|
704
|
+
.adw-data-grid-cell.mono {
|
|
705
|
+
font-family: 'Adwaita Mono', 'AdwaitaMono-Regular', monospace;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
/* Header row — dim and small with a hairline underline (the Adwaita list-column
|
|
709
|
+
* heading), never sortable. NS has no text-transform, so the labels are NOT
|
|
710
|
+
* upper-cased here; author them as you want them read. */
|
|
711
|
+
.adw-data-grid-row.header {
|
|
712
|
+
border-bottom-width: 1;
|
|
713
|
+
border-bottom-color: rgba(0, 0, 0, 0.1);
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.adw-data-grid-cell.header-cell {
|
|
717
|
+
font-size: 12;
|
|
718
|
+
font-weight: 700;
|
|
719
|
+
color: rgba(0, 0, 0, 0.55);
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
/* A section header spans all columns as a bold group title (a BWA's sections),
|
|
723
|
+
* with extra space above it to open the group. */
|
|
724
|
+
.adw-data-grid-cell.section-cell {
|
|
725
|
+
font-weight: 700;
|
|
726
|
+
padding: 15 12 9 12;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
/* A subtotal is bold with a hairline rule above it (Gesamtleistung, Rohertrag…).
|
|
730
|
+
* The rule is on the row background, the weight on the cells: siblings. */
|
|
731
|
+
.adw-data-grid-row.variant-subtotal {
|
|
732
|
+
border-top-width: 1;
|
|
733
|
+
border-top-color: rgba(0, 0, 0, 0.1);
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.adw-data-grid-cell.variant-subtotal {
|
|
737
|
+
font-weight: 700;
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
/* The final total is bold with a STRONGER rule above (the accounting result —
|
|
741
|
+
* Betriebsergebnis) plus a thin one below, evoking the ruled grand-total line. */
|
|
742
|
+
.adw-data-grid-row.variant-total {
|
|
743
|
+
border-top-width: 2;
|
|
744
|
+
border-top-color: rgba(0, 0, 0, 0.1);
|
|
745
|
+
border-bottom-width: 1;
|
|
746
|
+
border-bottom-color: rgba(0, 0, 0, 0.1);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
.adw-data-grid-cell.variant-total {
|
|
750
|
+
font-weight: 800;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
/* Optional interactive rows (master-detail). Hairline separators only where
|
|
754
|
+
* Adwaita would — NOT zebra striping — so no default row borders. NS has no
|
|
755
|
+
* hover, so the pressed shade is the whole affordance. */
|
|
756
|
+
.adw-data-grid-row.interactive {
|
|
757
|
+
border-radius: 9;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
/* Pressed — `$button_active_color`, the shade `.adw-button:highlighted` uses.
|
|
761
|
+
* `attachRowPressFeedback()` is wired on EVERY data row's background and gated
|
|
762
|
+
* HERE: a non-interactive row gets the `highlighted` pseudo-class and no rule
|
|
763
|
+
* claims it, so nothing lights up under a finger that cannot activate anything. */
|
|
764
|
+
.adw-data-grid-row.interactive:highlighted {
|
|
765
|
+
background-color: rgba(0, 0, 0, 0.19);
|
|
513
766
|
}
|
|
514
767
|
|
|
515
768
|
/* ===== Spinner ===== */
|
|
516
769
|
|
|
770
|
+
/* Adw.Spinner is a NEUTRAL indicator, not an accent-coloured one: the paintable
|
|
771
|
+
strokes with `gtk_widget_get_color()` — the widget's TEXT colour
|
|
772
|
+
(adw-spinner-paintable.c:432). This carried the Adwaita accent blue, which put
|
|
773
|
+
the two ports in open disagreement: adwaita-web's `_spinner.scss` uses
|
|
774
|
+
`currentColor` and says so in a comment. Nothing compared them, because no
|
|
775
|
+
conformance vector covers colour. */
|
|
517
776
|
.adw-spinner {
|
|
518
|
-
color:
|
|
777
|
+
color: rgba(0, 0, 0, 0.8);
|
|
519
778
|
}
|
|
520
779
|
|
|
521
780
|
/* ===== Status page (empty state) ===== */
|
|
@@ -585,6 +844,23 @@ Page.adw-window {
|
|
|
585
844
|
|
|
586
845
|
/* ===== Button content (icon + label) ===== */
|
|
587
846
|
|
|
847
|
+
/* The class AdwButtonContent stamps on the button hosting it
|
|
848
|
+
* (adw-button-content.c:115), removed again on unroot (:126).
|
|
849
|
+
*
|
|
850
|
+
* libadwaita: `button.image-text-button { padding-left: 9px; padding-right: 9px }`
|
|
851
|
+
* (_buttons.scss:77-80) — against the 17px a plain `.text-button` gets (:72-75),
|
|
852
|
+
* which this theme approximates as the 16 on `.adw-button` above. The rule lived
|
|
853
|
+
* in NEITHER renderer, so every icon+label button was drawn with the wrong
|
|
854
|
+
* horizontal padding.
|
|
855
|
+
*
|
|
856
|
+
* Only the PADDING half of that block applies: the same selector also declares
|
|
857
|
+
* `> box, > box > box { border-spacing: 4px }` (:82-84) and neither matches
|
|
858
|
+
* through the `buttoncontent` node (:47-52). The icon↔label gap stays the 6 from
|
|
859
|
+
* `buttoncontent > box` (:626-628), which is the icon's right margin below. */
|
|
860
|
+
.adw-button.image-text-button {
|
|
861
|
+
padding: 5 9 5 9;
|
|
862
|
+
}
|
|
863
|
+
|
|
588
864
|
.adw-button-content {
|
|
589
865
|
margin: 0;
|
|
590
866
|
}
|
|
@@ -751,6 +1027,25 @@ Page.adw-window {
|
|
|
751
1027
|
vertical-align: center;
|
|
752
1028
|
}
|
|
753
1029
|
|
|
1030
|
+
/* AdwIndicatorBin's badge on the classic switcher's buttons. */
|
|
1031
|
+
.adw-view-switcher-button-badge {
|
|
1032
|
+
font-size: 10;
|
|
1033
|
+
font-weight: 700;
|
|
1034
|
+
color: #ffffff;
|
|
1035
|
+
background-color: #3584e4;
|
|
1036
|
+
border-radius: 8;
|
|
1037
|
+
padding: 0 4 0 4;
|
|
1038
|
+
margin: 0 0 0 5;
|
|
1039
|
+
vertical-align: center;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
.adw-view-switcher-button-badge.needs-attention {
|
|
1043
|
+
width: 6;
|
|
1044
|
+
height: 6;
|
|
1045
|
+
padding: 0;
|
|
1046
|
+
border-radius: 3;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
754
1049
|
/* ===== Inline view switcher (compact pill bar) ===== */
|
|
755
1050
|
|
|
756
1051
|
.adw-inline-view-switcher-bar {
|
|
@@ -786,6 +1081,25 @@ Page.adw-window {
|
|
|
786
1081
|
vertical-align: center;
|
|
787
1082
|
}
|
|
788
1083
|
|
|
1084
|
+
/* AdwIndicatorBin's badge on the inline switcher's toggles. */
|
|
1085
|
+
.adw-inline-view-switcher-button-badge {
|
|
1086
|
+
font-size: 10;
|
|
1087
|
+
font-weight: 700;
|
|
1088
|
+
color: #ffffff;
|
|
1089
|
+
background-color: #3584e4;
|
|
1090
|
+
border-radius: 8;
|
|
1091
|
+
padding: 0 4 0 4;
|
|
1092
|
+
margin: 0 0 0 5;
|
|
1093
|
+
vertical-align: center;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
.adw-inline-view-switcher-button-badge.needs-attention {
|
|
1097
|
+
width: 6;
|
|
1098
|
+
height: 6;
|
|
1099
|
+
padding: 0;
|
|
1100
|
+
border-radius: 3;
|
|
1101
|
+
}
|
|
1102
|
+
|
|
789
1103
|
/* ===== Tab view (top tab strip) ===== */
|
|
790
1104
|
|
|
791
1105
|
.adw-tab-view-bar {
|
|
@@ -1053,7 +1367,8 @@ Page.ns-dark.adw-window {
|
|
|
1053
1367
|
color: #ffffff;
|
|
1054
1368
|
}
|
|
1055
1369
|
|
|
1056
|
-
.ns-dark .adw-preferences-group-title
|
|
1370
|
+
.ns-dark .adw-preferences-group-title,
|
|
1371
|
+
.ns-dark .adw-preferences-group-description {
|
|
1057
1372
|
color: rgba(255, 255, 255, 0.55);
|
|
1058
1373
|
}
|
|
1059
1374
|
|
|
@@ -1101,10 +1416,18 @@ Page.ns-dark.adw-window {
|
|
|
1101
1416
|
}
|
|
1102
1417
|
|
|
1103
1418
|
.ns-dark .adw-entry-field,
|
|
1419
|
+
.ns-dark .adw-entry-input,
|
|
1104
1420
|
.ns-dark .adw-password-field {
|
|
1105
1421
|
color: #ffffff;
|
|
1106
1422
|
}
|
|
1107
1423
|
|
|
1424
|
+
/* ===== Dark: entry (standalone) ===== */
|
|
1425
|
+
|
|
1426
|
+
/* The dark `$button_color`: currentColor at 10% over a white foreground. */
|
|
1427
|
+
.ns-dark .adw-entry {
|
|
1428
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1108
1431
|
/* ===== Dark: combo row ===== */
|
|
1109
1432
|
|
|
1110
1433
|
.ns-dark .adw-combo-value {
|
|
@@ -1115,6 +1438,20 @@ Page.ns-dark.adw-window {
|
|
|
1115
1438
|
color: rgba(255, 255, 255, 0.45);
|
|
1116
1439
|
}
|
|
1117
1440
|
|
|
1441
|
+
/* ===== Dark: drop down ===== */
|
|
1442
|
+
|
|
1443
|
+
.ns-dark .adw-drop-down {
|
|
1444
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
1445
|
+
}
|
|
1446
|
+
|
|
1447
|
+
.ns-dark .adw-drop-down-label {
|
|
1448
|
+
color: #ffffff;
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1451
|
+
.ns-dark .adw-drop-down:highlighted {
|
|
1452
|
+
background-color: rgba(255, 255, 255, 0.22);
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1118
1455
|
/* ===== Dark: spin row ===== */
|
|
1119
1456
|
|
|
1120
1457
|
.ns-dark .adw-spin-button {
|
|
@@ -1259,6 +1596,24 @@ Page.ns-dark.adw-window {
|
|
|
1259
1596
|
border-top-color: rgba(255, 255, 255, 0.12);
|
|
1260
1597
|
}
|
|
1261
1598
|
|
|
1599
|
+
.ns-dark .adw-toolbar-view-top.raised {
|
|
1600
|
+
background-color: #2e2e32;
|
|
1601
|
+
border-bottom-color: rgba(255, 255, 255, 0.12);
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
.ns-dark .adw-toolbar-view-top.raised.border {
|
|
1605
|
+
border-bottom-color: rgba(255, 255, 255, 0.28);
|
|
1606
|
+
}
|
|
1607
|
+
|
|
1608
|
+
.ns-dark .adw-toolbar-view-bottom.raised {
|
|
1609
|
+
background-color: #2e2e32;
|
|
1610
|
+
border-top-color: rgba(255, 255, 255, 0.12);
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
.ns-dark .adw-toolbar-view-bottom.raised.border {
|
|
1614
|
+
border-top-color: rgba(255, 255, 255, 0.28);
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1262
1617
|
/* ===== Dark: view switcher bar ===== */
|
|
1263
1618
|
|
|
1264
1619
|
.ns-dark .adw-viewswitcherbar {
|
|
@@ -1278,10 +1633,40 @@ Page.ns-dark.adw-window {
|
|
|
1278
1633
|
color: #78aeed;
|
|
1279
1634
|
}
|
|
1280
1635
|
|
|
1636
|
+
/* ===== Dark: data grid ===== */
|
|
1637
|
+
|
|
1638
|
+
.ns-dark .adw-data-grid-cell {
|
|
1639
|
+
color: #ffffff;
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
/* Restated at three classes so it beats the two-class rule above — the light
|
|
1643
|
+
* `.adw-data-grid-cell.header-cell` and this one would otherwise tie, and the
|
|
1644
|
+
* later (dark) rule would repaint the dim heading in full white. */
|
|
1645
|
+
.ns-dark .adw-data-grid-cell.header-cell {
|
|
1646
|
+
color: rgba(255, 255, 255, 0.55);
|
|
1647
|
+
}
|
|
1648
|
+
|
|
1649
|
+
.ns-dark .adw-data-grid-row.header {
|
|
1650
|
+
border-bottom-color: rgba(255, 255, 255, 0.1);
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
.ns-dark .adw-data-grid-row.variant-subtotal {
|
|
1654
|
+
border-top-color: rgba(255, 255, 255, 0.1);
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1657
|
+
.ns-dark .adw-data-grid-row.variant-total {
|
|
1658
|
+
border-top-color: rgba(255, 255, 255, 0.1);
|
|
1659
|
+
border-bottom-color: rgba(255, 255, 255, 0.1);
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1662
|
+
.ns-dark .adw-data-grid-row.interactive:highlighted {
|
|
1663
|
+
background-color: rgba(255, 255, 255, 0.22);
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1281
1666
|
/* ===== Dark: spinner ===== */
|
|
1282
1667
|
|
|
1283
1668
|
.ns-dark .adw-spinner {
|
|
1284
|
-
color: #
|
|
1669
|
+
color: #ffffff;
|
|
1285
1670
|
}
|
|
1286
1671
|
|
|
1287
1672
|
/* ===== Dark: status page ===== */
|