1// Copyright (C) 2018 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15@import "widgets/theme"; 16 17:root { 18 --record-text-color: #333; 19} 20 21// The whole record page. 22.record-page { 23 position: relative; 24 overflow-y: scroll; 25 background-color: #fefefe; 26 padding: 40px 20px; 27} 28 29// The always-visible centered box that has menu and sections on the right. 30.record-container { 31 position: relative; 32 max-width: 900px; 33 min-height: 500px; 34 margin: auto; 35 border-radius: $pf-border-radius; 36 box-shadow: 37 0 1px 2px 0 #aaa, 38 0 1px 3px 1px #eee; 39 background-color: #fff; 40 display: grid; 41 grid-template-rows: auto 1fr; 42 grid-template-areas: 43 "header" 44 "content"; 45 overflow: hidden; 46 z-index: 6; 47 48 // The body of the record container. 49 .record-container-content { 50 display: grid; 51 grid-template-columns: 2fr 5fr; 52 grid-template-areas: "sidebar section"; 53 } 54 55 .full-centered { 56 width: 100%; 57 height: 100%; 58 text-align: center; 59 padding: 180px 30px; 60 font-family: "Roboto", sans-serif; 61 font-size: 25px; 62 } 63} 64 65.record-modal { 66 display: flex; 67 flex-direction: column; 68 69 .line { 70 padding: 10px 10px 10px 10px; 71 border-bottom: 1px solid #808080; 72 } 73 74 .record-modal-section { 75 display: flex; 76 flex-direction: row; 77 78 .logo-wrapping { 79 width: 150px; 80 height: 150px; 81 display: inline-block; 82 margin: 50px 30px 0px 0px; 83 align-self: center; 84 85 i.material-icons { 86 color: #16161d; 87 font-size: 150px; 88 } 89 } 90 91 select { 92 min-width: 300px; 93 min-height: 80px; 94 } 95 96 .record-modal-description { 97 display: flex; 98 flex-direction: column; 99 align-items: left; 100 101 .record-modal-command { 102 display: flex; 103 flex-direction: row; 104 align-items: center; 105 padding: 10px 0px 10px 0px; 106 color: #fff; 107 108 .code-snippet { 109 width: 100%; 110 } 111 } 112 113 h3 { 114 padding-top: 15px; 115 align-self: start; 116 font-size: 1.2rem; 117 color: #0000ff; 118 } 119 120 h4 { 121 align-self: start; 122 font-size: 1.1rem; 123 } 124 125 text { 126 padding: 10px 0px 10px 0px; 127 color: #000000; 128 } 129 130 input[type="text"] { 131 flex-grow: 1; 132 border-radius: $pf-border-radius; 133 border: 1px solid #dcdcdc; 134 padding: 3px; 135 margin: 0 10px; 136 min-width: 170px; 137 138 &:focus { 139 outline: none; 140 box-shadow: 1px 1px 1px rgba(23, 32, 44, 0.3); 141 } 142 } 143 } 144 } 145 146 .record-modal-button, 147 .record-modal-button-high, 148 .record-modal-logo-button { 149 font-size: 0.875rem; 150 padding-left: 1rem; 151 padding-right: 1rem; 152 padding-top: 0.5rem; 153 padding-bottom: 0.5rem; 154 background-color: #0000ff; 155 color: #fff; 156 cursor: pointer; 157 -webkit-appearance: button; 158 text-transform: none; 159 overflow: visible; 160 line-height: 1.15; 161 margin: 5px; 162 will-change: transform; 163 -moz-osx-font-smoothing: grayscale; 164 -webkit-backface-visibility: hidden; 165 backface-visibility: hidden; 166 transform: translateZ(0); 167 transition: transform 0.25s ease-out; 168 align-self: end; 169 text-align: center; 170 } 171 172 .record-modal-button, 173 .record-modal-button-high { 174 border-radius: $pf-border-radius; 175 border-style: none; 176 border-width: 0; 177 } 178 179 .record-modal-button-high:disabled { 180 background-color: #808080; 181 } 182 183 .record-modal-button-high { 184 height: 100%; 185 align-self: center; 186 display: flex; 187 align-items: center; 188 } 189 190 .record-modal-logo-button { 191 border-radius: 50%; 192 width: 35px; 193 height: 35px; 194 display: flex; 195 align-items: center; 196 justify-content: center; 197 } 198} 199 200.hider { 201 @include transition(0.2s); 202 position: fixed; 203 left: 0; 204 top: 0; 205 bottom: 0; 206 right: 0; 207 background: #000; 208 opacity: 0.2; 209 z-index: 5; 210} 211 212.record-header { 213 grid-area: header; 214 padding: 10px; 215 display: flex; 216 flex-direction: column; 217 border-bottom: 1px solid #eee; 218 219 .top-part { 220 display: flex; 221 justify-content: space-between; 222 align-items: center; 223 224 // Connect/start/stop tracing buttons. 225 .button { 226 display: flex; 227 justify-content: flex-end; 228 align-items: center; 229 width: auto; 230 height: 50px; 231 margin: 0; 232 > * { 233 @include transition(0.2s); 234 cursor: pointer; 235 border-radius: 10px; 236 margin: 10px; 237 text-align: center; 238 background-color: #eee; 239 font-family: "Roboto", sans-serif; 240 font-size: 17px; 241 @media (max-width: 1280px) { 242 font-size: 1.6vw; 243 } 244 padding: 7px; 245 246 &:hover { 247 background-color: hsl(88, 50%, 84%); 248 box-shadow: 0 0 4px 0 #999; 249 } 250 251 &.selected { 252 background-color: hsl(88, 50%, 67%); 253 box-shadow: 0 0 4px 0 #999; 254 } 255 256 &.disabled { 257 background-color: hsl(0, 0%, 97%); 258 } 259 } 260 } 261 262 .target-and-status { 263 display: flex; 264 flex-direction: column; 265 justify-content: space-evenly; 266 267 .target { 268 display: flex; 269 flex-direction: row; 270 align-items: center; 271 } 272 273 label, 274 select, 275 button { 276 font-weight: 300; 277 margin: 3px; 278 color: #333; 279 font-size: 17px; 280 font-family: "Roboto", sans-serif; 281 align-items: center; 282 283 &.error-label { 284 max-width: 500px; 285 color: rgb(255, 0, 0); 286 font-size: 15px; 287 } 288 } 289 .chip { 290 @include transition(); 291 display: flex; 292 align-items: center; 293 border: 1px solid #eee; 294 outline: none; 295 margin: 4px; 296 border-radius: 20px; 297 padding: 4px; 298 height: 30px; 299 &:hover, 300 &:active { 301 box-shadow: 0 0 4px 0 #ccc; 302 background-color: #fafafa; 303 } 304 i { 305 margin: 3px; 306 align-items: center; 307 } 308 } 309 } 310 } 311 312 .note { 313 border-radius: 3px; 314 margin-bottom: 5px; 315 background: #f9eeba; 316 padding: 10px; 317 font-family: "Roboto", sans-serif; 318 font-size: 14px; 319 line-height: 20px; 320 } 321 322 select { 323 @include transition(); 324 margin-left: 10px; 325 border-radius: 0; 326 border: 1px solid #eee; 327 outline: none; 328 &:hover, 329 &:active { 330 box-shadow: 0 0 6px #ccc; 331 } 332 } 333} 334 335// The left-hand-side menu with 'Cpu', 'Memory' etc. 336.record-menu { 337 grid-area: sidebar; 338 .rec { 339 color: #ee3326; 340 } 341 342 background-color: #fcfcfc; 343 border-right: 1px solid #eee; 344 padding-bottom: 1em; 345 346 header { 347 font-family: "Roboto", sans-serif; 348 font-size: 14px; 349 font-weight: 700; 350 margin: 1em; 351 } 352 353 ul { 354 list-style-type: none; 355 margin: 0; 356 padding: 0; 357 } 358 359 a, 360 a:link, 361 a:visited { 362 text-decoration: none; 363 } 364 365 li { 366 @include transition(); 367 height: 55px; 368 padding: 0 1em; 369 font-size: 15px; 370 letter-spacing: 0.5px; 371 font-family: "Roboto", sans-serif; 372 font-weight: 600; 373 color: #666; 374 display: grid; 375 grid-template-columns: 50px 1fr; 376 grid-template-rows: 40px 1fr; 377 grid-template-areas: "icon title" "icon subtext"; 378 cursor: pointer; 379 overflow: hidden; 380 381 i { 382 margin: auto; 383 font-size: 32px; 384 width: 38px; 385 height: 38px; 386 padding: 3px; 387 grid-area: icon; 388 } 389 390 .title { 391 transition: line-height 0.25s ease; 392 grid-area: title; 393 line-height: 55px; 394 display: block; 395 } 396 397 .sub { 398 @include transition(0.5s); 399 grid-area: subtext; 400 font-size: 10px; 401 line-height: 12.5px; 402 margin-top: -5px; 403 opacity: 0; 404 text-overflow: ellipsis; 405 white-space: nowrap; 406 } 407 408 &:hover { 409 background-color: hsl(214, 0%, 90%); 410 .title { 411 line-height: 50px; 412 } 413 .sub { 414 opacity: 1; 415 transition-duration: 0.25s; 416 transition-delay: 0s; 417 } 418 } 419 420 &.active { 421 background-color: hsl(214, 80%, 70%); 422 .title, 423 .sub { 424 color: white; 425 } 426 } 427 } // li 428 429 &.disabled { 430 opacity: 0.5; 431 pointer-events: none; 432 } 433} // record-menu 434 435.record-section { 436 grid-area: section; 437 background: #fff; 438 transition: opacity 0.25s ease; 439 opacity: 0; 440 display: none; 441 442 &:not(.active) { 443 max-height: 0; 444 } 445 446 &.active { 447 display: block; 448 opacity: 1; 449 } 450 451 .config { 452 &:nth-of-type(2n) { 453 background-color: #e7e7e7; 454 } 455 456 height: auto; 457 width: 100%; 458 padding: 0; 459 display: flex; 460 align-items: center; 461 } 462 463 .parsing-errors { 464 padding: 1em; 465 border: 1px solid #dc143c; 466 color: #dc143c; 467 } 468 469 .title-config { 470 display: inline-block; 471 margin: var(--record-section-padding); 472 flex-grow: 1; 473 word-break: break-all; 474 } 475 476 .config-button { 477 border-radius: 100%; 478 margin-right: 10px; 479 text-align: center; 480 justify-items: center; 481 font-family: "Roboto", sans-serif; 482 padding: 7px; 483 484 &:hover:enabled { 485 box-shadow: 0 0 3px 0 #aaa; 486 } 487 488 &:not(:enabled) { 489 background-color: hsl(0, 0%, 83%); 490 color: hsl(0, 0%, 50%); 491 } 492 493 &.load:enabled { 494 background-color: hsl(88, 50%, 67%); 495 } 496 497 &.delete { 498 background-color: hsl(0, 50%, 67%); 499 } 500 501 &.save { 502 &.long { 503 width: 160px; 504 } 505 506 &:enabled { 507 background-color: hsl(197, 50%, 67%); 508 } 509 } 510 511 &.reset { 512 width: 300px; 513 background-color: hsl(0, 50%, 67%); 514 } 515 } 516 517 .reset-wrapper { 518 padding: 1em; 519 } 520 521 .input-config { 522 margin-top: 20px; 523 margin-bottom: 20px; 524 display: flex; 525 align-items: center; 526 padding: 0; 527 528 input { 529 border-radius: 20px; 530 border: 1px solid #eee; 531 line-height: 36px; 532 padding: 0 10px; 533 font-size: 18px; 534 font-family: "Roboto Condensed", sans-serif; 535 font-weight: 300; 536 color: #666; 537 flex-grow: 1; 538 margin-right: 10px; 539 margin-left: 10px; 540 541 background-color: transparent; 542 &:focus { 543 outline: none; 544 } 545 &::placeholder { 546 color: #b4b7ba; 547 font-family: "Roboto", sans-serif; 548 font-weight: 400; 549 } 550 } 551 } 552 553 // By default space all section elements by the same amount. 554 --record-section-padding: 20px; 555 556 > * { 557 padding-left: var(--record-section-padding); 558 padding-right: var(--record-section-padding); 559 &:first-child { 560 padding-top: 20px; 561 } 562 &:last-child { 563 padding-bottom: 20px; 564 } 565 } 566 567 > header { 568 text-align: center; 569 font-family: "Roboto", sans-serif; 570 font-size: 20px; 571 padding: 15px 10px; 572 color: #333; 573 letter-spacing: 0.5px; 574 } 575 576 .hide { 577 opacity: 0; 578 visibility: hidden; 579 } 580 581 .probe { 582 display: grid; 583 grid-template-rows: 40px 1fr; 584 grid-template-columns: 220px 1fr; 585 grid-template-areas: "label label" "img descr"; 586 transition: color 0.2s ease; 587 padding-top: var(--record-section-padding); 588 padding-bottom: var(--record-section-padding); 589 590 &.compact { 591 padding-top: 10px; 592 padding-bottom: 10px; 593 } 594 595 &:nth-of-type(2n) { 596 background-color: #f9f9f9; 597 } 598 599 > img { 600 transition: 601 filter 0.2s ease, 602 opacity 0.2s ease; 603 grid-area: img; 604 width: 210px; 605 box-sizing: content-box; 606 cursor: pointer; 607 opacity: 0.5; 608 filter: saturate(0.15); 609 } 610 611 &:hover { 612 > img { 613 opacity: 1; 614 } 615 > label { 616 color: #333; 617 input[type="checkbox"]::after { 618 background: hsl(207, 60%, 60%); 619 } 620 } 621 } // :hover 622 623 > label { 624 grid-area: label; 625 cursor: pointer; 626 font-family: "Roboto", sans-serif; 627 font-size: 20px; 628 font-weight: 400; 629 color: #999; 630 631 // The per-probe on-off switch. 632 input[type="checkbox"] { 633 -moz-appearance: none; 634 -webkit-appearance: none; 635 cursor: pointer; 636 margin: 0 10px 0 3px; 637 position: relative; 638 display: inline-block; 639 height: 20px; 640 width: 44px; 641 background: #89898966; 642 border-radius: 100px; 643 transition: all 0.3s ease; 644 overflow: visible; 645 vertical-align: middle; 646 647 &:focus { 648 outline: none; 649 } 650 651 &::after { 652 position: absolute; 653 left: -2px; 654 top: -3px; 655 display: block; 656 width: 26px; 657 height: 26px; 658 border-radius: 100px; 659 background: #f5f5f5; 660 box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15); 661 content: ""; 662 transition: all 0.3s ease; 663 } 664 &:checked { 665 background: #8398b7; 666 } 667 &:focus::after { 668 background: hsl(207, 60%, 60%); 669 } 670 &:checked::after { 671 left: 20px; 672 background: #27303d; 673 } 674 } // checkbox 675 } // label 676 677 // The content of the probe section. 678 > div { 679 grid-area: descr; 680 font-size: 14px; 681 font-weight: 200; 682 min-height: 50px; 683 color: var(--record-text-color); 684 line-height: 20px; 685 } 686 687 // .probe-config is showed only when the probe is enabled. 688 .probe-config { 689 @include transition(0.3s); 690 opacity: 0; 691 visibility: hidden; 692 margin: 10px 10px 0 0; 693 max-height: 0; 694 } 695 696 .extended-desc { 697 grid-column: span 2; 698 } 699 700 &.enabled { 701 .probe-config { 702 opacity: 1; 703 visibility: visible; 704 max-height: 100vh; 705 } 706 > label span { 707 color: #4e80b7; 708 } 709 > img { 710 filter: saturate(1); 711 opacity: 1; 712 } 713 } 714 } // probe 715 716 .toggle { 717 transition: color 0.2s ease; 718 padding-top: var(--record-section-padding); 719 720 &:hover { 721 > img { 722 opacity: 1; 723 } 724 > label { 725 color: #333; 726 input[type="checkbox"]::after { 727 background: hsl(207, 60%, 60%); 728 } 729 } 730 } // :hover 731 732 > label { 733 cursor: pointer; 734 font-size: 14px; 735 color: var(--record-text-color); 736 737 // The per-probe on-off switch. 738 input[type="checkbox"] { 739 -moz-appearance: none; 740 -webkit-appearance: none; 741 cursor: pointer; 742 margin: 0 12px 0 2px; 743 position: relative; 744 display: inline-block; 745 height: 10px; 746 width: 22px; 747 background: #89898966; 748 border-radius: 100px; 749 transition: all 0.3s ease; 750 overflow: visible; 751 vertical-align: middle; 752 753 &:focus { 754 outline: none; 755 } 756 757 &::after { 758 position: absolute; 759 left: -5px; 760 top: -5px; 761 display: block; 762 width: 20px; 763 height: 20px; 764 border-radius: 100px; 765 background: #f5f5f5; 766 box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15); 767 content: ""; 768 transition: all 0.3s ease; 769 } 770 &:checked { 771 background: #8398b7; 772 } 773 &:focus::after { 774 background: hsl(207, 60%, 60%); 775 } 776 &:checked::after { 777 left: 12px; 778 background: #27303d; 779 } 780 } // checkbox 781 } // label 782 783 // The content of the toggle section. 784 > div.descr { 785 padding-left: 36px; 786 font-size: 12px; 787 color: #666; 788 } 789 } // toggle 790 791 // The three "Stop when full", "Ring buffer", "Long trace" buttons. 792 .record-mode { 793 display: grid; 794 grid-template-columns: 1fr 1fr 1fr; 795 grid-template-areas: ". . ."; 796 grid-template-rows: 1fr; 797 padding-top: 0; 798 799 input[type="radio"] { 800 appearance: none; 801 -webkit-appearance: none; 802 display: none; 803 } 804 805 > * { 806 @include transition(0.2s); 807 cursor: pointer; 808 border-radius: 15px; 809 margin: 5px; 810 text-align: center; 811 background-color: #eee; 812 font-family: "Roboto", sans-serif; 813 font-size: 20px; 814 @media (max-width: 1280px) { 815 font-size: 1.6vw; 816 } 817 padding-bottom: 10px; 818 819 &:hover { 820 background-color: hsl(88, 50%, 84%); 821 box-shadow: 0 0 4px 0 #999; 822 } 823 824 &.selected { 825 background-color: hsl(88, 50%, 67%); 826 box-shadow: 0 0 4px 0 #999; 827 } 828 829 img { 830 width: 100%; 831 } 832 } 833 } // record-mode 834 835 // There are two types of sliders: 836 // 1) The full-width one (default), e.g. the one used in the main recording 837 // page for the duration of the trace. This one has both an icon and a 838 // label on the top. 839 // 2) The smaller ones (.thin) used in the probes. This one has no icon. 840 .slider { 841 @include transition(0.3s); 842 display: grid; 843 grid-template-columns: 40px 1fr 130px 0; 844 grid-template-rows: 30px min-content 1fr; 845 grid-template-areas: 846 "hdr hdr hdr hdr" "descr descr descr descr" 847 "icon slider label unit"; 848 margin-top: var(--record-section-padding); 849 850 &.thin { 851 grid-template-columns: 1fr 1fr 100px 0; 852 grid-template-areas: 853 "hdr hdr hdr hdr" "descr descr descr descr" 854 "slider slider label unit"; 855 } 856 857 &.greyed-out { 858 opacity: 0.5; 859 } 860 861 > * { 862 height: 40px; 863 line-height: 40px; 864 } 865 866 > header { 867 @include transition(0.3s); 868 opacity: 0.6; 869 color: #333; 870 grid-area: hdr; 871 } 872 873 &.thin > header { 874 opacity: 1; 875 color: var(--record-text-color); 876 font-size: 14px; 877 } 878 879 &.thin > header.descr { 880 grid-area: descr; 881 font-size: 12px; 882 color: #666; 883 height: 20px; 884 line-height: 20px; 885 } 886 887 &:hover > header { 888 opacity: 1; 889 transition-duration: 0.15s; 890 } 891 892 > i { 893 grid-area: icon; 894 font-size: 32px; 895 color: #333; 896 } 897 898 input[type="range"] { 899 grid-area: slider; 900 width: 100%; 901 appearance: none; 902 -webkit-appearance: none; 903 scroll-snap-type: x mandatory; 904 background-color: transparent; 905 outline: none; 906 margin-left: -10px; 907 margin-top: -5px; 908 909 &::-webkit-slider-runnable-track { 910 margin: 10px; 911 width: 100%; 912 height: 10px; 913 background-color: #ddd; 914 border-radius: 4px; 915 } 916 917 &::-webkit-slider-thumb { 918 @include transition(); 919 appearance: none; 920 -webkit-appearance: none; 921 border: none; 922 border-radius: 3px; 923 height: 20px; 924 width: 40px; 925 background-color: rgb(33, 150, 243); 926 margin-top: -5px; 927 cursor: pointer; 928 content: ""; 929 } 930 931 &:hover::-webkit-slider-thumb, 932 &:focus::-webkit-slider-thumb { 933 box-shadow: 0 0 4px rgb(16, 81, 134); 934 transform: scale(1, 1.1); 935 } 936 } 937 938 &.thin input[type="range"]::-webkit-slider-runnable-track { 939 height: 8px; 940 } 941 942 &.thin input[type="range"]::-webkit-slider-thumb { 943 width: 20px; 944 border-radius: 100%; 945 } 946 947 .spinner { 948 @include transition(); 949 grid-area: label; 950 border: 1px solid #fafafa; 951 border-bottom: 2px solid #ddd; 952 padding: 0 5px; 953 border-radius: 2px; 954 background-color: rgba(255, 255, 255, 60%); 955 font-family: "Roboto", sans-serif; 956 font-size: 16px; 957 font-weight: 100; 958 height: 35px; 959 outline: none; 960 961 &::-webkit-inner-spin-button, 962 &::-webkit-outer-spin-button, 963 &::-webkit-clear-button { 964 -webkit-appearance: none; 965 margin: 0; 966 } 967 968 &:hover, 969 &:focus { 970 border-bottom-color: hsl(207, 90%, 54%); 971 background-color: hsl(207, 50%, 97%); 972 } 973 974 &:invalid { 975 border-bottom-color: hsl(9, 90%, 54%); 976 background-color: hsl(9, 50%, 97%); 977 } 978 } 979 980 &.thin .spinner { 981 font-size: 14px; 982 margin-top: -5px; 983 } 984 985 .unit { 986 grid-area: unit; 987 font-size: 12px; 988 color: var(--record-text-color); 989 position: relative; 990 line-height: 37px; 991 overflow: hidden; 992 width: 35px; 993 left: -45px; 994 text-align: right; 995 margin-top: -5px; 996 } 997 } 998 999 .chrome-categories { 1000 padding-top: 8px; 1001 padding-bottom: 8px; 1002 display: flex; 1003 flex-direction: row; 1004 gap: 8px; 1005 } 1006 1007 .dropdown { 1008 border: 1px solid #eee; 1009 outline: none; 1010 -webkit-appearance: none; 1011 1012 option, 1013 optgroup { 1014 @include transition(); 1015 min-height: 25px; 1016 font-size: 12px; 1017 color: var(--record-text-color); 1018 cursor: pointer; 1019 padding: 5px 0; 1020 } 1021 1022 option { 1023 padding: 2.5px 5px; 1024 border-bottom: 1px solid #eee; 1025 &:hover { 1026 background-color: hsl(214, 80%, 90%); 1027 } 1028 &::before { 1029 display: none; 1030 content: ""; 1031 } 1032 } 1033 1034 &.singlecolumn { 1035 margin: var(--record-section-padding) 0; 1036 padding: 0; 1037 max-width: 100%; 1038 width: 100%; 1039 overflow-y: auto; 1040 height: 400px; 1041 optgroup { 1042 display: grid; 1043 padding: 0; 1044 grid-template-columns: 1fr; 1045 } 1046 option { 1047 margin: 0; 1048 } 1049 } 1050 1051 &.multicolumn { 1052 padding: 0; 1053 max-width: 100%; 1054 width: 100%; 1055 overflow-y: auto; 1056 optgroup { 1057 display: grid; 1058 padding: 0; 1059 grid-template-columns: 1fr 1fr 1fr; 1060 } 1061 option { 1062 &:nth-of-type(3n + 1) { 1063 border-left: 1px solid #eee; 1064 border-right: 1px solid #eee; 1065 } 1066 margin: 0; 1067 } 1068 1069 &.two-columns { 1070 height: 400px; 1071 margin: var(--record-section-padding); 1072 optgroup { 1073 display: grid; 1074 padding: 0; 1075 grid-template-columns: 1fr 1fr; 1076 } 1077 option { 1078 &:nth-of-type(2n + 1) { 1079 border-left: 1px solid #eee; 1080 border-right: 1px solid #eee; 1081 } 1082 margin: 0; 1083 } 1084 } 1085 } 1086 } 1087 1088 .atrace-categories { 1089 height: 227px; 1090 } 1091 1092 .ftrace-events { 1093 height: 152px; 1094 } 1095 1096 textarea.extra-input { 1097 width: 100%; 1098 height: 60px; 1099 border: 1px solid #eee; 1100 resize: none; 1101 outline: none; 1102 font-family: var(--monospace-font); 1103 1104 &::placeholder { 1105 color: #aaa; 1106 } 1107 } 1108 1109 textarea.record-apps-list { 1110 margin-top: 16px; 1111 height: 100px; 1112 } 1113 1114 &.instructions { 1115 label, 1116 select { 1117 font-weight: 100; 1118 color: #333; 1119 font-size: 16px; 1120 font-family: "Roboto", sans-serif; 1121 } 1122 1123 .note { 1124 border: 1px dashed #ddd; 1125 background: #f9eeba; 1126 margin: var(--record-section-padding); 1127 padding: 10px; 1128 font-family: "Roboto", sans-serif; 1129 font-size: 14px; 1130 line-height: 20px; 1131 } 1132 1133 select { 1134 @include transition(); 1135 margin-left: 10px; 1136 border-radius: 0; 1137 border: 1px solid #eee; 1138 outline: none; 1139 1140 &:hover, 1141 &:active { 1142 box-shadow: 0 0 6px #ccc; 1143 } 1144 } 1145 // Stop/cancel buttons 1146 .buttons { 1147 display: flex; 1148 justify-content: center; 1149 align-items: center; 1150 width: auto; 1151 height: 70px; 1152 > * { 1153 @include transition(0.2s); 1154 cursor: pointer; 1155 border-radius: 10px; 1156 text-align: center; 1157 margin: 3px; 1158 background-color: #eee; 1159 font-family: "Roboto", sans-serif; 1160 flex-grow: 1; 1161 font-size: 17px; 1162 @media (max-width: 1280px) { 1163 font-size: 1.6vw; 1164 } 1165 padding: 7px; 1166 1167 &:hover { 1168 background-color: hsl(88, 50%, 84%); 1169 box-shadow: 0 0 4px 0 #999; 1170 } 1171 1172 &.selected { 1173 background-color: hsl(88, 50%, 67%); 1174 box-shadow: 0 0 4px 0 #999; 1175 } 1176 } 1177 } 1178 1179 .permalinkconfig { 1180 margin: var(--record-section-padding); 1181 height: 40px; 1182 max-width: 200px; 1183 border-radius: 10px; 1184 text-align: center; 1185 justify-items: center; 1186 font-family: "Roboto", sans-serif; 1187 padding: 7px; 1188 background-color: hsl(88, 50%, 67%); 1189 1190 &:hover { 1191 box-shadow: 0 0 4px 0 #999; 1192 } 1193 } 1194 1195 progress { 1196 -webkit-appearance: none; 1197 appearance: none; 1198 width: 600px; 1199 height: 30px; 1200 margin: var(--record-section-padding); 1201 border-radius: 5px; 1202 } 1203 ::-webkit-progress-value { 1204 background-color: hsl(88, 50%, 67%); 1205 } 1206 ::-webkit-progress-bar { 1207 background-color: #eee; 1208 } 1209 } 1210} // record-section 1211 1212.inline-chip { 1213 @include transition(); 1214 &:hover, 1215 &:active { 1216 box-shadow: 0 0 2px 0 #ccc; 1217 background-color: #fafafa; 1218 } 1219 1220 > i.material-icons { 1221 color: rgb(60, 60, 60); 1222 font-size: 14px; 1223 } 1224 1225 line-height: 25px; 1226 font-size: smaller; 1227 padding: 2px 4px; 1228 border: 1px solid #eee; 1229 margin: 2px; 1230 border-radius: 9px; 1231} 1232 1233a.inline-chip, 1234a.inline-chip:link, 1235a.inline-chip:visited { 1236 text-decoration: none; 1237 color: var(--record-text-color); 1238} 1239 1240.code-snippet { 1241 display: grid; 1242 position: relative; 1243 padding: 0; 1244 margin: var(--record-section-padding); 1245 background-color: #111; 1246 border-radius: 4px; 1247 box-shadow: 0 0 12px #999; 1248 1249 @keyframes ripple { 1250 0% { 1251 transform: scale(1); 1252 } 1253 30% { 1254 transform: scale(1.2); 1255 } 1256 60% { 1257 transform: scale(1); 1258 } 1259 80% { 1260 transform: scale(1.3); 1261 } 1262 100% { 1263 transform: scale(1.2); 1264 } 1265 } 1266 1267 &::before { 1268 height: 20px; 1269 content: ""; 1270 display: block; 1271 background-color: #598eca; 1272 } 1273 1274 &.no-top-bar { 1275 white-space: pre; 1276 &::before { 1277 height: 0; 1278 } 1279 } 1280 1281 > code { 1282 display: block; 1283 margin: 10px 5px 20px 20px; 1284 color: #ccc; 1285 font-family: var(--monospace-font); 1286 font-size: 12px; 1287 line-height: 20px; 1288 overflow-y: auto; 1289 white-space: pre-wrap; 1290 word-wrap: break-word; 1291 1292 // 510px and not 500px, so the overflowing line gets truncated, giving 1293 // a clear indication that the code box scrolls. 1294 max-height: 510px; 1295 } 1296 1297 > button { 1298 @include transition(); 1299 display: inline-block; 1300 position: absolute; 1301 top: 30px; 1302 right: 20px; 1303 color: white; 1304 border-radius: 100%; 1305 background-color: #333; 1306 box-shadow: 0 0 2px rgba(255, 255, 255, 200); 1307 padding: 5px; 1308 font-size: 16px; 1309 line-height: 13px; // Deliberately smaller to center the icon. 1310 user-select: none; 1311 1312 &:hover { 1313 background-color: #444; 1314 transform: scale(1.1); 1315 } 1316 } 1317 1318 &:active:hover > button:not(:hover) { 1319 animation: ripple linear 0.5s; 1320 background-color: #701d17; 1321 transform: scale(1.1); 1322 } 1323 1324 > button:active:hover { 1325 transform: scale(0.9); 1326 } 1327} // code-snippet 1328