ywana-core8 0.2.4 → 0.2.6
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 +961 -0
- package/dist/index.js +450 -6
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +450 -6
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +450 -6
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/desktop/AppManager.js +270 -0
- package/src/desktop/ApplicationMenu.css +279 -0
- package/src/desktop/ApplicationMenu.js +214 -0
- package/src/desktop/Desktop.stories.jsx +432 -5
- package/src/desktop/WindowContext.js +1 -0
- package/src/desktop/WindowManager.js +23 -0
- package/src/desktop/desktop-linux.css +232 -0
- package/src/desktop/desktop-macos.css +260 -0
- package/src/desktop/desktop-windows.css +190 -0
- package/src/desktop/desktop.js +131 -33
- package/src/desktop/index.js +5 -1
- package/src/desktop/window.js +9 -2
- package/src/examples/ApplicationMenuExample.js +361 -0
package/dist/index.css
CHANGED
@@ -16061,6 +16061,285 @@ li.selected,
|
|
16061
16061
|
.window--dragging * {
|
16062
16062
|
user-select: none !important;
|
16063
16063
|
}
|
16064
|
+
/* ApplicationMenu - Full-screen overlay styles */
|
16065
|
+
|
16066
|
+
.application-menu-overlay {
|
16067
|
+
position: fixed;
|
16068
|
+
top: 0;
|
16069
|
+
left: 0;
|
16070
|
+
right: 0;
|
16071
|
+
bottom: 0;
|
16072
|
+
background: rgba(0, 0, 0, 0.8);
|
16073
|
+
backdrop-filter: blur(8px);
|
16074
|
+
z-index: 10000;
|
16075
|
+
display: flex;
|
16076
|
+
align-items: center;
|
16077
|
+
justify-content: center;
|
16078
|
+
animation: fadeIn 0.2s ease-out;
|
16079
|
+
}
|
16080
|
+
|
16081
|
+
@keyframes fadeIn {
|
16082
|
+
from {
|
16083
|
+
opacity: 0;
|
16084
|
+
}
|
16085
|
+
to {
|
16086
|
+
opacity: 1;
|
16087
|
+
}
|
16088
|
+
}
|
16089
|
+
|
16090
|
+
.application-menu {
|
16091
|
+
background: #ffffff;
|
16092
|
+
border-radius: 12px;
|
16093
|
+
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
|
16094
|
+
width: 90%;
|
16095
|
+
max-width: 900px;
|
16096
|
+
height: 80%;
|
16097
|
+
max-height: 700px;
|
16098
|
+
display: flex;
|
16099
|
+
flex-direction: column;
|
16100
|
+
overflow: hidden;
|
16101
|
+
animation: slideIn 0.3s ease-out;
|
16102
|
+
}
|
16103
|
+
|
16104
|
+
@keyframes slideIn {
|
16105
|
+
from {
|
16106
|
+
transform: scale(0.9) translateY(20px);
|
16107
|
+
opacity: 0;
|
16108
|
+
}
|
16109
|
+
to {
|
16110
|
+
transform: scale(1) translateY(0);
|
16111
|
+
opacity: 1;
|
16112
|
+
}
|
16113
|
+
}
|
16114
|
+
|
16115
|
+
/* Header */
|
16116
|
+
.application-menu__header {
|
16117
|
+
display: flex;
|
16118
|
+
align-items: center;
|
16119
|
+
justify-content: space-between;
|
16120
|
+
padding: 20px 24px;
|
16121
|
+
border-bottom: 1px solid #e0e0e0;
|
16122
|
+
background: #f8f9fa;
|
16123
|
+
}
|
16124
|
+
|
16125
|
+
.application-menu__header h2 {
|
16126
|
+
margin: 0;
|
16127
|
+
color: #333;
|
16128
|
+
font-size: 24px;
|
16129
|
+
font-weight: 600;
|
16130
|
+
}
|
16131
|
+
|
16132
|
+
.application-menu__close {
|
16133
|
+
background: none;
|
16134
|
+
border: none;
|
16135
|
+
font-size: 24px;
|
16136
|
+
color: #666;
|
16137
|
+
cursor: pointer;
|
16138
|
+
padding: 4px 8px;
|
16139
|
+
border-radius: 4px;
|
16140
|
+
transition: all 0.2s ease;
|
16141
|
+
}
|
16142
|
+
|
16143
|
+
.application-menu__close:hover {
|
16144
|
+
background: #e0e0e0;
|
16145
|
+
color: #333;
|
16146
|
+
}
|
16147
|
+
|
16148
|
+
/* Search */
|
16149
|
+
.application-menu__search {
|
16150
|
+
padding: 16px 24px;
|
16151
|
+
border-bottom: 1px solid #e0e0e0;
|
16152
|
+
}
|
16153
|
+
|
16154
|
+
.application-menu__search-input {
|
16155
|
+
width: 100%;
|
16156
|
+
padding: 12px 16px;
|
16157
|
+
border: 2px solid #e0e0e0;
|
16158
|
+
border-radius: 8px;
|
16159
|
+
font-size: 16px;
|
16160
|
+
outline: none;
|
16161
|
+
transition: border-color 0.2s ease;
|
16162
|
+
}
|
16163
|
+
|
16164
|
+
.application-menu__search-input:focus {
|
16165
|
+
border-color: #1976d2;
|
16166
|
+
}
|
16167
|
+
|
16168
|
+
/* Categories */
|
16169
|
+
.application-menu__categories {
|
16170
|
+
display: flex;
|
16171
|
+
gap: 8px;
|
16172
|
+
padding: 16px 24px;
|
16173
|
+
border-bottom: 1px solid #e0e0e0;
|
16174
|
+
background: #f8f9fa;
|
16175
|
+
overflow-x: auto;
|
16176
|
+
}
|
16177
|
+
|
16178
|
+
.application-menu__category {
|
16179
|
+
display: flex;
|
16180
|
+
align-items: center;
|
16181
|
+
gap: 8px;
|
16182
|
+
padding: 8px 16px;
|
16183
|
+
background: #ffffff;
|
16184
|
+
border: 1px solid #e0e0e0;
|
16185
|
+
border-radius: 20px;
|
16186
|
+
cursor: pointer;
|
16187
|
+
font-size: 14px;
|
16188
|
+
white-space: nowrap;
|
16189
|
+
transition: all 0.2s ease;
|
16190
|
+
color: #666;
|
16191
|
+
}
|
16192
|
+
|
16193
|
+
.application-menu__category:hover {
|
16194
|
+
background: #f0f0f0;
|
16195
|
+
border-color: #ccc;
|
16196
|
+
}
|
16197
|
+
|
16198
|
+
.application-menu__category.active {
|
16199
|
+
background: #1976d2;
|
16200
|
+
border-color: #1976d2;
|
16201
|
+
color: white;
|
16202
|
+
}
|
16203
|
+
|
16204
|
+
.category-icon {
|
16205
|
+
font-size: 16px;
|
16206
|
+
}
|
16207
|
+
|
16208
|
+
/* Content */
|
16209
|
+
.application-menu__content {
|
16210
|
+
flex: 1;
|
16211
|
+
overflow-y: auto;
|
16212
|
+
padding: 24px;
|
16213
|
+
}
|
16214
|
+
|
16215
|
+
.application-menu__search-results h3,
|
16216
|
+
.category-title {
|
16217
|
+
margin: 0 0 16px 0;
|
16218
|
+
color: #333;
|
16219
|
+
font-size: 18px;
|
16220
|
+
font-weight: 600;
|
16221
|
+
}
|
16222
|
+
|
16223
|
+
.application-menu__category-section {
|
16224
|
+
margin-bottom: 32px;
|
16225
|
+
}
|
16226
|
+
|
16227
|
+
.application-menu__category-section:last-child {
|
16228
|
+
margin-bottom: 0;
|
16229
|
+
}
|
16230
|
+
|
16231
|
+
/* Apps Grid */
|
16232
|
+
.application-menu__apps-grid {
|
16233
|
+
display: grid;
|
16234
|
+
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
|
16235
|
+
gap: 16px;
|
16236
|
+
}
|
16237
|
+
|
16238
|
+
.application-menu__app {
|
16239
|
+
display: flex;
|
16240
|
+
flex-direction: column;
|
16241
|
+
align-items: center;
|
16242
|
+
padding: 16px 12px;
|
16243
|
+
border-radius: 12px;
|
16244
|
+
cursor: pointer;
|
16245
|
+
transition: all 0.2s ease;
|
16246
|
+
text-align: center;
|
16247
|
+
background: #ffffff;
|
16248
|
+
border: 1px solid transparent;
|
16249
|
+
}
|
16250
|
+
|
16251
|
+
.application-menu__app:hover {
|
16252
|
+
background: #f8f9fa;
|
16253
|
+
border-color: #e0e0e0;
|
16254
|
+
transform: translateY(-2px);
|
16255
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
16256
|
+
}
|
16257
|
+
|
16258
|
+
.app-icon {
|
16259
|
+
font-size: 48px;
|
16260
|
+
margin-bottom: 8px;
|
16261
|
+
line-height: 1;
|
16262
|
+
}
|
16263
|
+
|
16264
|
+
.app-name {
|
16265
|
+
font-size: 14px;
|
16266
|
+
font-weight: 500;
|
16267
|
+
color: #333;
|
16268
|
+
line-height: 1.2;
|
16269
|
+
word-break: break-word;
|
16270
|
+
}
|
16271
|
+
|
16272
|
+
/* No Results */
|
16273
|
+
.application-menu__no-results {
|
16274
|
+
text-align: center;
|
16275
|
+
padding: 60px 20px;
|
16276
|
+
color: #666;
|
16277
|
+
}
|
16278
|
+
|
16279
|
+
.application-menu__no-results h3 {
|
16280
|
+
margin: 0 0 8px 0;
|
16281
|
+
color: #333;
|
16282
|
+
font-size: 20px;
|
16283
|
+
}
|
16284
|
+
|
16285
|
+
.application-menu__no-results p {
|
16286
|
+
margin: 0;
|
16287
|
+
font-size: 16px;
|
16288
|
+
}
|
16289
|
+
|
16290
|
+
/* Responsive */
|
16291
|
+
@media (max-width: 768px) {
|
16292
|
+
.application-menu {
|
16293
|
+
width: 95%;
|
16294
|
+
height: 90%;
|
16295
|
+
margin: 20px;
|
16296
|
+
}
|
16297
|
+
|
16298
|
+
.application-menu__apps-grid {
|
16299
|
+
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
|
16300
|
+
gap: 12px;
|
16301
|
+
}
|
16302
|
+
|
16303
|
+
.application-menu__app {
|
16304
|
+
padding: 12px 8px;
|
16305
|
+
}
|
16306
|
+
|
16307
|
+
.app-icon {
|
16308
|
+
font-size: 40px;
|
16309
|
+
}
|
16310
|
+
|
16311
|
+
.app-name {
|
16312
|
+
font-size: 12px;
|
16313
|
+
}
|
16314
|
+
|
16315
|
+
.application-menu__categories {
|
16316
|
+
padding: 12px 16px;
|
16317
|
+
}
|
16318
|
+
|
16319
|
+
.application-menu__search,
|
16320
|
+
.application-menu__content {
|
16321
|
+
padding: 16px;
|
16322
|
+
}
|
16323
|
+
}
|
16324
|
+
|
16325
|
+
/* Scrollbar styling */
|
16326
|
+
.application-menu__content::-webkit-scrollbar {
|
16327
|
+
width: 8px;
|
16328
|
+
}
|
16329
|
+
|
16330
|
+
.application-menu__content::-webkit-scrollbar-track {
|
16331
|
+
background: #f1f1f1;
|
16332
|
+
border-radius: 4px;
|
16333
|
+
}
|
16334
|
+
|
16335
|
+
.application-menu__content::-webkit-scrollbar-thumb {
|
16336
|
+
background: #c1c1c1;
|
16337
|
+
border-radius: 4px;
|
16338
|
+
}
|
16339
|
+
|
16340
|
+
.application-menu__content::-webkit-scrollbar-thumb:hover {
|
16341
|
+
background: #a8a8a8;
|
16342
|
+
}
|
16064
16343
|
/* Desktop Component Styles */
|
16065
16344
|
|
16066
16345
|
.desktop {
|
@@ -16118,6 +16397,688 @@ li.selected,
|
|
16118
16397
|
font-size: 12px;
|
16119
16398
|
}
|
16120
16399
|
}
|
16400
|
+
/* Windows Desktop Theme */
|
16401
|
+
|
16402
|
+
.desktop--windows {
|
16403
|
+
background: linear-gradient(135deg, #0078d4 0%, #106ebe 100%);
|
16404
|
+
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
16405
|
+
}
|
16406
|
+
|
16407
|
+
.desktop--windows .desktop__background {
|
16408
|
+
background-image:
|
16409
|
+
radial-gradient(circle at 20% 80%, rgba(120, 119, 198, 0.3) 0%, transparent 50%),
|
16410
|
+
radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.15) 0%, transparent 50%),
|
16411
|
+
radial-gradient(circle at 40% 40%, rgba(120, 119, 198, 0.15) 0%, transparent 50%);
|
16412
|
+
}
|
16413
|
+
|
16414
|
+
/* Windows-style taskbar */
|
16415
|
+
.desktop--windows .window {
|
16416
|
+
border: 1px solid #cccccc;
|
16417
|
+
border-radius: 8px;
|
16418
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
|
16419
|
+
background: #ffffff;
|
16420
|
+
}
|
16421
|
+
|
16422
|
+
.desktop--windows .window__header {
|
16423
|
+
background: linear-gradient(180deg, #f0f0f0 0%, #e5e5e5 100%);
|
16424
|
+
border-bottom: 1px solid #d0d0d0;
|
16425
|
+
border-radius: 8px 8px 0 0;
|
16426
|
+
height: 32px;
|
16427
|
+
padding: 0 12px;
|
16428
|
+
}
|
16429
|
+
|
16430
|
+
.desktop--windows .window__title {
|
16431
|
+
font-size: 13px;
|
16432
|
+
font-weight: 400;
|
16433
|
+
color: #333333;
|
16434
|
+
}
|
16435
|
+
|
16436
|
+
.desktop--windows .window__control {
|
16437
|
+
width: 46px;
|
16438
|
+
height: 32px;
|
16439
|
+
border: none;
|
16440
|
+
background: transparent;
|
16441
|
+
font-size: 10px;
|
16442
|
+
font-family: 'Segoe MDL2 Assets', 'Segoe UI Symbol', sans-serif;
|
16443
|
+
color: #333333;
|
16444
|
+
display: flex;
|
16445
|
+
align-items: center;
|
16446
|
+
justify-content: center;
|
16447
|
+
transition: background-color 0.1s ease;
|
16448
|
+
}
|
16449
|
+
|
16450
|
+
.desktop--windows .window__control:hover {
|
16451
|
+
background: rgba(0, 0, 0, 0.1);
|
16452
|
+
}
|
16453
|
+
|
16454
|
+
.desktop--windows .window__control--minimize:hover {
|
16455
|
+
background: #e5e5e5;
|
16456
|
+
}
|
16457
|
+
|
16458
|
+
.desktop--windows .window__control--maximize:hover {
|
16459
|
+
background: #e5e5e5;
|
16460
|
+
}
|
16461
|
+
|
16462
|
+
.desktop--windows .window__control--close:hover {
|
16463
|
+
background: #e81123;
|
16464
|
+
color: white;
|
16465
|
+
}
|
16466
|
+
|
16467
|
+
.desktop--windows .window__control--minimize::before {
|
16468
|
+
content: '🗕';
|
16469
|
+
}
|
16470
|
+
|
16471
|
+
.desktop--windows .window__control--maximize::before {
|
16472
|
+
content: '🗖';
|
16473
|
+
}
|
16474
|
+
|
16475
|
+
.desktop--windows .window__control--close::before {
|
16476
|
+
content: '🗙';
|
16477
|
+
}
|
16478
|
+
|
16479
|
+
/* Windows taskbar styling */
|
16480
|
+
.desktop--windows .desktop-taskbar {
|
16481
|
+
background: rgba(0, 0, 0, 0.8);
|
16482
|
+
backdrop-filter: blur(20px);
|
16483
|
+
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
16484
|
+
}
|
16485
|
+
|
16486
|
+
.desktop--windows .taskbar-button {
|
16487
|
+
background: rgba(255, 255, 255, 0.1);
|
16488
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
16489
|
+
border-radius: 4px;
|
16490
|
+
color: white;
|
16491
|
+
font-family: 'Segoe UI', sans-serif;
|
16492
|
+
font-size: 14px;
|
16493
|
+
transition: all 0.2s ease;
|
16494
|
+
}
|
16495
|
+
|
16496
|
+
.desktop--windows .taskbar-button:hover {
|
16497
|
+
background: rgba(255, 255, 255, 0.2);
|
16498
|
+
border-color: rgba(255, 255, 255, 0.3);
|
16499
|
+
}
|
16500
|
+
|
16501
|
+
.desktop--windows .taskbar-button--active {
|
16502
|
+
background: rgba(255, 255, 255, 0.25);
|
16503
|
+
border-color: rgba(255, 255, 255, 0.4);
|
16504
|
+
}
|
16505
|
+
|
16506
|
+
/* Windows Application Menu */
|
16507
|
+
.desktop--windows .application-menu {
|
16508
|
+
background: rgba(248, 248, 248, 0.95);
|
16509
|
+
backdrop-filter: blur(20px);
|
16510
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
16511
|
+
border-radius: 8px;
|
16512
|
+
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
|
16513
|
+
}
|
16514
|
+
|
16515
|
+
.desktop--windows .application-menu__header {
|
16516
|
+
background: linear-gradient(180deg, #f8f8f8 0%, #e8e8e8 100%);
|
16517
|
+
border-bottom: 1px solid #d0d0d0;
|
16518
|
+
}
|
16519
|
+
|
16520
|
+
.desktop--windows .application-menu__search-input {
|
16521
|
+
border: 2px solid #e0e0e0;
|
16522
|
+
border-radius: 4px;
|
16523
|
+
font-family: 'Segoe UI', sans-serif;
|
16524
|
+
}
|
16525
|
+
|
16526
|
+
.desktop--windows .application-menu__search-input:focus {
|
16527
|
+
border-color: #0078d4;
|
16528
|
+
outline: none;
|
16529
|
+
}
|
16530
|
+
|
16531
|
+
.desktop--windows .application-menu__category {
|
16532
|
+
background: #ffffff;
|
16533
|
+
border: 1px solid #e0e0e0;
|
16534
|
+
border-radius: 16px;
|
16535
|
+
font-family: 'Segoe UI', sans-serif;
|
16536
|
+
font-size: 13px;
|
16537
|
+
}
|
16538
|
+
|
16539
|
+
.desktop--windows .application-menu__category:hover {
|
16540
|
+
background: #f5f5f5;
|
16541
|
+
border-color: #d0d0d0;
|
16542
|
+
}
|
16543
|
+
|
16544
|
+
.desktop--windows .application-menu__category.active {
|
16545
|
+
background: #0078d4;
|
16546
|
+
border-color: #0078d4;
|
16547
|
+
color: white;
|
16548
|
+
}
|
16549
|
+
|
16550
|
+
.desktop--windows .application-menu__app {
|
16551
|
+
background: #ffffff;
|
16552
|
+
border: 1px solid transparent;
|
16553
|
+
border-radius: 8px;
|
16554
|
+
transition: all 0.15s ease;
|
16555
|
+
}
|
16556
|
+
|
16557
|
+
.desktop--windows .application-menu__app:hover {
|
16558
|
+
background: #f5f5f5;
|
16559
|
+
border-color: #e0e0e0;
|
16560
|
+
transform: translateY(-1px);
|
16561
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
16562
|
+
}
|
16563
|
+
|
16564
|
+
.desktop--windows .app-name {
|
16565
|
+
font-family: 'Segoe UI', sans-serif;
|
16566
|
+
font-size: 13px;
|
16567
|
+
font-weight: 400;
|
16568
|
+
color: #333333;
|
16569
|
+
}
|
16570
|
+
|
16571
|
+
/* Windows scrollbar */
|
16572
|
+
.desktop--windows .application-menu__content::-webkit-scrollbar {
|
16573
|
+
width: 12px;
|
16574
|
+
}
|
16575
|
+
|
16576
|
+
.desktop--windows .application-menu__content::-webkit-scrollbar-track {
|
16577
|
+
background: #f1f1f1;
|
16578
|
+
border-radius: 6px;
|
16579
|
+
}
|
16580
|
+
|
16581
|
+
.desktop--windows .application-menu__content::-webkit-scrollbar-thumb {
|
16582
|
+
background: #c1c1c1;
|
16583
|
+
border-radius: 6px;
|
16584
|
+
border: 2px solid #f1f1f1;
|
16585
|
+
}
|
16586
|
+
|
16587
|
+
.desktop--windows .application-menu__content::-webkit-scrollbar-thumb:hover {
|
16588
|
+
background: #a8a8a8;
|
16589
|
+
}
|
16590
|
+
/* Linux Desktop Theme (GNOME/Ubuntu inspired) */
|
16591
|
+
|
16592
|
+
.desktop--linux {
|
16593
|
+
background: linear-gradient(135deg, #2c001e 0%, #4c2c92 50%, #0e4b99 100%);
|
16594
|
+
font-family: 'Ubuntu', 'Cantarell', 'DejaVu Sans', sans-serif;
|
16595
|
+
}
|
16596
|
+
|
16597
|
+
.desktop--linux .desktop__background {
|
16598
|
+
background-image:
|
16599
|
+
radial-gradient(circle at 30% 70%, rgba(233, 84, 32, 0.2) 0%, transparent 50%),
|
16600
|
+
radial-gradient(circle at 70% 30%, rgba(119, 41, 83, 0.3) 0%, transparent 50%),
|
16601
|
+
radial-gradient(circle at 50% 50%, rgba(14, 75, 153, 0.2) 0%, transparent 50%);
|
16602
|
+
}
|
16603
|
+
|
16604
|
+
/* Linux-style windows (GNOME) */
|
16605
|
+
.desktop--linux .window {
|
16606
|
+
border: 1px solid #2d2d2d;
|
16607
|
+
border-radius: 12px 12px 0 0;
|
16608
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
|
16609
|
+
background: #ffffff;
|
16610
|
+
overflow: hidden;
|
16611
|
+
}
|
16612
|
+
|
16613
|
+
.desktop--linux .window__header {
|
16614
|
+
background: linear-gradient(180deg, #f6f5f4 0%, #e6e5e4 100%);
|
16615
|
+
border-bottom: 1px solid #d0cfce;
|
16616
|
+
border-radius: 12px 12px 0 0;
|
16617
|
+
height: 38px;
|
16618
|
+
padding: 0 16px;
|
16619
|
+
}
|
16620
|
+
|
16621
|
+
.desktop--linux .window__title {
|
16622
|
+
font-size: 14px;
|
16623
|
+
font-weight: 500;
|
16624
|
+
color: #2e3436;
|
16625
|
+
}
|
16626
|
+
|
16627
|
+
.desktop--linux .window__control {
|
16628
|
+
width: 24px;
|
16629
|
+
height: 24px;
|
16630
|
+
border: none;
|
16631
|
+
border-radius: 50%;
|
16632
|
+
font-size: 12px;
|
16633
|
+
color: #2e3436;
|
16634
|
+
display: flex;
|
16635
|
+
align-items: center;
|
16636
|
+
justify-content: center;
|
16637
|
+
transition: all 0.2s ease;
|
16638
|
+
margin-left: 8px;
|
16639
|
+
}
|
16640
|
+
|
16641
|
+
.desktop--linux .window__control--minimize {
|
16642
|
+
background: #f6d32d;
|
16643
|
+
border: 1px solid #f5c211;
|
16644
|
+
}
|
16645
|
+
|
16646
|
+
.desktop--linux .window__control--maximize {
|
16647
|
+
background: #33d17a;
|
16648
|
+
border: 1px solid #2ec27e;
|
16649
|
+
}
|
16650
|
+
|
16651
|
+
.desktop--linux .window__control--close {
|
16652
|
+
background: #e01b24;
|
16653
|
+
border: 1px solid #c01c28;
|
16654
|
+
color: white;
|
16655
|
+
}
|
16656
|
+
|
16657
|
+
.desktop--linux .window__control:hover {
|
16658
|
+
transform: scale(1.1);
|
16659
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
16660
|
+
}
|
16661
|
+
|
16662
|
+
.desktop--linux .window__control--minimize::before {
|
16663
|
+
content: '−';
|
16664
|
+
font-weight: bold;
|
16665
|
+
}
|
16666
|
+
|
16667
|
+
.desktop--linux .window__control--maximize::before {
|
16668
|
+
content: '□';
|
16669
|
+
font-weight: bold;
|
16670
|
+
}
|
16671
|
+
|
16672
|
+
.desktop--linux .window__control--close::before {
|
16673
|
+
content: '×';
|
16674
|
+
font-weight: bold;
|
16675
|
+
}
|
16676
|
+
|
16677
|
+
/* Linux taskbar styling (GNOME Activities) */
|
16678
|
+
.desktop--linux .desktop-taskbar {
|
16679
|
+
background: rgba(0, 0, 0, 0.85);
|
16680
|
+
backdrop-filter: blur(10px);
|
16681
|
+
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
16682
|
+
}
|
16683
|
+
|
16684
|
+
.desktop--linux .taskbar-button {
|
16685
|
+
background: rgba(255, 255, 255, 0.08);
|
16686
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
16687
|
+
border-radius: 8px;
|
16688
|
+
color: #ffffff;
|
16689
|
+
font-family: 'Ubuntu', sans-serif;
|
16690
|
+
font-size: 13px;
|
16691
|
+
font-weight: 400;
|
16692
|
+
transition: all 0.3s ease;
|
16693
|
+
}
|
16694
|
+
|
16695
|
+
.desktop--linux .taskbar-button:hover {
|
16696
|
+
background: rgba(255, 255, 255, 0.15);
|
16697
|
+
border-color: rgba(255, 255, 255, 0.25);
|
16698
|
+
transform: translateY(-1px);
|
16699
|
+
}
|
16700
|
+
|
16701
|
+
.desktop--linux .taskbar-button--active {
|
16702
|
+
background: rgba(53, 132, 228, 0.3);
|
16703
|
+
border-color: rgba(53, 132, 228, 0.5);
|
16704
|
+
}
|
16705
|
+
|
16706
|
+
/* Linux Application Menu (Activities Overview) */
|
16707
|
+
.desktop--linux .application-menu {
|
16708
|
+
background: rgba(36, 31, 49, 0.95);
|
16709
|
+
backdrop-filter: blur(20px);
|
16710
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
16711
|
+
border-radius: 12px;
|
16712
|
+
box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
|
16713
|
+
color: #ffffff;
|
16714
|
+
}
|
16715
|
+
|
16716
|
+
.desktop--linux .application-menu__header {
|
16717
|
+
background: linear-gradient(180deg, rgba(46, 52, 54, 0.8) 0%, rgba(36, 31, 49, 0.8) 100%);
|
16718
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
16719
|
+
color: #ffffff;
|
16720
|
+
}
|
16721
|
+
|
16722
|
+
.desktop--linux .application-menu__header h2 {
|
16723
|
+
color: #ffffff;
|
16724
|
+
font-family: 'Ubuntu', sans-serif;
|
16725
|
+
font-weight: 500;
|
16726
|
+
}
|
16727
|
+
|
16728
|
+
.desktop--linux .application-menu__close {
|
16729
|
+
color: #ffffff;
|
16730
|
+
background: rgba(255, 255, 255, 0.1);
|
16731
|
+
border-radius: 6px;
|
16732
|
+
}
|
16733
|
+
|
16734
|
+
.desktop--linux .application-menu__close:hover {
|
16735
|
+
background: rgba(224, 27, 36, 0.8);
|
16736
|
+
}
|
16737
|
+
|
16738
|
+
.desktop--linux .application-menu__search-input {
|
16739
|
+
background: rgba(255, 255, 255, 0.1);
|
16740
|
+
border: 2px solid rgba(255, 255, 255, 0.2);
|
16741
|
+
border-radius: 8px;
|
16742
|
+
color: #ffffff;
|
16743
|
+
font-family: 'Ubuntu', sans-serif;
|
16744
|
+
}
|
16745
|
+
|
16746
|
+
.desktop--linux .application-menu__search-input::placeholder {
|
16747
|
+
color: rgba(255, 255, 255, 0.6);
|
16748
|
+
}
|
16749
|
+
|
16750
|
+
.desktop--linux .application-menu__search-input:focus {
|
16751
|
+
border-color: rgba(53, 132, 228, 0.8);
|
16752
|
+
background: rgba(255, 255, 255, 0.15);
|
16753
|
+
outline: none;
|
16754
|
+
}
|
16755
|
+
|
16756
|
+
.desktop--linux .application-menu__category {
|
16757
|
+
background: rgba(255, 255, 255, 0.1);
|
16758
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
16759
|
+
border-radius: 20px;
|
16760
|
+
color: #ffffff;
|
16761
|
+
font-family: 'Ubuntu', sans-serif;
|
16762
|
+
font-size: 13px;
|
16763
|
+
font-weight: 400;
|
16764
|
+
}
|
16765
|
+
|
16766
|
+
.desktop--linux .application-menu__category:hover {
|
16767
|
+
background: rgba(255, 255, 255, 0.2);
|
16768
|
+
border-color: rgba(255, 255, 255, 0.3);
|
16769
|
+
}
|
16770
|
+
|
16771
|
+
.desktop--linux .application-menu__category.active {
|
16772
|
+
background: rgba(53, 132, 228, 0.8);
|
16773
|
+
border-color: rgba(53, 132, 228, 1);
|
16774
|
+
color: #ffffff;
|
16775
|
+
}
|
16776
|
+
|
16777
|
+
.desktop--linux .application-menu__app {
|
16778
|
+
background: rgba(255, 255, 255, 0.05);
|
16779
|
+
border: 1px solid transparent;
|
16780
|
+
border-radius: 12px;
|
16781
|
+
transition: all 0.2s ease;
|
16782
|
+
}
|
16783
|
+
|
16784
|
+
.desktop--linux .application-menu__app:hover {
|
16785
|
+
background: rgba(255, 255, 255, 0.15);
|
16786
|
+
border-color: rgba(255, 255, 255, 0.2);
|
16787
|
+
transform: translateY(-2px);
|
16788
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
|
16789
|
+
}
|
16790
|
+
|
16791
|
+
.desktop--linux .app-name {
|
16792
|
+
font-family: 'Ubuntu', sans-serif;
|
16793
|
+
font-size: 13px;
|
16794
|
+
font-weight: 400;
|
16795
|
+
color: #ffffff;
|
16796
|
+
}
|
16797
|
+
|
16798
|
+
.desktop--linux .category-title {
|
16799
|
+
color: #ffffff;
|
16800
|
+
font-family: 'Ubuntu', sans-serif;
|
16801
|
+
font-weight: 500;
|
16802
|
+
}
|
16803
|
+
|
16804
|
+
/* Linux scrollbar */
|
16805
|
+
.desktop--linux .application-menu__content::-webkit-scrollbar {
|
16806
|
+
width: 8px;
|
16807
|
+
}
|
16808
|
+
|
16809
|
+
.desktop--linux .application-menu__content::-webkit-scrollbar-track {
|
16810
|
+
background: rgba(255, 255, 255, 0.1);
|
16811
|
+
border-radius: 4px;
|
16812
|
+
}
|
16813
|
+
|
16814
|
+
.desktop--linux .application-menu__content::-webkit-scrollbar-thumb {
|
16815
|
+
background: rgba(255, 255, 255, 0.3);
|
16816
|
+
border-radius: 4px;
|
16817
|
+
}
|
16818
|
+
|
16819
|
+
.desktop--linux .application-menu__content::-webkit-scrollbar-thumb:hover {
|
16820
|
+
background: rgba(255, 255, 255, 0.5);
|
16821
|
+
}
|
16822
|
+
/* macOS Desktop Theme */
|
16823
|
+
|
16824
|
+
.desktop--macos {
|
16825
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
16826
|
+
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;
|
16827
|
+
}
|
16828
|
+
|
16829
|
+
.desktop--macos .desktop__background {
|
16830
|
+
background-image:
|
16831
|
+
radial-gradient(circle at 25% 75%, rgba(102, 126, 234, 0.3) 0%, transparent 50%),
|
16832
|
+
radial-gradient(circle at 75% 25%, rgba(118, 75, 162, 0.3) 0%, transparent 50%),
|
16833
|
+
radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
|
16834
|
+
}
|
16835
|
+
|
16836
|
+
/* macOS-style windows */
|
16837
|
+
.desktop--macos .window {
|
16838
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
16839
|
+
border-radius: 12px;
|
16840
|
+
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
|
16841
|
+
background: rgba(255, 255, 255, 0.95);
|
16842
|
+
backdrop-filter: blur(20px);
|
16843
|
+
overflow: hidden;
|
16844
|
+
}
|
16845
|
+
|
16846
|
+
.desktop--macos .window__header {
|
16847
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(245, 245, 245, 0.8) 100%);
|
16848
|
+
backdrop-filter: blur(20px);
|
16849
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
16850
|
+
border-radius: 12px 12px 0 0;
|
16851
|
+
height: 36px;
|
16852
|
+
padding: 0 16px;
|
16853
|
+
}
|
16854
|
+
|
16855
|
+
.desktop--macos .window__title {
|
16856
|
+
font-size: 13px;
|
16857
|
+
font-weight: 600;
|
16858
|
+
color: #1d1d1f;
|
16859
|
+
text-align: center;
|
16860
|
+
}
|
16861
|
+
|
16862
|
+
.desktop--macos .window__controls {
|
16863
|
+
order: -1;
|
16864
|
+
margin-right: auto;
|
16865
|
+
}
|
16866
|
+
|
16867
|
+
.desktop--macos .window__control {
|
16868
|
+
width: 12px;
|
16869
|
+
height: 12px;
|
16870
|
+
border: none;
|
16871
|
+
border-radius: 50%;
|
16872
|
+
font-size: 8px;
|
16873
|
+
color: rgba(0, 0, 0, 0.6);
|
16874
|
+
display: flex;
|
16875
|
+
align-items: center;
|
16876
|
+
justify-content: center;
|
16877
|
+
transition: all 0.2s ease;
|
16878
|
+
margin-right: 8px;
|
16879
|
+
position: relative;
|
16880
|
+
}
|
16881
|
+
|
16882
|
+
.desktop--macos .window__control::before {
|
16883
|
+
opacity: 0;
|
16884
|
+
transition: opacity 0.2s ease;
|
16885
|
+
}
|
16886
|
+
|
16887
|
+
.desktop--macos .window:hover .window__control::before {
|
16888
|
+
opacity: 1;
|
16889
|
+
}
|
16890
|
+
|
16891
|
+
.desktop--macos .window__control--close {
|
16892
|
+
background: #ff5f57;
|
16893
|
+
border: 0.5px solid #e0443e;
|
16894
|
+
}
|
16895
|
+
|
16896
|
+
.desktop--macos .window__control--minimize {
|
16897
|
+
background: #ffbd2e;
|
16898
|
+
border: 0.5px solid #dea123;
|
16899
|
+
}
|
16900
|
+
|
16901
|
+
.desktop--macos .window__control--maximize {
|
16902
|
+
background: #28ca42;
|
16903
|
+
border: 0.5px solid #1aad34;
|
16904
|
+
}
|
16905
|
+
|
16906
|
+
.desktop--macos .window__control:hover {
|
16907
|
+
transform: scale(1.1);
|
16908
|
+
}
|
16909
|
+
|
16910
|
+
.desktop--macos .window__control--close::before {
|
16911
|
+
content: '×';
|
16912
|
+
font-weight: bold;
|
16913
|
+
font-size: 10px;
|
16914
|
+
}
|
16915
|
+
|
16916
|
+
.desktop--macos .window__control--minimize::before {
|
16917
|
+
content: '−';
|
16918
|
+
font-weight: bold;
|
16919
|
+
font-size: 8px;
|
16920
|
+
}
|
16921
|
+
|
16922
|
+
.desktop--macos .window__control--maximize::before {
|
16923
|
+
content: '+';
|
16924
|
+
font-weight: bold;
|
16925
|
+
font-size: 8px;
|
16926
|
+
}
|
16927
|
+
|
16928
|
+
/* macOS taskbar styling (Dock-inspired) */
|
16929
|
+
.desktop--macos .desktop-taskbar {
|
16930
|
+
background: rgba(255, 255, 255, 0.8);
|
16931
|
+
backdrop-filter: blur(20px);
|
16932
|
+
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
16933
|
+
border-radius: 16px 16px 0 0;
|
16934
|
+
}
|
16935
|
+
|
16936
|
+
.desktop--macos .taskbar-button {
|
16937
|
+
background: rgba(0, 0, 0, 0.05);
|
16938
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
16939
|
+
border-radius: 12px;
|
16940
|
+
color: #1d1d1f;
|
16941
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
16942
|
+
font-size: 13px;
|
16943
|
+
font-weight: 500;
|
16944
|
+
transition: all 0.3s ease;
|
16945
|
+
backdrop-filter: blur(10px);
|
16946
|
+
}
|
16947
|
+
|
16948
|
+
.desktop--macos .taskbar-button:hover {
|
16949
|
+
background: rgba(0, 0, 0, 0.1);
|
16950
|
+
border-color: rgba(0, 0, 0, 0.2);
|
16951
|
+
transform: translateY(-2px);
|
16952
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
16953
|
+
}
|
16954
|
+
|
16955
|
+
.desktop--macos .taskbar-button--active {
|
16956
|
+
background: rgba(0, 122, 255, 0.15);
|
16957
|
+
border-color: rgba(0, 122, 255, 0.3);
|
16958
|
+
color: #007aff;
|
16959
|
+
}
|
16960
|
+
|
16961
|
+
/* macOS Application Menu (Launchpad-inspired) */
|
16962
|
+
.desktop--macos .application-menu {
|
16963
|
+
background: rgba(255, 255, 255, 0.9);
|
16964
|
+
backdrop-filter: blur(40px);
|
16965
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
16966
|
+
border-radius: 20px;
|
16967
|
+
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
|
16968
|
+
}
|
16969
|
+
|
16970
|
+
.desktop--macos .application-menu__header {
|
16971
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(248, 248, 248, 0.8) 100%);
|
16972
|
+
backdrop-filter: blur(20px);
|
16973
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
16974
|
+
border-radius: 20px 20px 0 0;
|
16975
|
+
}
|
16976
|
+
|
16977
|
+
.desktop--macos .application-menu__header h2 {
|
16978
|
+
color: #1d1d1f;
|
16979
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
16980
|
+
font-weight: 600;
|
16981
|
+
font-size: 20px;
|
16982
|
+
}
|
16983
|
+
|
16984
|
+
.desktop--macos .application-menu__close {
|
16985
|
+
color: #8e8e93;
|
16986
|
+
background: rgba(0, 0, 0, 0.05);
|
16987
|
+
border-radius: 8px;
|
16988
|
+
font-size: 18px;
|
16989
|
+
}
|
16990
|
+
|
16991
|
+
.desktop--macos .application-menu__close:hover {
|
16992
|
+
background: rgba(255, 95, 87, 0.8);
|
16993
|
+
color: white;
|
16994
|
+
}
|
16995
|
+
|
16996
|
+
.desktop--macos .application-menu__search-input {
|
16997
|
+
background: rgba(0, 0, 0, 0.05);
|
16998
|
+
border: 2px solid rgba(0, 0, 0, 0.1);
|
16999
|
+
border-radius: 12px;
|
17000
|
+
color: #1d1d1f;
|
17001
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17002
|
+
font-size: 15px;
|
17003
|
+
}
|
17004
|
+
|
17005
|
+
.desktop--macos .application-menu__search-input::placeholder {
|
17006
|
+
color: #8e8e93;
|
17007
|
+
}
|
17008
|
+
|
17009
|
+
.desktop--macos .application-menu__search-input:focus {
|
17010
|
+
border-color: rgba(0, 122, 255, 0.8);
|
17011
|
+
background: rgba(255, 255, 255, 0.8);
|
17012
|
+
outline: none;
|
17013
|
+
box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.1);
|
17014
|
+
}
|
17015
|
+
|
17016
|
+
.desktop--macos .application-menu__category {
|
17017
|
+
background: rgba(0, 0, 0, 0.05);
|
17018
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
17019
|
+
border-radius: 20px;
|
17020
|
+
color: #1d1d1f;
|
17021
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17022
|
+
font-size: 13px;
|
17023
|
+
font-weight: 500;
|
17024
|
+
}
|
17025
|
+
|
17026
|
+
.desktop--macos .application-menu__category:hover {
|
17027
|
+
background: rgba(0, 0, 0, 0.1);
|
17028
|
+
border-color: rgba(0, 0, 0, 0.2);
|
17029
|
+
}
|
17030
|
+
|
17031
|
+
.desktop--macos .application-menu__category.active {
|
17032
|
+
background: rgba(0, 122, 255, 0.8);
|
17033
|
+
border-color: rgba(0, 122, 255, 1);
|
17034
|
+
color: white;
|
17035
|
+
}
|
17036
|
+
|
17037
|
+
.desktop--macos .application-menu__app {
|
17038
|
+
background: rgba(255, 255, 255, 0.6);
|
17039
|
+
border: 1px solid transparent;
|
17040
|
+
border-radius: 16px;
|
17041
|
+
transition: all 0.3s ease;
|
17042
|
+
backdrop-filter: blur(10px);
|
17043
|
+
}
|
17044
|
+
|
17045
|
+
.desktop--macos .application-menu__app:hover {
|
17046
|
+
background: rgba(255, 255, 255, 0.8);
|
17047
|
+
border-color: rgba(0, 0, 0, 0.1);
|
17048
|
+
transform: translateY(-4px) scale(1.05);
|
17049
|
+
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
|
17050
|
+
}
|
17051
|
+
|
17052
|
+
.desktop--macos .app-name {
|
17053
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17054
|
+
font-size: 12px;
|
17055
|
+
font-weight: 500;
|
17056
|
+
color: #1d1d1f;
|
17057
|
+
}
|
17058
|
+
|
17059
|
+
.desktop--macos .category-title {
|
17060
|
+
color: #1d1d1f;
|
17061
|
+
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
|
17062
|
+
font-weight: 600;
|
17063
|
+
}
|
17064
|
+
|
17065
|
+
/* macOS scrollbar */
|
17066
|
+
.desktop--macos .application-menu__content::-webkit-scrollbar {
|
17067
|
+
width: 6px;
|
17068
|
+
}
|
17069
|
+
|
17070
|
+
.desktop--macos .application-menu__content::-webkit-scrollbar-track {
|
17071
|
+
background: transparent;
|
17072
|
+
}
|
17073
|
+
|
17074
|
+
.desktop--macos .application-menu__content::-webkit-scrollbar-thumb {
|
17075
|
+
background: rgba(0, 0, 0, 0.2);
|
17076
|
+
border-radius: 3px;
|
17077
|
+
}
|
17078
|
+
|
17079
|
+
.desktop--macos .application-menu__content::-webkit-scrollbar-thumb:hover {
|
17080
|
+
background: rgba(0, 0, 0, 0.4);
|
17081
|
+
}
|
16121
17082
|
/**************************************/
|
16122
17083
|
/*********** content-editor ***********/
|
16123
17084
|
/**************************************/
|