Commit ec56af03 authored by samli@chromium.org's avatar samli@chromium.org

Devtools Animations: Update timeline controls and UI

This change updates the UI of the animation timeline and removes the
pause button. Instead, the pause button is combined into a single
control button to pause, play and replay the timeline.

BUG=492679,447083

Review URL: https://codereview.chromium.org/1156323003

git-svn-id: svn://svn.chromium.org/blink/trunk@201749 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 9b2e09a4
......@@ -19,10 +19,12 @@
position: relative;
transform-style: preserve-3d;
line-height: 40px;
}
.animation-node-row:nth-child(odd) {
background-color: hsla(0, 0%, 0%, 0.05);
border-bottom: 1px solid hsl(0, 0%, 90%);
margin-bottom: -1px;
margin-right: 30px;
background-color: hsl(0, 0%, 98%);
text-overflow: ellipsis;
white-space: nowrap;
}
.animation-timeline-row {
......@@ -34,6 +36,10 @@ path.animation-keyframe {
fill-opacity: 0.3;
}
.animation-node-selected path.animation-keyframe {
fill-opacity: 0.4;
}
line.animation-line {
stroke-width: 2px;
stroke-linecap: round;
......@@ -47,15 +53,12 @@ line.animation-delay-line {
circle.animation-endpoint, circle.animation-keyframe-point {
stroke-width: 2px;
}
circle.animation-endpoint, circle.animation-keyframe-point {
transition: transform 100ms cubic-bezier(0, 0, 0.2, 1);
transform: scale(1);
transform-origin: 50% 50%;
}
circle.animation-endpoint:hover, circle.animation-keyframe-point:hover {
.animation-ui:not(.animation-ui-canceled) circle.animation-endpoint:hover, .animation-ui:not(.animation-ui-canceled) circle.animation-keyframe-point:hover {
transform: scale(1.2);
}
......@@ -76,6 +79,7 @@ circle.animation-keyframe-point {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
min-width: 50px;
}
.animation-timeline-header {
......@@ -84,12 +88,25 @@ circle.animation-keyframe-point {
flex-shrink: 0;
}
.animation-controls {
.animation-timeline-header:after {
content: "";
height: 100%;
position: absolute;
width: 200px;
max-width: 200px;
left: 0;
background-color: hsl(0, 0%, 98%);
z-index: -1;
border-right: 1px solid hsl(0, 0%, 90%);
}
.animation-controls {
width: 201px;
max-width: 201px;
padding: 10px;
height: 100%;
line-height: 22px;
background-color: hsl(0, 0%, 98%);
border-right: 1px solid hsl(0, 0%, 90%);
}
.animation-timeline-markers {
......@@ -106,16 +123,22 @@ circle.animation-keyframe-point {
width: 100%;
}
.animation-timeline-end > .animation-time-overlay {
visibility: hidden;
}
input.animation-playback-slider {
width: 68px;
width: 93px;
margin-left: 12px;
-webkit-appearance: none;
position: absolute;
top: 18px;
top: 7px;
background: none;
}
input[type=range].animation-playback-slider::-webkit-slider-runnable-track {
height: 4px;
margin: 10px 0;
border-radius: 2px;
cursor: pointer;
background: #c8c8c8;
......@@ -139,25 +162,38 @@ input[type=range].animation-playback-slider::-webkit-slider-thumb {
}
.animation-playback-label {
width: 34px;
text-align: right;
font-family: 'DejaVu Sans';
display: inline-block;
width: 40px;
height: 22px;
overflow: hidden;
text-align: center;
border: 1px solid #dadada;
border-radius: 2px;
line-height: 20px;
font-size: 11px;
padding: 0;
color: #333;
white-space: nowrap;
overflow: hidden;
}
.animation-scrubber {
opacity: 1;
position: absolute;
left: 200px;
left: 230px;
height: calc(100% - 43px);
width: calc(100% - 200px);
top: 43px;
border-left: 1px solid rgba(0,0,0,0.5);
}
.animation-scrubber.animation-timeline-end {
border: none;
}
.animation-scrubber-head {
background-color: rgba(0, 0, 0, 0.5);
width: 50px;
background-color: rgba(0, 0, 0, 0.7);
width: 60px;
height: 23px;
color: white;
line-height: 23px;
......@@ -165,11 +201,26 @@ input[type=range].animation-playback-slider::-webkit-slider-thumb {
border-radius: 5px;
position: relative;
top: -29px;
left: -26px;
left: -30px;
font-size: 10px;
visibility: visible;
}
.animation-scrubber-head:before, .animation-scrubber-head:after {
content: "||";
position: absolute;
color: #999;
font-size: 8px;
}
.animation-scrubber-head:before {
left: 3px;
}
.animation-scrubber-head:after {
right: 3px;
}
.animation-timeline-end > .animation-scrubber-head {
visibility: visible;
}
......@@ -185,7 +236,7 @@ input[type=range].animation-playback-slider::-webkit-slider-thumb {
top: -6px;
left: -7px;
-webkit-clip-path: polygon(0 0, 6px 6px, 12px 0px, 0px 0px);
background-color: rgba(0, 0, 0, 0.5);
background-color: rgba(0, 0, 0, 0.7);
}
.animation-timeline-end > .animation-timeline-timer {
......@@ -194,15 +245,11 @@ input[type=range].animation-playback-slider::-webkit-slider-thumb {
svg.animation-timeline-grid {
position: absolute;
left: 200px;
left: 230px;
}
rect.animation-timeline-grid-line {
fill: #eee;
}
rect.animation-timeline-grid-line:first-child {
fill: #ccc;
fill: hsl(0, 0%, 90%);
}
.animation-timeline-row > svg.animation-ui {
......@@ -221,7 +268,7 @@ rect.animation-timeline-grid-line:first-child {
}
.animation-node-row.animation-node-removed {
background-color: #fff0f0;
background-color: hsla(0, 100%, 50%, 0.1);
}
svg.animation-ui g:first-child {
......@@ -259,5 +306,22 @@ text.animation-timeline-grid-label {
}
.animation-node-row.animation-node-selected {
background-color: hsla(218, 78%, 66%, 0.1);
background-color: hsla(216, 71%, 53%, 0.08);
}
.animation-node-selected > .animation-node-description {
background-color: #EFF4FD;
}
.animation-timeline-empty-message {
padding-left: 230px;
padding-right: 30px;
text-align: center;
position: absolute;
font-size: 20px;
line-height: 32px;
align-items: center; justify-content: center;
width: 100%;
height: calc(100% - 44px);
display: flex;
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment