@gjsify/adwaita-web 0.1.7 → 0.1.9

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.
@@ -0,0 +1,20 @@
1
+ // _card.scss — adw-card styling.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_card.scss
3
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_misc.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
7
+
8
+ adw-card,
9
+ .adw-card {
10
+ display: block;
11
+ background-color: var(--card-bg-color);
12
+ color: var(--card-fg-color);
13
+ border-radius: var(--card-radius);
14
+ padding: var(--spacing-l);
15
+ box-shadow:
16
+ 0 0 0 1px rgb(0 0 6 / 3%),
17
+ 0 1px 3px 1px rgb(0 0 6 / 7%),
18
+ 0 2px 6px 2px rgb(0 0 6 / 3%);
19
+ overflow: hidden;
20
+ }
@@ -0,0 +1,78 @@
1
+ // _combo_row.scss — adw-combo-row styling.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_combo_row.scss
3
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_combo-row.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
7
+
8
+ adw-combo-row {
9
+ position: relative;
10
+ cursor: pointer;
11
+
12
+ .adw-row-title {
13
+ font-size: var(--font-size-base);
14
+ color: var(--card-fg-color);
15
+ pointer-events: none;
16
+ }
17
+
18
+ // Hidden <select> overlay — stretches across the row to capture clicks
19
+ // anywhere. The visual dropdown arrow is rendered by .adw-row-value::after
20
+ // below, so the select itself doesn't need a background image.
21
+ select {
22
+ appearance: none;
23
+ -webkit-appearance: none;
24
+ background-color: transparent;
25
+ border: none;
26
+ padding: 6px 24px 6px 8px;
27
+ font-family: var(--font-family);
28
+ font-size: var(--font-size-base);
29
+ color: var(--card-fg-color);
30
+ cursor: pointer;
31
+ text-align: right;
32
+ position: absolute;
33
+ inset: 0;
34
+ opacity: 0;
35
+ width: 100%;
36
+ height: 100%;
37
+ z-index: 1;
38
+
39
+ &:focus-visible {
40
+ outline: 2px solid var(--accent-color);
41
+ outline-offset: -1px;
42
+ }
43
+
44
+ option {
45
+ background-color: var(--window-bg-color);
46
+ color: var(--window-fg-color);
47
+ }
48
+ }
49
+
50
+ .adw-row-value {
51
+ font-size: var(--font-size-base);
52
+ color: var(--card-fg-color);
53
+ opacity: var(--dim-opacity);
54
+ display: flex;
55
+ align-items: center;
56
+ gap: 4px;
57
+
58
+ // Dropdown arrow — rendered via CSS mask so `currentColor` drives the
59
+ // fill, making the icon theme-aware (matches libadwaita's dark theme).
60
+ // Using background-image with a data-URI SVG would NOT resolve
61
+ // `currentColor` in most browsers.
62
+ &::after {
63
+ content: "";
64
+ display: inline-block;
65
+ width: 12px;
66
+ height: 12px;
67
+ background-color: currentColor;
68
+ -webkit-mask-image: var(--icon-go-down);
69
+ mask-image: var(--icon-go-down);
70
+ -webkit-mask-repeat: no-repeat;
71
+ mask-repeat: no-repeat;
72
+ -webkit-mask-size: contain;
73
+ mask-size: contain;
74
+ -webkit-mask-position: center;
75
+ mask-position: center;
76
+ }
77
+ }
78
+ }
@@ -0,0 +1,67 @@
1
+ // _headerbar.scss — adw-header-bar styling.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_headerbar.scss
3
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_header-bar.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
7
+
8
+ adw-header-bar {
9
+ display: flex;
10
+ align-items: center;
11
+ min-height: 47px;
12
+ padding: 0 6px;
13
+ background-color: var(--headerbar-bg-color);
14
+ color: var(--headerbar-fg-color);
15
+ box-shadow: inset 0 -1px var(--headerbar-shade-color);
16
+ flex-shrink: 0;
17
+
18
+ .adw-header-bar-center {
19
+ flex: 1;
20
+ display: flex;
21
+ justify-content: center;
22
+ }
23
+
24
+ .adw-header-bar-title {
25
+ font-weight: bold;
26
+ font-size: var(--font-size-base);
27
+ white-space: nowrap;
28
+ overflow: hidden;
29
+ text-overflow: ellipsis;
30
+ }
31
+
32
+ .adw-header-bar-start {
33
+ display: flex;
34
+ align-items: center;
35
+ padding: 0 6px;
36
+ gap: 4px;
37
+ }
38
+
39
+ .adw-header-bar-end {
40
+ display: flex;
41
+ align-items: center;
42
+ padding: 0 6px;
43
+ gap: 4px;
44
+ }
45
+
46
+ .adw-header-btn {
47
+ position: relative;
48
+ width: 34px;
49
+ height: 34px;
50
+ border: none;
51
+ border-radius: var(--button-radius);
52
+ background: transparent;
53
+ color: var(--headerbar-fg-color);
54
+ cursor: pointer;
55
+ padding: 0;
56
+ margin: 0;
57
+ flex-shrink: 0;
58
+
59
+ &:hover {
60
+ background: rgba(128, 128, 128, 0.12);
61
+ }
62
+
63
+ &:active {
64
+ background: rgba(128, 128, 128, 0.22);
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,8 @@
1
+ // _icons.generated.scss — auto-generated by scripts/build-scss.mjs
2
+ // DO NOT EDIT — regenerated on every build from @gjsify/adwaita-icons.
3
+
4
+ :root {
5
+ --icon-edit-paste: url("data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20h%20-2%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%209%20c%200%201.644531%201.355469%203%203%203%20h%208%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-9%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20h%20-2%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%20-3%203%20h%201%20v%201%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-1%20h%201%20c%200.570312%200%201%200.429688%201%201%20v%209%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-8%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-9%20c%200%20-0.570312%200.429688%20-1%201%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E");
6
+ --icon-go-down: url("data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%201%205%20c%200%20-0.265625%200.105469%20-0.519531%200.292969%20-0.707031%20c%200.390625%20-0.390625%201.023437%20-0.390625%201.414062%200%20l%205.292969%205.292969%20l%205.292969%20-5.292969%20c%200.390625%20-0.390625%201.023437%20-0.390625%201.414062%200%20c%200.1875%200.1875%200.292969%200.441406%200.292969%200.707031%20s%20-0.105469%200.519531%20-0.292969%200.707031%20l%20-6%206%20c%20-0.390625%200.390625%20-1.023437%200.390625%20-1.414062%200%20l%20-6%20-6%20c%20-0.1875%20-0.1875%20-0.292969%20-0.441406%20-0.292969%20-0.707031%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E");
7
+ --icon-sidebar-show: url("data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%206%2013%20v%20-10%20h%20-3%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%208%20c%200%200.550781%200.449219%201%201%201%20z%20m%200%200'%20fill-opacity%3D'0.34902'%2F%3E%20%3Cpath%20d%3D'm%203%201%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%208%20c%200%201.644531%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-8%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%200%202%20h%203%20v%2010%20h%20-3%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-8%20c%200%20-0.570312%200.429688%20-1%201%20-1%20z%20m%204%200%20h%206%20c%200.570312%200%201%200.429688%201%201%20v%208%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-6%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E");
8
+ }
@@ -0,0 +1,106 @@
1
+ // _overlay_split_view.scss — adw-overlay-split-view styling.
2
+ // Reference: refs/libadwaita/src/adw-overlay-split-view.c
3
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
4
+ // Modifications: Implemented as Web Component for @gjsify/adwaita-web.
5
+
6
+ adw-overlay-split-view {
7
+ display: flex;
8
+ flex-direction: row;
9
+ flex: 1;
10
+ min-height: 0;
11
+ position: relative;
12
+ overflow: hidden;
13
+
14
+ .adw-osv-sidebar {
15
+ background-color: var(--sidebar-bg-color);
16
+ overflow-y: auto;
17
+ flex-shrink: 0;
18
+ transition: transform 0.2s ease, opacity 0.2s ease, margin 0.2s ease;
19
+ z-index: 10;
20
+ align-self: stretch;
21
+ }
22
+
23
+ .adw-osv-content {
24
+ flex: 1;
25
+ min-width: 0;
26
+ min-height: 0;
27
+ display: flex;
28
+ flex-direction: column;
29
+ align-self: stretch;
30
+ }
31
+
32
+ // Docked mode (not collapsed) — sidebar beside content
33
+ &:not(.collapsed) .adw-osv-sidebar {
34
+ position: relative;
35
+ }
36
+
37
+ // Docked hide: slide left and collapse via opacity. Sidebar keeps its
38
+ // intrinsic width so internal elements don't reflow.
39
+ &:not(.collapsed):not(.show-sidebar) .adw-osv-sidebar {
40
+ transform: translateX(-100%);
41
+ opacity: 0;
42
+ pointer-events: none;
43
+ }
44
+
45
+ // Overlay mode (collapsed) — sidebar on top of content
46
+ &.collapsed .adw-osv-sidebar {
47
+ position: absolute;
48
+ top: 0;
49
+ bottom: 0;
50
+ left: 0;
51
+ transform: translateX(-100%);
52
+ opacity: 0;
53
+ pointer-events: none;
54
+ }
55
+
56
+ &.collapsed.sidebar-end .adw-osv-sidebar {
57
+ left: auto;
58
+ right: 0;
59
+ transform: translateX(100%);
60
+ }
61
+
62
+ &.collapsed.show-sidebar .adw-osv-sidebar {
63
+ transform: translateX(0);
64
+ opacity: 1;
65
+ pointer-events: auto;
66
+ }
67
+
68
+ // Backdrop — visible only in overlay mode when sidebar is open
69
+ .adw-osv-backdrop {
70
+ display: none;
71
+ }
72
+
73
+ &.collapsed.show-sidebar .adw-osv-backdrop {
74
+ display: block;
75
+ position: absolute;
76
+ inset: 0;
77
+ background: rgba(0, 0, 0, 0.3);
78
+ z-index: 9;
79
+ }
80
+ }
81
+
82
+ // Sidebar content layout helper — wraps the sidebar's children with the
83
+ // standard Adwaita spacing scale (12px padding, 12px gap between groups).
84
+ .adw-sidebar-content {
85
+ padding: var(--spacing-m);
86
+ display: flex;
87
+ flex-direction: column;
88
+ gap: var(--spacing-m);
89
+ }
90
+
91
+ // Sidebar toggle button — sidebar-show-symbolic icon via CSS mask
92
+ .adw-sidebar-toggle-icon::after {
93
+ content: '';
94
+ position: absolute;
95
+ inset: 0;
96
+ background-color: currentColor;
97
+ -webkit-mask-image: var(--icon-sidebar-show);
98
+ mask-image: var(--icon-sidebar-show);
99
+ -webkit-mask-repeat: no-repeat;
100
+ mask-repeat: no-repeat;
101
+ -webkit-mask-size: 16px 16px;
102
+ mask-size: 16px 16px;
103
+ -webkit-mask-position: center;
104
+ mask-position: center;
105
+ pointer-events: none;
106
+ }
@@ -0,0 +1,35 @@
1
+ // _preferences.scss — adw-preferences-group styling.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_preferences.scss
3
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_preferences.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
7
+
8
+ adw-preferences-group {
9
+ display: block;
10
+
11
+ .adw-preferences-group-header {
12
+ padding: var(--spacing-xs) 2px;
13
+ }
14
+
15
+ .adw-preferences-group-title {
16
+ font-size: var(--font-size-small);
17
+ font-weight: 700;
18
+ text-transform: uppercase;
19
+ letter-spacing: 0.5px;
20
+ opacity: var(--dim-opacity);
21
+ margin: 0;
22
+ color: var(--window-fg-color);
23
+ }
24
+
25
+ .adw-preferences-group-listbox {
26
+ background-color: var(--card-bg-color);
27
+ color: var(--card-fg-color);
28
+ border-radius: var(--card-radius);
29
+ box-shadow:
30
+ 0 0 0 1px rgb(0 0 6 / 3%),
31
+ 0 1px 3px 1px rgb(0 0 6 / 7%),
32
+ 0 2px 6px 2px rgb(0 0 6 / 3%);
33
+ overflow: hidden;
34
+ }
35
+ }
package/scss/_row.scss ADDED
@@ -0,0 +1,29 @@
1
+ // _row.scss — Shared base styling for rows in preferences groups.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_row_types.scss
3
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_action-row.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
7
+
8
+ adw-switch-row,
9
+ adw-combo-row {
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: space-between;
13
+ min-height: 50px;
14
+ padding: var(--spacing-s) var(--spacing-m);
15
+ gap: var(--spacing-m);
16
+ border-bottom: 1px solid var(--card-shade-color);
17
+
18
+ &:last-child {
19
+ border-bottom: none;
20
+ }
21
+ }
22
+
23
+ // Utility separator (used by content layouts)
24
+ .adw-separator-vertical {
25
+ width: 1px;
26
+ align-self: stretch;
27
+ background-color: var(--card-shade-color);
28
+ flex-shrink: 0;
29
+ }
@@ -0,0 +1,68 @@
1
+ // _spin_row.scss — adw-spin-row styling.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_spin_button.scss
3
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_spin-button.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
7
+
8
+ adw-spin-row {
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: space-between;
12
+ min-height: 50px;
13
+ padding: var(--spacing-s) var(--spacing-m);
14
+ gap: var(--spacing-m);
15
+ border-bottom: 1px solid var(--card-shade-color);
16
+
17
+ &:last-child {
18
+ border-bottom: none;
19
+ }
20
+
21
+ .adw-row-title {
22
+ flex: 1;
23
+ font-size: var(--font-size-base);
24
+ color: var(--card-fg-color);
25
+ }
26
+ }
27
+
28
+ .adw-spin-control {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: 2px;
32
+
33
+ button {
34
+ width: 32px;
35
+ height: 32px;
36
+ border: none;
37
+ border-radius: var(--button-radius);
38
+ background: transparent;
39
+ color: var(--card-fg-color);
40
+ cursor: pointer;
41
+ font-size: 16px;
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: center;
45
+ flex-shrink: 0;
46
+
47
+ &:hover {
48
+ background: rgba(128, 128, 128, 0.15);
49
+ }
50
+ }
51
+
52
+ input {
53
+ width: 56px;
54
+ text-align: center;
55
+ border: none;
56
+ border-radius: var(--button-radius);
57
+ background: rgba(128, 128, 128, 0.1);
58
+ color: var(--card-fg-color);
59
+ font-family: var(--font-family);
60
+ font-size: var(--font-size-base);
61
+ padding: 4px 2px;
62
+
63
+ &:focus {
64
+ outline: 2px solid var(--accent-color);
65
+ outline-offset: -1px;
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,65 @@
1
+ // _switch_row.scss — adw-switch-row styling.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_switch_row.scss
3
+ // Reference: refs/adwaita-web/adwaita-web/scss/_switch.scss
4
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_switch.scss
5
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
6
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
7
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
8
+
9
+ adw-switch-row {
10
+ .adw-row-title {
11
+ flex: 1;
12
+ font-size: var(--font-size-base);
13
+ color: var(--card-fg-color);
14
+ }
15
+
16
+ .adw-switch {
17
+ position: relative;
18
+ display: inline-block;
19
+ width: 44px;
20
+ height: 24px;
21
+ flex-shrink: 0;
22
+
23
+ input {
24
+ opacity: 0;
25
+ width: 0;
26
+ height: 0;
27
+ position: absolute;
28
+ }
29
+ }
30
+
31
+ .adw-switch-slider {
32
+ position: absolute;
33
+ cursor: pointer;
34
+ inset: 0;
35
+ background-color: var(--switch-off-bg);
36
+ border-radius: 12px;
37
+ transition: background-color 0.15s ease-out;
38
+
39
+ &::before {
40
+ content: "";
41
+ position: absolute;
42
+ height: 20px;
43
+ width: 20px;
44
+ left: 2px;
45
+ bottom: 2px;
46
+ background-color: var(--switch-knob-bg);
47
+ border-radius: 50%;
48
+ transition: transform 0.15s ease-out;
49
+ box-shadow: 0 1px 2px rgb(0 0 0 / 20%);
50
+ }
51
+ }
52
+
53
+ .adw-switch input:checked + .adw-switch-slider {
54
+ background-color: var(--accent-bg-color);
55
+
56
+ &::before {
57
+ transform: translateX(20px);
58
+ }
59
+ }
60
+
61
+ .adw-switch input:focus-visible + .adw-switch-slider {
62
+ outline: 2px solid var(--accent-color);
63
+ outline-offset: 2px;
64
+ }
65
+ }
@@ -0,0 +1,34 @@
1
+ // _theme.scss — Light/dark theme switching.
2
+ // Auto via prefers-color-scheme + manual .theme-dark / .theme-light overrides.
3
+ // Reference: refs/libadwaita/src/stylesheet/_colors.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
6
+
7
+ @mixin dark-theme {
8
+ --window-bg-color: #222226;
9
+ --window-fg-color: #ffffff;
10
+ --view-bg-color: #1d1d20;
11
+ --view-fg-color: #ffffff;
12
+ --headerbar-bg-color: #2e2e32;
13
+ --headerbar-fg-color: #ffffff;
14
+ --headerbar-shade-color: rgba(0, 0, 6, 0.36);
15
+ --sidebar-bg-color: #2e2e32;
16
+ --card-bg-color: rgba(255, 255, 255, 0.08);
17
+ --card-fg-color: #ffffff;
18
+ --card-shade-color: rgba(0, 0, 6, 0.36);
19
+ --accent-color: #78aeed;
20
+ --switch-off-bg: rgba(255, 255, 255, 0.2);
21
+ --switch-knob-bg: #deddda;
22
+ }
23
+
24
+ // Auto dark theme via prefers-color-scheme — opt out with .theme-light
25
+ @media (prefers-color-scheme: dark) {
26
+ :root:not(.theme-light) {
27
+ @include dark-theme;
28
+ }
29
+ }
30
+
31
+ // Manual override
32
+ :root.theme-dark {
33
+ @include dark-theme;
34
+ }
@@ -0,0 +1,60 @@
1
+ // _toast.scss — adw-toast and adw-toast-overlay styling.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_toast.scss
3
+ // Reference: refs/adwaita-web/adwaita-web/scss/_toast_overlay.scss
4
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_toast.scss
5
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
6
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
7
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
8
+
9
+ adw-toast-overlay {
10
+ position: fixed;
11
+ bottom: 24px;
12
+ left: 50%;
13
+ transform: translateX(-50%);
14
+ z-index: 9999;
15
+ display: flex;
16
+ flex-direction: column-reverse;
17
+ gap: 9px;
18
+ align-items: center;
19
+ pointer-events: none;
20
+ }
21
+
22
+ .adw-toast {
23
+ background-color: #3d3846;
24
+ color: #ffffff;
25
+ padding: 9px 12px;
26
+ border-radius: var(--card-radius);
27
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.25);
28
+ display: flex;
29
+ align-items: center;
30
+ gap: 9px;
31
+ width: max-content;
32
+ max-width: 400px;
33
+ min-height: 36px;
34
+ pointer-events: auto;
35
+ font-family: var(--font-family);
36
+ font-size: var(--font-size-base);
37
+
38
+ opacity: 0;
39
+ transform: translateY(100%) scale(0.9);
40
+ transition: opacity 0.2s cubic-bezier(0, 0, 0.2, 1),
41
+ transform 0.2s cubic-bezier(0, 0, 0.2, 1);
42
+ will-change: transform, opacity;
43
+
44
+ &.visible {
45
+ opacity: 1;
46
+ transform: translateY(0) scale(1);
47
+ }
48
+
49
+ &.hiding {
50
+ opacity: 0;
51
+ transform: translateY(100%) scale(0.9);
52
+ transition-duration: 0.15s;
53
+ transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
54
+ }
55
+
56
+ .adw-toast-title {
57
+ font-weight: normal;
58
+ line-height: 1.3;
59
+ }
60
+ }
@@ -0,0 +1,57 @@
1
+ // _variables.scss — Adwaita CSS custom properties (light theme defaults).
2
+ // Reference: refs/libadwaita/src/stylesheet/_colors.scss (canonical color palette)
3
+ // Reference: refs/adwaita-web/adwaita-web/scss/_variables.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Modifications: Subset adapted for @gjsify/adwaita-web Web Components.
7
+
8
+ :root {
9
+ // Window
10
+ --window-bg-color: #fafafb;
11
+ --window-fg-color: rgba(0, 0, 6, 0.8);
12
+
13
+ // Views
14
+ --view-bg-color: #ffffff;
15
+ --view-fg-color: rgba(0, 0, 6, 0.8);
16
+
17
+ // Header bar
18
+ --headerbar-bg-color: #ffffff;
19
+ --headerbar-fg-color: rgba(0, 0, 6, 0.8);
20
+ --headerbar-shade-color: rgba(0, 0, 6, 0.12);
21
+
22
+ // Sidebar
23
+ --sidebar-bg-color: #ebebed;
24
+
25
+ // Cards / boxed lists
26
+ --card-bg-color: #ffffff;
27
+ --card-fg-color: rgba(0, 0, 6, 0.8);
28
+ --card-shade-color: rgba(0, 0, 6, 0.07);
29
+
30
+ // Accent
31
+ --accent-bg-color: #3584e4;
32
+ --accent-fg-color: #ffffff;
33
+ --accent-color: #1c71d8;
34
+
35
+ // Switch
36
+ --switch-off-bg: rgba(0, 0, 0, 0.2);
37
+ --switch-knob-bg: #ffffff;
38
+
39
+ // Layout radii
40
+ --window-radius: 15px;
41
+ --card-radius: 12px;
42
+ --button-radius: 9px;
43
+
44
+ // Spacing scale
45
+ --spacing-xs: 6px;
46
+ --spacing-s: 9px;
47
+ --spacing-m: 12px;
48
+ --spacing-l: 18px;
49
+ --spacing-xl: 24px;
50
+
51
+ // Typography — GNOME default: Adwaita Sans 11
52
+ --font-family: 'Adwaita Sans', 'Cantarell', 'Inter', 'Segoe UI', sans-serif;
53
+ --font-size-base: 11pt;
54
+ --font-size-small: 9pt;
55
+ --font-size-heading: 12pt;
56
+ --dim-opacity: 0.55;
57
+ }
@@ -0,0 +1,23 @@
1
+ // _window.scss — adw-window styling.
2
+ // Reference: refs/adwaita-web/adwaita-web/scss/_window.scss
3
+ // Reference: refs/libadwaita/src/stylesheet/widgets/_window.scss
4
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
7
+
8
+ adw-window {
9
+ display: flex;
10
+ flex-direction: column;
11
+ background-color: var(--window-bg-color);
12
+ color: var(--window-fg-color);
13
+ font-family: var(--font-family);
14
+ font-size: var(--font-size-base);
15
+ border-radius: var(--window-radius);
16
+ box-shadow:
17
+ 0 0 14px 5px rgb(0 0 0 / 15%),
18
+ 0 0 5px 2px rgb(0 0 0 / 10%),
19
+ 0 0 0 1px rgb(0 0 0 / 5%);
20
+ overflow: hidden;
21
+ outline: 1px solid rgb(255 255 255 / 7%);
22
+ outline-offset: -1px;
23
+ }
@@ -0,0 +1,21 @@
1
+ // adwaita-skin.scss — Main entry point for @gjsify/adwaita-web.
2
+ // Mirrors refs/adwaita-web/adwaita-web/scss/adwaita-skin.scss organization.
3
+ // Reference: refs/adwaita-web/adwaita-web/scss/adwaita-skin.scss
4
+ // Reference: refs/libadwaita/src/stylesheet/widgets/
5
+ // Copyright (c) 2025 csm (adwaita-web). MIT License.
6
+ // Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
7
+ // Modifications: Adapted for @gjsify/adwaita-web Web Components.
8
+
9
+ @use 'icons.generated';
10
+ @use 'variables';
11
+ @use 'theme';
12
+ @use 'window';
13
+ @use 'headerbar';
14
+ @use 'preferences';
15
+ @use 'card';
16
+ @use 'row';
17
+ @use 'switch_row';
18
+ @use 'combo_row';
19
+ @use 'spin_row';
20
+ @use 'toast';
21
+ @use 'overlay_split_view';