markui-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,712 @@
1
+ /* MarkUI Overlay — all styles scoped to .markui-* */
2
+
3
+ /* ── Toolbar (Pill) ──────────────────────────────────────────────── */
4
+
5
+ .markui-toolbar {
6
+ position: fixed;
7
+ bottom: 20px;
8
+ left: 50%;
9
+ transform: translateX(-50%);
10
+ z-index: 2147483640;
11
+ display: flex;
12
+ align-items: center;
13
+ gap: 4px;
14
+ background: #FFFFFF;
15
+ border-radius: 12px;
16
+ -webkit-border-radius: 12px;
17
+ padding: 4px;
18
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.08);
19
+ font-family: 'SF Pro Rounded', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
20
+ font-size: 14px;
21
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
22
+ transform-origin: center center;
23
+ }
24
+
25
+ .markui-toolbar-hidden {
26
+ opacity: 0;
27
+ pointer-events: none;
28
+ transform: translateX(-50%) scale(0.5);
29
+ transform-origin: center center;
30
+ }
31
+
32
+ /* Shared pill button base */
33
+ .markui-pill-btn {
34
+ border: none;
35
+ cursor: pointer;
36
+ display: inline-flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ font-family: inherit;
40
+ transition: background 0.15s, transform 0.1s, opacity 0.15s;
41
+ -webkit-tap-highlight-color: transparent;
42
+ }
43
+
44
+ .markui-pill-btn:active {
45
+ transform: scale(0.95);
46
+ }
47
+
48
+ /* Annotate (select) button */
49
+ .markui-annotate-btn {
50
+ width: 36px;
51
+ height: 36px;
52
+ border-radius: 8px;
53
+ background: transparent;
54
+ color: #A2A2A2;
55
+ }
56
+
57
+ .markui-annotate-btn:hover {
58
+ background: #F3F3F3;
59
+ color: #333;
60
+ }
61
+
62
+ .markui-annotate-btn.markui-active {
63
+ background: #33B1EF;
64
+ color: #fff;
65
+ }
66
+
67
+ .markui-annotate-btn.markui-active:hover {
68
+ background: #3DBBF5;
69
+ }
70
+
71
+ /* Trash (clear all) button */
72
+ .markui-trash-btn {
73
+ width: 36px;
74
+ height: 36px;
75
+ border-radius: 8px;
76
+ background: transparent;
77
+ color: #A2A2A2;
78
+ }
79
+
80
+ .markui-trash-btn:hover {
81
+ background: #F3F3F3;
82
+ color: #ff4d4d;
83
+ }
84
+
85
+ /* Badge wrapper button — same size as other icon buttons */
86
+ .markui-badge-wrap {
87
+ width: 36px;
88
+ height: 36px;
89
+ border-radius: 8px;
90
+ background: transparent;
91
+ display: none;
92
+ align-items: center;
93
+ justify-content: center;
94
+ }
95
+
96
+ .markui-badge-wrap:hover {
97
+ background: #F3F3F3;
98
+ }
99
+
100
+ /* Count badge — circular, blue, inside the wrapper */
101
+ .markui-count-badge {
102
+ width: 20px;
103
+ height: 20px;
104
+ border-radius: 9999px;
105
+ background: #33B1EF;
106
+ color: #fff;
107
+ font-size: 11px;
108
+ font-weight: 600;
109
+ font-family: inherit;
110
+ display: inline-flex;
111
+ align-items: center;
112
+ justify-content: center;
113
+ pointer-events: none;
114
+ transition: background 0.15s;
115
+ }
116
+
117
+ /* Copy button — icon button */
118
+ .markui-copy-btn {
119
+ width: 36px;
120
+ height: 36px;
121
+ border-radius: 8px;
122
+ background: transparent;
123
+ color: #A2A2A2;
124
+ }
125
+
126
+ .markui-copy-btn:hover {
127
+ background: #F3F3F3;
128
+ color: #333;
129
+ }
130
+
131
+ /* Close (X) button */
132
+ .markui-close-btn {
133
+ width: 36px;
134
+ height: 36px;
135
+ border-radius: 8px;
136
+ background: transparent;
137
+ color: #A2A2A2;
138
+ }
139
+
140
+ .markui-close-btn:hover {
141
+ background: #F3F3F3;
142
+ color: #666;
143
+ }
144
+
145
+ /* Toolbar tooltip (real DOM element, not clipped by squircle) */
146
+ .markui-toolbar-tooltip {
147
+ position: fixed;
148
+ background: #171717;
149
+ color: #fff;
150
+ font-size: 12px;
151
+ font-weight: 400;
152
+ font-family: 'SF Pro Rounded', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
153
+ line-height: 16px;
154
+ letter-spacing: 0.2px;
155
+ padding: 4px 8px;
156
+ border-radius: 8px;
157
+ white-space: nowrap;
158
+ pointer-events: none;
159
+ opacity: 0;
160
+ transition: opacity 0.15s;
161
+ z-index: 2147483643;
162
+ }
163
+
164
+ .markui-toolbar-tooltip-caret {
165
+ position: fixed;
166
+ width: 12px;
167
+ height: 6px;
168
+ background: #171717;
169
+ clip-path: path("M 0 0 L 4.5 4.5 Q 6 6 7.5 4.5 L 12 0 Z");
170
+ pointer-events: none;
171
+ opacity: 0;
172
+ transition: opacity 0.15s;
173
+ z-index: 2147483643;
174
+ }
175
+
176
+ .markui-toolbar-tooltip-caret-visible {
177
+ opacity: 1;
178
+ }
179
+
180
+ .markui-toolbar-tooltip-visible {
181
+ opacity: 1;
182
+ }
183
+
184
+ /* Separator line between copy button and close button */
185
+ .markui-pill-sep {
186
+ width: 1px;
187
+ height: 14px;
188
+ background: #F3F3F3;
189
+ flex-shrink: 0;
190
+ }
191
+
192
+ /* ── Mini (collapsed) button ─────────────────────────────────────── */
193
+
194
+ .markui-mini {
195
+ position: fixed;
196
+ bottom: 20px;
197
+ left: 50%;
198
+ z-index: 2147483640;
199
+ width: 48px;
200
+ height: 48px;
201
+ border-radius: 14px;
202
+ background: #FFFFFF;
203
+ color: #A2A2A2;
204
+ border: none;
205
+ cursor: pointer;
206
+ display: inline-flex;
207
+ align-items: center;
208
+ justify-content: center;
209
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1), 0 12px 40px rgba(0, 0, 0, 0.14);
210
+ opacity: 0;
211
+ pointer-events: none;
212
+ transform: translateX(-50%) scale(0.5);
213
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
214
+ font-family: 'SF Pro Rounded', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
215
+ }
216
+
217
+ .markui-mini:hover {
218
+ background: #F3F3F3;
219
+ color: #333;
220
+ }
221
+
222
+ .markui-mini-visible {
223
+ opacity: 1;
224
+ pointer-events: auto;
225
+ transform: translateX(-50%) scale(1);
226
+ }
227
+
228
+ /* ── Highlight ────────────────────────────────────────────────────── */
229
+
230
+ .markui-highlight {
231
+ position: absolute;
232
+ display: none;
233
+ border: 2px solid #33B1EF;
234
+ background: rgba(108, 99, 255, 0.08);
235
+ border-radius: 3px;
236
+ pointer-events: none;
237
+ z-index: 2147483638;
238
+ transition: all 0.1s ease;
239
+ }
240
+
241
+ /* ── Tooltip ──────────────────────────────────────────────────────── */
242
+
243
+ .markui-tooltip {
244
+ position: absolute;
245
+ display: none;
246
+ background: #1a1a2e;
247
+ color: #e0e0e0;
248
+ font-family: 'SF Mono', 'Fira Code', monospace;
249
+ font-size: 11px;
250
+ padding: 4px 8px;
251
+ border-radius: 4px;
252
+ white-space: nowrap;
253
+ pointer-events: none;
254
+ z-index: 2147483639;
255
+ }
256
+
257
+ /* ── Popup ────────────────────────────────────────────────────────── */
258
+
259
+ .markui-popup {
260
+ position: absolute;
261
+ display: none;
262
+ width: 300px;
263
+ background: #FFFFFF;
264
+ border: none;
265
+ border-radius: 16px;
266
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08), 0 12px 40px rgba(0, 0, 0, 0.12);
267
+ z-index: 2147483641;
268
+ font-family: 'SF Pro Rounded', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
269
+ padding: 10px;
270
+ }
271
+
272
+ .markui-popup-header {
273
+ padding: 0 0 6px 0;
274
+ }
275
+
276
+ .markui-popup-selector {
277
+ display: inline-block;
278
+ font-family: 'SF Pro Rounded', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
279
+ font-size: 14px;
280
+ font-weight: 500;
281
+ color: #009DEB;
282
+ background: #F8F8F8;
283
+ padding: 8px 14px;
284
+ border-radius: 10px;
285
+ max-width: 100%;
286
+ overflow: hidden;
287
+ text-overflow: ellipsis;
288
+ white-space: nowrap;
289
+ box-sizing: border-box;
290
+ cursor: pointer;
291
+ transition: background 0.15s;
292
+ }
293
+
294
+ .markui-popup-selector:hover {
295
+ background: #F0F0F0;
296
+ }
297
+
298
+ /* Element styles panel (toggled by clicking selector) */
299
+ .markui-popup-styles {
300
+ max-height: 160px;
301
+ overflow-y: auto;
302
+ background: #F8F8F8;
303
+ border-radius: 8px;
304
+ padding: 8px 10px;
305
+ margin-bottom: 4px;
306
+ font-family: 'SF Mono', 'Fira Code', monospace;
307
+ font-size: 11px;
308
+ line-height: 1.6;
309
+ }
310
+
311
+ .markui-popup-style-row {
312
+ display: flex;
313
+ gap: 8px;
314
+ }
315
+
316
+ .markui-popup-style-prop {
317
+ color: #999;
318
+ flex-shrink: 0;
319
+ }
320
+
321
+ .markui-popup-style-val {
322
+ color: #333;
323
+ overflow: hidden;
324
+ text-overflow: ellipsis;
325
+ white-space: nowrap;
326
+ }
327
+
328
+ .markui-popup-textarea {
329
+ width: 100%;
330
+ border: none;
331
+ outline: none;
332
+ padding: 6px 4px;
333
+ font-size: 15px;
334
+ font-weight: 400;
335
+ font-family: inherit;
336
+ resize: none;
337
+ min-height: 48px;
338
+ box-sizing: border-box;
339
+ border-radius: 0;
340
+ background: transparent;
341
+ color: #333;
342
+ letter-spacing: 0.2px;
343
+ caret-color: #009DEB;
344
+ }
345
+
346
+ .markui-popup-textarea::placeholder {
347
+ color: #bbb;
348
+ }
349
+
350
+ .markui-popup-actions {
351
+ display: flex;
352
+ align-items: center;
353
+ gap: 12px;
354
+ padding: 4px 0 0 0;
355
+ }
356
+
357
+ /* Plus / attach button */
358
+ .markui-popup-plus {
359
+ width: 36px;
360
+ height: 36px;
361
+ border: none;
362
+ border-radius: 8px;
363
+ background: transparent;
364
+ color: #333;
365
+ cursor: pointer;
366
+ display: inline-flex;
367
+ align-items: center;
368
+ justify-content: center;
369
+ margin-right: auto;
370
+ transition: background 0.15s, transform 0.1s;
371
+ font-family: inherit;
372
+ -webkit-tap-highlight-color: transparent;
373
+ }
374
+
375
+ .markui-popup-plus:hover {
376
+ background: #e8e8e8;
377
+ }
378
+
379
+ .markui-popup-plus:active {
380
+ transform: scale(0.95);
381
+ }
382
+
383
+ /* Cancel text button */
384
+ .markui-popup-cancel {
385
+ border: none;
386
+ background: transparent;
387
+ color: #333;
388
+ font-size: 15px;
389
+ font-weight: 400;
390
+ font-family: inherit;
391
+ cursor: pointer;
392
+ height: 36px;
393
+ padding: 0 8px;
394
+ border-radius: 8px;
395
+ display: inline-flex;
396
+ align-items: center;
397
+ transition: color 0.15s, background 0.15s;
398
+ }
399
+
400
+ .markui-popup-cancel:hover {
401
+ color: #000;
402
+ background: #F3F3F3;
403
+ }
404
+
405
+ /* Circular submit button */
406
+ .markui-popup-submit {
407
+ width: 36px;
408
+ height: 36px;
409
+ border: none;
410
+ border-radius: 9999px;
411
+ background: #171717;
412
+ color: #fff;
413
+ cursor: pointer;
414
+ display: inline-flex;
415
+ align-items: center;
416
+ justify-content: center;
417
+ transition: background 0.15s, transform 0.1s;
418
+ flex-shrink: 0;
419
+ -webkit-tap-highlight-color: transparent;
420
+ }
421
+
422
+ .markui-popup-submit:hover {
423
+ background: #2a2a2a;
424
+ }
425
+
426
+ .markui-popup-submit:active {
427
+ transform: scale(0.95);
428
+ }
429
+
430
+ /* Popup delete button — same size as plus/attach */
431
+ .markui-popup-delete-btn {
432
+ width: 36px;
433
+ height: 36px;
434
+ border: none;
435
+ border-radius: 8px;
436
+ background: transparent;
437
+ color: #999;
438
+ cursor: pointer;
439
+ display: inline-flex;
440
+ align-items: center;
441
+ justify-content: center;
442
+ transition: color 0.15s, background 0.15s, transform 0.1s;
443
+ font-family: inherit;
444
+ -webkit-tap-highlight-color: transparent;
445
+ }
446
+
447
+ .markui-popup-delete-btn:hover {
448
+ color: #ff4d4d;
449
+ background: #fff0f0;
450
+ }
451
+
452
+ .markui-popup-delete-btn:active {
453
+ transform: scale(0.95);
454
+ }
455
+
456
+ /* Attachment preview in popup */
457
+ .markui-popup-preview {
458
+ display: flex;
459
+ align-items: center;
460
+ gap: 8px;
461
+ padding: 8px;
462
+ margin-top: 8px;
463
+ background: #fff;
464
+ border: 1px solid #D1D1D1;
465
+ border-radius: 8px;
466
+ }
467
+
468
+ .markui-popup-preview-img {
469
+ width: 48px;
470
+ height: 48px;
471
+ object-fit: cover;
472
+ border-radius: 6px;
473
+ flex-shrink: 0;
474
+ }
475
+
476
+ .markui-popup-preview-info {
477
+ flex: 1;
478
+ min-width: 0;
479
+ display: flex;
480
+ align-items: center;
481
+ gap: 4px;
482
+ }
483
+
484
+ .markui-popup-preview-name {
485
+ font-size: 12px;
486
+ color: #666;
487
+ overflow: hidden;
488
+ text-overflow: ellipsis;
489
+ white-space: nowrap;
490
+ flex: 1;
491
+ }
492
+
493
+ .markui-popup-preview-remove {
494
+ background: none;
495
+ border: none;
496
+ color: #999;
497
+ font-size: 18px;
498
+ cursor: pointer;
499
+ padding: 0 4px;
500
+ line-height: 1;
501
+ flex-shrink: 0;
502
+ }
503
+
504
+ .markui-popup-preview-remove:hover {
505
+ color: #ff4d4d;
506
+ }
507
+
508
+ /* ── Side Panel ───────────────────────────────────────────────────── */
509
+
510
+ .markui-panel {
511
+ position: fixed;
512
+ top: 0;
513
+ right: -360px;
514
+ width: 340px;
515
+ height: 100vh;
516
+ background: #fff;
517
+ border-left: 1px solid #ddd;
518
+ box-shadow: -4px 0 20px rgba(0, 0, 0, 0.08);
519
+ z-index: 2147483641;
520
+ font-family: 'SF Pro Rounded', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
521
+ transition: right 0.25s ease;
522
+ overflow-y: auto;
523
+ }
524
+
525
+ .markui-panel-open {
526
+ right: 0;
527
+ }
528
+
529
+ .markui-panel-header {
530
+ padding: 16px 18px;
531
+ font-size: 15px;
532
+ font-weight: 600;
533
+ color: #1a1a2e;
534
+ border-bottom: 1px solid #eee;
535
+ position: sticky;
536
+ top: 0;
537
+ background: #fff;
538
+ display: flex;
539
+ align-items: center;
540
+ justify-content: space-between;
541
+ }
542
+
543
+ .markui-panel-header-actions {
544
+ display: flex;
545
+ align-items: center;
546
+ gap: 4px;
547
+ }
548
+
549
+ .markui-panel-icon-btn {
550
+ background: none;
551
+ border: none;
552
+ color: #999;
553
+ cursor: pointer;
554
+ padding: 4px;
555
+ border-radius: 6px;
556
+ display: inline-flex;
557
+ align-items: center;
558
+ justify-content: center;
559
+ transition: color 0.15s, background 0.15s;
560
+ line-height: 1;
561
+ }
562
+
563
+ .markui-panel-icon-btn:hover {
564
+ color: #333;
565
+ background: #f0f0f0;
566
+ }
567
+
568
+ .markui-panel-header-actions .markui-panel-icon-btn:hover {
569
+ color: #ff4d4d;
570
+ background: #fff0f0;
571
+ }
572
+
573
+ #markui-panel-close:hover {
574
+ color: #333 !important;
575
+ background: #f0f0f0 !important;
576
+ }
577
+
578
+ .markui-panel-list {
579
+ padding: 8px 0;
580
+ }
581
+
582
+ .markui-panel-empty {
583
+ padding: 24px 18px;
584
+ text-align: center;
585
+ color: #999;
586
+ font-size: 13px;
587
+ }
588
+
589
+ .markui-panel-item {
590
+ display: flex;
591
+ align-items: flex-start;
592
+ gap: 10px;
593
+ padding: 12px 18px;
594
+ border-bottom: 1px solid #f0f0f0;
595
+ }
596
+
597
+ .markui-panel-num {
598
+ display: inline-flex;
599
+ align-items: center;
600
+ justify-content: center;
601
+ min-width: 24px;
602
+ height: 24px;
603
+ border-radius: 12px;
604
+ background: #33B1EF;
605
+ color: #fff;
606
+ font-size: 11px;
607
+ font-weight: 600;
608
+ flex-shrink: 0;
609
+ margin-top: 2px;
610
+ }
611
+
612
+ .markui-panel-info {
613
+ flex: 1;
614
+ min-width: 0;
615
+ }
616
+
617
+ .markui-panel-selector {
618
+ font-family: 'SF Mono', 'Fira Code', monospace;
619
+ font-size: 11px;
620
+ color: #33B1EF;
621
+ margin-bottom: 4px;
622
+ word-break: break-all;
623
+ }
624
+
625
+ .markui-panel-instruction {
626
+ font-size: 13px;
627
+ color: #333;
628
+ line-height: 1.4;
629
+ }
630
+
631
+ .markui-panel-item-actions {
632
+ display: flex;
633
+ align-items: center;
634
+ gap: 2px;
635
+ flex-shrink: 0;
636
+ margin-top: 2px;
637
+ }
638
+
639
+ .markui-panel-copy:hover {
640
+ color: #009DEB !important;
641
+ background: #e8f6fd !important;
642
+ }
643
+
644
+ .markui-panel-edit:hover {
645
+ color: #33B1EF !important;
646
+ background: #e8f6fd !important;
647
+ }
648
+
649
+ .markui-panel-delete:hover {
650
+ color: #ff4d4d !important;
651
+ background: #fff0f0 !important;
652
+ }
653
+
654
+ .markui-panel-attachment {
655
+ display: flex;
656
+ align-items: center;
657
+ gap: 4px;
658
+ font-size: 11px;
659
+ color: #999;
660
+ margin-top: 4px;
661
+ }
662
+
663
+ /* ── Numbered Badges ──────────────────────────────────────────────── */
664
+
665
+ .markui-badges {
666
+ position: absolute;
667
+ top: 0;
668
+ left: 0;
669
+ pointer-events: none;
670
+ z-index: 2147483637;
671
+ }
672
+
673
+ .markui-badge-num {
674
+ position: absolute;
675
+ display: flex;
676
+ align-items: center;
677
+ justify-content: center;
678
+ width: 20px;
679
+ height: 20px;
680
+ border-radius: 10px;
681
+ background: #33B1EF;
682
+ color: #fff;
683
+ font-size: 10px;
684
+ font-weight: 700;
685
+ font-family: 'SF Pro Rounded', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
686
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
687
+ transform: translate(-50%, -50%);
688
+ }
689
+
690
+ /* ── Toast ────────────────────────────────────────────────────────── */
691
+
692
+ .markui-toast {
693
+ position: fixed;
694
+ bottom: 80px;
695
+ left: 50%;
696
+ transform: translateX(-50%) translateY(20px);
697
+ background: #1a1a2e;
698
+ color: #fff;
699
+ padding: 8px 20px;
700
+ border-radius: 8px;
701
+ font-size: 13px;
702
+ font-family: 'SF Pro Rounded', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
703
+ opacity: 0;
704
+ pointer-events: none;
705
+ transition: opacity 0.2s, transform 0.2s;
706
+ z-index: 2147483642;
707
+ }
708
+
709
+ .markui-toast-show {
710
+ opacity: 1;
711
+ transform: translateX(-50%) translateY(0);
712
+ }