@rolemodel/optics 2.3.1 → 2.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.
@@ -83,7 +83,8 @@ Noto Sans supports:
83
83
  /* Noto Sans and Noto Serif */
84
84
  /*
85
85
  See all icons at: https://tabler.io/icons
86
- Current version: 3.30.0
86
+ See Changelog at: https://tabler.io/changelog
87
+ Current version: 3.44.0
87
88
  */
88
89
  /* Tabler Icons */
89
90
  .ti {
@@ -2222,6 +2223,11 @@ small {
2222
2223
  flex-grow: 1;
2223
2224
  }
2224
2225
  /* Gap Properties */
2226
+ .gap-none {
2227
+ gap: 0;
2228
+
2229
+ --op-gap: 0;
2230
+ }
2225
2231
  .gap-xxs {
2226
2232
  gap: var(--op-space-2x-small);
2227
2233
 
@@ -2470,28 +2476,168 @@ small {
2470
2476
  .op-stack {
2471
2477
  display: flex;
2472
2478
  flex-direction: column;
2473
- }
2474
- :where(.op-stack) {
2475
- gap: var(--op-space-medium);
2479
+ margin-block: 0;
2480
+ margin-inline: 0;
2481
+
2482
+ /* zero specificity. Lets utilities override */
2483
+ :where(&) {
2484
+ gap: var(--op-space-medium);
2485
+ }
2476
2486
  }
2477
2487
  /* Equivalent to .flex.flex-wrap.items-center.gap-md */
2478
2488
  .op-cluster {
2479
2489
  display: flex;
2480
2490
  flex-wrap: wrap;
2481
- }
2482
- :where(.op-cluster) {
2483
- align-items: center;
2484
- gap: var(--op-space-medium);
2491
+ margin-block: 0;
2492
+ margin-inline: 0;
2493
+
2494
+ /* zero specificity. Lets utilities override */
2495
+ :where(&) {
2496
+ align-items: center;
2497
+ gap: var(--op-space-medium);
2498
+ }
2485
2499
  }
2486
2500
  /* Equivalent to .flex.flex-wrap.items-center.justify-between.gap-md */
2487
2501
  .op-split {
2488
2502
  display: flex;
2489
2503
  flex-wrap: wrap;
2490
2504
  justify-content: space-between;
2505
+ margin-block: 0;
2506
+ margin-inline: 0;
2507
+
2508
+ /* zero specificity. Lets utilities override */
2509
+ :where(&) {
2510
+ align-items: center;
2511
+ gap: var(--op-space-medium);
2512
+ }
2491
2513
  }
2492
- :where(.op-split) {
2493
- align-items: center;
2494
- gap: var(--op-space-medium);
2514
+ /*
2515
+ side by side layout with a small area and a large area
2516
+ similar to .flex with a .flex-grow-1 within it, but with a more semantic name and wrap handling.
2517
+
2518
+ |[] [ ]|
2519
+ |[ ] []| with end
2520
+ */
2521
+ .op-flank {
2522
+ display: flex;
2523
+ margin-block: 0;
2524
+ margin-inline: 0;
2525
+
2526
+ /* zero specificity. Lets utilities override */
2527
+ :where(&) {
2528
+ flex-wrap: wrap;
2529
+ align-items: center;
2530
+ gap: var(--op-space-medium);
2531
+ }
2532
+
2533
+ /* Small area */
2534
+ &:not(.op-flank--end) > :first-child,
2535
+ &.op-flank--end > :last-child {
2536
+ flex-basis: auto;
2537
+ flex-grow: 1;
2538
+ }
2539
+
2540
+ /* Large area */
2541
+ &:not(.op-flank--end) > :last-child,
2542
+ &.op-flank--end > :first-child {
2543
+ flex-basis: 0;
2544
+ flex-grow: 999;
2545
+ }
2546
+ }
2547
+ /* Grid Layout */
2548
+ .op-grid {
2549
+ --_op-grid-min-column-size: var(--op-space-4x-large);
2550
+ --_op-grid-max-column-size: 0px;
2551
+
2552
+ display: grid;
2553
+ grid-template-columns: repeat(
2554
+ auto-fit,
2555
+ minmax(max(var(--_op-grid-min-column-size), var(--_op-grid-max-column-size)), 1fr)
2556
+ );
2557
+ margin-block: 0;
2558
+ margin-inline: 0;
2559
+
2560
+ /* zero specificity. Lets utilities override */
2561
+ :where(&) {
2562
+ gap: var(--op-space-medium);
2563
+ }
2564
+
2565
+ &.op-grid--2-column {
2566
+ --_op-grid-max-column-size: calc(100% / 3);
2567
+ }
2568
+
2569
+ &.op-grid--3-column {
2570
+ --_op-grid-max-column-size: calc(100% / 4);
2571
+ }
2572
+
2573
+ &.op-grid--4-column {
2574
+ --_op-grid-max-column-size: calc(100% / 5);
2575
+ }
2576
+
2577
+ &.op-grid--5-column {
2578
+ --_op-grid-max-column-size: calc(100% / 6);
2579
+ }
2580
+
2581
+ &.op-grid--6-column {
2582
+ --_op-grid-max-column-size: calc(100% / 7);
2583
+ }
2584
+ }
2585
+ /* Frame */
2586
+ @property --_op-frame-inline-size {
2587
+ inherits: true;
2588
+ initial-value: 100%;
2589
+ syntax: '<length> | <percentage>';
2590
+ }
2591
+ .op-frame {
2592
+ display: flex;
2593
+ overflow: hidden;
2594
+ border-radius: inherit;
2595
+ aspect-ratio: 1 / 1;
2596
+ margin-block: 0;
2597
+ margin-inline: 0;
2598
+ max-inline-size: var(--_op-frame-inline-size);
2599
+
2600
+ :where(&) {
2601
+ align-items: center;
2602
+ justify-content: center;
2603
+ }
2604
+
2605
+ > img,
2606
+ > video {
2607
+ block-size: 100%;
2608
+ inline-size: 100%;
2609
+ object-fit: cover;
2610
+ }
2611
+
2612
+ /* aspect ratio */
2613
+
2614
+ &.op-frame--square {
2615
+ aspect-ratio: 1 / 1;
2616
+ }
2617
+
2618
+ &.op-frame--landscape {
2619
+ aspect-ratio: 16 / 9;
2620
+ }
2621
+
2622
+ &.op-frame--portrait {
2623
+ aspect-ratio: 9 / 16;
2624
+ }
2625
+
2626
+ &.op-frame--4-3 {
2627
+ aspect-ratio: 4 / 3;
2628
+ }
2629
+
2630
+ &.op-frame--3-4 {
2631
+ aspect-ratio: 3 / 4;
2632
+ }
2633
+
2634
+ &.op-frame--3-2 {
2635
+ aspect-ratio: 3 / 2;
2636
+ }
2637
+
2638
+ &.op-frame--2-3 {
2639
+ aspect-ratio: 2 / 3;
2640
+ }
2495
2641
  }
2496
2642
  /* Components */
2497
2643
  .accordion {
@@ -2539,7 +2685,7 @@ small {
2539
2685
  }
2540
2686
 
2541
2687
  &[open] {
2542
- summary .accordion__marker {
2688
+ > summary .accordion__marker {
2543
2689
  rotate: 0.25turn;
2544
2690
  }
2545
2691
 
@@ -5089,7 +5235,11 @@ dialog.modal {
5089
5235
 
5090
5236
  display: flex;
5091
5237
  flex-direction: column;
5092
- gap: var(--op-space-x-small);
5238
+
5239
+ /* zero specificity. Lets utilities override */
5240
+ :where(&) {
5241
+ gap: var(--op-space-x-small);
5242
+ }
5093
5243
 
5094
5244
  &.text-pair--inline {
5095
5245
  flex-direction: row;