ywana-core8 0.2.5 → 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 +1134 -54
- package/dist/index.js +293 -90
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +293 -90
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +293 -90
- 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 +256 -11
- package/src/desktop/WindowContext.js +4 -0
- package/src/desktop/WindowManager.js +54 -9
- package/src/desktop/desktop-linux.css +287 -0
- package/src/desktop/desktop-macos.css +317 -0
- package/src/desktop/desktop-windows.css +244 -0
- package/src/desktop/desktop.css +30 -0
- package/src/desktop/desktop.js +107 -67
- package/src/desktop/window.css +98 -0
- package/src/desktop/window.js +172 -4
- 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;
|
@@ -16397,6 +16629,854 @@ li.selected,
|
|
16397
16629
|
font-size: 12px;
|
16398
16630
|
}
|
16399
16631
|
}
|
16632
|
+
/* Windows Desktop Theme */
|
16633
|
+
|
16634
|
+
.desktop--windows {
|
16635
|
+
background: linear-gradient(135deg, #0078d4 0%, #106ebe 100%);
|
16636
|
+
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
16637
|
+
}
|
16638
|
+
|
16639
|
+
.desktop--windows .desktop__background {
|
16640
|
+
background-image:
|
16641
|
+
radial-gradient(circle at 20% 80%, rgba(120, 119, 198, 0.3) 0%, transparent 50%),
|
16642
|
+
radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.15) 0%, transparent 50%),
|
16643
|
+
radial-gradient(circle at 40% 40%, rgba(120, 119, 198, 0.15) 0%, transparent 50%);
|
16644
|
+
}
|
16645
|
+
|
16646
|
+
/* Windows-style taskbar */
|
16647
|
+
.desktop--windows .window {
|
16648
|
+
border: 1px solid #cccccc;
|
16649
|
+
border-radius: 8px;
|
16650
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
|
16651
|
+
background: #ffffff;
|
16652
|
+
}
|
16653
|
+
|
16654
|
+
.desktop--windows .window__header {
|
16655
|
+
background: linear-gradient(180deg, #f0f0f0 0%, #e5e5e5 100%);
|
16656
|
+
border-bottom: 1px solid #d0d0d0;
|
16657
|
+
border-radius: 8px 8px 0 0;
|
16658
|
+
height: 32px;
|
16659
|
+
padding: 0 12px;
|
16660
|
+
}
|
16661
|
+
|
16662
|
+
.desktop--windows .window__title {
|
16663
|
+
font-size: 13px;
|
16664
|
+
font-weight: 400;
|
16665
|
+
color: #333333;
|
16666
|
+
}
|
16667
|
+
|
16668
|
+
.desktop--windows .window__control {
|
16669
|
+
width: 46px;
|
16670
|
+
height: 32px;
|
16671
|
+
border: none;
|
16672
|
+
background: transparent;
|
16673
|
+
font-size: 10px;
|
16674
|
+
font-family: 'Segoe MDL2 Assets', 'Segoe UI Symbol', sans-serif;
|
16675
|
+
color: #333333;
|
16676
|
+
display: flex;
|
16677
|
+
align-items: center;
|
16678
|
+
justify-content: center;
|
16679
|
+
transition: background-color 0.1s ease;
|
16680
|
+
}
|
16681
|
+
|
16682
|
+
.desktop--windows .window__control:hover {
|
16683
|
+
background: rgba(0, 0, 0, 0.1);
|
16684
|
+
}
|
16685
|
+
|
16686
|
+
.desktop--windows .window__control--minimize:hover {
|
16687
|
+
background: #e5e5e5;
|
16688
|
+
}
|
16689
|
+
|
16690
|
+
.desktop--windows .window__control--maximize:hover {
|
16691
|
+
background: #e5e5e5;
|
16692
|
+
}
|
16693
|
+
|
16694
|
+
.desktop--windows .window__control--close:hover {
|
16695
|
+
background: #e81123;
|
16696
|
+
color: white;
|
16697
|
+
}
|
16698
|
+
|
16699
|
+
.desktop--windows .window__control--minimize::before {
|
16700
|
+
content: '🗕';
|
16701
|
+
}
|
16702
|
+
|
16703
|
+
.desktop--windows .window__control--maximize::before {
|
16704
|
+
content: '🗖';
|
16705
|
+
}
|
16706
|
+
|
16707
|
+
.desktop--windows .window__control--close::before {
|
16708
|
+
content: '🗙';
|
16709
|
+
}
|
16710
|
+
|
16711
|
+
/* Windows taskbar styling */
|
16712
|
+
.desktop--windows .desktop-taskbar {
|
16713
|
+
background: rgba(0, 0, 0, 0.8);
|
16714
|
+
backdrop-filter: blur(20px);
|
16715
|
+
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
16716
|
+
}
|
16717
|
+
|
16718
|
+
.desktop--windows .taskbar-button {
|
16719
|
+
background: rgba(255, 255, 255, 0.1);
|
16720
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
16721
|
+
border-radius: 4px;
|
16722
|
+
color: white;
|
16723
|
+
font-family: 'Segoe UI', sans-serif;
|
16724
|
+
font-size: 14px;
|
16725
|
+
transition: all 0.2s ease;
|
16726
|
+
}
|
16727
|
+
|
16728
|
+
.desktop--windows .taskbar-button:hover {
|
16729
|
+
background: rgba(255, 255, 255, 0.2);
|
16730
|
+
border-color: rgba(255, 255, 255, 0.3);
|
16731
|
+
}
|
16732
|
+
|
16733
|
+
.desktop--windows .taskbar-button--active {
|
16734
|
+
background: rgba(255, 255, 255, 0.25);
|
16735
|
+
border-color: rgba(255, 255, 255, 0.4);
|
16736
|
+
}
|
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
|
+
|
16792
|
+
/* Windows Application Menu */
|
16793
|
+
.desktop--windows .application-menu {
|
16794
|
+
background: rgba(248, 248, 248, 0.95);
|
16795
|
+
backdrop-filter: blur(20px);
|
16796
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
16797
|
+
border-radius: 8px;
|
16798
|
+
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
|
16799
|
+
}
|
16800
|
+
|
16801
|
+
.desktop--windows .application-menu__header {
|
16802
|
+
background: linear-gradient(180deg, #f8f8f8 0%, #e8e8e8 100%);
|
16803
|
+
border-bottom: 1px solid #d0d0d0;
|
16804
|
+
}
|
16805
|
+
|
16806
|
+
.desktop--windows .application-menu__search-input {
|
16807
|
+
border: 2px solid #e0e0e0;
|
16808
|
+
border-radius: 4px;
|
16809
|
+
font-family: 'Segoe UI', sans-serif;
|
16810
|
+
}
|
16811
|
+
|
16812
|
+
.desktop--windows .application-menu__search-input:focus {
|
16813
|
+
border-color: #0078d4;
|
16814
|
+
outline: none;
|
16815
|
+
}
|
16816
|
+
|
16817
|
+
.desktop--windows .application-menu__category {
|
16818
|
+
background: #ffffff;
|
16819
|
+
border: 1px solid #e0e0e0;
|
16820
|
+
border-radius: 16px;
|
16821
|
+
font-family: 'Segoe UI', sans-serif;
|
16822
|
+
font-size: 13px;
|
16823
|
+
}
|
16824
|
+
|
16825
|
+
.desktop--windows .application-menu__category:hover {
|
16826
|
+
background: #f5f5f5;
|
16827
|
+
border-color: #d0d0d0;
|
16828
|
+
}
|
16829
|
+
|
16830
|
+
.desktop--windows .application-menu__category.active {
|
16831
|
+
background: #0078d4;
|
16832
|
+
border-color: #0078d4;
|
16833
|
+
color: white;
|
16834
|
+
}
|
16835
|
+
|
16836
|
+
.desktop--windows .application-menu__app {
|
16837
|
+
background: #ffffff;
|
16838
|
+
border: 1px solid transparent;
|
16839
|
+
border-radius: 8px;
|
16840
|
+
transition: all 0.15s ease;
|
16841
|
+
}
|
16842
|
+
|
16843
|
+
.desktop--windows .application-menu__app:hover {
|
16844
|
+
background: #f5f5f5;
|
16845
|
+
border-color: #e0e0e0;
|
16846
|
+
transform: translateY(-1px);
|
16847
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
16848
|
+
}
|
16849
|
+
|
16850
|
+
.desktop--windows .app-name {
|
16851
|
+
font-family: 'Segoe UI', sans-serif;
|
16852
|
+
font-size: 13px;
|
16853
|
+
font-weight: 400;
|
16854
|
+
color: #333333;
|
16855
|
+
}
|
16856
|
+
|
16857
|
+
/* Windows scrollbar */
|
16858
|
+
.desktop--windows .application-menu__content::-webkit-scrollbar {
|
16859
|
+
width: 12px;
|
16860
|
+
}
|
16861
|
+
|
16862
|
+
.desktop--windows .application-menu__content::-webkit-scrollbar-track {
|
16863
|
+
background: #f1f1f1;
|
16864
|
+
border-radius: 6px;
|
16865
|
+
}
|
16866
|
+
|
16867
|
+
.desktop--windows .application-menu__content::-webkit-scrollbar-thumb {
|
16868
|
+
background: #c1c1c1;
|
16869
|
+
border-radius: 6px;
|
16870
|
+
border: 2px solid #f1f1f1;
|
16871
|
+
}
|
16872
|
+
|
16873
|
+
.desktop--windows .application-menu__content::-webkit-scrollbar-thumb:hover {
|
16874
|
+
background: #a8a8a8;
|
16875
|
+
}
|
16876
|
+
/* Linux Desktop Theme (GNOME/Ubuntu inspired) */
|
16877
|
+
|
16878
|
+
.desktop--linux {
|
16879
|
+
background: linear-gradient(135deg, #2c001e 0%, #4c2c92 50%, #0e4b99 100%);
|
16880
|
+
font-family: 'Ubuntu', 'Cantarell', 'DejaVu Sans', sans-serif;
|
16881
|
+
}
|
16882
|
+
|
16883
|
+
.desktop--linux .desktop__background {
|
16884
|
+
background-image:
|
16885
|
+
radial-gradient(circle at 30% 70%, rgba(233, 84, 32, 0.2) 0%, transparent 50%),
|
16886
|
+
radial-gradient(circle at 70% 30%, rgba(119, 41, 83, 0.3) 0%, transparent 50%),
|
16887
|
+
radial-gradient(circle at 50% 50%, rgba(14, 75, 153, 0.2) 0%, transparent 50%);
|
16888
|
+
}
|
16889
|
+
|
16890
|
+
/* Linux-style windows (GNOME) */
|
16891
|
+
.desktop--linux .window {
|
16892
|
+
border: 1px solid #2d2d2d;
|
16893
|
+
border-radius: 12px 12px 0 0;
|
16894
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
|
16895
|
+
background: #ffffff;
|
16896
|
+
overflow: hidden;
|
16897
|
+
}
|
16898
|
+
|
16899
|
+
.desktop--linux .window__header {
|
16900
|
+
background: linear-gradient(180deg, #f6f5f4 0%, #e6e5e4 100%);
|
16901
|
+
border-bottom: 1px solid #d0cfce;
|
16902
|
+
border-radius: 12px 12px 0 0;
|
16903
|
+
height: 38px;
|
16904
|
+
padding: 0 16px;
|
16905
|
+
}
|
16906
|
+
|
16907
|
+
.desktop--linux .window__title {
|
16908
|
+
font-size: 14px;
|
16909
|
+
font-weight: 500;
|
16910
|
+
color: #2e3436;
|
16911
|
+
}
|
16912
|
+
|
16913
|
+
.desktop--linux .window__control {
|
16914
|
+
width: 24px;
|
16915
|
+
height: 24px;
|
16916
|
+
border: none;
|
16917
|
+
border-radius: 50%;
|
16918
|
+
font-size: 12px;
|
16919
|
+
color: #2e3436;
|
16920
|
+
display: flex;
|
16921
|
+
align-items: center;
|
16922
|
+
justify-content: center;
|
16923
|
+
transition: all 0.2s ease;
|
16924
|
+
margin-left: 8px;
|
16925
|
+
}
|
16926
|
+
|
16927
|
+
.desktop--linux .window__control--minimize {
|
16928
|
+
background: #f6d32d;
|
16929
|
+
border: 1px solid #f5c211;
|
16930
|
+
}
|
16931
|
+
|
16932
|
+
.desktop--linux .window__control--maximize {
|
16933
|
+
background: #33d17a;
|
16934
|
+
border: 1px solid #2ec27e;
|
16935
|
+
}
|
16936
|
+
|
16937
|
+
.desktop--linux .window__control--close {
|
16938
|
+
background: #e01b24;
|
16939
|
+
border: 1px solid #c01c28;
|
16940
|
+
color: white;
|
16941
|
+
}
|
16942
|
+
|
16943
|
+
.desktop--linux .window__control:hover {
|
16944
|
+
transform: scale(1.1);
|
16945
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
16946
|
+
}
|
16947
|
+
|
16948
|
+
.desktop--linux .window__control--minimize::before {
|
16949
|
+
content: '−';
|
16950
|
+
font-weight: bold;
|
16951
|
+
}
|
16952
|
+
|
16953
|
+
.desktop--linux .window__control--maximize::before {
|
16954
|
+
content: '□';
|
16955
|
+
font-weight: bold;
|
16956
|
+
}
|
16957
|
+
|
16958
|
+
.desktop--linux .window__control--close::before {
|
16959
|
+
content: '×';
|
16960
|
+
font-weight: bold;
|
16961
|
+
}
|
16962
|
+
|
16963
|
+
/* Linux taskbar styling (GNOME Activities) */
|
16964
|
+
.desktop--linux .desktop-taskbar {
|
16965
|
+
background: rgba(0, 0, 0, 0.85);
|
16966
|
+
backdrop-filter: blur(10px);
|
16967
|
+
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
16968
|
+
}
|
16969
|
+
|
16970
|
+
.desktop--linux .taskbar-button {
|
16971
|
+
background: rgba(255, 255, 255, 0.08);
|
16972
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
16973
|
+
border-radius: 8px;
|
16974
|
+
color: #ffffff;
|
16975
|
+
font-family: 'Ubuntu', sans-serif;
|
16976
|
+
font-size: 13px;
|
16977
|
+
font-weight: 400;
|
16978
|
+
transition: all 0.3s ease;
|
16979
|
+
}
|
16980
|
+
|
16981
|
+
.desktop--linux .taskbar-button:hover {
|
16982
|
+
background: rgba(255, 255, 255, 0.15);
|
16983
|
+
border-color: rgba(255, 255, 255, 0.25);
|
16984
|
+
transform: translateY(-1px);
|
16985
|
+
}
|
16986
|
+
|
16987
|
+
.desktop--linux .taskbar-button--active {
|
16988
|
+
background: rgba(53, 132, 228, 0.3);
|
16989
|
+
border-color: rgba(53, 132, 228, 0.5);
|
16990
|
+
}
|
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
|
+
|
17047
|
+
/* Linux Application Menu (Activities Overview) */
|
17048
|
+
.desktop--linux .application-menu {
|
17049
|
+
background: rgba(36, 31, 49, 0.95);
|
17050
|
+
backdrop-filter: blur(20px);
|
17051
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
17052
|
+
border-radius: 12px;
|
17053
|
+
box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
|
17054
|
+
color: #ffffff;
|
17055
|
+
}
|
17056
|
+
|
17057
|
+
.desktop--linux .application-menu__header {
|
17058
|
+
background: linear-gradient(180deg, rgba(46, 52, 54, 0.8) 0%, rgba(36, 31, 49, 0.8) 100%);
|
17059
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
17060
|
+
color: #ffffff;
|
17061
|
+
}
|
17062
|
+
|
17063
|
+
.desktop--linux .application-menu__header h2 {
|
17064
|
+
color: #ffffff;
|
17065
|
+
font-family: 'Ubuntu', sans-serif;
|
17066
|
+
font-weight: 500;
|
17067
|
+
}
|
17068
|
+
|
17069
|
+
.desktop--linux .application-menu__close {
|
17070
|
+
color: #ffffff;
|
17071
|
+
background: rgba(255, 255, 255, 0.1);
|
17072
|
+
border-radius: 6px;
|
17073
|
+
}
|
17074
|
+
|
17075
|
+
.desktop--linux .application-menu__close:hover {
|
17076
|
+
background: rgba(224, 27, 36, 0.8);
|
17077
|
+
}
|
17078
|
+
|
17079
|
+
.desktop--linux .application-menu__search-input {
|
17080
|
+
background: rgba(255, 255, 255, 0.1);
|
17081
|
+
border: 2px solid rgba(255, 255, 255, 0.2);
|
17082
|
+
border-radius: 8px;
|
17083
|
+
color: #ffffff;
|
17084
|
+
font-family: 'Ubuntu', sans-serif;
|
17085
|
+
}
|
17086
|
+
|
17087
|
+
.desktop--linux .application-menu__search-input::placeholder {
|
17088
|
+
color: rgba(255, 255, 255, 0.6);
|
17089
|
+
}
|
17090
|
+
|
17091
|
+
.desktop--linux .application-menu__search-input:focus {
|
17092
|
+
border-color: rgba(53, 132, 228, 0.8);
|
17093
|
+
background: rgba(255, 255, 255, 0.15);
|
17094
|
+
outline: none;
|
17095
|
+
}
|
17096
|
+
|
17097
|
+
.desktop--linux .application-menu__category {
|
17098
|
+
background: rgba(255, 255, 255, 0.1);
|
17099
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
17100
|
+
border-radius: 20px;
|
17101
|
+
color: #ffffff;
|
17102
|
+
font-family: 'Ubuntu', sans-serif;
|
17103
|
+
font-size: 13px;
|
17104
|
+
font-weight: 400;
|
17105
|
+
}
|
17106
|
+
|
17107
|
+
.desktop--linux .application-menu__category:hover {
|
17108
|
+
background: rgba(255, 255, 255, 0.2);
|
17109
|
+
border-color: rgba(255, 255, 255, 0.3);
|
17110
|
+
}
|
17111
|
+
|
17112
|
+
.desktop--linux .application-menu__category.active {
|
17113
|
+
background: rgba(53, 132, 228, 0.8);
|
17114
|
+
border-color: rgba(53, 132, 228, 1);
|
17115
|
+
color: #ffffff;
|
17116
|
+
}
|
17117
|
+
|
17118
|
+
.desktop--linux .application-menu__app {
|
17119
|
+
background: rgba(255, 255, 255, 0.05);
|
17120
|
+
border: 1px solid transparent;
|
17121
|
+
border-radius: 12px;
|
17122
|
+
transition: all 0.2s ease;
|
17123
|
+
}
|
17124
|
+
|
17125
|
+
.desktop--linux .application-menu__app:hover {
|
17126
|
+
background: rgba(255, 255, 255, 0.15);
|
17127
|
+
border-color: rgba(255, 255, 255, 0.2);
|
17128
|
+
transform: translateY(-2px);
|
17129
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
|
17130
|
+
}
|
17131
|
+
|
17132
|
+
.desktop--linux .app-name {
|
17133
|
+
font-family: 'Ubuntu', sans-serif;
|
17134
|
+
font-size: 13px;
|
17135
|
+
font-weight: 400;
|
17136
|
+
color: #ffffff;
|
17137
|
+
}
|
17138
|
+
|
17139
|
+
.desktop--linux .category-title {
|
17140
|
+
color: #ffffff;
|
17141
|
+
font-family: 'Ubuntu', sans-serif;
|
17142
|
+
font-weight: 500;
|
17143
|
+
}
|
17144
|
+
|
17145
|
+
/* Linux scrollbar */
|
17146
|
+
.desktop--linux .application-menu__content::-webkit-scrollbar {
|
17147
|
+
width: 8px;
|
17148
|
+
}
|
17149
|
+
|
17150
|
+
.desktop--linux .application-menu__content::-webkit-scrollbar-track {
|
17151
|
+
background: rgba(255, 255, 255, 0.1);
|
17152
|
+
border-radius: 4px;
|
17153
|
+
}
|
17154
|
+
|
17155
|
+
.desktop--linux .application-menu__content::-webkit-scrollbar-thumb {
|
17156
|
+
background: rgba(255, 255, 255, 0.3);
|
17157
|
+
border-radius: 4px;
|
17158
|
+
}
|
17159
|
+
|
17160
|
+
.desktop--linux .application-menu__content::-webkit-scrollbar-thumb:hover {
|
17161
|
+
background: rgba(255, 255, 255, 0.5);
|
17162
|
+
}
|
17163
|
+
/* macOS Desktop Theme */
|
17164
|
+
|
17165
|
+
.desktop--macos {
|
17166
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
17167
|
+
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;
|
17168
|
+
}
|
17169
|
+
|
17170
|
+
.desktop--macos .desktop__background {
|
17171
|
+
background-image:
|
17172
|
+
radial-gradient(circle at 25% 75%, rgba(102, 126, 234, 0.3) 0%, transparent 50%),
|
17173
|
+
radial-gradient(circle at 75% 25%, rgba(118, 75, 162, 0.3) 0%, transparent 50%),
|
17174
|
+
radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
|
17175
|
+
}
|
17176
|
+
|
17177
|
+
/* macOS-style windows */
|
17178
|
+
.desktop--macos .window {
|
17179
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
17180
|
+
border-radius: 12px;
|
17181
|
+
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
|
17182
|
+
background: rgba(255, 255, 255, 0.95);
|
17183
|
+
backdrop-filter: blur(20px);
|
17184
|
+
overflow: hidden;
|
17185
|
+
}
|
17186
|
+
|
17187
|
+
.desktop--macos .window__header {
|
17188
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(245, 245, 245, 0.8) 100%);
|
17189
|
+
backdrop-filter: blur(20px);
|
17190
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
17191
|
+
border-radius: 12px 12px 0 0;
|
17192
|
+
height: 36px;
|
17193
|
+
padding: 0 16px;
|
17194
|
+
}
|
17195
|
+
|
17196
|
+
.desktop--macos .window__title {
|
17197
|
+
font-size: 13px;
|
17198
|
+
font-weight: 600;
|
17199
|
+
color: #1d1d1f;
|
17200
|
+
text-align: center;
|
17201
|
+
}
|
17202
|
+
|
17203
|
+
.desktop--macos .window__controls {
|
17204
|
+
order: -1;
|
17205
|
+
margin-right: auto;
|
17206
|
+
}
|
17207
|
+
|
17208
|
+
.desktop--macos .window__control {
|
17209
|
+
width: 12px;
|
17210
|
+
height: 12px;
|
17211
|
+
border: none;
|
17212
|
+
border-radius: 50%;
|
17213
|
+
font-size: 8px;
|
17214
|
+
color: rgba(0, 0, 0, 0.6);
|
17215
|
+
display: flex;
|
17216
|
+
align-items: center;
|
17217
|
+
justify-content: center;
|
17218
|
+
transition: all 0.2s ease;
|
17219
|
+
margin-right: 8px;
|
17220
|
+
position: relative;
|
17221
|
+
}
|
17222
|
+
|
17223
|
+
.desktop--macos .window__control::before {
|
17224
|
+
opacity: 0;
|
17225
|
+
transition: opacity 0.2s ease;
|
17226
|
+
}
|
17227
|
+
|
17228
|
+
.desktop--macos .window:hover .window__control::before {
|
17229
|
+
opacity: 1;
|
17230
|
+
}
|
17231
|
+
|
17232
|
+
.desktop--macos .window__control--close {
|
17233
|
+
background: #ff5f57;
|
17234
|
+
border: 0.5px solid #e0443e;
|
17235
|
+
}
|
17236
|
+
|
17237
|
+
.desktop--macos .window__control--minimize {
|
17238
|
+
background: #ffbd2e;
|
17239
|
+
border: 0.5px solid #dea123;
|
17240
|
+
}
|
17241
|
+
|
17242
|
+
.desktop--macos .window__control--maximize {
|
17243
|
+
background: #28ca42;
|
17244
|
+
border: 0.5px solid #1aad34;
|
17245
|
+
}
|
17246
|
+
|
17247
|
+
.desktop--macos .window__control:hover {
|
17248
|
+
transform: scale(1.1);
|
17249
|
+
}
|
17250
|
+
|
17251
|
+
.desktop--macos .window__control--close::before {
|
17252
|
+
content: '×';
|
17253
|
+
font-weight: bold;
|
17254
|
+
font-size: 10px;
|
17255
|
+
}
|
17256
|
+
|
17257
|
+
.desktop--macos .window__control--minimize::before {
|
17258
|
+
content: '−';
|
17259
|
+
font-weight: bold;
|
17260
|
+
font-size: 8px;
|
17261
|
+
}
|
17262
|
+
|
17263
|
+
.desktop--macos .window__control--maximize::before {
|
17264
|
+
content: '+';
|
17265
|
+
font-weight: bold;
|
17266
|
+
font-size: 8px;
|
17267
|
+
}
|
17268
|
+
|
17269
|
+
/* macOS taskbar styling (Dock-inspired) */
|
17270
|
+
.desktop--macos .desktop-taskbar {
|
17271
|
+
background: rgba(255, 255, 255, 0.8);
|
17272
|
+
backdrop-filter: blur(20px);
|
17273
|
+
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
17274
|
+
border-radius: 16px 16px 0 0;
|
17275
|
+
}
|
17276
|
+
|
17277
|
+
.desktop--macos .taskbar-button {
|
17278
|
+
background: rgba(0, 0, 0, 0.05);
|
17279
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
17280
|
+
border-radius: 12px;
|
17281
|
+
color: #1d1d1f;
|
17282
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17283
|
+
font-size: 13px;
|
17284
|
+
font-weight: 500;
|
17285
|
+
transition: all 0.3s ease;
|
17286
|
+
backdrop-filter: blur(10px);
|
17287
|
+
}
|
17288
|
+
|
17289
|
+
.desktop--macos .taskbar-button:hover {
|
17290
|
+
background: rgba(0, 0, 0, 0.1);
|
17291
|
+
border-color: rgba(0, 0, 0, 0.2);
|
17292
|
+
transform: translateY(-2px);
|
17293
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
17294
|
+
}
|
17295
|
+
|
17296
|
+
.desktop--macos .taskbar-button--active {
|
17297
|
+
background: rgba(0, 122, 255, 0.15);
|
17298
|
+
border-color: rgba(0, 122, 255, 0.3);
|
17299
|
+
color: #007aff;
|
17300
|
+
}
|
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
|
+
|
17359
|
+
/* macOS Application Menu (Launchpad-inspired) */
|
17360
|
+
.desktop--macos .application-menu {
|
17361
|
+
background: rgba(255, 255, 255, 0.9);
|
17362
|
+
backdrop-filter: blur(40px);
|
17363
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
17364
|
+
border-radius: 20px;
|
17365
|
+
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
|
17366
|
+
}
|
17367
|
+
|
17368
|
+
.desktop--macos .application-menu__header {
|
17369
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(248, 248, 248, 0.8) 100%);
|
17370
|
+
backdrop-filter: blur(20px);
|
17371
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
17372
|
+
border-radius: 20px 20px 0 0;
|
17373
|
+
}
|
17374
|
+
|
17375
|
+
.desktop--macos .application-menu__header h2 {
|
17376
|
+
color: #1d1d1f;
|
17377
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17378
|
+
font-weight: 600;
|
17379
|
+
font-size: 20px;
|
17380
|
+
}
|
17381
|
+
|
17382
|
+
.desktop--macos .application-menu__close {
|
17383
|
+
color: #8e8e93;
|
17384
|
+
background: rgba(0, 0, 0, 0.05);
|
17385
|
+
border-radius: 8px;
|
17386
|
+
font-size: 18px;
|
17387
|
+
}
|
17388
|
+
|
17389
|
+
.desktop--macos .application-menu__close:hover {
|
17390
|
+
background: rgba(255, 95, 87, 0.8);
|
17391
|
+
color: white;
|
17392
|
+
}
|
17393
|
+
|
17394
|
+
.desktop--macos .application-menu__search-input {
|
17395
|
+
background: rgba(0, 0, 0, 0.05);
|
17396
|
+
border: 2px solid rgba(0, 0, 0, 0.1);
|
17397
|
+
border-radius: 12px;
|
17398
|
+
color: #1d1d1f;
|
17399
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17400
|
+
font-size: 15px;
|
17401
|
+
}
|
17402
|
+
|
17403
|
+
.desktop--macos .application-menu__search-input::placeholder {
|
17404
|
+
color: #8e8e93;
|
17405
|
+
}
|
17406
|
+
|
17407
|
+
.desktop--macos .application-menu__search-input:focus {
|
17408
|
+
border-color: rgba(0, 122, 255, 0.8);
|
17409
|
+
background: rgba(255, 255, 255, 0.8);
|
17410
|
+
outline: none;
|
17411
|
+
box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.1);
|
17412
|
+
}
|
17413
|
+
|
17414
|
+
.desktop--macos .application-menu__category {
|
17415
|
+
background: rgba(0, 0, 0, 0.05);
|
17416
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
17417
|
+
border-radius: 20px;
|
17418
|
+
color: #1d1d1f;
|
17419
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17420
|
+
font-size: 13px;
|
17421
|
+
font-weight: 500;
|
17422
|
+
}
|
17423
|
+
|
17424
|
+
.desktop--macos .application-menu__category:hover {
|
17425
|
+
background: rgba(0, 0, 0, 0.1);
|
17426
|
+
border-color: rgba(0, 0, 0, 0.2);
|
17427
|
+
}
|
17428
|
+
|
17429
|
+
.desktop--macos .application-menu__category.active {
|
17430
|
+
background: rgba(0, 122, 255, 0.8);
|
17431
|
+
border-color: rgba(0, 122, 255, 1);
|
17432
|
+
color: white;
|
17433
|
+
}
|
17434
|
+
|
17435
|
+
.desktop--macos .application-menu__app {
|
17436
|
+
background: rgba(255, 255, 255, 0.6);
|
17437
|
+
border: 1px solid transparent;
|
17438
|
+
border-radius: 16px;
|
17439
|
+
transition: all 0.3s ease;
|
17440
|
+
backdrop-filter: blur(10px);
|
17441
|
+
}
|
17442
|
+
|
17443
|
+
.desktop--macos .application-menu__app:hover {
|
17444
|
+
background: rgba(255, 255, 255, 0.8);
|
17445
|
+
border-color: rgba(0, 0, 0, 0.1);
|
17446
|
+
transform: translateY(-4px) scale(1.05);
|
17447
|
+
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
|
17448
|
+
}
|
17449
|
+
|
17450
|
+
.desktop--macos .app-name {
|
17451
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17452
|
+
font-size: 12px;
|
17453
|
+
font-weight: 500;
|
17454
|
+
color: #1d1d1f;
|
17455
|
+
}
|
17456
|
+
|
17457
|
+
.desktop--macos .category-title {
|
17458
|
+
color: #1d1d1f;
|
17459
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17460
|
+
font-weight: 600;
|
17461
|
+
}
|
17462
|
+
|
17463
|
+
/* macOS scrollbar */
|
17464
|
+
.desktop--macos .application-menu__content::-webkit-scrollbar {
|
17465
|
+
width: 6px;
|
17466
|
+
}
|
17467
|
+
|
17468
|
+
.desktop--macos .application-menu__content::-webkit-scrollbar-track {
|
17469
|
+
background: transparent;
|
17470
|
+
}
|
17471
|
+
|
17472
|
+
.desktop--macos .application-menu__content::-webkit-scrollbar-thumb {
|
17473
|
+
background: rgba(0, 0, 0, 0.2);
|
17474
|
+
border-radius: 3px;
|
17475
|
+
}
|
17476
|
+
|
17477
|
+
.desktop--macos .application-menu__content::-webkit-scrollbar-thumb:hover {
|
17478
|
+
background: rgba(0, 0, 0, 0.4);
|
17479
|
+
}
|
16400
17480
|
/**************************************/
|
16401
17481
|
/*********** content-editor ***********/
|
16402
17482
|
/**************************************/
|