| // Copyright (C) 2018 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| @import "widgets/theme"; |
| |
| :root { |
| --record-text-color: #333; |
| } |
| |
| // The whole record page. |
| .record-page { |
| position: relative; |
| overflow-y: scroll; |
| background-color: #fefefe; |
| padding: 40px 20px; |
| } |
| |
| // The always-visible centered box that has menu and sections on the right. |
| .record-container { |
| position: relative; |
| max-width: 900px; |
| min-height: 500px; |
| margin: auto; |
| border-radius: $pf-border-radius; |
| box-shadow: |
| 0 1px 2px 0 #aaa, |
| 0 1px 3px 1px #eee; |
| background-color: #fff; |
| display: grid; |
| grid-template-rows: auto 1fr; |
| grid-template-areas: |
| "header" |
| "content"; |
| overflow: hidden; |
| z-index: 6; |
| |
| // The body of the record container. |
| .record-container-content { |
| display: grid; |
| grid-template-columns: 2fr 5fr; |
| grid-template-areas: "sidebar section"; |
| } |
| |
| .full-centered { |
| width: 100%; |
| height: 100%; |
| text-align: center; |
| padding: 180px 30px; |
| font-family: "Roboto", sans-serif; |
| font-size: 25px; |
| } |
| } |
| |
| .record-modal { |
| display: flex; |
| flex-direction: column; |
| |
| .line { |
| padding: 10px 10px 10px 10px; |
| border-bottom: 1px solid #808080; |
| } |
| |
| .record-modal-section { |
| display: flex; |
| flex-direction: row; |
| |
| .logo-wrapping { |
| width: 150px; |
| height: 150px; |
| display: inline-block; |
| margin: 50px 30px 0px 0px; |
| align-self: center; |
| |
| i.material-icons { |
| color: #16161d; |
| font-size: 150px; |
| } |
| } |
| |
| select { |
| min-width: 300px; |
| min-height: 80px; |
| } |
| |
| .record-modal-description { |
| display: flex; |
| flex-direction: column; |
| align-items: left; |
| |
| .record-modal-command { |
| display: flex; |
| flex-direction: row; |
| align-items: center; |
| padding: 10px 0px 10px 0px; |
| color: #fff; |
| |
| .code-snippet { |
| width: 100%; |
| } |
| } |
| |
| h3 { |
| padding-top: 15px; |
| align-self: start; |
| font-size: 1.2rem; |
| color: #0000ff; |
| } |
| |
| h4 { |
| align-self: start; |
| font-size: 1.1rem; |
| } |
| |
| text { |
| padding: 10px 0px 10px 0px; |
| color: #000000; |
| } |
| |
| input[type="text"] { |
| flex-grow: 1; |
| border-radius: $pf-border-radius; |
| border: 1px solid #dcdcdc; |
| padding: 3px; |
| margin: 0 10px; |
| min-width: 170px; |
| |
| &:focus { |
| outline: none; |
| box-shadow: 1px 1px 1px rgba(23, 32, 44, 0.3); |
| } |
| } |
| } |
| } |
| |
| .record-modal-button, |
| .record-modal-button-high, |
| .record-modal-logo-button { |
| font-size: 0.875rem; |
| padding-left: 1rem; |
| padding-right: 1rem; |
| padding-top: 0.5rem; |
| padding-bottom: 0.5rem; |
| background-color: #0000ff; |
| color: #fff; |
| cursor: pointer; |
| -webkit-appearance: button; |
| text-transform: none; |
| overflow: visible; |
| line-height: 1.15; |
| margin: 5px; |
| will-change: transform; |
| -moz-osx-font-smoothing: grayscale; |
| -webkit-backface-visibility: hidden; |
| backface-visibility: hidden; |
| transform: translateZ(0); |
| transition: transform 0.25s ease-out; |
| align-self: end; |
| text-align: center; |
| } |
| |
| .record-modal-button, |
| .record-modal-button-high { |
| border-radius: $pf-border-radius; |
| border-style: none; |
| border-width: 0; |
| } |
| |
| .record-modal-button-high:disabled { |
| background-color: #808080; |
| } |
| |
| .record-modal-button-high { |
| height: 100%; |
| align-self: center; |
| display: flex; |
| align-items: center; |
| } |
| |
| .record-modal-logo-button { |
| border-radius: 50%; |
| width: 35px; |
| height: 35px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| } |
| } |
| |
| .hider { |
| @include transition(0.2s); |
| position: fixed; |
| left: 0; |
| top: 0; |
| bottom: 0; |
| right: 0; |
| background: #000; |
| opacity: 0.2; |
| z-index: 5; |
| } |
| |
| .record-header { |
| grid-area: header; |
| padding: 10px; |
| display: flex; |
| flex-direction: column; |
| border-bottom: 1px solid #eee; |
| |
| .top-part { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| |
| // Connect/start/stop tracing buttons. |
| .button { |
| display: flex; |
| justify-content: flex-end; |
| align-items: center; |
| width: auto; |
| height: 50px; |
| margin: 0; |
| > * { |
| @include transition(0.2s); |
| cursor: pointer; |
| border-radius: 10px; |
| margin: 10px; |
| text-align: center; |
| background-color: #eee; |
| font-family: "Roboto", sans-serif; |
| font-size: 17px; |
| @media (max-width: 1280px) { |
| font-size: 1.6vw; |
| } |
| padding: 7px; |
| |
| &:hover { |
| background-color: hsl(88, 50%, 84%); |
| box-shadow: 0 0 4px 0 #999; |
| } |
| |
| &.selected { |
| background-color: hsl(88, 50%, 67%); |
| box-shadow: 0 0 4px 0 #999; |
| } |
| |
| &.disabled { |
| background-color: hsl(0, 0%, 97%); |
| } |
| } |
| } |
| |
| .target-and-status { |
| display: flex; |
| flex-direction: column; |
| justify-content: space-evenly; |
| |
| .target { |
| display: flex; |
| flex-direction: row; |
| align-items: center; |
| } |
| |
| label, |
| select, |
| button { |
| font-weight: 300; |
| margin: 3px; |
| color: #333; |
| font-size: 17px; |
| font-family: "Roboto", sans-serif; |
| align-items: center; |
| |
| &.error-label { |
| max-width: 500px; |
| color: rgb(255, 0, 0); |
| font-size: 15px; |
| } |
| } |
| .chip { |
| @include transition(); |
| display: flex; |
| align-items: center; |
| border: 1px solid #eee; |
| outline: none; |
| margin: 4px; |
| border-radius: 20px; |
| padding: 4px; |
| height: 30px; |
| &:hover, |
| &:active { |
| box-shadow: 0 0 4px 0 #ccc; |
| background-color: #fafafa; |
| } |
| i { |
| margin: 3px; |
| align-items: center; |
| } |
| } |
| } |
| } |
| |
| .note { |
| border-radius: 3px; |
| margin-bottom: 5px; |
| background: #f9eeba; |
| padding: 10px; |
| font-family: "Roboto", sans-serif; |
| font-size: 14px; |
| line-height: 20px; |
| } |
| |
| select { |
| @include transition(); |
| margin-left: 10px; |
| border-radius: 0; |
| border: 1px solid #eee; |
| outline: none; |
| &:hover, |
| &:active { |
| box-shadow: 0 0 6px #ccc; |
| } |
| } |
| } |
| |
| // The left-hand-side menu with 'Cpu', 'Memory' etc. |
| .record-menu { |
| grid-area: sidebar; |
| .rec { |
| color: #ee3326; |
| } |
| |
| background-color: #fcfcfc; |
| border-right: 1px solid #eee; |
| padding-bottom: 1em; |
| |
| header { |
| font-family: "Roboto", sans-serif; |
| font-size: 14px; |
| font-weight: 700; |
| margin: 1em; |
| } |
| |
| ul { |
| list-style-type: none; |
| margin: 0; |
| padding: 0; |
| } |
| |
| a, |
| a:link, |
| a:visited { |
| text-decoration: none; |
| } |
| |
| li { |
| @include transition(); |
| height: 55px; |
| padding: 0 1em; |
| font-size: 15px; |
| letter-spacing: 0.5px; |
| font-family: "Roboto", sans-serif; |
| font-weight: 600; |
| color: #666; |
| display: grid; |
| grid-template-columns: 50px 1fr; |
| grid-template-rows: 40px 1fr; |
| grid-template-areas: "icon title" "icon subtext"; |
| cursor: pointer; |
| overflow: hidden; |
| |
| i { |
| margin: auto; |
| font-size: 32px; |
| width: 38px; |
| height: 38px; |
| padding: 3px; |
| grid-area: icon; |
| } |
| |
| .title { |
| transition: line-height 0.25s ease; |
| grid-area: title; |
| line-height: 55px; |
| display: block; |
| } |
| |
| .sub { |
| @include transition(0.5s); |
| grid-area: subtext; |
| font-size: 10px; |
| line-height: 12.5px; |
| margin-top: -5px; |
| opacity: 0; |
| text-overflow: ellipsis; |
| white-space: nowrap; |
| } |
| |
| &:hover { |
| background-color: hsl(214, 0%, 90%); |
| .title { |
| line-height: 50px; |
| } |
| .sub { |
| opacity: 1; |
| transition-duration: 0.25s; |
| transition-delay: 0s; |
| } |
| } |
| |
| &.active { |
| background-color: hsl(214, 80%, 70%); |
| .title, |
| .sub { |
| color: white; |
| } |
| } |
| } // li |
| |
| &.disabled { |
| opacity: 0.5; |
| pointer-events: none; |
| } |
| } // record-menu |
| |
| .record-section { |
| grid-area: section; |
| background: #fff; |
| transition: opacity 0.25s ease; |
| opacity: 0; |
| display: none; |
| |
| &:not(.active) { |
| max-height: 0; |
| } |
| |
| &.active { |
| display: block; |
| opacity: 1; |
| } |
| |
| .config { |
| &:nth-of-type(2n) { |
| background-color: #e7e7e7; |
| } |
| |
| height: auto; |
| width: 100%; |
| padding: 0; |
| display: flex; |
| align-items: center; |
| } |
| |
| .parsing-errors { |
| padding: 1em; |
| border: 1px solid #dc143c; |
| color: #dc143c; |
| } |
| |
| .title-config { |
| display: inline-block; |
| margin: var(--record-section-padding); |
| flex-grow: 1; |
| word-break: break-all; |
| } |
| |
| .config-button { |
| border-radius: 100%; |
| margin-right: 10px; |
| text-align: center; |
| justify-items: center; |
| font-family: "Roboto", sans-serif; |
| padding: 7px; |
| |
| &:hover:enabled { |
| box-shadow: 0 0 3px 0 #aaa; |
| } |
| |
| &:not(:enabled) { |
| background-color: hsl(0, 0%, 83%); |
| color: hsl(0, 0%, 50%); |
| } |
| |
| &.load:enabled { |
| background-color: hsl(88, 50%, 67%); |
| } |
| |
| &.delete { |
| background-color: hsl(0, 50%, 67%); |
| } |
| |
| &.save { |
| &.long { |
| width: 160px; |
| } |
| |
| &:enabled { |
| background-color: hsl(197, 50%, 67%); |
| } |
| } |
| |
| &.reset { |
| width: 300px; |
| background-color: hsl(0, 50%, 67%); |
| } |
| } |
| |
| .reset-wrapper { |
| padding: 1em; |
| } |
| |
| .input-config { |
| margin-top: 20px; |
| margin-bottom: 20px; |
| display: flex; |
| align-items: center; |
| padding: 0; |
| |
| input { |
| border-radius: 20px; |
| border: 1px solid #eee; |
| line-height: 36px; |
| padding: 0 10px; |
| font-size: 18px; |
| font-family: "Roboto Condensed", sans-serif; |
| font-weight: 300; |
| color: #666; |
| flex-grow: 1; |
| margin-right: 10px; |
| margin-left: 10px; |
| |
| background-color: transparent; |
| &:focus { |
| outline: none; |
| } |
| &::placeholder { |
| color: #b4b7ba; |
| font-family: "Roboto", sans-serif; |
| font-weight: 400; |
| } |
| } |
| } |
| |
| // By default space all section elements by the same amount. |
| --record-section-padding: 20px; |
| |
| > * { |
| padding-left: var(--record-section-padding); |
| padding-right: var(--record-section-padding); |
| &:first-child { |
| padding-top: 20px; |
| } |
| &:last-child { |
| padding-bottom: 20px; |
| } |
| } |
| |
| > header { |
| text-align: center; |
| font-family: "Roboto", sans-serif; |
| font-size: 20px; |
| padding: 15px 10px; |
| color: #333; |
| letter-spacing: 0.5px; |
| } |
| |
| .hide { |
| opacity: 0; |
| visibility: hidden; |
| } |
| |
| .probe { |
| display: grid; |
| grid-template-rows: 40px 1fr; |
| grid-template-columns: 220px 1fr; |
| grid-template-areas: "label label" "img descr"; |
| transition: color 0.2s ease; |
| padding-top: var(--record-section-padding); |
| padding-bottom: var(--record-section-padding); |
| |
| &.compact { |
| padding-top: 10px; |
| padding-bottom: 10px; |
| } |
| |
| &:nth-of-type(2n) { |
| background-color: #f9f9f9; |
| } |
| |
| > img { |
| transition: |
| filter 0.2s ease, |
| opacity 0.2s ease; |
| grid-area: img; |
| width: 210px; |
| box-sizing: content-box; |
| cursor: pointer; |
| opacity: 0.5; |
| filter: saturate(0.15); |
| } |
| |
| &:hover { |
| > img { |
| opacity: 1; |
| } |
| > label { |
| color: #333; |
| input[type="checkbox"]::after { |
| background: hsl(207, 60%, 60%); |
| } |
| } |
| } // :hover |
| |
| > label { |
| grid-area: label; |
| cursor: pointer; |
| font-family: "Roboto", sans-serif; |
| font-size: 20px; |
| font-weight: 400; |
| color: #999; |
| |
| // The per-probe on-off switch. |
| input[type="checkbox"] { |
| -moz-appearance: none; |
| -webkit-appearance: none; |
| cursor: pointer; |
| margin: 0 10px 0 3px; |
| position: relative; |
| display: inline-block; |
| height: 20px; |
| width: 44px; |
| background: #89898966; |
| border-radius: 100px; |
| transition: all 0.3s ease; |
| overflow: visible; |
| vertical-align: middle; |
| |
| &:focus { |
| outline: none; |
| } |
| |
| &::after { |
| position: absolute; |
| left: -2px; |
| top: -3px; |
| display: block; |
| width: 26px; |
| height: 26px; |
| border-radius: 100px; |
| background: #f5f5f5; |
| box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15); |
| content: ""; |
| transition: all 0.3s ease; |
| } |
| &:checked { |
| background: #8398b7; |
| } |
| &:focus::after { |
| background: hsl(207, 60%, 60%); |
| } |
| &:checked::after { |
| left: 20px; |
| background: #27303d; |
| } |
| } // checkbox |
| } // label |
| |
| // The content of the probe section. |
| > div { |
| grid-area: descr; |
| font-size: 14px; |
| font-weight: 200; |
| min-height: 50px; |
| color: var(--record-text-color); |
| line-height: 20px; |
| } |
| |
| // .probe-config is showed only when the probe is enabled. |
| .probe-config { |
| @include transition(0.3s); |
| opacity: 0; |
| visibility: hidden; |
| margin: 10px 10px 0 0; |
| max-height: 0; |
| } |
| |
| .extended-desc { |
| grid-column: span 2; |
| } |
| |
| &.enabled { |
| .probe-config { |
| opacity: 1; |
| visibility: visible; |
| max-height: 100vh; |
| } |
| > label span { |
| color: #4e80b7; |
| } |
| > img { |
| filter: saturate(1); |
| opacity: 1; |
| } |
| } |
| } // probe |
| |
| .toggle { |
| transition: color 0.2s ease; |
| padding-top: var(--record-section-padding); |
| |
| &:hover { |
| > img { |
| opacity: 1; |
| } |
| > label { |
| color: #333; |
| input[type="checkbox"]::after { |
| background: hsl(207, 60%, 60%); |
| } |
| } |
| } // :hover |
| |
| > label { |
| cursor: pointer; |
| font-size: 14px; |
| color: var(--record-text-color); |
| |
| // The per-probe on-off switch. |
| input[type="checkbox"] { |
| -moz-appearance: none; |
| -webkit-appearance: none; |
| cursor: pointer; |
| margin: 0 12px 0 2px; |
| position: relative; |
| display: inline-block; |
| height: 10px; |
| width: 22px; |
| background: #89898966; |
| border-radius: 100px; |
| transition: all 0.3s ease; |
| overflow: visible; |
| vertical-align: middle; |
| |
| &:focus { |
| outline: none; |
| } |
| |
| &::after { |
| position: absolute; |
| left: -5px; |
| top: -5px; |
| display: block; |
| width: 20px; |
| height: 20px; |
| border-radius: 100px; |
| background: #f5f5f5; |
| box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15); |
| content: ""; |
| transition: all 0.3s ease; |
| } |
| &:checked { |
| background: #8398b7; |
| } |
| &:focus::after { |
| background: hsl(207, 60%, 60%); |
| } |
| &:checked::after { |
| left: 12px; |
| background: #27303d; |
| } |
| } // checkbox |
| } // label |
| |
| // The content of the toggle section. |
| > div.descr { |
| padding-left: 36px; |
| font-size: 12px; |
| color: #666; |
| } |
| } // toggle |
| |
| // The three "Stop when full", "Ring buffer", "Long trace" buttons. |
| .record-mode { |
| display: grid; |
| grid-template-columns: 1fr 1fr 1fr; |
| grid-template-areas: ". . ."; |
| grid-template-rows: 1fr; |
| padding-top: 0; |
| |
| input[type="radio"] { |
| appearance: none; |
| -webkit-appearance: none; |
| display: none; |
| } |
| |
| > * { |
| @include transition(0.2s); |
| cursor: pointer; |
| border-radius: 15px; |
| margin: 5px; |
| text-align: center; |
| background-color: #eee; |
| font-family: "Roboto", sans-serif; |
| font-size: 20px; |
| @media (max-width: 1280px) { |
| font-size: 1.6vw; |
| } |
| padding-bottom: 10px; |
| |
| &:hover { |
| background-color: hsl(88, 50%, 84%); |
| box-shadow: 0 0 4px 0 #999; |
| } |
| |
| &.selected { |
| background-color: hsl(88, 50%, 67%); |
| box-shadow: 0 0 4px 0 #999; |
| } |
| |
| img { |
| width: 100%; |
| } |
| } |
| } // record-mode |
| |
| // There are two types of sliders: |
| // 1) The full-width one (default), e.g. the one used in the main recording |
| // page for the duration of the trace. This one has both an icon and a |
| // label on the top. |
| // 2) The smaller ones (.thin) used in the probes. This one has no icon. |
| .slider { |
| @include transition(0.3s); |
| display: grid; |
| grid-template-columns: 40px 1fr 130px 0; |
| grid-template-rows: 30px min-content 1fr; |
| grid-template-areas: |
| "hdr hdr hdr hdr" "descr descr descr descr" |
| "icon slider label unit"; |
| margin-top: var(--record-section-padding); |
| |
| &.thin { |
| grid-template-columns: 1fr 1fr 100px 0; |
| grid-template-areas: |
| "hdr hdr hdr hdr" "descr descr descr descr" |
| "slider slider label unit"; |
| } |
| |
| &.greyed-out { |
| opacity: 0.5; |
| } |
| |
| > * { |
| height: 40px; |
| line-height: 40px; |
| } |
| |
| > header { |
| @include transition(0.3s); |
| opacity: 0.6; |
| color: #333; |
| grid-area: hdr; |
| } |
| |
| &.thin > header { |
| opacity: 1; |
| color: var(--record-text-color); |
| font-size: 14px; |
| } |
| |
| &.thin > header.descr { |
| grid-area: descr; |
| font-size: 12px; |
| color: #666; |
| height: 20px; |
| line-height: 20px; |
| } |
| |
| &:hover > header { |
| opacity: 1; |
| transition-duration: 0.15s; |
| } |
| |
| > i { |
| grid-area: icon; |
| font-size: 32px; |
| color: #333; |
| } |
| |
| input[type="range"] { |
| grid-area: slider; |
| width: 100%; |
| appearance: none; |
| -webkit-appearance: none; |
| scroll-snap-type: x mandatory; |
| background-color: transparent; |
| outline: none; |
| margin-left: -10px; |
| margin-top: -5px; |
| |
| &::-webkit-slider-runnable-track { |
| margin: 10px; |
| width: 100%; |
| height: 10px; |
| background-color: #ddd; |
| border-radius: 4px; |
| } |
| |
| &::-webkit-slider-thumb { |
| @include transition(); |
| appearance: none; |
| -webkit-appearance: none; |
| border: none; |
| border-radius: 3px; |
| height: 20px; |
| width: 40px; |
| background-color: rgb(33, 150, 243); |
| margin-top: -5px; |
| cursor: pointer; |
| content: ""; |
| } |
| |
| &:hover::-webkit-slider-thumb, |
| &:focus::-webkit-slider-thumb { |
| box-shadow: 0 0 4px rgb(16, 81, 134); |
| transform: scale(1, 1.1); |
| } |
| } |
| |
| &.thin input[type="range"]::-webkit-slider-runnable-track { |
| height: 8px; |
| } |
| |
| &.thin input[type="range"]::-webkit-slider-thumb { |
| width: 20px; |
| border-radius: 100%; |
| } |
| |
| .spinner { |
| @include transition(); |
| grid-area: label; |
| border: 1px solid #fafafa; |
| border-bottom: 2px solid #ddd; |
| padding: 0 5px; |
| border-radius: 2px; |
| background-color: rgba(255, 255, 255, 60%); |
| font-family: "Roboto", sans-serif; |
| font-size: 16px; |
| font-weight: 100; |
| height: 35px; |
| outline: none; |
| |
| &::-webkit-inner-spin-button, |
| &::-webkit-outer-spin-button, |
| &::-webkit-clear-button { |
| -webkit-appearance: none; |
| margin: 0; |
| } |
| |
| &:hover, |
| &:focus { |
| border-bottom-color: hsl(207, 90%, 54%); |
| background-color: hsl(207, 50%, 97%); |
| } |
| |
| &:invalid { |
| border-bottom-color: hsl(9, 90%, 54%); |
| background-color: hsl(9, 50%, 97%); |
| } |
| } |
| |
| &.thin .spinner { |
| font-size: 14px; |
| margin-top: -5px; |
| } |
| |
| .unit { |
| grid-area: unit; |
| font-size: 12px; |
| color: var(--record-text-color); |
| position: relative; |
| line-height: 37px; |
| overflow: hidden; |
| width: 35px; |
| left: -45px; |
| text-align: right; |
| margin-top: -5px; |
| } |
| } |
| |
| .chrome-categories { |
| padding-top: 8px; |
| padding-bottom: 8px; |
| display: flex; |
| flex-direction: row; |
| gap: 8px; |
| } |
| |
| .dropdown { |
| border: 1px solid #eee; |
| outline: none; |
| -webkit-appearance: none; |
| |
| option, |
| optgroup { |
| @include transition(); |
| min-height: 25px; |
| font-size: 12px; |
| color: var(--record-text-color); |
| cursor: pointer; |
| padding: 5px 0; |
| } |
| |
| option { |
| padding: 2.5px 5px; |
| border-bottom: 1px solid #eee; |
| &:hover { |
| background-color: hsl(214, 80%, 90%); |
| } |
| &::before { |
| display: none; |
| content: ""; |
| } |
| } |
| |
| &.singlecolumn { |
| margin: var(--record-section-padding) 0; |
| padding: 0; |
| max-width: 100%; |
| width: 100%; |
| overflow-y: auto; |
| height: 400px; |
| optgroup { |
| display: grid; |
| padding: 0; |
| grid-template-columns: 1fr; |
| } |
| option { |
| margin: 0; |
| } |
| } |
| |
| &.multicolumn { |
| padding: 0; |
| max-width: 100%; |
| width: 100%; |
| overflow-y: auto; |
| optgroup { |
| display: grid; |
| padding: 0; |
| grid-template-columns: 1fr 1fr 1fr; |
| } |
| option { |
| &:nth-of-type(3n + 1) { |
| border-left: 1px solid #eee; |
| border-right: 1px solid #eee; |
| } |
| margin: 0; |
| } |
| |
| &.two-columns { |
| height: 400px; |
| margin: var(--record-section-padding); |
| optgroup { |
| display: grid; |
| padding: 0; |
| grid-template-columns: 1fr 1fr; |
| } |
| option { |
| &:nth-of-type(2n + 1) { |
| border-left: 1px solid #eee; |
| border-right: 1px solid #eee; |
| } |
| margin: 0; |
| } |
| } |
| } |
| } |
| |
| .atrace-categories { |
| height: 227px; |
| } |
| |
| .ftrace-events { |
| height: 152px; |
| } |
| |
| textarea.extra-input { |
| width: 100%; |
| height: 60px; |
| border: 1px solid #eee; |
| resize: none; |
| outline: none; |
| font-family: var(--monospace-font); |
| |
| &::placeholder { |
| color: #aaa; |
| } |
| } |
| |
| textarea.record-apps-list { |
| margin-top: 16px; |
| height: 100px; |
| } |
| |
| &.instructions { |
| label, |
| select { |
| font-weight: 100; |
| color: #333; |
| font-size: 16px; |
| font-family: "Roboto", sans-serif; |
| } |
| |
| .note { |
| border: 1px dashed #ddd; |
| background: #f9eeba; |
| margin: var(--record-section-padding); |
| padding: 10px; |
| font-family: "Roboto", sans-serif; |
| font-size: 14px; |
| line-height: 20px; |
| } |
| |
| select { |
| @include transition(); |
| margin-left: 10px; |
| border-radius: 0; |
| border: 1px solid #eee; |
| outline: none; |
| |
| &:hover, |
| &:active { |
| box-shadow: 0 0 6px #ccc; |
| } |
| } |
| // Stop/cancel buttons |
| .buttons { |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| width: auto; |
| height: 70px; |
| > * { |
| @include transition(0.2s); |
| cursor: pointer; |
| border-radius: 10px; |
| text-align: center; |
| margin: 3px; |
| background-color: #eee; |
| font-family: "Roboto", sans-serif; |
| flex-grow: 1; |
| font-size: 17px; |
| @media (max-width: 1280px) { |
| font-size: 1.6vw; |
| } |
| padding: 7px; |
| |
| &:hover { |
| background-color: hsl(88, 50%, 84%); |
| box-shadow: 0 0 4px 0 #999; |
| } |
| |
| &.selected { |
| background-color: hsl(88, 50%, 67%); |
| box-shadow: 0 0 4px 0 #999; |
| } |
| } |
| } |
| |
| .permalinkconfig { |
| margin: var(--record-section-padding); |
| height: 40px; |
| max-width: 200px; |
| border-radius: 10px; |
| text-align: center; |
| justify-items: center; |
| font-family: "Roboto", sans-serif; |
| padding: 7px; |
| background-color: hsl(88, 50%, 67%); |
| |
| &:hover { |
| box-shadow: 0 0 4px 0 #999; |
| } |
| } |
| |
| progress { |
| -webkit-appearance: none; |
| appearance: none; |
| width: 600px; |
| height: 30px; |
| margin: var(--record-section-padding); |
| border-radius: 5px; |
| } |
| ::-webkit-progress-value { |
| background-color: hsl(88, 50%, 67%); |
| } |
| ::-webkit-progress-bar { |
| background-color: #eee; |
| } |
| } |
| } // record-section |
| |
| .inline-chip { |
| @include transition(); |
| &:hover, |
| &:active { |
| box-shadow: 0 0 2px 0 #ccc; |
| background-color: #fafafa; |
| } |
| |
| > i.material-icons { |
| color: rgb(60, 60, 60); |
| font-size: 14px; |
| } |
| |
| line-height: 25px; |
| font-size: smaller; |
| padding: 2px 4px; |
| border: 1px solid #eee; |
| margin: 2px; |
| border-radius: 9px; |
| } |
| |
| a.inline-chip, |
| a.inline-chip:link, |
| a.inline-chip:visited { |
| text-decoration: none; |
| color: var(--record-text-color); |
| } |
| |
| .code-snippet { |
| display: grid; |
| position: relative; |
| padding: 0; |
| margin: var(--record-section-padding); |
| background-color: #111; |
| border-radius: 4px; |
| box-shadow: 0 0 12px #999; |
| |
| @keyframes ripple { |
| 0% { |
| transform: scale(1); |
| } |
| 30% { |
| transform: scale(1.2); |
| } |
| 60% { |
| transform: scale(1); |
| } |
| 80% { |
| transform: scale(1.3); |
| } |
| 100% { |
| transform: scale(1.2); |
| } |
| } |
| |
| &::before { |
| height: 20px; |
| content: ""; |
| display: block; |
| background-color: #598eca; |
| } |
| |
| &.no-top-bar { |
| white-space: pre; |
| &::before { |
| height: 0; |
| } |
| } |
| |
| > code { |
| display: block; |
| margin: 10px 5px 20px 20px; |
| color: #ccc; |
| font-family: var(--monospace-font); |
| font-size: 12px; |
| line-height: 20px; |
| overflow-y: auto; |
| white-space: pre-wrap; |
| word-wrap: break-word; |
| |
| // 510px and not 500px, so the overflowing line gets truncated, giving |
| // a clear indication that the code box scrolls. |
| max-height: 510px; |
| } |
| |
| > button { |
| @include transition(); |
| display: inline-block; |
| position: absolute; |
| top: 30px; |
| right: 20px; |
| color: white; |
| border-radius: 100%; |
| background-color: #333; |
| box-shadow: 0 0 2px rgba(255, 255, 255, 200); |
| padding: 5px; |
| font-size: 16px; |
| line-height: 13px; // Deliberately smaller to center the icon. |
| user-select: none; |
| |
| &:hover { |
| background-color: #444; |
| transform: scale(1.1); |
| } |
| } |
| |
| &:active:hover > button:not(:hover) { |
| animation: ripple linear 0.5s; |
| background-color: #701d17; |
| transform: scale(1.1); |
| } |
| |
| > button:active:hover { |
| transform: scale(0.9); |
| } |
| } // code-snippet |