phorge/webroot/rsrc/css/layout/phabricator-object-item-list-view.css
Anh Nhan Nguyen d9f01d6fb7 [Rough Sketch] Differential ObjectItemView Smexyness
Summary:
Tried out `PhabricatorObjectItemView` for Differential. It looks smexy and smooth.

Refs T2014

- Title and Date as Maniphest
- Author in the handle icon
- Bar color reflects revision status (Needs Review, Accepted, Abandoned etc.) @chad looking for non-blue is faster than keeping watch for everything that's not "Closed" in old table form
- Some status information are in footer icons; currently only stale/old status display as well as saved drafts, maybe more in future; these come into my mind:
  - No reviewer warning
  - Push Blocking Priority (T2730)
  - Trivial, fast review guaranteed
  - Sketch / Just looking for advice/help
  - Arcanist Project (T2614)
  - Denote "Public Send-in" (T1476)

{F37662}
{F37663}
{F37664}
{F37665}

Some flaws:

- Date and reviewers on every entry the same?
- No respect for Differential fields (for some reason, every entry appeared the same, so broke it to parts)
- Plenty of (potential) increase in height - advise reducing paging length from 100 to 50 - or just ignore me

Suggestions for the future:

- Expand the meta information regarding revisions; e.g. the various status displays above
- Uh... T2543, T1279, T793, T731 and what else I want for Differential, because they are awesome!
- T793 should be in particular easy appearance-wise, just copy-paste from Maniphest

Test Plan: By looking at it, of course. Verified there are no errors or crashed

Reviewers: epriestley, chad, btrahan, liguobig

Reviewed By: chad

CC: aran, Korvin, edward, nh

Maniphest Tasks: T2014

Differential Revision: https://secure.phabricator.com/D5451

Conflicts:
	src/__celerity_resource_map__.php
2013-07-03 06:10:39 -07:00

543 lines
11 KiB
CSS

/**
* @provides phabricator-object-item-list-view-css
*/
.phabricator-object-item-list-view {
padding: 8px 6px;
}
.device-desktop .phabricator-object-item-list-view {
padding: 20px;
}
.phabricator-object-item-list-view.phabricator-object-list-flush {
padding: 0;
}
.phabricator-object-list-flush .aphront-error-view {
margin: 0;
}
.phabricator-object-item {
background: #ffffff;
border-style: solid;
border-color: #c0c5d1;
border-width: 0 0 0 4px;
margin: 5px 0;
overflow: hidden;
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.10);
}
.phabricator-object-item-frame {
border-style: solid;
border-color: #c0c5d1;
border-width: 1px 1px 1px 0;
overflow: hidden;
position: relative;
min-height: 29px;
}
.phabricator-object-list-cards .phabricator-object-item-frame {
border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
}
.device-desktop .phabricator-object-item {
margin: 0 0 5px 0;
}
.phabricator-object-item-name {
display: inline-block;
font-weight: bold;
padding: 6px 8px 0;
white-space: nowrap;
}
.phabricator-object-item-link {
display: inline-block;
}
.phabricator-object-item-objname {
color: #222222;
cursor: text;
}
.phabricator-object-item-content {
margin-top: 4px;
overflow: hidden;
}
.phabricator-object-item-grippable {
cursor: move;
}
.phabricator-object-item-grip {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 17px;
background: url(/rsrc/image/texture/grip.png) center center no-repeat;
}
.phabricator-object-item-state-icons {
top: 0;
left: 4px;
width: 20px;
position: absolute;
padding: 6px 4px;
}
.phabricator-object-item-state-icons span.phui-icon-view {
display: inline-block;
margin: 1px 2px 2px;
}
.phabricator-object-item-grippable .phabricator-object-item-state-icons {
left: 15px;
}
.state-icon-2-cols {
width: 40px;
}
.phabricator-object-item-grippable .phabricator-object-item-frame {
padding-left: 11px;
}
.phabricator-object-item-state-1-cols .phabricator-object-item-frame {
padding-left: 24px;
}
.phabricator-object-item-state-2-cols .phabricator-object-item-frame {
padding-left: 44px;
}
.phabricator-object-item-grippable.phabricator-object-item-state-1-cols
.phabricator-object-item-frame {
padding-left: 35px;
}
.phabricator-object-item-grippable.phabricator-object-item-state-2-cols
.phabricator-object-item-frame {
padding-left: 55px;
}
/* - Item Actions --------------------------------------------------------------
Action buttons, like "Edit" and "Delete".
*/
.phabricator-object-item-actions {
position: absolute;
right: 0;
top: 0;
bottom: 0;
vertical-align: middle;
text-align: right;
border-left: 1px solid #c0c5d1;
box-shadow: inset 1px 0 1px 0px rgba(0, 0, 0, 0.07);
}
.phabricator-object-item-actions .phui-list-item-view {
float: right;
height: 100%;
width: 24px;
display: inline-block;
position: relative;
}
.phabricator-object-item-actions .phui-list-item-view +
.phui-list-item-view {
border-right: 1px solid #d6d6e9;
}
.phabricator-object-item-actions .phui-list-item-href {
display: inline-block;
position: relative;
width: 24px;
height: 100%;
}
.phabricator-object-item-actions .phui-list-item-href:hover {
background: #e9e9f9;
}
.phabricator-object-item-actions .phui-list-item-icon {
width: 14px;
height: 14px;
position: absolute;
display: block;
top: 50%;
margin-top: -7px;
left: 5px;
}
.phabricator-object-item-actions .phui-list-item-name {
display: none;
}
.phabricator-object-item-with-1-actions .phabricator-object-item-content-box {
margin-right: 24px;
}
.phabricator-object-item-with-2-actions .phabricator-object-item-content-box {
margin-right: 48px;
}
.phabricator-object-item-with-3-actions .phabricator-object-item-content-box {
margin-right: 72px;
}
/* - Stackable List ------------------------------------------------------------
Tighter, stacking list.
*/
.phabricator-object-item-list-view.phabricator-object-list-stackable
.phabricator-object-item {
margin: -1px 0 0 0;
}
.phabricator-object-list-stackable .phabricator-object-item {
border-left-width: 1px;
}
.device-desktop .phabricator-object-list-stackable
.phabricator-object-item:hover {
background: #e9ecf5;
}
/* - Subhead -------------------------------------------------------------------
Descriptive Text or Links under the main header, before attributes.
*/
.phabricator-object-item-subhead {
color: #777;
padding: 0 8px 6px;
}
/* - Attribute List ------------------------------------------------------------
Object attributes, commonly used to render created date, etc.
*/
.phabricator-object-item-attributes {
padding: 0 8px 6px;
}
.phabricator-object-item-attribute {
display: inline;
color: #777;
}
.phabricator-object-item-attribute-spacer {
padding: 0 4px;
}
/* - Icons ---------------------------------------------------------------------
Icons, which show object state. On mobile, they are rendered without labels
to save space.
*/
.phabricator-object-icon-pane {
float: right;
margin-top: 6px;
}
.device .phabricator-object-item-no-icon-images .phabricator-object-icon-pane {
display: none;
}
.phabricator-object-item-with-handle-icons .phabricator-object-item-icons {
padding-bottom: 30px;
}
.phabricator-object-item-icons {
float: right;
padding: 0 10px;
}
/* NOTE: The main content is an "overflow: hidden" div which we give a right
margin so it doesn't overlap the icons. The margin is slightly larger than
the width + padding of the icon div, so the icons have some space even if
the content is wider than available space. */
.device-desktop .phabricator-object-icon-pane {
width: 120px;
}
.device-desktop .phabricator-object-item-with-icons
.phabricator-object-item-content,
.device-desktop .phabricator-object-item-with-handle-icons
.phabricator-object-item-content {
margin-right: 132px;
}
.device .phabricator-object-item-icons {
width: 18px;
}
.device .phabricator-object-item-with-icons .phabricator-object-item-content,
.device .phabricator-object-item-with-handle-icons
.phabricator-object-item-content {
margin-right: 30px;
}
.device .phabricator-object-item-icon-label {
display: none;
}
.phabricator-object-item-icon {
vertical-align: middle;
position: relative;
font-size: 11px;
color: #666666;
text-align: right;
white-space: nowrap;
overflow: hidden;
min-height: 18px;
line-height: 18px;
}
/*
* Items with icon 'none' still have on mobile, thus creating a weird vertical
* margin for elements which follow
*/
.device-phone .phabricator-object-item-icon-none {
display: none;
}
.device-desktop .phabricator-object-item-icon {
padding-right: 22px;
}
.device-desktop .phabricator-object-item-icon-none {
padding-right: 0;
}
.phabricator-object-item-icon-image {
position: absolute;
right: 2px;
top: 2px;
width: 14px;
height: 14px;
}
/* - Bar Colors ----------------------------------------------------------------
Colors for the left-hand border bars, used to indicate object status or other
attributes.
*/
.phabricator-object-item-bar-color-red {
border-left-color: {$red};
}
.phabricator-object-item-bar-color-orange {
border-left-color: {$orange};
}
.phabricator-object-item-bar-color-yellow {
border-left-color: {$yellow};
}
.phabricator-object-item-bar-color-green {
border-left-color: {$green};
}
.phabricator-object-item-bar-color-sky {
border-left-color: {$sky};
}
.phabricator-object-item-bar-color-blue {
border-left-color: {$blue};
}
.phabricator-object-item-bar-color-indigo {
border-left-color: {$indigo};
}
.phabricator-object-item-bar-color-violet {
border-left-color: {$violet};
}
.phabricator-object-item-bar-color-grey {
border-left-color: #bdc3c7;
}
.phabricator-object-item-bar-color-black {
border-left-color: #333333;
}
/* - Effects -------------------------------------------------------------------
Effects like highlighted items.
*/
.phabricator-object-item-highlighted {
background: {$lightyellow};
}
.phabricator-object-list-cards
.phabricator-object-item.phabricator-object-item-highlighted {
background-image: linear-gradient(to bottom, rgb(253, 255, 221), rgb(243, 245, 206));
background-image: -webkit-linear-gradient(top, rgb(253, 255, 221), rgb(243, 245, 206));
}
.phabricator-object-item-selected {
background: {$lightblue};
}
.phabricator-object-list-flush .aphront-error-view {
margin: 0;
background: #fff;
}
/* - Foot Icons ----------------------------------------------------------------
Object counts shown in the footer.
*/
.phabricator-object-item-foot-icons {
margin-left: 10px;
bottom: 0;
position: absolute;
}
.phabricator-object-item-with-foot-icons .phabricator-object-item-content {
padding-bottom: 22px;
}
.phabricator-object-item-foot-icon {
display: inline-block;
background: #909090;
color: #ffffff;
font-weight: bold;
margin-right: 3px;
padding: 1px 4px 0 22px;
height: 19px;
vertical-align: middle;
position: relative;
}
.phabricator-object-item-foot-icon .sprite-icons {
width: 14px;
height: 14px;
position: absolute;
left: 4px;
top: 3px;
}
/* - Handle Icons --------------------------------------------------------------
Shows owners, reviewers, etc., using profile picture icons.
*/
.phabricator-object-item-handle-icons {
height: 28px;
margin-right: 10px;
bottom: 0;
right: 0;
text-align: right;
position: absolute;
}
.phabricator-object-item-handle-icon {
margin: 1px;
width: 28px;
height: 28px;
display: inline-block;
background-size: 28px 28px;
background-repeat: no-repeat;
}
/* - Bylines -------------------------------------------------------------------
Shows owners, authors, reviewers, etc., in text.
*/
.phabricator-object-item-bylines {
float: right;
clear: right;
padding: 0 10px;
margin: 5px 0;
font-size: 11px;
color: #666;
white-space: nowrap;
overflow: hidden;
text-align: right;
}
/* - Card List -----------------------------------------------------------------
Rounded card list.
*/
/* Hard to sprite since we can't have other sprites appearing in tall cells */
.phabricator-object-list-cards .phabricator-object-item {
border-radius: 3px;
border-left-width: 6px;
background: #f0f0f0 url('/rsrc/image/texture/card-gradient.png') repeat-x;
margin-bottom: 4px;
}
.phabricator-object-list-cards .phabricator-object-item-frame {
min-height: 50px;
}
.phabricator-object-list-cards .phabricator-object-item-selected {
background: #bfdcff;
}
.phabricator-object-list-cards .phabricator-object-item-selected
.phabricator-object-item-frame {
border-color: #99ccff;
}
/* - Draggable List ------------------------------------------------------------
These classes are applied by and/or provided for use with JX.DraggableList.
*/
.drag-ghost {
position: relative;
border: 1px dashed #aaaaaa;
background: #f9f9f9;
margin: 4px;
}
.drag-dragging {
position: relative;
opacity: 0.9;
}
.drag-sending {
opacity: 0.75;
}