1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. */ 4 5 .tile-page { 6 -webkit-box-orient: vertical; 7 display: -webkit-box; 8 height: 100%; 9 position: relative; 10 width: 100%; 11 } 12 13 .tile-page-scrollbar { 14 -webkit-box-sizing: border-box; 15 margin: 0 4px; 16 pointer-events: none; 17 position: absolute; 18 right: 0; 19 width: 5px; 20 z-index: 5; 21 } 22 23 .tile-page-content { 24 -webkit-box-flex: 1; 25 /* Don't apply clip mask to padding. */ 26 -webkit-mask-clip: content-box; 27 /* TODO(estade): this mask is disabled for technical reasons. It negatively 28 * impacts performance of page switching, also it causes problems with Mac 29 * text: http://crbug.com/86955 30 -webkit-mask-image: -webkit-linear-gradient(bottom, transparent, black 30px); 31 */ 32 /* The following four properties are necessary so that the mask won't clip 33 * the scrollbar. */ 34 box-sizing: border-box; 35 overflow-y: scroll; 36 /* Scrollbar width(13px) + balance right padding. */ 37 padding-left: 93px; 38 padding-right: 80px; 39 /* This value is mirrored in TilePage.updateTopMargin_ */ 40 padding-top: 60px; 41 position: relative; 42 text-align: center; 43 width: 100%; 44 } 45 46 .top-margin { 47 /* The only reason height is set to 1px, rather than left at 0, is that 48 * otherwise webkit collapses the top and bottom margins. */ 49 height: 1px; 50 } 51 52 .tile-grid { 53 position: relative; 54 width: 100%; 55 } 56 57 .tile { 58 -webkit-print-color-adjust: exact; 59 /* Don't offer the context menu on long-press. */ 60 -webkit-touch-callout: none; 61 -webkit-user-drag: element; 62 display: inline-block; 63 position: absolute; 64 } 65 66 /* NOTE: Dopplegangers nest themselves inside of other tiles, so don't 67 * accidentally double apply font-size to them. */ 68 .tile:not(.doppleganger) { 69 font-size: 1.2em; 70 } 71 72 /* Not real but not a doppleganger: show nothing. This state exists for a 73 * webstore tile that's on the same page as a [+]. */ 74 .tile:not(.real):not(.doppleganger) { 75 display: none; 76 } 77 78 /* I don't know why this is necessary. -webkit-user-drag: element on .tile 79 * should be enough. If we don't do this, we get 2 drag representations for 80 * the image. */ 81 .tile img { 82 -webkit-user-drag: none; 83 } 84 85 .doppleganger { 86 left: 0 !important; 87 right: 0 !important; 88 top: 0 !important; 89 } 90 91 .tile.dragging { 92 opacity: 0; 93 } 94 95 .tile.drag-representation { 96 -webkit-transition: opacity 200ms; 97 pointer-events: none; 98 position: fixed; 99 z-index: 3; 100 } 101 102 .tile.drag-representation.placing > * { 103 -webkit-transition: -webkit-transform 200ms; 104 } 105 106 /* When a drag finishes while we're not showing the page where the tile 107 * belongs, the tile shrinks to a dot. */ 108 .tile.drag-representation.dropped-on-other-page > * { 109 -webkit-transform: scale(0) rotate(0); 110 } 111 112 .tile.drag-representation.deleting > * { 113 -webkit-transform: scale(0) rotate(360deg); 114 -webkit-transition: -webkit-transform 600ms; 115 } 116 117 .animating-tile-page .tile, 118 .tile.drag-representation.placing { 119 -webkit-transition: left 200ms, right 200ms, top 200ms; 120 } 121 122 .hovering-on-trash { 123 opacity: 0.6; 124 } 125 126 .animating-tile-page .top-margin { 127 -webkit-transition: margin-bottom 200ms; 128 } 129 130 .animating-tile-page #notification-container { 131 -webkit-transition: margin 200ms, opacity 200ms; 132 } 133 134 @-webkit-keyframes bounce { 135 0% { 136 -webkit-transform: scale(0, 0); 137 } 138 139 60% { 140 -webkit-transform: scale(1.2, 1.2); 141 } 142 143 100% { 144 -webkit-transform: scale(1, 1); 145 } 146 } 147 148 .tile > .new-tile-contents { 149 -webkit-animation: bounce 500ms ease-in-out; 150 } 151 152 @-webkit-keyframes blipout { 153 0% { 154 -webkit-transform: scale(1, 1); 155 } 156 157 60% { 158 -webkit-animation-timing-function: ease-in; 159 -webkit-transform: scale(1.3, 0.02); 160 opacity: 1; 161 } 162 163 90% { 164 -webkit-transform: scale(0.3, 0.02); 165 opacity: 0.7; 166 } 167 168 100% { 169 -webkit-animation-timing-function: linear; 170 -webkit-transform: scale(0.3, 0.02); 171 opacity: 0; 172 } 173 } 174 175 .tile > .removing-tile-contents { 176 -webkit-animation: blipout 300ms; 177 -webkit-animation-fill-mode: forwards; 178 pointer-events: none; 179 } 180 181 .tile-page:not(.selected-card) * { 182 -webkit-transition: none !important; 183 } 184 185 /** Scrollbars ****************************************************************/ 186 187 .tile-page-content::-webkit-scrollbar { 188 width: 13px; 189 } 190 191 .tile-page-content::-webkit-scrollbar-button { 192 display: none; 193 } 194