timestamper/www/css/ts-screen.scss
Jonathan Bernard 036177cfed Duration display, time formatting, UI tweaks.
Client Behaviour (ts.js)
========================

- Created EntryView.getViewModel: translates model data to view data,
  specifically synthesizes the start time and duration from the timestamp.
- Added nextModel option to EntryView, needed for calculating the entry
  duration.
- Created EntryView.formatStart: given the timestamp, return the start time,
  in HH:MM format. Code is written for both 24hr and 12hr format, still need
  to write a selector mechanism. For now, uses 12hr format.
- Created EntryView.formatDuration: Get the duration of the entry based on
  this entry's timestamp and and the next entry's timestamp in a display-able
  form. If nextModel is `null` or `undefined` it is assumed that `model`
  is the most recent model and duration is calculated against the current time.
- Changed EntryView.render to use getViewModel.
- Added 'blur' listeners to the mark and timestamp input fields to close them
  without persisting the changes.
- Created EntryView.update: Refresh the display based on the model using the
  existing DOM elements.
- EntryView.save() now uses EntryView.update() instead of EntryView.render()
  and no longer includes an implicit close()
- EntryView.close() has been split into seperate save() and close() functions,
  to persist the changes and hide the input dialogs, respectively.
- EntryListView.addOne now passes the nextModel to EntryViews is creates.
- EntryListView.createNewEntryOnEnter() now clear the new intry input after
  creating a new entry.
- EntryListView.render() now uses a for-structure to traverse the entry
  collection and passes the nextModel (if there is one) to EntryListView.addOne.

Client UI (ts-screen.scss)
==========================

- Font size, family, and color adjusted on timeline and user input fields.
- Day seperator secondary header colors adjusted.
- Mark column width shortened, timestamp and duration columns widened.
- Styles added for notes UI

Client UI (index.yaws)
======================

- Markup changes needed for getViewModel chanes.
- Expanded day seperator.
2011-05-07 21:31:30 -05:00

316 lines
5.5 KiB
SCSS

/*
* author: Jonathan Bernard
* TimeStamper main CSS for screen media types
*/
@import "rounded";
$darkTxt: #222;
$lightTxt: #eee;
$darkBg: #222;
$lightBg: #eee;
$medBg: #CCC;
* {
color: inherit;
margin: 0;
padding: 0;
}
body {
color: $darkTxt;
width: 75%;
margin: auto;
}
input {
border: solid thin lighten($darkTxt, 20%);
-webkit-box-shadow: inset 0px 2px 4px #CCC;
box-shadow: inset 0px 2px 4px #CCC;
margin-bottom: 0.5em; // IE fix
font-family: Cantarell;
}
#top {
background: $darkBg;
color: $lightTxt;
padding: 0.5em 0; // IE Fix
padding: 0.5rem 0;
position: fixed;
top: 0px;
width: 75%;
#fade-bar {
background: url('img/fade.png') repeat-x;
height: 32px;
width: 100%;
}
}
#timeline {
border-bottom: thin solid $lightBg;
font-family: Arvo;
font-size: 1.5em;
padding: 0 2em;
padding: 0 2rem;
.timeline-desc {
display: inline-block;
width: 70%;
}
.timeline-desc-input { width: 70% }
.timeline-id { display: inline-block; }
.timeline-desc-input, .timeline-id-input {
font-family: inherit;
font-size: inherit;
color: $darkBg;
display: none;
}
&.edit-id {
.timeline-id-input { display: inline-block; }
.timeline-id { display: none; }
}
&.edit-desc {
.timeline-desc-input { display: inline-block; }
.timeline-desc { display: none; }
}
.drop-menu {
text-align: right;
display: inline-block;
width: 29%;
.drop-menu-items {
text-align: right;
right: 0;
width: 172.41%;
.timeline-link {
font-size: medium;
}
}
}
}
#login {
background: white;
color: $lightTxt;
opacity: 1;
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100em;
z-index: 10;
div.container {
background: $darkBg;
border-radius: 10px;
font-family: Cantarell;
margin-left: auto;
margin-right: auto;
margin-top: 4em;
padding: 1em;
width: 20em;
h2 {
border-bottom: thin solid $lightBg;
font-family: Arvo;
padding-bottom: 0.5em;
margin-bottom: 0.5em;
}
label {
display: inline-block;
width: 6em;
}
input {
color: $darkTxt;
}
#login-button {
text-align: right;
margin-top: 0.5em;
font-family: Arvo;
font-size: 1.2em;
.validate-tips { font-size: 1em; }
a { color: $lightBg; }
}
}
}
#user {
font-family: "Josefin Sans";
margin-top: -0.3em; // IE fix
padding: 0 2em;
margin-top: -0.3rem;
padding: 0 2rem;
width: 100%;
.fullname, .username {
display: inline-block;
font-size: larger;
}
.fullname-input {
font-family: inherit;
font-size: inherit;
color: $darkBg;
display: none;
}
&.edit-fullname{
.fullname-input { display: inline-block; }
.fullname { display: none; }
}
.drop-menu { display: inline-block; }
.drop-menu .drop-menu-items {
margin-top: -0.5em;
text-align: right;
right: 0;
list-style: none;
width: 10em;
}
}
#entry-list {
margin-top: 6em;
padding-bottom: 1em;
margin-top: 6rem;
padding-bottom: 1rem;
.day-seperator {
background: $medBg;
color: $darkBg;
font-family: Cantarell;
font-weight: bold;
margin-top: 1em;
padding: 0 2em;
margin-top: 1rem;
padding: 0 2rem;
h4, h5 { display: inline-block; }
h5 { color: #667; }
}
#new-entry {
margin-top: 0.5em;
padding: 0 2em;
margin-top: 0.5rem;
padding: 0 2rem;
}
.timestamp, .timestamp-input, .duration {
text-align: right;
width: 14%;
}
.mark, .mark-input { width: 70%; }
.entry {
font-family: Cantarell;
padding: 0 2em;
padding: 0 2rem;
div { display: inline-block; }
.mark-input, .timestamp-input { display: none; }
.notes, .notes-input { display: none; }
&.edit-mark {
.mark-input { display: inline-block; }
.mark { display: none; }
}
&.edit-timestamp {
.timestamp-input { display: inline-block; }
.timestamp { display: none; }
}
&.edit-notes .notes-input { display: block; }
}
}
.drop-menu {
position: relative;
.drop-menu-items {
display: none;
list-style: none;
position: absolute;
li {
display: inline-block;
padding-left: 0.5em;
}
}
&:hover .drop-menu-items, .drop-menu-items:hover { display: block; }
a {
display: inline-block;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
.footer {
background: $darkBg;
color: $lightTxt;
font-family: Bentham;
padding: 1em 0;
padding: 1rem 0;
text-align: center;
width: 100%;
a {
color: lighten($lightTxt, 20%);
text-decoration: none;
&:hover { text-decoration: underline; }
}
}
.logo {
font-family: Bentham;
text-decoration: overline underline;
color: inherit;
}
.hidden { display: none; }