@povio/ui 5.0.0-rc.5 → 5.0.0-rc.7

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.
@@ -74,16 +74,23 @@
74
74
  font-size: 11px;
75
75
  font-weight: 550;
76
76
  }
77
- /* The configurator covers the whole viewport as a full page above the application. */
77
+ /* Keep the application visible around the movable configurator window. */
78
78
  .studio-overlay {
79
79
  position: fixed;
80
80
  inset: 0;
81
- background: #fff;
81
+ background: #14232240;
82
+ display: grid;
83
+ place-items: center;
84
+ padding: 8px;
82
85
  z-index: 1000;
83
86
  }
84
87
  .studio-modal {
85
- width: 100%;
86
- height: 100dvh;
88
+ position: relative;
89
+ container-type: inline-size;
90
+ width: min(1440px, calc(100vw - 48px));
91
+ height: min(900px, calc(100dvh - 48px));
92
+ border-radius: 12px;
93
+ box-shadow: 0 25px 90px #12251f30;
87
94
  background: #fff;
88
95
  overflow: hidden;
89
96
  }
@@ -149,7 +156,7 @@
149
156
  .studio-topbar .studio-search:has(input:disabled) {
150
157
  opacity: 0.5;
151
158
  }
152
- @media (max-width: 800px) {
159
+ @container (max-width: 800px) {
153
160
  .studio-topbar-controls {
154
161
  flex-wrap: wrap;
155
162
  margin-left: 0;
@@ -220,6 +227,18 @@
220
227
  overflow-x: auto;
221
228
  scrollbar-width: none;
222
229
  }
230
+ .studio-section-tabs {
231
+ display: flex;
232
+ flex: 1;
233
+ align-items: center;
234
+ gap: 2px;
235
+ min-width: 0;
236
+ overflow-x: auto;
237
+ scrollbar-width: none;
238
+ }
239
+ .studio-nav .studio-preview-tab {
240
+ display: none;
241
+ }
223
242
  .studio-nav-divider {
224
243
  flex-shrink: 0;
225
244
  width: 1px;
@@ -530,7 +549,7 @@
530
549
  .studio-error {
531
550
  color: #b8362c;
532
551
  display: block;
533
- margin-top: 7px;
552
+ margin-top: 4px;
534
553
  font-size: 11px;
535
554
  }
536
555
  .studio-preview {
@@ -724,7 +743,7 @@
724
743
  color: #4e4e4e;
725
744
  margin: 18px 0;
726
745
  }
727
- @media (max-width: 1050px) {
746
+ @container (max-width: 1050px) {
728
747
  .studio-dialog {
729
748
  grid-template-columns: var(--studio-editor-track, minmax(260px, 0.8fr)) minmax(280px, 1.25fr);
730
749
  }
@@ -738,7 +757,7 @@
738
757
  padding: 8px;
739
758
  }
740
759
  }
741
- @media (max-width: 800px) {
760
+ @container (max-width: 800px) {
742
761
  /* One scrolling column: top bar, editor, preview, then the footer pinned to the bottom. */
743
762
  .studio-dialog {
744
763
  display: flex;
@@ -857,12 +876,12 @@
857
876
  right: 1px;
858
877
  padding: 5px;
859
878
  }
860
- @media (min-width: 801px) and (max-width: 1100px) {
879
+ @container (min-width: 801px) and (max-width: 1100px) {
861
880
  .studio-type-fields {
862
881
  grid-template-columns: 1fr;
863
882
  }
864
883
  }
865
- @media (max-width: 420px) {
884
+ @container (max-width: 420px) {
866
885
  .studio-type-fields {
867
886
  gap: 6px;
868
887
  }
@@ -899,7 +918,7 @@
899
918
  grid-column: 2;
900
919
  margin: 0;
901
920
  }
902
- @media (max-width: 420px) {
921
+ @container (max-width: 420px) {
903
922
  .studio-token-list-inline .studio-token {
904
923
  grid-template-columns: minmax(0, 1fr) minmax(165px, 50%);
905
924
  gap: 6px 10px;
@@ -948,7 +967,7 @@
948
967
  }
949
968
  .studio-token-unit {
950
969
  position: absolute;
951
- right: 7px;
970
+ right: 4px;
952
971
  top: 50%;
953
972
  transform: translateY(-50%);
954
973
  color: #939393;
@@ -1452,7 +1471,7 @@
1452
1471
  }
1453
1472
  .studio-token-sample > span {
1454
1473
  display: block;
1455
- margin-bottom: 7px;
1474
+ margin-bottom: 4px;
1456
1475
  font: 11px sans-serif;
1457
1476
  text-transform: capitalize;
1458
1477
  }
@@ -1650,7 +1669,7 @@
1650
1669
  align-items: center;
1651
1670
  gap: 7px;
1652
1671
  min-width: 0;
1653
- padding-left: 7px;
1672
+ padding-left: 4px;
1654
1673
  }
1655
1674
  .studio-alpha-swatch {
1656
1675
  position: relative;
@@ -2363,3 +2382,885 @@
2363
2382
  justify-content: flex-end;
2364
2383
  gap: 8px;
2365
2384
  }
2385
+
2386
+ .studio-window-grip {
2387
+ position: absolute;
2388
+ top: 20px;
2389
+ right: 18px;
2390
+ z-index: 5;
2391
+ display: grid;
2392
+ place-items: center;
2393
+ border: 0;
2394
+ padding: 4px;
2395
+ background: transparent;
2396
+ color: #858585;
2397
+ touch-action: none;
2398
+ flex-shrink: 0;
2399
+ border-radius: 5px;
2400
+ }
2401
+ .studio-overlay .studio-window-grip {
2402
+ cursor: grab;
2403
+ }
2404
+ .studio-overlay .studio-window-grip:active {
2405
+ cursor: grabbing;
2406
+ }
2407
+ .studio-window-resize {
2408
+ position: absolute;
2409
+ z-index: 4;
2410
+ display: block;
2411
+ border: 0;
2412
+ padding: 0;
2413
+ background: transparent;
2414
+ touch-action: none;
2415
+ }
2416
+ .studio-window-resize-n,
2417
+ .studio-window-resize-s {
2418
+ left: 12px;
2419
+ right: 12px;
2420
+ height: 6px;
2421
+ }
2422
+ .studio-window-resize-e,
2423
+ .studio-window-resize-w {
2424
+ top: 12px;
2425
+ bottom: 12px;
2426
+ width: 6px;
2427
+ }
2428
+ .studio-window-resize-n {
2429
+ top: 0;
2430
+ cursor: ns-resize !important;
2431
+ }
2432
+ .studio-window-resize-s {
2433
+ bottom: 0;
2434
+ cursor: ns-resize !important;
2435
+ }
2436
+ .studio-window-resize-e {
2437
+ right: 0;
2438
+ cursor: ew-resize !important;
2439
+ }
2440
+ .studio-window-resize-w {
2441
+ left: 0;
2442
+ cursor: ew-resize !important;
2443
+ }
2444
+ .studio-window-resize-ne,
2445
+ .studio-window-resize-se,
2446
+ .studio-window-resize-sw,
2447
+ .studio-window-resize-nw {
2448
+ width: 12px;
2449
+ height: 12px;
2450
+ }
2451
+ .studio-window-resize-ne {
2452
+ top: 0;
2453
+ right: 0;
2454
+ cursor: nesw-resize !important;
2455
+ }
2456
+ .studio-window-resize-se {
2457
+ bottom: 0;
2458
+ right: 0;
2459
+ cursor: nwse-resize !important;
2460
+ }
2461
+ .studio-window-resize-sw {
2462
+ bottom: 0;
2463
+ left: 0;
2464
+ cursor: nesw-resize !important;
2465
+ }
2466
+ .studio-window-resize-nw {
2467
+ top: 0;
2468
+ left: 0;
2469
+ cursor: nwse-resize !important;
2470
+ }
2471
+ .studio-window-grip:focus-visible,
2472
+ .studio-window-resize:focus-visible {
2473
+ outline: 2px solid #555;
2474
+ outline-offset: -2px;
2475
+ }
2476
+ @media (max-width: 600px) {
2477
+ .studio-modal {
2478
+ width: calc(100vw - 16px);
2479
+ height: calc(100dvh - 16px);
2480
+ }
2481
+ }
2482
+
2483
+ /* The grip belongs to the window, so scrolling or hiding the preview cannot hide it. */
2484
+ .studio-preview-actions {
2485
+ padding-right: 36px;
2486
+ }
2487
+ @container (max-width: 1050px) {
2488
+ .studio-window-grip {
2489
+ top: 18px;
2490
+ }
2491
+ }
2492
+ @container (max-width: 800px) {
2493
+ .studio-window-grip {
2494
+ top: 10px;
2495
+ right: 12px;
2496
+ }
2497
+ .studio-topbar {
2498
+ padding-right: 48px;
2499
+ }
2500
+ .studio-preview-actions {
2501
+ padding-right: 0;
2502
+ }
2503
+ }
2504
+
2505
+ /* Resized windows must not inherit the gallery specimens' intrinsic minimum width. */
2506
+ .studio-layout-card {
2507
+ min-width: 0;
2508
+ max-width: 100%;
2509
+ }
2510
+ .studio-gallery-grid {
2511
+ grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
2512
+ }
2513
+ .studio-palette-actions {
2514
+ flex-shrink: 0;
2515
+ }
2516
+ @container (max-width: 800px) {
2517
+ .studio-dialog > .studio-topbar,
2518
+ .studio-body > .studio-editor,
2519
+ .studio-body > .studio-preview,
2520
+ .studio-dialog > .studio-footer {
2521
+ min-width: 0;
2522
+ max-width: 100%;
2523
+ box-sizing: border-box;
2524
+ }
2525
+ }
2526
+ /* Wide specimens (tables and steppers) scroll within their own preview, never the window. */
2527
+ .studio-layout-card.is-screen,
2528
+ .studio-gallery-demo {
2529
+ min-width: 0;
2530
+ max-width: 100%;
2531
+ overflow-x: auto;
2532
+ }
2533
+ @container (max-width: 800px) {
2534
+ .studio-topbar {
2535
+ position: sticky;
2536
+ top: 0;
2537
+ z-index: 4;
2538
+ flex-shrink: 0;
2539
+ }
2540
+ .studio-nav .studio-preview-tab {
2541
+ display: flex;
2542
+ margin-left: auto;
2543
+ }
2544
+ .studio-dialog:not([data-compact-preview]) .studio-preview,
2545
+ .studio-dialog[data-compact-preview] .studio-editor {
2546
+ display: none;
2547
+ }
2548
+ }
2549
+
2550
+ .studio-window-popout {
2551
+ position: absolute;
2552
+ top: 20px;
2553
+ right: 50px;
2554
+ z-index: 5;
2555
+ display: grid;
2556
+ place-items: center;
2557
+ width: 28px;
2558
+ height: 28px;
2559
+ border: 0;
2560
+ border-radius: 5px;
2561
+ color: #858585;
2562
+ background: transparent;
2563
+ }
2564
+ .studio-window-popout:focus-visible {
2565
+ outline: 2px solid #555;
2566
+ outline-offset: -2px;
2567
+ }
2568
+ .studio-preview-actions {
2569
+ padding-right: 68px;
2570
+ }
2571
+ @container (max-width: 1050px) {
2572
+ .studio-window-popout {
2573
+ top: 18px;
2574
+ }
2575
+ }
2576
+ @container (max-width: 800px) {
2577
+ .studio-window-popout {
2578
+ top: 10px;
2579
+ right: 44px;
2580
+ }
2581
+ .studio-topbar {
2582
+ padding-right: 80px;
2583
+ }
2584
+ .studio-preview-actions {
2585
+ padding-right: 0;
2586
+ }
2587
+ }
2588
+ [data-povio-ui-popout] .studio-overlay {
2589
+ padding: 0;
2590
+ }
2591
+ [data-povio-ui-popout] .studio-modal-popout {
2592
+ width: 100vw;
2593
+ height: 100dvh;
2594
+ border-radius: 0;
2595
+ box-shadow: none;
2596
+ }
2597
+ .studio-modal-popout .studio-window-popout {
2598
+ right: 18px;
2599
+ }
2600
+ .studio-modal-popout .studio-preview-actions {
2601
+ padding-right: 36px;
2602
+ }
2603
+ @container (max-width: 800px) {
2604
+ .studio-modal-popout .studio-topbar {
2605
+ padding-right: 48px;
2606
+ }
2607
+ .studio-modal-popout .studio-preview-actions {
2608
+ padding-right: 0;
2609
+ }
2610
+ }
2611
+
2612
+ @container (max-width: 800px) {
2613
+ .studio-topbar,
2614
+ .studio-modal-popout .studio-topbar {
2615
+ padding-right: 16px;
2616
+ }
2617
+ .studio-topbar-controls {
2618
+ margin-right: 64px;
2619
+ }
2620
+ .studio-modal-popout .studio-topbar-controls {
2621
+ margin-right: 32px;
2622
+ }
2623
+ }
2624
+ .studio-palette-native {
2625
+ position: relative;
2626
+ }
2627
+ .studio-palette-native > select {
2628
+ position: absolute;
2629
+ inset: 0;
2630
+ width: 100%;
2631
+ height: 100%;
2632
+ opacity: 0;
2633
+ cursor: pointer;
2634
+ }
2635
+ .studio-palette-native:focus-within {
2636
+ outline: 2px solid #797979;
2637
+ outline-offset: 2px;
2638
+ border-radius: 4px;
2639
+ }
2640
+
2641
+ .studio-window-minimize {
2642
+ position: absolute;
2643
+ top: 20px;
2644
+ right: 82px;
2645
+ z-index: 5;
2646
+ display: grid;
2647
+ place-items: center;
2648
+ width: 28px;
2649
+ height: 28px;
2650
+ padding: 0;
2651
+ border: 0;
2652
+ border-radius: 5px;
2653
+ color: #858585;
2654
+ background: transparent;
2655
+ }
2656
+ .studio-window-minimize:focus-visible {
2657
+ outline: 2px solid #555;
2658
+ outline-offset: -2px;
2659
+ }
2660
+ .studio-preview-actions {
2661
+ padding-right: 100px;
2662
+ }
2663
+ .studio-modal-popout .studio-window-minimize {
2664
+ right: 50px;
2665
+ }
2666
+ .studio-modal-popout .studio-preview-actions {
2667
+ padding-right: 68px;
2668
+ }
2669
+ @container (max-width: 1050px) {
2670
+ .studio-window-minimize {
2671
+ top: 18px;
2672
+ }
2673
+ }
2674
+ @container (max-width: 800px) {
2675
+ .studio-window-minimize {
2676
+ top: 10px;
2677
+ right: 76px;
2678
+ }
2679
+ .studio-topbar-controls {
2680
+ margin-right: 96px;
2681
+ }
2682
+ .studio-modal-popout .studio-topbar-controls {
2683
+ margin-right: 64px;
2684
+ }
2685
+ .studio-preview-actions,
2686
+ .studio-modal-popout .studio-preview-actions {
2687
+ padding-right: 0;
2688
+ }
2689
+ }
2690
+ .studio-floating-launcher {
2691
+ position: fixed;
2692
+ z-index: 1000;
2693
+ display: flex;
2694
+ align-items: center;
2695
+ gap: 10px;
2696
+ padding: 12px 16px;
2697
+ border: 1px solid #555;
2698
+ border-radius: 999px;
2699
+ background: #292929;
2700
+ color: #fff;
2701
+ box-shadow: 0 4px 16px #0003;
2702
+ font:
2703
+ 600 13px/1.4 "Inter Variable",
2704
+ Inter,
2705
+ sans-serif;
2706
+ cursor: grab;
2707
+ touch-action: none;
2708
+ user-select: none;
2709
+ }
2710
+ .studio-floating-launcher:active {
2711
+ cursor: grabbing;
2712
+ }
2713
+ .studio-floating-launcher:focus-visible {
2714
+ outline: 2px solid #555;
2715
+ outline-offset: 3px;
2716
+ }
2717
+
2718
+ /* Live-preview inspection keeps the canvas and property sidebar independently scrollable. */
2719
+ .studio-preview:has(.studio-hover-inspector) {
2720
+ display: flex;
2721
+ flex-direction: column;
2722
+ overflow: hidden;
2723
+ min-height: 0;
2724
+ }
2725
+ .studio-preview-heading,
2726
+ .studio-preview-note {
2727
+ flex-shrink: 0;
2728
+ }
2729
+ .studio-hover-inspector {
2730
+ display: grid;
2731
+ grid-template-columns: minmax(0, 1fr);
2732
+ grid-template-rows: auto minmax(0, 1fr);
2733
+ grid-auto-rows: minmax(0, 1fr);
2734
+ flex: 1;
2735
+ min-width: 0;
2736
+ min-height: 0;
2737
+ gap: 16px;
2738
+ container: studio-inspection / inline-size;
2739
+ }
2740
+ .studio-hover-inspector.has-inspector {
2741
+ grid-template-columns: minmax(0, 1fr) 270px;
2742
+ }
2743
+ .studio-inspector-toolbar {
2744
+ grid-column: 1 / -1;
2745
+ display: flex;
2746
+ align-items: center;
2747
+ justify-content: space-between;
2748
+ flex-wrap: wrap;
2749
+ gap: 8px;
2750
+ color: #8b8b8b;
2751
+ font-size: 10px;
2752
+ }
2753
+ .studio-inspector-toolbar .studio-mode button {
2754
+ padding: 4px 8px;
2755
+ font-size: 10px;
2756
+ }
2757
+ .studio-inspector-canvas-shell {
2758
+ position: relative;
2759
+ min-width: 0;
2760
+ min-height: 0;
2761
+ height: 100%;
2762
+ }
2763
+ .studio-inspector-canvas {
2764
+ height: 100%;
2765
+ min-height: 0;
2766
+ overflow: auto;
2767
+ overscroll-behavior: contain;
2768
+ }
2769
+ .studio-hover-outline-layer {
2770
+ position: absolute;
2771
+ inset: 0;
2772
+ overflow: hidden;
2773
+ pointer-events: none;
2774
+ z-index: 2;
2775
+ }
2776
+ .studio-hover-outline {
2777
+ position: absolute;
2778
+ border: 1px solid #8b5cf6;
2779
+ box-shadow: 0 0 0 1px #8b5cf633;
2780
+ }
2781
+ .studio-hover-outline > span {
2782
+ position: absolute;
2783
+ top: 0;
2784
+ left: 0;
2785
+ transform: translateY(-100%);
2786
+ max-width: 280px;
2787
+ padding: 2px 5px;
2788
+ border-radius: 3px 3px 0 0;
2789
+ background: #7c3aed;
2790
+ color: #fff;
2791
+ font:
2792
+ 10px/1.5 "Inter Variable",
2793
+ sans-serif;
2794
+ white-space: nowrap;
2795
+ }
2796
+ .studio-inspector-panel {
2797
+ grid-column: 2;
2798
+ position: relative;
2799
+ align-self: stretch;
2800
+ height: 100%;
2801
+ min-width: 0;
2802
+ min-height: 0;
2803
+ overflow: auto;
2804
+ box-sizing: border-box;
2805
+ border: 1px solid #dedde4;
2806
+ border-radius: 10px;
2807
+ background: #fff;
2808
+ color: #292730;
2809
+ font:
2810
+ 11px/1.5 "Inter Variable",
2811
+ Inter,
2812
+ sans-serif;
2813
+ overscroll-behavior: contain;
2814
+ }
2815
+ .studio-inspector-panel > header {
2816
+ position: sticky;
2817
+ top: 0;
2818
+ z-index: 1;
2819
+ display: flex;
2820
+ align-items: center;
2821
+ gap: 4px;
2822
+ padding: 9px 12px;
2823
+ border-bottom: 1px solid #efedf3;
2824
+ background: #fff;
2825
+ }
2826
+ .studio-inspector-panel > header > strong {
2827
+ flex: 1;
2828
+ font-size: 11px;
2829
+ }
2830
+ .studio-inspector-panel button {
2831
+ border: 0;
2832
+ border-radius: 4px;
2833
+ background: transparent;
2834
+ color: #716c7d;
2835
+ cursor: pointer;
2836
+ }
2837
+ .studio-inspector-panel > header button {
2838
+ display: grid;
2839
+ place-items: center;
2840
+ padding: 5px;
2841
+ }
2842
+ .studio-inspector-panel button[aria-pressed="true"] {
2843
+ background: #ede9fe;
2844
+ color: #7c3aed;
2845
+ }
2846
+ .studio-inspector-panel button:focus-visible {
2847
+ outline: 2px solid #8b5cf6;
2848
+ outline-offset: 1px;
2849
+ }
2850
+ .studio-inspector-panel section {
2851
+ border-top: 1px solid #efedf3;
2852
+ padding: 10px 12px;
2853
+ }
2854
+ .studio-inspector-panel h3 {
2855
+ margin: 0 0 7px;
2856
+ font-size: 9px;
2857
+ font-weight: 600;
2858
+ color: #928a9d;
2859
+ text-transform: uppercase;
2860
+ letter-spacing: 0.6px;
2861
+ }
2862
+ .studio-inspector-section-heading {
2863
+ display: flex;
2864
+ align-items: center;
2865
+ justify-content: space-between;
2866
+ margin-bottom: 10px;
2867
+ }
2868
+ .studio-inspector-section-heading h3 {
2869
+ margin: 0;
2870
+ }
2871
+ .studio-inspector-section-heading > span {
2872
+ padding: 1px 5px;
2873
+ border-radius: 4px;
2874
+ background: #f4f4f4;
2875
+ color: #777;
2876
+ font-size: 10px;
2877
+ }
2878
+ .studio-inspector-panel dl {
2879
+ margin: 0;
2880
+ }
2881
+ .studio-inspector-panel dl > div {
2882
+ display: grid;
2883
+ grid-template-columns: 85px minmax(0, 1fr);
2884
+ gap: 6px;
2885
+ padding: 3px 0;
2886
+ }
2887
+ .studio-inspector-panel dt {
2888
+ color: #817b8b;
2889
+ }
2890
+ .studio-inspector-panel dd {
2891
+ display: flex;
2892
+ flex-wrap: wrap;
2893
+ align-items: center;
2894
+ gap: 4px;
2895
+ margin: 0;
2896
+ min-width: 0;
2897
+ overflow-wrap: anywhere;
2898
+ }
2899
+ .studio-inspector-panel dd > i {
2900
+ width: 12px;
2901
+ height: 12px;
2902
+ border: 1px solid #0002;
2903
+ border-radius: 3px;
2904
+ flex-shrink: 0;
2905
+ }
2906
+ .studio-inspector-panel dd > button {
2907
+ max-width: 100%;
2908
+ padding: 2px 5px;
2909
+ background: #f3effb;
2910
+ color: #7752ae;
2911
+ font-size: 9px;
2912
+ text-align: left;
2913
+ overflow-wrap: anywhere;
2914
+ }
2915
+ .studio-inspector-empty {
2916
+ margin: 0;
2917
+ padding: 16px 12px;
2918
+ color: #89838e;
2919
+ }
2920
+ .studio-box-model {
2921
+ margin: 0;
2922
+ padding: 8px;
2923
+ border-radius: 7px;
2924
+ background: #fafafa;
2925
+ color: #393939;
2926
+ }
2927
+ .studio-box-model figcaption {
2928
+ margin-top: 6px;
2929
+ text-align: center;
2930
+ color: #8b8b8b;
2931
+ font-size: 9px;
2932
+ }
2933
+ .studio-box-layer {
2934
+ position: relative;
2935
+ padding: 24px;
2936
+ box-sizing: border-box;
2937
+ font:
2938
+ 10px/1.3 "Inter Variable",
2939
+ sans-serif;
2940
+ }
2941
+ .studio-box-layer.is-position {
2942
+ border: 1px dotted #b8b8b8;
2943
+ }
2944
+ .studio-box-layer.is-margin {
2945
+ border: 1px dashed #b8b8b8;
2946
+ }
2947
+ .studio-box-layer.is-border {
2948
+ border: 1px solid #b8b8b8;
2949
+ }
2950
+ .studio-box-layer.is-padding {
2951
+ border: 1px dashed #a7a7a7;
2952
+ background: #e9e9e9;
2953
+ }
2954
+ .studio-box-name {
2955
+ position: absolute;
2956
+ top: -7px;
2957
+ left: 8px;
2958
+ padding: 0 3px;
2959
+ background: #fafafa;
2960
+ color: #747474;
2961
+ font-size: 9px;
2962
+ }
2963
+ .studio-box-layer.is-padding > .studio-box-name {
2964
+ background: #e9e9e9;
2965
+ }
2966
+ .studio-box-value {
2967
+ position: absolute;
2968
+ font-variant-numeric: tabular-nums;
2969
+ }
2970
+ .studio-box-value.is-top {
2971
+ top: 3px;
2972
+ left: 50%;
2973
+ transform: translateX(-50%);
2974
+ }
2975
+ .studio-box-value.is-bottom {
2976
+ bottom: 3px;
2977
+ left: 50%;
2978
+ transform: translateX(-50%);
2979
+ }
2980
+ .studio-box-value.is-left {
2981
+ left: 3px;
2982
+ top: 50%;
2983
+ transform: translateY(-50%);
2984
+ }
2985
+ .studio-box-value.is-right {
2986
+ right: 3px;
2987
+ top: 50%;
2988
+ transform: translateY(-50%);
2989
+ }
2990
+ .studio-inspector-panel .studio-box-value {
2991
+ padding: 0;
2992
+ border-radius: 2px;
2993
+ color: inherit;
2994
+ line-height: 1.3;
2995
+ font-size: 10px;
2996
+ }
2997
+ .studio-inspector-panel button.studio-box-value[data-token] {
2998
+ text-decoration: underline dotted;
2999
+ text-underline-offset: 2px;
3000
+ }
3001
+ .studio-box-radius {
3002
+ position: absolute;
3003
+ padding: 1px 2px;
3004
+ border-radius: 3px;
3005
+ background: #f5f5f5;
3006
+ color: #777;
3007
+ font-size: 8px;
3008
+ line-height: 1;
3009
+ }
3010
+ .studio-box-radius.is-topLeft {
3011
+ top: 3px;
3012
+ left: 3px;
3013
+ }
3014
+ .studio-box-radius.is-topRight {
3015
+ top: 3px;
3016
+ right: 3px;
3017
+ }
3018
+ .studio-box-radius.is-bottomLeft {
3019
+ bottom: 3px;
3020
+ left: 3px;
3021
+ }
3022
+ .studio-box-radius.is-bottomRight {
3023
+ bottom: 3px;
3024
+ right: 3px;
3025
+ }
3026
+ .studio-inspector-panel .studio-box-radius {
3027
+ padding: 1px;
3028
+ color: #777;
3029
+ font-size: 8px;
3030
+ line-height: 1;
3031
+ }
3032
+ .studio-inspector-panel button.studio-box-radius[data-token] {
3033
+ text-decoration: underline dotted;
3034
+ }
3035
+ .studio-box-content {
3036
+ min-width: 0;
3037
+ padding: 5px 2px;
3038
+ border: 1px solid #b8b8b8;
3039
+ background: #fafafa;
3040
+ text-align: center;
3041
+ font-variant-numeric: tabular-nums;
3042
+ }
3043
+ .studio-box-dimensions {
3044
+ display: flex;
3045
+ justify-content: center;
3046
+ align-items: center;
3047
+ flex-wrap: wrap;
3048
+ gap: 2px;
3049
+ font-size: 9px;
3050
+ }
3051
+ .studio-box-gaps {
3052
+ display: flex;
3053
+ justify-content: center;
3054
+ margin-top: 12px;
3055
+ padding: 12px;
3056
+ border: 1px solid #e0e0e0;
3057
+ border-radius: 5px;
3058
+ }
3059
+ .studio-gap-grid {
3060
+ display: grid;
3061
+ width: 130px;
3062
+ max-width: 100%;
3063
+ align-items: center;
3064
+ justify-items: center;
3065
+ }
3066
+ .studio-gap-grid i {
3067
+ width: 100%;
3068
+ height: 100%;
3069
+ box-sizing: border-box;
3070
+ border: 1px solid #bdbdbd;
3071
+ border-radius: 2px;
3072
+ background: #e9e9e9;
3073
+ }
3074
+ .studio-gap-grid i:nth-child(1) {
3075
+ grid-column: 1;
3076
+ grid-row: 1;
3077
+ }
3078
+ .studio-gap-grid i:nth-child(2) {
3079
+ grid-column: 3;
3080
+ grid-row: 1;
3081
+ }
3082
+ .studio-gap-grid i:nth-child(3) {
3083
+ grid-column: 1;
3084
+ grid-row: 3;
3085
+ }
3086
+ .studio-gap-grid i:nth-child(4) {
3087
+ grid-column: 3;
3088
+ grid-row: 3;
3089
+ }
3090
+ .studio-gap-number {
3091
+ color: #555;
3092
+ font-size: 10px;
3093
+ }
3094
+ .studio-gap-number.is-column {
3095
+ grid-column: 2;
3096
+ grid-row: 1;
3097
+ }
3098
+ .studio-gap-number.is-row {
3099
+ grid-column: 1;
3100
+ grid-row: 2;
3101
+ }
3102
+ .studio-inspector-panel button.studio-gap-number[data-token] {
3103
+ padding: 0;
3104
+ text-decoration: underline dotted;
3105
+ font-size: 10px;
3106
+ }
3107
+ .studio-box-layer.is-position,
3108
+ .studio-box-layer.is-position .studio-box-layer {
3109
+ padding: 16px;
3110
+ }
3111
+ @container studio-inspection (max-width: 620px) {
3112
+ .studio-inspector-canvas-shell,
3113
+ .studio-inspector-panel {
3114
+ grid-column: 1 / -1;
3115
+ }
3116
+ .studio-inspector-canvas-shell {
3117
+ grid-row: 2;
3118
+ }
3119
+ .studio-inspector-panel {
3120
+ grid-row: 3;
3121
+ }
3122
+ }
3123
+ @container (max-width: 800px) {
3124
+ .studio-preview:has(.studio-hover-inspector) {
3125
+ height: max(420px, calc(100dvh - 220px));
3126
+ }
3127
+ }
3128
+ .studio-box-layer.is-border:has(.studio-box-radius) {
3129
+ border-color: transparent;
3130
+ }
3131
+ .studio-box-layer.is-border:has(.studio-box-radius)::before {
3132
+ content: "";
3133
+ position: absolute;
3134
+ inset: -3px;
3135
+ border: 1px solid #b8b8b8;
3136
+ border-radius: inherit;
3137
+ pointer-events: none;
3138
+ }
3139
+ .studio-box-radius {
3140
+ z-index: 1;
3141
+ }
3142
+ .studio-box-radius.is-topLeft {
3143
+ top: 4px;
3144
+ left: 4px;
3145
+ }
3146
+ .studio-box-radius.is-topRight {
3147
+ top: 4px;
3148
+ right: 4px;
3149
+ }
3150
+ .studio-box-radius.is-bottomLeft {
3151
+ bottom: 4px;
3152
+ left: 4px;
3153
+ }
3154
+ .studio-box-radius.is-bottomRight {
3155
+ bottom: 4px;
3156
+ right: 4px;
3157
+ }
3158
+
3159
+ .studio-measure-regions {
3160
+ position: absolute;
3161
+ inset: 0;
3162
+ pointer-events: none;
3163
+ }
3164
+ .studio-measure-region {
3165
+ position: absolute;
3166
+ box-sizing: border-box;
3167
+ background: #7c3aed88;
3168
+ color: #4c1d95;
3169
+ box-shadow:
3170
+ inset 0 0 0 1px currentColor,
3171
+ 0 0 0 1px #fff;
3172
+ }
3173
+ .studio-measure-region.is-margin {
3174
+ background: #f59e0b99;
3175
+ color: #92400e;
3176
+ }
3177
+ .studio-measure-region.is-border {
3178
+ background: #2563ebbf;
3179
+ color: #1e40af;
3180
+ }
3181
+ .studio-measure-region.is-gap {
3182
+ background: repeating-linear-gradient(45deg, #7c3aed88 0 3px, #5b21b6bf 3px 5px);
3183
+ }
3184
+ .studio-measure-region.is-horizontal {
3185
+ height: 1px !important;
3186
+ border-top: 2px solid currentColor;
3187
+ background: none;
3188
+ }
3189
+ .studio-measure-region.is-vertical {
3190
+ width: 1px !important;
3191
+ border-left: 2px solid currentColor;
3192
+ background: none;
3193
+ }
3194
+ .studio-measure-region.is-horizontal::before,
3195
+ .studio-measure-region.is-horizontal::after {
3196
+ content: "";
3197
+ position: absolute;
3198
+ top: -4px;
3199
+ height: 7px;
3200
+ border-left: 2px solid currentColor;
3201
+ }
3202
+ .studio-measure-region.is-horizontal::before {
3203
+ left: 0;
3204
+ }
3205
+ .studio-measure-region.is-horizontal::after {
3206
+ right: 0;
3207
+ }
3208
+ .studio-measure-region.is-vertical::before,
3209
+ .studio-measure-region.is-vertical::after {
3210
+ content: "";
3211
+ position: absolute;
3212
+ left: -4px;
3213
+ width: 7px;
3214
+ border-top: 2px solid currentColor;
3215
+ }
3216
+ .studio-measure-region.is-vertical::before {
3217
+ top: 0;
3218
+ }
3219
+ .studio-measure-region.is-vertical::after {
3220
+ bottom: 0;
3221
+ }
3222
+ .studio-measure-region.is-corner {
3223
+ background: none;
3224
+ box-shadow: none;
3225
+ }
3226
+ .studio-measure-region.is-corner svg {
3227
+ display: block;
3228
+ width: 100%;
3229
+ height: 100%;
3230
+ overflow: visible;
3231
+ }
3232
+ .studio-measure-label {
3233
+ position: absolute;
3234
+ max-width: 220px;
3235
+ padding: 3px 6px;
3236
+ border-radius: 4px;
3237
+ background: #6d28d9;
3238
+ color: #fff;
3239
+ font:
3240
+ 10px/1.4 "Inter Variable",
3241
+ sans-serif;
3242
+ box-shadow:
3243
+ 0 0 0 1px #fff,
3244
+ 0 2px 6px #0004;
3245
+ }
3246
+ .studio-inspector-panel .studio-box-dimension-value {
3247
+ padding: 0;
3248
+ font: inherit;
3249
+ font-size: 9px;
3250
+ line-height: 1.3;
3251
+ color: inherit;
3252
+ }
3253
+ .studio-inspector-panel .studio-gap-number {
3254
+ padding: 0;
3255
+ font-size: 10px;
3256
+ }
3257
+ .studio-box-model button[data-box-highlight]:hover,
3258
+ .studio-box-model button[data-box-highlight]:focus-visible {
3259
+ background: #ede9fe;
3260
+ color: #6d28d9;
3261
+ }
3262
+
3263
+ .studio-measure-region.is-corner path {
3264
+ stroke-width: 3px;
3265
+ filter: drop-shadow(0 0 1px #fff);
3266
+ }