ywana-core8 0.2.6 → 0.2.8
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/index.css +452 -54
- package/dist/index.js +267 -89
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +267 -89
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +267 -89
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/desktop/ApplicationMenu.css +153 -54
- package/src/desktop/ApplicationMenu.js +75 -69
- package/src/desktop/Desktop.stories.jsx +87 -12
- package/src/desktop/WindowContext.js +3 -0
- package/src/desktop/WindowManager.js +32 -10
- package/src/desktop/desktop-linux.css +55 -0
- package/src/desktop/desktop-macos.css +57 -0
- package/src/desktop/desktop-windows.css +54 -0
- package/src/desktop/desktop.css +30 -0
- package/src/desktop/desktop.js +100 -66
- package/src/desktop/window.css +98 -0
- package/src/desktop/window.js +163 -2
- package/src/html/button.css +5 -0
- package/src/html/button.js +2 -1
package/dist/index.css
CHANGED
@@ -5449,6 +5449,11 @@ td.actions {
|
|
5449
5449
|
white-space: nowrap;
|
5450
5450
|
}
|
5451
5451
|
|
5452
|
+
/* Ensure icons inside buttons don't block clicks */
|
5453
|
+
.btn .icon {
|
5454
|
+
pointer-events: none;
|
5455
|
+
}
|
5456
|
+
|
5452
5457
|
.btn.outlined {
|
5453
5458
|
color: var(--primary-color);
|
5454
5459
|
border: solid 1px var(--primary-color);
|
@@ -15822,6 +15827,7 @@ li.selected,
|
|
15822
15827
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
15823
15828
|
overflow: hidden;
|
15824
15829
|
user-select: none;
|
15830
|
+
pointer-events: auto; /* Ensure windows are clickable */
|
15825
15831
|
}
|
15826
15832
|
|
15827
15833
|
.window:focus-within {
|
@@ -16061,21 +16067,119 @@ li.selected,
|
|
16061
16067
|
.window--dragging * {
|
16062
16068
|
user-select: none !important;
|
16063
16069
|
}
|
16064
|
-
|
16070
|
+
|
16071
|
+
/* Window Resize Handles */
|
16072
|
+
.window__resize-handle {
|
16073
|
+
position: absolute;
|
16074
|
+
background: transparent;
|
16075
|
+
z-index: 10;
|
16076
|
+
}
|
16077
|
+
|
16078
|
+
/* Edge handles */
|
16079
|
+
.window__resize-handle--n {
|
16080
|
+
top: -3px;
|
16081
|
+
left: 8px;
|
16082
|
+
right: 8px;
|
16083
|
+
height: 6px;
|
16084
|
+
cursor: n-resize;
|
16085
|
+
}
|
16086
|
+
|
16087
|
+
.window__resize-handle--s {
|
16088
|
+
bottom: -3px;
|
16089
|
+
left: 8px;
|
16090
|
+
right: 8px;
|
16091
|
+
height: 6px;
|
16092
|
+
cursor: s-resize;
|
16093
|
+
}
|
16094
|
+
|
16095
|
+
.window__resize-handle--e {
|
16096
|
+
top: 8px;
|
16097
|
+
bottom: 8px;
|
16098
|
+
right: -3px;
|
16099
|
+
width: 6px;
|
16100
|
+
cursor: e-resize;
|
16101
|
+
}
|
16102
|
+
|
16103
|
+
.window__resize-handle--w {
|
16104
|
+
top: 8px;
|
16105
|
+
bottom: 8px;
|
16106
|
+
left: -3px;
|
16107
|
+
width: 6px;
|
16108
|
+
cursor: w-resize;
|
16109
|
+
}
|
16110
|
+
|
16111
|
+
/* Corner handles */
|
16112
|
+
.window__resize-handle--ne {
|
16113
|
+
top: -3px;
|
16114
|
+
right: -3px;
|
16115
|
+
width: 12px;
|
16116
|
+
height: 12px;
|
16117
|
+
cursor: ne-resize;
|
16118
|
+
}
|
16119
|
+
|
16120
|
+
.window__resize-handle--nw {
|
16121
|
+
top: -3px;
|
16122
|
+
left: -3px;
|
16123
|
+
width: 12px;
|
16124
|
+
height: 12px;
|
16125
|
+
cursor: nw-resize;
|
16126
|
+
}
|
16127
|
+
|
16128
|
+
.window__resize-handle--se {
|
16129
|
+
bottom: -3px;
|
16130
|
+
right: -3px;
|
16131
|
+
width: 12px;
|
16132
|
+
height: 12px;
|
16133
|
+
cursor: se-resize;
|
16134
|
+
}
|
16135
|
+
|
16136
|
+
.window__resize-handle--sw {
|
16137
|
+
bottom: -3px;
|
16138
|
+
left: -3px;
|
16139
|
+
width: 12px;
|
16140
|
+
height: 12px;
|
16141
|
+
cursor: sw-resize;
|
16142
|
+
}
|
16143
|
+
|
16144
|
+
/* Resize handle hover effects */
|
16145
|
+
.window__resize-handle:hover {
|
16146
|
+
background: rgba(25, 118, 210, 0.2);
|
16147
|
+
}
|
16148
|
+
|
16149
|
+
/* Window resizing state */
|
16150
|
+
.window--resizing {
|
16151
|
+
pointer-events: none;
|
16152
|
+
}
|
16153
|
+
|
16154
|
+
.window--resizing * {
|
16155
|
+
pointer-events: none !important;
|
16156
|
+
}
|
16157
|
+
|
16158
|
+
/* Allow resize handles to work during resize */
|
16159
|
+
.window--resizing .window__resize-handle {
|
16160
|
+
pointer-events: auto !important;
|
16161
|
+
}
|
16162
|
+
|
16163
|
+
/* Disable text selection during resize */
|
16164
|
+
.window--resizing * {
|
16165
|
+
user-select: none !important;
|
16166
|
+
}
|
16167
|
+
/* ApplicationMenu - Positioned over workspace only */
|
16065
16168
|
|
16066
16169
|
.application-menu-overlay {
|
16067
|
-
position:
|
16170
|
+
position: absolute;
|
16068
16171
|
top: 0;
|
16069
16172
|
left: 0;
|
16070
16173
|
right: 0;
|
16071
|
-
bottom: 0;
|
16174
|
+
bottom: 0; /* Covers entire workspace container */
|
16072
16175
|
background: rgba(0, 0, 0, 0.8);
|
16073
16176
|
backdrop-filter: blur(8px);
|
16074
|
-
z-index: 10000;
|
16177
|
+
z-index: 10000; /* Always above all windows */
|
16075
16178
|
display: flex;
|
16076
16179
|
align-items: center;
|
16077
16180
|
justify-content: center;
|
16078
16181
|
animation: fadeIn 0.2s ease-out;
|
16182
|
+
pointer-events: auto; /* Ensure menu is clickable */
|
16079
16183
|
}
|
16080
16184
|
|
16081
16185
|
@keyframes fadeIn {
|
@@ -16092,11 +16196,15 @@ li.selected,
|
|
16092
16196
|
border-radius: 12px;
|
16093
16197
|
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
|
16094
16198
|
width: 90%;
|
16095
|
-
max-width:
|
16096
|
-
height:
|
16097
|
-
max-height:
|
16098
|
-
display:
|
16099
|
-
|
16199
|
+
max-width: 1000px;
|
16200
|
+
height: 90%; /* Use most of workspace height */
|
16201
|
+
max-height: 100%; /* Constrained by workspace container */
|
16202
|
+
display: grid;
|
16203
|
+
grid-template-rows: auto auto 1fr;
|
16204
|
+
grid-template-areas:
|
16205
|
+
"header"
|
16206
|
+
"search"
|
16207
|
+
"main";
|
16100
16208
|
overflow: hidden;
|
16101
16209
|
animation: slideIn 0.3s ease-out;
|
16102
16210
|
}
|
@@ -16114,6 +16222,7 @@ li.selected,
|
|
16114
16222
|
|
16115
16223
|
/* Header */
|
16116
16224
|
.application-menu__header {
|
16225
|
+
grid-area: header;
|
16117
16226
|
display: flex;
|
16118
16227
|
align-items: center;
|
16119
16228
|
justify-content: space-between;
|
@@ -16147,6 +16256,7 @@ li.selected,
|
|
16147
16256
|
|
16148
16257
|
/* Search */
|
16149
16258
|
.application-menu__search {
|
16259
|
+
grid-area: search;
|
16150
16260
|
padding: 16px 24px;
|
16151
16261
|
border-bottom: 1px solid #e0e0e0;
|
16152
16262
|
}
|
@@ -16165,51 +16275,116 @@ li.selected,
|
|
16165
16275
|
border-color: #1976d2;
|
16166
16276
|
}
|
16167
16277
|
|
16278
|
+
/* Main Grid Layout */
|
16279
|
+
.application-menu__main {
|
16280
|
+
grid-area: main;
|
16281
|
+
display: grid;
|
16282
|
+
grid-template-columns: 200px 1fr;
|
16283
|
+
grid-template-areas: "sidebar content";
|
16284
|
+
height: 100%;
|
16285
|
+
overflow: hidden;
|
16286
|
+
}
|
16287
|
+
|
16288
|
+
/* Sidebar */
|
16289
|
+
.application-menu__sidebar {
|
16290
|
+
grid-area: sidebar;
|
16291
|
+
background: #f8f9fa;
|
16292
|
+
border-right: 1px solid #e0e0e0;
|
16293
|
+
overflow: hidden;
|
16294
|
+
display: flex;
|
16295
|
+
flex-direction: column;
|
16296
|
+
}
|
16297
|
+
|
16168
16298
|
/* Categories */
|
16169
16299
|
.application-menu__categories {
|
16170
|
-
|
16171
|
-
|
16172
|
-
|
16173
|
-
|
16174
|
-
|
16175
|
-
|
16300
|
+
flex: 1;
|
16301
|
+
padding: 16px 0;
|
16302
|
+
overflow-y: auto;
|
16303
|
+
scrollbar-width: thin;
|
16304
|
+
scrollbar-color: #ccc transparent;
|
16305
|
+
}
|
16306
|
+
|
16307
|
+
.application-menu__categories::-webkit-scrollbar {
|
16308
|
+
width: 6px;
|
16309
|
+
}
|
16310
|
+
|
16311
|
+
.application-menu__categories::-webkit-scrollbar-track {
|
16312
|
+
background: transparent;
|
16313
|
+
}
|
16314
|
+
|
16315
|
+
.application-menu__categories::-webkit-scrollbar-thumb {
|
16316
|
+
background: #ccc;
|
16317
|
+
border-radius: 3px;
|
16318
|
+
}
|
16319
|
+
|
16320
|
+
.application-menu__categories::-webkit-scrollbar-thumb:hover {
|
16321
|
+
background: #999;
|
16176
16322
|
}
|
16177
16323
|
|
16178
16324
|
.application-menu__category {
|
16179
16325
|
display: flex;
|
16180
16326
|
align-items: center;
|
16181
|
-
gap:
|
16182
|
-
padding:
|
16183
|
-
|
16184
|
-
|
16185
|
-
border
|
16327
|
+
gap: 12px;
|
16328
|
+
padding: 12px 20px;
|
16329
|
+
margin: 2px 8px;
|
16330
|
+
background: transparent;
|
16331
|
+
border: none;
|
16332
|
+
border-radius: 8px;
|
16186
16333
|
cursor: pointer;
|
16187
16334
|
font-size: 14px;
|
16188
|
-
|
16335
|
+
text-align: left;
|
16189
16336
|
transition: all 0.2s ease;
|
16190
16337
|
color: #666;
|
16338
|
+
width: calc(100% - 16px);
|
16191
16339
|
}
|
16192
16340
|
|
16193
16341
|
.application-menu__category:hover {
|
16194
|
-
background: #
|
16195
|
-
|
16342
|
+
background: #e9ecef;
|
16343
|
+
color: #333;
|
16196
16344
|
}
|
16197
16345
|
|
16198
16346
|
.application-menu__category.active {
|
16199
16347
|
background: #1976d2;
|
16200
|
-
border-color: #1976d2;
|
16201
16348
|
color: white;
|
16202
16349
|
}
|
16203
16350
|
|
16204
16351
|
.category-icon {
|
16205
|
-
font-size:
|
16352
|
+
font-size: 18px;
|
16353
|
+
min-width: 18px;
|
16354
|
+
}
|
16355
|
+
|
16356
|
+
.category-name {
|
16357
|
+
flex: 1;
|
16358
|
+
white-space: nowrap;
|
16359
|
+
overflow: hidden;
|
16360
|
+
text-overflow: ellipsis;
|
16206
16361
|
}
|
16207
16362
|
|
16208
16363
|
/* Content */
|
16209
16364
|
.application-menu__content {
|
16210
|
-
|
16365
|
+
grid-area: content;
|
16211
16366
|
overflow-y: auto;
|
16212
16367
|
padding: 24px;
|
16368
|
+
scrollbar-width: thin;
|
16369
|
+
scrollbar-color: #ccc transparent;
|
16370
|
+
}
|
16371
|
+
|
16372
|
+
.application-menu__content::-webkit-scrollbar {
|
16373
|
+
width: 8px;
|
16374
|
+
}
|
16375
|
+
|
16376
|
+
.application-menu__content::-webkit-scrollbar-track {
|
16377
|
+
background: #f1f1f1;
|
16378
|
+
border-radius: 4px;
|
16379
|
+
}
|
16380
|
+
|
16381
|
+
.application-menu__content::-webkit-scrollbar-thumb {
|
16382
|
+
background: #ccc;
|
16383
|
+
border-radius: 4px;
|
16384
|
+
}
|
16385
|
+
|
16386
|
+
.application-menu__content::-webkit-scrollbar-thumb:hover {
|
16387
|
+
background: #999;
|
16213
16388
|
}
|
16214
16389
|
|
16215
16390
|
.application-menu__search-results h3,
|
@@ -16231,8 +16406,9 @@ li.selected,
|
|
16231
16406
|
/* Apps Grid */
|
16232
16407
|
.application-menu__apps-grid {
|
16233
16408
|
display: grid;
|
16234
|
-
grid-template-columns: repeat(auto-fill, minmax(
|
16409
|
+
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
|
16235
16410
|
gap: 16px;
|
16411
|
+
max-width: 100%;
|
16236
16412
|
}
|
16237
16413
|
|
16238
16414
|
.application-menu__app {
|
@@ -16291,55 +16467,81 @@ li.selected,
|
|
16291
16467
|
@media (max-width: 768px) {
|
16292
16468
|
.application-menu {
|
16293
16469
|
width: 95%;
|
16294
|
-
height:
|
16295
|
-
|
16470
|
+
height: 95%;
|
16471
|
+
max-height: 100%; /* Constrained by workspace container */
|
16472
|
+
margin: 5px;
|
16296
16473
|
}
|
16297
|
-
|
16474
|
+
|
16475
|
+
.application-menu__main {
|
16476
|
+
grid-template-columns: 160px 1fr;
|
16477
|
+
}
|
16478
|
+
|
16479
|
+
.application-menu__category {
|
16480
|
+
padding: 10px 16px;
|
16481
|
+
font-size: 13px;
|
16482
|
+
}
|
16483
|
+
|
16484
|
+
.category-icon {
|
16485
|
+
font-size: 16px;
|
16486
|
+
}
|
16487
|
+
|
16298
16488
|
.application-menu__apps-grid {
|
16299
|
-
grid-template-columns: repeat(auto-fill, minmax(
|
16489
|
+
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
|
16300
16490
|
gap: 12px;
|
16301
16491
|
}
|
16302
|
-
|
16492
|
+
|
16303
16493
|
.application-menu__app {
|
16304
16494
|
padding: 12px 8px;
|
16305
16495
|
}
|
16306
|
-
|
16496
|
+
|
16307
16497
|
.app-icon {
|
16308
|
-
font-size:
|
16498
|
+
font-size: 36px;
|
16309
16499
|
}
|
16310
|
-
|
16500
|
+
|
16311
16501
|
.app-name {
|
16312
16502
|
font-size: 12px;
|
16313
16503
|
}
|
16314
|
-
|
16315
|
-
.application-menu__categories {
|
16316
|
-
padding: 12px 16px;
|
16317
|
-
}
|
16318
|
-
|
16504
|
+
|
16319
16505
|
.application-menu__search,
|
16320
16506
|
.application-menu__content {
|
16321
16507
|
padding: 16px;
|
16322
16508
|
}
|
16323
16509
|
}
|
16324
16510
|
|
16325
|
-
|
16326
|
-
|
16327
|
-
width: 8px;
|
16328
|
-
}
|
16511
|
+
@media (max-width: 480px) {
|
16512
|
+
/* ApplicationMenu overlay covers entire workspace on mobile */
|
16329
16513
|
|
16330
|
-
.application-
|
16331
|
-
|
16332
|
-
|
16333
|
-
|
16514
|
+
.application-menu__main {
|
16515
|
+
grid-template-columns: 1fr;
|
16516
|
+
grid-template-rows: auto 1fr;
|
16517
|
+
grid-template-areas:
|
16518
|
+
"sidebar"
|
16519
|
+
"content";
|
16520
|
+
}
|
16334
16521
|
|
16335
|
-
.application-
|
16336
|
-
|
16337
|
-
|
16338
|
-
}
|
16522
|
+
.application-menu__sidebar {
|
16523
|
+
border-right: none;
|
16524
|
+
border-bottom: 1px solid #e0e0e0;
|
16525
|
+
}
|
16339
16526
|
|
16340
|
-
.application-
|
16341
|
-
|
16527
|
+
.application-menu__categories {
|
16528
|
+
display: flex;
|
16529
|
+
flex-direction: row;
|
16530
|
+
overflow-x: auto;
|
16531
|
+
overflow-y: hidden;
|
16532
|
+
padding: 12px 16px;
|
16533
|
+
gap: 8px;
|
16534
|
+
}
|
16535
|
+
|
16536
|
+
.application-menu__category {
|
16537
|
+
flex-shrink: 0;
|
16538
|
+
white-space: nowrap;
|
16539
|
+
margin: 0;
|
16540
|
+
width: auto;
|
16541
|
+
}
|
16342
16542
|
}
|
16543
|
+
|
16544
|
+
|
16343
16545
|
/* Desktop Component Styles */
|
16344
16546
|
|
16345
16547
|
.desktop {
|
@@ -16366,8 +16568,38 @@ li.selected,
|
|
16366
16568
|
width: 100%;
|
16367
16569
|
height: 100%;
|
16368
16570
|
z-index: 1;
|
16571
|
+
display: flex;
|
16572
|
+
flex-direction: column;
|
16573
|
+
}
|
16574
|
+
|
16575
|
+
/* Workspace container - takes available space above taskbar */
|
16576
|
+
.desktop__workspace-container {
|
16577
|
+
position: relative;
|
16578
|
+
flex: 1;
|
16579
|
+
overflow: hidden;
|
16580
|
+
z-index: 1;
|
16581
|
+
}
|
16582
|
+
|
16583
|
+
/* Workspace - container for windows with boundaries */
|
16584
|
+
.workspace {
|
16585
|
+
position: relative;
|
16586
|
+
width: 100%;
|
16587
|
+
height: 100%;
|
16588
|
+
overflow: hidden;
|
16589
|
+
}
|
16590
|
+
|
16591
|
+
.desktop-taskbar {
|
16592
|
+
|
16593
|
+
& .icon {
|
16594
|
+
color: white;
|
16595
|
+
& :hover {
|
16596
|
+
color: #fff;
|
16597
|
+
background-color: rgba(255, 255, 255, 0.1);
|
16598
|
+
}
|
16599
|
+
}
|
16369
16600
|
}
|
16370
16601
|
|
16602
|
+
|
16371
16603
|
/* Desktop variants */
|
16372
16604
|
.desktop--dark {
|
16373
16605
|
color: white;
|
@@ -16503,6 +16735,60 @@ li.selected,
|
|
16503
16735
|
border-color: rgba(255, 255, 255, 0.4);
|
16504
16736
|
}
|
16505
16737
|
|
16738
|
+
/* Windows Start Button Styling */
|
16739
|
+
.desktop--windows .toggle-button {
|
16740
|
+
/* Reset selector styles and apply Windows button styling */
|
16741
|
+
position: relative;
|
16742
|
+
padding: 8px 16px;
|
16743
|
+
display: flex;
|
16744
|
+
align-items: center;
|
16745
|
+
justify-content: center;
|
16746
|
+
gap: 8px;
|
16747
|
+
overflow: hidden;
|
16748
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
16749
|
+
outline: none;
|
16750
|
+
transition: all 0.2s ease;
|
16751
|
+
color: white;
|
16752
|
+
background: linear-gradient(180deg, #0078d4 0%, #106ebe 100%);
|
16753
|
+
min-height: 40px;
|
16754
|
+
border-radius: 4px;
|
16755
|
+
cursor: pointer;
|
16756
|
+
font-family: 'Segoe UI', sans-serif;
|
16757
|
+
font-weight: 500;
|
16758
|
+
text-decoration: none;
|
16759
|
+
white-space: nowrap;
|
16760
|
+
list-style: none;
|
16761
|
+
margin: 0;
|
16762
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
16763
|
+
}
|
16764
|
+
|
16765
|
+
.desktop--windows .toggle-button:hover:not(.toggle-button--disabled) {
|
16766
|
+
background: linear-gradient(180deg, #106ebe 0%, #005a9e 100%);
|
16767
|
+
border-color: rgba(255, 255, 255, 0.3);
|
16768
|
+
transform: none;
|
16769
|
+
}
|
16770
|
+
|
16771
|
+
.desktop--windows .toggle-button.selected {
|
16772
|
+
background: linear-gradient(180deg, #005a9e 0%, #004578 100%);
|
16773
|
+
color: white;
|
16774
|
+
border-color: rgba(255, 255, 255, 0.4);
|
16775
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
|
16776
|
+
}
|
16777
|
+
|
16778
|
+
.desktop--windows .toggle-button:focus {
|
16779
|
+
outline: 2px solid rgba(255, 255, 255, 0.5);
|
16780
|
+
outline-offset: 2px;
|
16781
|
+
}
|
16782
|
+
|
16783
|
+
.desktop--windows .toggle-button--disabled {
|
16784
|
+
background: rgba(200, 200, 200, 0.3) !important;
|
16785
|
+
color: rgba(100, 100, 100, 0.5) !important;
|
16786
|
+
border-color: rgba(255, 255, 255, 0.1) !important;
|
16787
|
+
cursor: not-allowed;
|
16788
|
+
opacity: 1;
|
16789
|
+
box-shadow: none;
|
16790
|
+
}
|
16791
|
+
|
16506
16792
|
/* Windows Application Menu */
|
16507
16793
|
.desktop--windows .application-menu {
|
16508
16794
|
background: rgba(248, 248, 248, 0.95);
|
@@ -16703,6 +16989,61 @@ li.selected,
|
|
16703
16989
|
border-color: rgba(53, 132, 228, 0.5);
|
16704
16990
|
}
|
16705
16991
|
|
16992
|
+
/* Linux Start Button Styling (GNOME Activities) */
|
16993
|
+
.desktop--linux .toggle-button {
|
16994
|
+
/* Reset selector styles and apply Linux button styling */
|
16995
|
+
position: relative;
|
16996
|
+
padding: 8px 16px;
|
16997
|
+
display: flex;
|
16998
|
+
align-items: center;
|
16999
|
+
justify-content: center;
|
17000
|
+
gap: 8px;
|
17001
|
+
overflow: hidden;
|
17002
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
17003
|
+
outline: none;
|
17004
|
+
transition: all 0.3s ease;
|
17005
|
+
color: #ffffff;
|
17006
|
+
background: linear-gradient(180deg, rgba(53, 132, 228, 0.9) 0%, rgba(26, 95, 180, 0.9) 100%);
|
17007
|
+
min-height: 40px;
|
17008
|
+
border-radius: 8px;
|
17009
|
+
cursor: pointer;
|
17010
|
+
font-family: 'Ubuntu', 'Cantarell', sans-serif;
|
17011
|
+
font-weight: 500;
|
17012
|
+
text-decoration: none;
|
17013
|
+
white-space: nowrap;
|
17014
|
+
list-style: none;
|
17015
|
+
margin: 0;
|
17016
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
17017
|
+
}
|
17018
|
+
|
17019
|
+
.desktop--linux .toggle-button:hover:not(.toggle-button--disabled) {
|
17020
|
+
background: linear-gradient(180deg, rgba(53, 132, 228, 1) 0%, rgba(26, 95, 180, 1) 100%);
|
17021
|
+
border-color: rgba(255, 255, 255, 0.25);
|
17022
|
+
transform: translateY(-1px);
|
17023
|
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
|
17024
|
+
}
|
17025
|
+
|
17026
|
+
.desktop--linux .toggle-button.selected {
|
17027
|
+
background: linear-gradient(180deg, rgba(26, 95, 180, 0.9) 0%, rgba(15, 70, 140, 0.9) 100%);
|
17028
|
+
color: #ffffff;
|
17029
|
+
border-color: rgba(255, 255, 255, 0.3);
|
17030
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(53, 132, 228, 0.4);
|
17031
|
+
}
|
17032
|
+
|
17033
|
+
.desktop--linux .toggle-button:focus {
|
17034
|
+
outline: 2px solid rgba(53, 132, 228, 0.6);
|
17035
|
+
outline-offset: 2px;
|
17036
|
+
}
|
17037
|
+
|
17038
|
+
.desktop--linux .toggle-button--disabled {
|
17039
|
+
background: rgba(255, 255, 255, 0.1) !important;
|
17040
|
+
color: rgba(255, 255, 255, 0.4) !important;
|
17041
|
+
border-color: rgba(255, 255, 255, 0.05) !important;
|
17042
|
+
cursor: not-allowed;
|
17043
|
+
opacity: 1;
|
17044
|
+
box-shadow: none;
|
17045
|
+
}
|
17046
|
+
|
16706
17047
|
/* Linux Application Menu (Activities Overview) */
|
16707
17048
|
.desktop--linux .application-menu {
|
16708
17049
|
background: rgba(36, 31, 49, 0.95);
|
@@ -16958,6 +17299,63 @@ li.selected,
|
|
16958
17299
|
color: #007aff;
|
16959
17300
|
}
|
16960
17301
|
|
17302
|
+
/* macOS Start Button Styling (Dock-inspired) */
|
17303
|
+
.desktop--macos .toggle-button {
|
17304
|
+
/* Reset selector styles and apply macOS button styling */
|
17305
|
+
position: relative;
|
17306
|
+
padding: 8px 16px;
|
17307
|
+
display: flex;
|
17308
|
+
align-items: center;
|
17309
|
+
justify-content: center;
|
17310
|
+
gap: 8px;
|
17311
|
+
overflow: hidden;
|
17312
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
17313
|
+
outline: none;
|
17314
|
+
transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
17315
|
+
color: #1d1d1f;
|
17316
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, rgba(248, 248, 248, 0.9) 100%);
|
17317
|
+
min-height: 40px;
|
17318
|
+
border-radius: 12px;
|
17319
|
+
cursor: pointer;
|
17320
|
+
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', sans-serif;
|
17321
|
+
font-weight: 500;
|
17322
|
+
text-decoration: none;
|
17323
|
+
white-space: nowrap;
|
17324
|
+
list-style: none;
|
17325
|
+
margin: 0;
|
17326
|
+
backdrop-filter: blur(20px);
|
17327
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
17328
|
+
}
|
17329
|
+
|
17330
|
+
.desktop--macos .toggle-button:hover:not(.toggle-button--disabled) {
|
17331
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(245, 245, 245, 0.95) 100%);
|
17332
|
+
border-color: rgba(0, 0, 0, 0.15);
|
17333
|
+
transform: translateY(-1px);
|
17334
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
17335
|
+
}
|
17336
|
+
|
17337
|
+
.desktop--macos .toggle-button.selected {
|
17338
|
+
background: linear-gradient(180deg, rgba(0, 122, 255, 0.9) 0%, rgba(0, 100, 210, 0.9) 100%);
|
17339
|
+
color: white;
|
17340
|
+
border-color: rgba(0, 122, 255, 0.3);
|
17341
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2), 0 2px 8px rgba(0, 122, 255, 0.3);
|
17342
|
+
}
|
17343
|
+
|
17344
|
+
.desktop--macos .toggle-button:focus {
|
17345
|
+
outline: 2px solid rgba(0, 122, 255, 0.5);
|
17346
|
+
outline-offset: 2px;
|
17347
|
+
}
|
17348
|
+
|
17349
|
+
.desktop--macos .toggle-button--disabled {
|
17350
|
+
background: rgba(248, 248, 248, 0.5) !important;
|
17351
|
+
color: rgba(60, 60, 67, 0.3) !important;
|
17352
|
+
border-color: rgba(0, 0, 0, 0.05) !important;
|
17353
|
+
cursor: not-allowed;
|
17354
|
+
opacity: 1;
|
17355
|
+
box-shadow: none;
|
17356
|
+
backdrop-filter: none;
|
17357
|
+
}
|
17358
|
+
|
16961
17359
|
/* macOS Application Menu (Launchpad-inspired) */
|
16962
17360
|
.desktop--macos .application-menu {
|
16963
17361
|
background: rgba(255, 255, 255, 0.9);
|