a lightweight, interval-based utility to combat digital strain through "Ma" (intentional pauses) for the eyes and body.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(ui): reposition interval removal, expand touch area

+37 -28
+37 -28
ui/settings.slint
··· 324 324 325 325 // Left column — mirrors right column row heights so index 326 326 // stays flush with the PaperInput in row 1 327 - VerticalLayout { 327 + VerticalLayout { 328 328 spacing: 8px; 329 329 width: 20px; 330 330 ··· 363 363 364 364 Rectangle { 365 365 horizontal-stretch: 1; 366 - } 367 - 368 - ta-rm := TouchArea { 369 - width: 24px; 370 - height: 32px; 371 - accessible-role: button; 372 - accessible-label: "Remove interval"; 373 - clicked => { 374 - root.remove-clicked(); 375 - } 376 - 377 - Text { 378 - text: "×"; 379 - font-size: 14px; 380 - color: ta-rm.has-hover ? Theme.ink : Theme.ink-sub; 381 - horizontal-alignment: center; 382 - vertical-alignment: center; 383 - animate color { duration: 120ms; } 384 - } 385 366 } 386 367 } 387 368 ··· 456 437 } 457 438 } 458 439 } 440 + 441 + VerticalLayout { 442 + alignment: LayoutAlignment.stretch; 443 + ta-rm := TouchArea { 444 + width: 44px; 445 + height: 44px; 446 + accessible-role: button; 447 + accessible-item-selectable: false; 448 + accessible-label: "Remove interval"; 449 + clicked => { 450 + root.remove-clicked(); 451 + } 452 + 453 + Text { 454 + stroke-style: TextStrokeStyle.center; 455 + text: "×"; 456 + font-size: 14px; 457 + color: ta-rm.has-hover ? Theme.ink : Theme.ink-sub; 458 + horizontal-alignment: TextHorizontalAlignment.left; 459 + vertical-alignment: TextVerticalAlignment.top; 460 + visible: true; 461 + x: 30px; 462 + y: 0px; 463 + animate color { duration: 120ms; } 464 + } 465 + } 466 + } 459 467 } 460 468 } 461 469 } ··· 514 522 515 523 // Follow system color scheme. Set from Rust before showing the window. 516 524 in property <bool> is-dark: false; 517 - init => { Theme.dark = root.is-dark; } 518 - changed is-dark => { Theme.dark = root.is-dark; } 525 + init => { 526 + Theme.dark = root.is-dark; 527 + } 528 + changed is-dark => { 529 + Theme.dark = root.is-dark; 530 + } 519 531 520 532 // ── Properties (same contract as before) ───────────────────────────────── 521 533 in-out property <bool> enforced-mode: false; ··· 702 714 703 715 Rectangle { 704 716 border-radius: 6px; 705 - background: name == root.active-profile 706 - ? Theme.btn-bg 707 - : (profile-chip-ta.has-hover ? Theme.surface-hov : Theme.surface); 717 + background: name == root.active-profile ? Theme.btn-bg : (profile-chip-ta.has-hover ? Theme.surface-hov : Theme.surface); 708 718 border-width: 1px; 709 719 border-color: name == root.active-profile ? transparent : Theme.line; 710 720 animate background { duration: 120ms; } ··· 1004 1014 font-weight: 500; 1005 1015 color: Theme.ink; 1006 1016 } 1017 + 1007 1018 Text { 1008 1019 text: "Follows system by default."; 1009 1020 font-size: 11.5px; ··· 1029 1040 1030 1041 Rectangle { 1031 1042 border-radius: 6px; 1032 - background: i == root.theme-mode 1033 - ? Theme.btn-bg 1034 - : (theme-chip-ta.has-hover ? Theme.surface-hov : Theme.surface); 1043 + background: i == root.theme-mode ? Theme.btn-bg : (theme-chip-ta.has-hover ? Theme.surface-hov : Theme.surface); 1035 1044 border-width: 1px; 1036 1045 border-color: i == root.theme-mode ? transparent : Theme.line; 1037 1046 animate background { duration: 120ms; }