@inkbar/theme 0.3.0 → 0.4.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.
- package/package.json +1 -1
- package/theme.css +598 -11
package/package.json
CHANGED
package/theme.css
CHANGED
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
/* Tokens. Popovers are portalled out of the root, so they carry the tokens too. */
|
|
15
15
|
:where(
|
|
16
16
|
[data-ink-root],
|
|
17
|
-
[data-ink-
|
|
17
|
+
[data-ink-thread-popover],
|
|
18
18
|
[data-ink-suggestion-card],
|
|
19
|
-
[data-ink-select-content]
|
|
19
|
+
[data-ink-select-content],
|
|
20
|
+
[data-ink-signature-dialog]
|
|
20
21
|
) {
|
|
21
22
|
--ink-highlight: #f2c230;
|
|
22
23
|
--ink-underline: #2b5a9e;
|
|
@@ -50,9 +51,10 @@
|
|
|
50
51
|
@media (prefers-color-scheme: dark) {
|
|
51
52
|
:where(
|
|
52
53
|
[data-ink-root]:not(.light, .light *),
|
|
53
|
-
[data-ink-
|
|
54
|
+
[data-ink-thread-popover]:not(.light *),
|
|
54
55
|
[data-ink-suggestion-card]:not(.light *),
|
|
55
|
-
[data-ink-select-content]:not(.light *)
|
|
56
|
+
[data-ink-select-content]:not(.light *),
|
|
57
|
+
[data-ink-signature-dialog]:not(.light *)
|
|
56
58
|
) {
|
|
57
59
|
--ink-bg: var(--muted, #0f1217);
|
|
58
60
|
--ink-fg: var(--foreground, #e6e9ef);
|
|
@@ -70,9 +72,10 @@
|
|
|
70
72
|
:where(
|
|
71
73
|
.dark [data-ink-root]:not(.light, .dark .light *),
|
|
72
74
|
[data-ink-root].dark,
|
|
73
|
-
.dark [data-ink-
|
|
75
|
+
.dark [data-ink-thread-popover]:not(.dark .light *),
|
|
74
76
|
.dark [data-ink-suggestion-card]:not(.dark .light *),
|
|
75
|
-
.dark [data-ink-select-content]:not(.dark .light *)
|
|
77
|
+
.dark [data-ink-select-content]:not(.dark .light *),
|
|
78
|
+
.dark [data-ink-signature-dialog]:not(.dark .light *)
|
|
76
79
|
) {
|
|
77
80
|
--ink-bg: var(--muted, #0f1217);
|
|
78
81
|
--ink-fg: var(--foreground, #e6e9ef);
|
|
@@ -259,7 +262,25 @@
|
|
|
259
262
|
background: color-mix(in srgb, var(--ink-redact) 15%, transparent);
|
|
260
263
|
}
|
|
261
264
|
|
|
262
|
-
/*
|
|
265
|
+
/* The shape draft's box is only its bounds; the outline is the SVG inside it. */
|
|
266
|
+
:where(.ink-draft[data-ink-draft='shape']) {
|
|
267
|
+
border: 0;
|
|
268
|
+
background: none;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
:where(.ink-draft[data-ink-draft='shape'] svg) {
|
|
272
|
+
display: block;
|
|
273
|
+
stroke: var(--ink-accent);
|
|
274
|
+
stroke-width: 1.5;
|
|
275
|
+
stroke-dasharray: 4 3;
|
|
276
|
+
fill: color-mix(in srgb, var(--ink-accent) 10%, transparent);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
:where(.ink-draft[data-ink-draft='shape'] polyline) {
|
|
280
|
+
fill: none;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* Edit handles on a selected annotation: shown with the select tools only. */
|
|
263
284
|
:where(.ink-handle) {
|
|
264
285
|
box-sizing: border-box;
|
|
265
286
|
border: 1px solid var(--ink-accent);
|
|
@@ -267,7 +288,10 @@
|
|
|
267
288
|
background: var(--ink-surface);
|
|
268
289
|
}
|
|
269
290
|
|
|
270
|
-
:where(
|
|
291
|
+
:where(
|
|
292
|
+
[data-ink-tool]:not([data-ink-tool='select'], [data-ink-tool='select-text'])
|
|
293
|
+
.ink-handle
|
|
294
|
+
) {
|
|
271
295
|
display: none;
|
|
272
296
|
}
|
|
273
297
|
|
|
@@ -279,6 +303,11 @@
|
|
|
279
303
|
cursor: nesw-resize;
|
|
280
304
|
}
|
|
281
305
|
|
|
306
|
+
:where(.ink-handle[data-handle='start'], .ink-handle[data-handle='end']) {
|
|
307
|
+
border-radius: 50%;
|
|
308
|
+
cursor: move;
|
|
309
|
+
}
|
|
310
|
+
|
|
282
311
|
/* Annotations */
|
|
283
312
|
:where(.ink-overlay) {
|
|
284
313
|
z-index: 1;
|
|
@@ -298,7 +327,7 @@
|
|
|
298
327
|
|
|
299
328
|
:where(
|
|
300
329
|
[data-ink-tool='select'] .ink-annotation,
|
|
301
|
-
[data-ink-tool='
|
|
330
|
+
[data-ink-tool='select-text'] .ink-annotation
|
|
302
331
|
) {
|
|
303
332
|
cursor: pointer;
|
|
304
333
|
}
|
|
@@ -320,6 +349,36 @@
|
|
|
320
349
|
outline-style: dotted;
|
|
321
350
|
}
|
|
322
351
|
|
|
352
|
+
/* A free text inset by a fringe outlines its text box, where its corner handles sit, not
|
|
353
|
+
the whole rect with its callout. */
|
|
354
|
+
:where(.ink-annotation[data-framed]) {
|
|
355
|
+
outline-color: transparent;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
:where(.ink-selection-frame) {
|
|
359
|
+
border-radius: 2px;
|
|
360
|
+
outline: 1px solid transparent;
|
|
361
|
+
outline-offset: 1px;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
:where(.ink-annotation[data-framed][data-state='hover'] > .ink-selection-frame) {
|
|
365
|
+
outline-color: color-mix(in srgb, var(--ink-ring) 50%, transparent);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
:where(
|
|
369
|
+
.ink-annotation[data-framed][data-state='selected'] > .ink-selection-frame,
|
|
370
|
+
.ink-annotation[data-framed]:focus-visible > .ink-selection-frame
|
|
371
|
+
) {
|
|
372
|
+
outline: 2px solid var(--ink-ring);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
:where(
|
|
376
|
+
.ink-annotation[data-framed][data-locked][data-state='selected']
|
|
377
|
+
> .ink-selection-frame
|
|
378
|
+
) {
|
|
379
|
+
outline-style: dotted;
|
|
380
|
+
}
|
|
381
|
+
|
|
323
382
|
:where(.ink-annotation[data-origin='suggested'] .ink-annotation-shape > *) {
|
|
324
383
|
stroke-dasharray: 4 3;
|
|
325
384
|
}
|
|
@@ -337,19 +396,58 @@
|
|
|
337
396
|
pointer-events: none;
|
|
338
397
|
}
|
|
339
398
|
|
|
399
|
+
/* Commented text markup: a comment glyph at the markup's end. */
|
|
400
|
+
:where(.ink-comment-marker) {
|
|
401
|
+
position: absolute;
|
|
402
|
+
display: grid;
|
|
403
|
+
place-items: center;
|
|
404
|
+
width: 14px;
|
|
405
|
+
height: 14px;
|
|
406
|
+
translate: -25% -75%;
|
|
407
|
+
border-radius: 4px;
|
|
408
|
+
background: var(--ink-surface);
|
|
409
|
+
color: var(--ink-accent);
|
|
410
|
+
box-shadow: 0 1px 2px rgb(0 0 0 / 0.3);
|
|
411
|
+
pointer-events: none;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
:where(.ink-comment-marker > svg) {
|
|
415
|
+
width: 10px;
|
|
416
|
+
height: 10px;
|
|
417
|
+
}
|
|
418
|
+
|
|
340
419
|
:where(.ink-free-text) {
|
|
420
|
+
box-sizing: border-box;
|
|
341
421
|
width: 100%;
|
|
342
422
|
height: 100%;
|
|
343
423
|
overflow: hidden;
|
|
344
424
|
font-family: var(--ink-font-family, Helvetica), Helvetica, Arial, sans-serif;
|
|
345
425
|
font-size: var(--ink-font-size);
|
|
426
|
+
font-weight: var(--ink-font-weight, normal);
|
|
427
|
+
font-style: var(--ink-font-style, normal);
|
|
428
|
+
text-decoration: var(--ink-text-decoration, none);
|
|
346
429
|
line-height: 1.2;
|
|
347
430
|
color: var(--ink-text-color, var(--ink-free-text));
|
|
431
|
+
background: var(--ink-fill, transparent);
|
|
432
|
+
border-radius: var(--ink-corner-radius, 0);
|
|
348
433
|
opacity: var(--ink-opacity, 1);
|
|
349
434
|
overflow-wrap: break-word;
|
|
350
435
|
white-space: pre-wrap;
|
|
351
436
|
}
|
|
352
437
|
|
|
438
|
+
:where(.ink-free-text[data-border]) {
|
|
439
|
+
border: var(--ink-border-width, 1px) solid var(--ink-box-border, var(--ink-free-text));
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
:where(.ink-free-text[data-border='dashed']) {
|
|
443
|
+
border-style: dashed;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/* A speech bubble's outline is the path beside the text, so the text only needs room inside it. */
|
|
447
|
+
:where(.ink-free-text[data-bubble]) {
|
|
448
|
+
padding: 0.4em 0.6em;
|
|
449
|
+
}
|
|
450
|
+
|
|
353
451
|
:where(.ink-free-text[data-align='left']) {
|
|
354
452
|
text-align: left;
|
|
355
453
|
}
|
|
@@ -362,6 +460,19 @@
|
|
|
362
460
|
text-align: right;
|
|
363
461
|
}
|
|
364
462
|
|
|
463
|
+
:where(.ink-free-text[data-align='justify']) {
|
|
464
|
+
text-align: justify;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/* The in-place editor grows with its text, and shows where the box is while it is empty. */
|
|
468
|
+
:where(.ink-free-text[data-ink-editor]) {
|
|
469
|
+
height: auto;
|
|
470
|
+
overflow: visible;
|
|
471
|
+
outline: 1px dashed var(--ink-free-text);
|
|
472
|
+
outline-offset: 1px;
|
|
473
|
+
cursor: text;
|
|
474
|
+
}
|
|
475
|
+
|
|
365
476
|
/*
|
|
366
477
|
* Toolbar. The theme styles the bar's surface and the controls in it; where a bar sits, how
|
|
367
478
|
* its controls are grouped and what separates it from the document are up to the app.
|
|
@@ -572,8 +683,484 @@
|
|
|
572
683
|
display: inline-flex;
|
|
573
684
|
}
|
|
574
685
|
|
|
575
|
-
/*
|
|
576
|
-
|
|
686
|
+
/*
|
|
687
|
+
* Style menus (line style and the other style controls). The panel takes the select
|
|
688
|
+
* panel's box through `.ink-select-content`; its items are buttons.
|
|
689
|
+
*/
|
|
690
|
+
:where(.ink-menu-content) {
|
|
691
|
+
min-width: 11rem;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
:where(.ink-menu-group + .ink-menu-group) {
|
|
695
|
+
margin-top: 0.25rem;
|
|
696
|
+
padding-top: 0.25rem;
|
|
697
|
+
border-top: 1px solid var(--ink-border);
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
:where(.ink-menu-label) {
|
|
701
|
+
padding: 0.25rem 0.5rem;
|
|
702
|
+
color: var(--ink-muted-fg);
|
|
703
|
+
font-size: 0.75rem;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
:where(.ink-menu-item) {
|
|
707
|
+
box-sizing: border-box;
|
|
708
|
+
width: 100%;
|
|
709
|
+
border: 0;
|
|
710
|
+
background: none;
|
|
711
|
+
color: inherit;
|
|
712
|
+
font: inherit;
|
|
713
|
+
text-align: left;
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
:where(.ink-menu-item:hover:not(:disabled), .ink-menu-item:focus-visible) {
|
|
717
|
+
background: color-mix(in srgb, var(--ink-fg) 8%, transparent);
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
:where(.ink-menu-item:disabled) {
|
|
721
|
+
opacity: 0.5;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
/*
|
|
725
|
+
* Colour menus. The trigger shows the current colour as a swatch; `data-kind` is `color`,
|
|
726
|
+
* `none` (slashed), `mixed` (split) or `empty`. A border swatch is a ring, a fill swatch a
|
|
727
|
+
* disc.
|
|
728
|
+
*/
|
|
729
|
+
:where(.ink-swatch) {
|
|
730
|
+
position: relative;
|
|
731
|
+
display: inline-block;
|
|
732
|
+
box-sizing: border-box;
|
|
733
|
+
width: 1.125rem;
|
|
734
|
+
height: 1.125rem;
|
|
735
|
+
overflow: hidden;
|
|
736
|
+
border: 1px solid color-mix(in srgb, var(--ink-fg) 35%, transparent);
|
|
737
|
+
border-radius: 50%;
|
|
738
|
+
background: var(--ink-swatch, transparent);
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
:where(.ink-swatch[data-property='border'][data-kind='color']) {
|
|
742
|
+
border: 3px solid var(--ink-swatch);
|
|
743
|
+
background: transparent;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
:where(.ink-swatch[data-kind='none'])::after {
|
|
747
|
+
content: '';
|
|
748
|
+
position: absolute;
|
|
749
|
+
inset: 0;
|
|
750
|
+
background: linear-gradient(
|
|
751
|
+
to top right,
|
|
752
|
+
transparent calc(50% - 1px),
|
|
753
|
+
#e5484d calc(50% - 1px),
|
|
754
|
+
#e5484d calc(50% + 1px),
|
|
755
|
+
transparent calc(50% + 1px)
|
|
756
|
+
);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
:where(.ink-swatch[data-kind='mixed']) {
|
|
760
|
+
background: linear-gradient(135deg, #e5484d 50%, #3b82f6 50%);
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
:where(.ink-color-grid) {
|
|
764
|
+
display: grid;
|
|
765
|
+
grid-template-columns: repeat(12, 1.25rem);
|
|
766
|
+
gap: 2px;
|
|
767
|
+
padding: 0.25rem;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
:where(.ink-swatch-item) {
|
|
771
|
+
box-sizing: border-box;
|
|
772
|
+
width: 1.25rem;
|
|
773
|
+
height: 1.25rem;
|
|
774
|
+
padding: 0;
|
|
775
|
+
border: 1px solid color-mix(in srgb, var(--ink-fg) 20%, transparent);
|
|
776
|
+
border-radius: 3px;
|
|
777
|
+
background: var(--ink-swatch);
|
|
778
|
+
cursor: default;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
:where(.ink-swatch-item[data-state='checked']) {
|
|
782
|
+
outline: 2px solid var(--ink-fg);
|
|
783
|
+
outline-offset: 1px;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
:where(.ink-swatch-item:hover, .ink-swatch-item:focus-visible) {
|
|
787
|
+
outline: 2px solid var(--ink-ring, var(--ink-fg));
|
|
788
|
+
outline-offset: 1px;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
/* The native input stays in the page so its picker opens; only the picker is seen. */
|
|
792
|
+
:where(.ink-color-input) {
|
|
793
|
+
position: absolute;
|
|
794
|
+
width: 1px;
|
|
795
|
+
height: 1px;
|
|
796
|
+
padding: 0;
|
|
797
|
+
border: 0;
|
|
798
|
+
overflow: hidden;
|
|
799
|
+
clip-path: inset(50%);
|
|
800
|
+
opacity: 0;
|
|
801
|
+
pointer-events: none;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
/*
|
|
805
|
+
* Text style menu: a popover panel of mixed widgets (font select, text colour, size stepper,
|
|
806
|
+
* emphasis toggles, alignment radios).
|
|
807
|
+
*/
|
|
808
|
+
:where(.ink-text-style-content) {
|
|
809
|
+
display: flex;
|
|
810
|
+
flex-direction: column;
|
|
811
|
+
gap: 0.5rem;
|
|
812
|
+
padding: 0.5rem;
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
:where(.ink-text-style-row, .ink-text-style-size) {
|
|
816
|
+
display: flex;
|
|
817
|
+
align-items: center;
|
|
818
|
+
gap: 0.25rem;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
:where(.ink-text-style-font, .ink-text-style-input) {
|
|
822
|
+
box-sizing: border-box;
|
|
823
|
+
height: 2rem;
|
|
824
|
+
padding: 0 0.5rem;
|
|
825
|
+
border: 1px solid var(--ink-border);
|
|
826
|
+
border-radius: calc(var(--ink-radius) - 2px);
|
|
827
|
+
background: var(--ink-surface);
|
|
828
|
+
color: inherit;
|
|
829
|
+
font: inherit;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
:where(.ink-text-style-input) {
|
|
833
|
+
width: 3.5rem;
|
|
834
|
+
text-align: center;
|
|
835
|
+
appearance: textfield;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
:where(.ink-text-style-button) {
|
|
839
|
+
display: inline-flex;
|
|
840
|
+
align-items: center;
|
|
841
|
+
justify-content: center;
|
|
842
|
+
box-sizing: border-box;
|
|
843
|
+
width: 2rem;
|
|
844
|
+
height: 2rem;
|
|
845
|
+
padding: 0;
|
|
846
|
+
border: 1px solid transparent;
|
|
847
|
+
border-radius: calc(var(--ink-radius) - 2px);
|
|
848
|
+
background: none;
|
|
849
|
+
color: inherit;
|
|
850
|
+
cursor: default;
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
:where(.ink-text-style-button:hover, .ink-text-style-button:focus-visible) {
|
|
854
|
+
background: color-mix(in srgb, var(--ink-fg) 8%, transparent);
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
:where(.ink-text-style-button[data-state='on']) {
|
|
858
|
+
border-color: var(--ink-border);
|
|
859
|
+
background: color-mix(in srgb, var(--ink-fg) 14%, transparent);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
:where(.ink-text-style-button[data-mixed]) {
|
|
863
|
+
border-style: dashed;
|
|
864
|
+
border-color: var(--ink-border);
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
/* A style menu's trigger when the selection disagrees (the colour menus' swatch shows it too). */
|
|
868
|
+
:where(.ink-menu-trigger[data-mixed]) {
|
|
869
|
+
border-style: dashed;
|
|
870
|
+
border-color: var(--ink-border);
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
/* Shape menu: a split button, the tool part beside a narrow chevron. */
|
|
874
|
+
:where(.ink-split-button) {
|
|
875
|
+
display: inline-flex;
|
|
876
|
+
align-items: stretch;
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
:where(.ink-split-button .ink-menu-trigger) {
|
|
880
|
+
min-width: 0;
|
|
881
|
+
width: 1.25rem;
|
|
882
|
+
padding-inline: 0.125rem;
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
:where(.ink-shape-grid) {
|
|
886
|
+
display: grid;
|
|
887
|
+
grid-template-columns: repeat(2, minmax(8.5rem, 1fr));
|
|
888
|
+
gap: 2px;
|
|
889
|
+
padding: 0.25rem;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
:where(.ink-shape-item) {
|
|
893
|
+
display: flex;
|
|
894
|
+
align-items: center;
|
|
895
|
+
gap: 0.5rem;
|
|
896
|
+
padding-right: 0.5rem;
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
/* Highlight menu: the markup kinds, then the markup colour. */
|
|
900
|
+
:where(.ink-highlight-kinds) {
|
|
901
|
+
display: grid;
|
|
902
|
+
gap: 2px;
|
|
903
|
+
padding: 0.25rem;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
:where(.ink-highlight-item) {
|
|
907
|
+
display: flex;
|
|
908
|
+
align-items: center;
|
|
909
|
+
gap: 0.5rem;
|
|
910
|
+
padding-right: 0.5rem;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
:where(.ink-highlight-colour) {
|
|
914
|
+
display: flex;
|
|
915
|
+
align-items: center;
|
|
916
|
+
justify-content: space-between;
|
|
917
|
+
gap: 0.5rem;
|
|
918
|
+
padding: 0.25rem 0.25rem 0.25rem 0.5rem;
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
/* Stamps: an image filling its box; the overlay sets its geometry and opacity. */
|
|
922
|
+
:where(.ink-stamp) {
|
|
923
|
+
display: block;
|
|
924
|
+
max-width: none;
|
|
925
|
+
opacity: var(--ink-opacity, 1);
|
|
926
|
+
user-select: none;
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
/* Signature menu: saved signatures as previews, each with a remove button. */
|
|
930
|
+
:where(.ink-signature-list) {
|
|
931
|
+
display: grid;
|
|
932
|
+
grid-template-columns: minmax(10rem, 1fr) auto;
|
|
933
|
+
gap: 2px;
|
|
934
|
+
padding: 0.25rem;
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
:where(.ink-signature-item) {
|
|
938
|
+
padding-right: 0.5rem;
|
|
939
|
+
color: var(--ink-ink);
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
:where(.ink-signature-item[data-state='checked']) {
|
|
943
|
+
background: color-mix(in srgb, var(--ink-accent) 10%, transparent);
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
/* Signatures are dark ink in both themes, so they sit on paper. */
|
|
947
|
+
:where(.ink-signature-preview) {
|
|
948
|
+
display: inline-flex;
|
|
949
|
+
align-items: center;
|
|
950
|
+
height: 2rem;
|
|
951
|
+
border-radius: calc(var(--ink-radius) - 4px);
|
|
952
|
+
background: #fff;
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
:where(.ink-signature-preview svg, .ink-signature-preview img) {
|
|
956
|
+
height: 100%;
|
|
957
|
+
max-width: 10rem;
|
|
958
|
+
object-fit: contain;
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
:where(.ink-signature-remove) {
|
|
962
|
+
display: inline-flex;
|
|
963
|
+
align-items: center;
|
|
964
|
+
justify-content: center;
|
|
965
|
+
width: 2rem;
|
|
966
|
+
padding: 0;
|
|
967
|
+
border-radius: calc(var(--ink-radius) - 4px);
|
|
968
|
+
color: var(--ink-muted-fg);
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
:where(.ink-signature-create) {
|
|
972
|
+
display: flex;
|
|
973
|
+
align-items: center;
|
|
974
|
+
gap: 0.5rem;
|
|
975
|
+
padding-right: 0.5rem;
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
/* Dialogs (Create signature): a modal over an overlay. */
|
|
979
|
+
:where(.ink-dialog-overlay) {
|
|
980
|
+
position: fixed;
|
|
981
|
+
inset: 0;
|
|
982
|
+
z-index: 50;
|
|
983
|
+
background: rgb(0 0 0 / 0.4);
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
:where(.ink-dialog) {
|
|
987
|
+
position: fixed;
|
|
988
|
+
top: 50%;
|
|
989
|
+
left: 50%;
|
|
990
|
+
z-index: 51;
|
|
991
|
+
box-sizing: border-box;
|
|
992
|
+
width: min(32rem, calc(100vw - 2rem));
|
|
993
|
+
max-height: calc(100vh - 2rem);
|
|
994
|
+
overflow: auto;
|
|
995
|
+
padding: 1rem;
|
|
996
|
+
border: 1px solid var(--ink-border);
|
|
997
|
+
border-radius: var(--ink-radius);
|
|
998
|
+
background: var(--ink-surface);
|
|
999
|
+
color: var(--ink-fg);
|
|
1000
|
+
box-shadow: 0 16px 48px rgb(0 0 0 / 0.25);
|
|
1001
|
+
font-size: 0.875rem;
|
|
1002
|
+
transform: translate(-50%, -50%);
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
:where(.ink-dialog:focus) {
|
|
1006
|
+
outline: none;
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
:where(.ink-dialog-title) {
|
|
1010
|
+
margin: 0 0 0.75rem;
|
|
1011
|
+
font-size: 1rem;
|
|
1012
|
+
font-weight: 600;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
:where(.ink-tabs) {
|
|
1016
|
+
display: flex;
|
|
1017
|
+
gap: 0.25rem;
|
|
1018
|
+
margin-bottom: 0.75rem;
|
|
1019
|
+
border-bottom: 1px solid var(--ink-border);
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
:where(.ink-tab) {
|
|
1023
|
+
margin-bottom: -1px;
|
|
1024
|
+
padding: 0.375rem 0.75rem;
|
|
1025
|
+
border: 0;
|
|
1026
|
+
border-bottom: 2px solid transparent;
|
|
1027
|
+
background: none;
|
|
1028
|
+
color: var(--ink-muted-fg);
|
|
1029
|
+
font: inherit;
|
|
1030
|
+
cursor: pointer;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
:where(.ink-tab[data-state='active']) {
|
|
1034
|
+
border-bottom-color: var(--ink-accent);
|
|
1035
|
+
color: var(--ink-fg);
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
:where(.ink-tab-panel) {
|
|
1039
|
+
display: grid;
|
|
1040
|
+
gap: 0.5rem;
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
:where(.ink-tab-panel[hidden]) {
|
|
1044
|
+
display: none;
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
:where(.ink-signature-pad-host) {
|
|
1048
|
+
box-sizing: border-box;
|
|
1049
|
+
height: 10rem;
|
|
1050
|
+
border: 1px dashed var(--ink-border);
|
|
1051
|
+
border-radius: calc(var(--ink-radius) - 2px);
|
|
1052
|
+
background: #fff;
|
|
1053
|
+
color: var(--ink-ink);
|
|
1054
|
+
cursor: crosshair;
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
:where(.ink-signature-pad .ink-stroke) {
|
|
1058
|
+
fill: currentColor;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
:where(.ink-dialog-row) {
|
|
1062
|
+
display: flex;
|
|
1063
|
+
justify-content: flex-end;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
:where(.ink-field) {
|
|
1067
|
+
display: grid;
|
|
1068
|
+
gap: 0.25rem;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
:where(.ink-input) {
|
|
1072
|
+
box-sizing: border-box;
|
|
1073
|
+
width: 100%;
|
|
1074
|
+
padding: 0.375rem;
|
|
1075
|
+
border: 1px solid var(--ink-border);
|
|
1076
|
+
border-radius: calc(var(--ink-radius) - 2px);
|
|
1077
|
+
background: var(--ink-surface);
|
|
1078
|
+
color: inherit;
|
|
1079
|
+
font: inherit;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
:where(.ink-field-error) {
|
|
1083
|
+
margin: 0;
|
|
1084
|
+
color: var(--ink-strikeout);
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
:where(.ink-signature-fonts) {
|
|
1088
|
+
display: grid;
|
|
1089
|
+
gap: 0.25rem;
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
:where(.ink-signature-font) {
|
|
1093
|
+
overflow: hidden;
|
|
1094
|
+
padding: 0.25rem 0.5rem;
|
|
1095
|
+
border: 1px solid var(--ink-border);
|
|
1096
|
+
border-radius: calc(var(--ink-radius) - 2px);
|
|
1097
|
+
background: #fff;
|
|
1098
|
+
color: var(--ink-ink);
|
|
1099
|
+
text-align: left;
|
|
1100
|
+
text-overflow: ellipsis;
|
|
1101
|
+
white-space: nowrap;
|
|
1102
|
+
cursor: pointer;
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
:where(.ink-signature-font-sample) {
|
|
1106
|
+
font-size: 1.75rem;
|
|
1107
|
+
line-height: 1.4;
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
:where(.ink-signature-font[data-state='checked']) {
|
|
1111
|
+
border-color: var(--ink-accent);
|
|
1112
|
+
box-shadow: inset 0 0 0 1px var(--ink-accent);
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
:where(.ink-signature-image) {
|
|
1116
|
+
max-width: 100%;
|
|
1117
|
+
max-height: 8rem;
|
|
1118
|
+
object-fit: contain;
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
:where(.ink-dialog-actions) {
|
|
1122
|
+
display: flex;
|
|
1123
|
+
justify-content: flex-end;
|
|
1124
|
+
gap: 0.375rem;
|
|
1125
|
+
margin-top: 1rem;
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
:where(.ink-button) {
|
|
1129
|
+
padding: 0.375rem 0.75rem;
|
|
1130
|
+
border: 1px solid var(--ink-border);
|
|
1131
|
+
border-radius: calc(var(--ink-radius) - 2px);
|
|
1132
|
+
background: var(--ink-surface);
|
|
1133
|
+
color: inherit;
|
|
1134
|
+
font: inherit;
|
|
1135
|
+
cursor: pointer;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
:where(.ink-button[data-variant='primary']) {
|
|
1139
|
+
border-color: var(--ink-accent);
|
|
1140
|
+
background: var(--ink-accent);
|
|
1141
|
+
color: var(--ink-accent-fg);
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
:where(.ink-button:disabled) {
|
|
1145
|
+
opacity: 0.5;
|
|
1146
|
+
cursor: default;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
:where(
|
|
1150
|
+
.ink-tab:focus-visible,
|
|
1151
|
+
.ink-button:focus-visible,
|
|
1152
|
+
.ink-input:focus-visible,
|
|
1153
|
+
.ink-signature-font:focus-visible,
|
|
1154
|
+
.ink-text-style-font:focus-visible,
|
|
1155
|
+
.ink-text-style-input:focus-visible,
|
|
1156
|
+
.ink-text-style-button:focus-visible
|
|
1157
|
+
) {
|
|
1158
|
+
outline: 2px solid var(--ink-ring);
|
|
1159
|
+
outline-offset: 2px;
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
/* Comment threads and suggestion cards */
|
|
1163
|
+
:where(.ink-thread-popover, .ink-suggestion-card) {
|
|
577
1164
|
z-index: 50;
|
|
578
1165
|
width: 20rem;
|
|
579
1166
|
max-width: calc(100vw - 1rem);
|