1
0
mirror of https://github.com/bitwarden/desktop.git synced 2024-11-14 10:16:02 +01:00

more list styling throughout vault

This commit is contained in:
Kyle Spearrin 2016-09-09 00:46:12 -04:00
parent 50a05b522e
commit ac0ceac647
9 changed files with 362 additions and 221 deletions

View File

@ -1,6 +1,6 @@
<div class="header">
<div class="title">Current Sites</div>
</div>
<div class="content">
<div class="content content-tabs">
Some content for your current sites.
</div>

View File

@ -1,25 +1,36 @@
<div class="header">
<div class="title">Settings</div>
</div>
<div class="content">
<div class="content content-tabs">
<div class="list">
<div class="list-divider">
<div class="list-section">
<div class="list-section-header">
Manage
</div>
<a class="list-item" href="#">
<div class="list-section-items">
<a class="list-section-item" href="#">
Folders
</a>
<a class="list-item" href="#" ng-click="sync()">
<a class="list-section-item" href="#" ng-click="sync()">
Sync
</a>
<div class="list-divider">
</div>
</div>
<div class="list-section">
<div class="list-section-header">
Current Session
</div>
<a class="list-item" href="#">
<div class="list-section-items">
<a class="list-section-item" href="#">
Lock
</a>
<a class="list-item" href="#" ng-click="logOut()">
<a class="list-section-item" href="#" ng-click="logOut()">
Log out
</a>
</div>
<div class="list-section-footer">
This is a footer note.
</div>
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<div class="header">
<div class="title">Tools</div>
</div>
<div class="content">
<div class="content content-tabs">
Some content for your tools.
</div>

View File

@ -2,13 +2,13 @@
<a class="right" ui-sref="addSite"><i class="fa fa-plus fa-lg"></i></a>
<div class="title">My Vault</div>
</div>
<div class="content">
<div class="content content-tabs">
<div class="list">
<ng-repeat ng-repeat="folder in folders | orderBy: folderSort" ng-show="folders.length">
<div class="list-divider">
<div class="list-item-header">
<i class="fa fa-folder-open"></i> {{folder.name}}
</div>
<a ui-sref="viewSite({siteId: site.id})" class="list-item" ng-repeat="site in folderSites = (sites | filter: { folderId: folder.id } | orderBy: ['name', 'username'])">
<a ui-sref="viewSite({siteId: site.id})" class="list-item list-item-condensed" ng-repeat="site in folderSites = (sites | filter: { folderId: folder.id } | orderBy: ['name', 'username'])">
<span class="text">{{site.name}}</span>
<span class="detail">{{site.username}}</span>
<!--<span class="btn btn-link pull-right"><i class="fa fa-ellipsis-h"></i></span>-->

View File

@ -5,49 +5,58 @@
</div>
<div class="content">
<div class="list">
<div class="list-divider">
<div class="list-section">
<div class="list-section-header">
Site Information
</div>
<div class="list-item">
<label>Name</label>
<input type="text" ng-model="site.name">
<div class="list-section-items">
<div class="list-section-item">
<label for="name">Name</label>
<input id="name" type="text" ng-model="site.name">
</div>
<div class="list-item">
<label>URI</label>
<input type="text" ng-model="site.uri">
<div class="list-section-item">
<label for="uri">URI</label>
<input id="uri" type="text" ng-model="site.uri">
</div>
<div class="list-item">
<label>Username</label>
<input type="text" ng-model="site.username">
<div class="list-section-item">
<label for="username">Username</label>
<input id="username" type="text" ng-model="site.username">
</div>
<div class="list-item">
<label>Password</label>
<input type="password" ng-model="site.password">
<div class="list-section-item">
<label for="password">Password</label>
<input id="password" type="password" ng-model="site.password">
</div>
<a class="list-item" href="#">
<a class="list-section-item" href="#">
Generate Password
<i class="fa fa-chevron-right"></i>
<i class="fa fa-chevron-right pull-right"></i>
</a>
<div class="list-divider">
&nbsp;
</div>
<div class="list-item">
<label>Folder</label>
<select>
</div>
<div class="list-section">
<div class="list-section-items">
<div class="list-section-item">
<label for="folder">Folder</label>
<select id="folder">
<option>Blue</option>
<option selected>Green</option>
<option>Red</option>
</select>
</div>
<div class="list-item">
<label>Favorite</label>
<input type="checkbox" ng-model="site.favorite">
<div class="list-section-item list-section-item-checkbox">
<label for="favorite">Favorite</label>
<input id="favorite" type="checkbox" ng-model="site.favorite">
</div>
</div>
</div>
<div class="list-section">
<div class="list-section-header">
<label for="notes">Notes</label>
</div>
<div class="list-section-items">
<div class="list-section-item">
<textarea id="notes" rows="5" ng-model="site.notes"></textarea>
</div>
<div class="list-divider">
Notes
</div>
<div class="list-item">
<textarea rows="5" ng-model="site.notes"></textarea>
</div>
</div>
</div>

View File

@ -4,31 +4,39 @@
<div class="title">View Site</div>
</div>
<div class="content">
<div class="list">
<div class="list-divider">
<div class="list list-no-selection">
<div class="list-section">
<div class="list-section-header">
Site Information
</div>
<div class="list-item">
<div>Name</div>
<div class="list-section-items">
<div class="list-section-item">
<span class="item-label">Name</span>
{{site.name}}
</div>
<div class="list-item">
<div>Website</div>
<div class="list-section-item">
<span class="item-label">Website</span>
{{site.uri}}
</div>
<div class="list-item">
<div>Username</div>
<div class="list-section-item">
<span class="item-label">Username</span>
{{site.username}}
</div>
<div class="list-item">
<div>Password</div>
<div class="list-section-item">
<span class="item-label">Password</span>
{{site.password}}
</div>
<div class="list-divider">
</div>
</div>
<div class="list-section">
<div class="list-section-header">
Notes
</div>
<div class="list-item">
<div class="list-section-items">
<div class="list-section-item">
{{site.notes}}
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,228 @@
@import (reference) "../../../node_modules/bootstrap/less/mixins.less";
@import (reference) "../../../node_modules/bootstrap/less/variables.less";
@import (reference) "variables.less";
.header {
min-height: 44px;
max-height: 44px;
background-color: @brand-primary;
color: white;
text-align: center;
position: absolute;
top: 0;
left: 0;
right: 0;
overflow: hidden;
a {
color: white !important;
text-decoration: none;
&:hover {
background-color: rgba(255, 255, 255, 0.1);
}
}
.title {
font-weight: bold;
display: block;
padding: 12px 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.left {
float: left;
display: block;
padding: 12px 10px;
}
.right {
float: right;
display: block;
padding: 12px 10px;
}
}
.tabs {
width: 100%;
height: 55px;
background-color: white;
border-top: 1px solid @border-color-dark;
position: absolute;
bottom: 0;
left: 0;
right: 0;
overflow: hidden;
ul {
width: 100%;
list-style: none;
padding: 0;
margin: 0;
li {
width: 25%;
float: left;
display: inline-block;
padding: 0;
margin: 0;
a {
text-align: center;
display: block;
padding: 7px 0;
text-decoration: none;
color: @gray-light;
font-size: 12px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&:hover {
background-color: rgba(255, 255, 255, 0.8);
}
i {
display: block;
margin-bottom: 2px;
}
}
&.active {
a {
color: @brand-primary;
}
}
}
}
}
.list {
.list-item {
border-top: 1px solid @border-color;
&:first-child {
border: none;
}
}
.list-item-header {
background-color: transparent;
padding: 10px 10px;
color: @gray-light;
+ .list-item {
border: none;
}
}
.list-section {
padding-bottom: 10px;
&:first-child {
padding-top: 10px;
}
.list-section-header {
background-color: transparent;
padding: 5px 10px;
color: @gray-light;
text-transform: uppercase;
label {
font-weight: normal;
}
}
.list-section-items {
border-top: 1px solid @border-color-dark;
border-bottom: 1px solid @border-color-dark;
.list-section-item {
border-bottom: 1px solid @border-color;
&:last-child {
border: none;
}
}
}
.list-section-footer {
padding: 5px 10px;
font-size: @font-size-small;
color: @gray-light;
}
}
.list-item, .list-section-item {
display: block;
padding: 10px 10px;
background-color: white;
text-decoration: none;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: @text-color;
&:hover {
background-color: @list-item-hover;
}
&.list-item-condensed {
padding: 3px 10px;
}
.text {
display: block;
color: @text-color;
}
.detail {
font-size: @font-size-small;
color: @gray-light;
display: block;
}
label, .item-label {
font-size: @font-size-small;
color: @gray-light;
display: block;
width: 100%;
font-weight: normal;
}
input:not([type="checkbox"]), select, textarea {
border: none;
width: 100%;
background-color: transparent;
&:focus {
outline: none;
}
}
&.list-section-item-checkbox {
label {
font-size: @font-size-base;
color: @text-color;
display: inline;
width: initial;
font-weight: normal;
}
input[type="checkbox"] {
float: right;
}
}
}
&.list-no-selection {
.list-item, .list-section-item {
&:hover {
background-color: white;
}
}
}
}

View File

@ -1,151 +1,26 @@
@import "../../../node_modules/bootstrap/less/bootstrap.less";
@font-family: "Open Sans", sans-serif;
@brand-primary: #3c8dbc;
@import "variables.less";
@import "components.less";
body {
font-family: @font-family;
width: 320px;
height: 568px;
}
.header {
min-height: 44px;
max-height: 44px;
background-color: @brand-primary;
color: white;
font-family: @font-family;
text-align: center;
position: absolute;
top: 0;
left: 0;
right: 0;
overflow: hidden;
a {
color: white !important;
text-decoration: none;
&:hover {
background-color: rgba(255, 255, 255, 0.1);
}
}
.title {
font-weight: bold;
display: block;
padding: 12px 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.left {
float: left;
display: block;
padding: 12px 10px;
}
.right {
float: right;
display: block;
padding: 12px 10px;
}
background-color: @background-color;
}
.content {
position: absolute;
top: 44px;
bottom: 55px;
left: 0;
right: 0;
overflow: auto;
}
.tabs {
width: 100%;
height: 55px;
background-color: #f5f5f5;
border-top: 1px solid #ddd;
position: absolute;
bottom: 0;
left: 0;
right: 0;
overflow: hidden;
overflow: auto;
ul {
width: 100%;
list-style: none;
padding: 0;
margin: 0;
li {
width: 25%;
float: left;
display: inline-block;
padding: 0;
margin: 0;
a {
text-align: center;
display: block;
padding: 7px 0;
text-decoration: none;
color: #777;
font-size: 12px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&:hover {
background-color: rgba(255, 255, 255, 0.8);
&.content-tabs {
bottom: 55px;
}
i {
display: block;
margin-bottom: 2px;
}
}
&.active {
a {
color: @brand-primary;
}
}
}
}
}
.list {
.list-item {
display: block;
padding: 10px 10px;
background-color: white;
border-bottom: 1px solid #ddd;
color: #333;
text-decoration: none;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&:last-child {
border: none;
}
.text {
display: block;
}
.detail {
font-size: 12px;
color: #777;
display: block;
}
}
.list-divider {
background-color: #eeeeee;
padding: 10px 10px;
border-bottom: 1px solid #ddd;
&.content-no-header {
top: 0;
}
}

View File

@ -0,0 +1,10 @@
@import (reference) "../../../node_modules/bootstrap/less/mixins.less";
@import (reference) "../../../node_modules/bootstrap/less/variables.less";
@font-family-sans-serif: "Open Sans", sans-serif;
@text-color: #000000;
@brand-primary: #3c8dbc;
@background-color: #efeff4;
@border-color: #f0f0f0;
@border-color-dark: #ddd;
@list-item-hover: #fbfbfb;