initial light theme

This commit is contained in:
Ben Ogle
2013-09-04 12:12:15 -07:00
parent 41a3e8f84d
commit 4798db3679
15 changed files with 584 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
@import "ui-variables";
#root-view {
font: caption;
background-color: @app-background-color;
}

View File

@@ -0,0 +1,47 @@
@import "ui-variables";
@import "ui-mixins";
.btn-background (@color, @hover-color, @selected-color, @text-color) {
color: @text-color;
background-color: transparent;
background-image: -webkit-linear-gradient(@color, darken(@color, 5%));
&:hover {
color: @text-color-highlight;
background-image: -webkit-linear-gradient(@hover-color, darken(@hover-color, 5%));
}
&.selected, &.selected:hover {
color: @text-color-highlight;
background-image: -webkit-linear-gradient(darken(@selected-color, 5%), @selected-color);
&:hover {
background-image: -webkit-linear-gradient(@selected-color, darken(@selected-color, 5%));
}
}
}
.btn-variant (@color) {
@bg: darken(@color, 10%);
@hover: @color;
@selected: @color;
.btn-background(@bg, @hover, @selected, @text-color-highlight);
}
.btn {
.btn-background(@button-background-color, @button-background-color-hover, @button-background-color-selected, @text-color);
}
.btn.btn-primary {
.btn-variant(@background-color-info);
}
.btn.btn-info {
.btn-variant(@background-color-info);
}
.btn.btn-success {
.btn-variant(@background-color-success);
}
.btn.btn-warning {
.btn-variant(@background-color-warning);
}
.btn.btn-error {
.btn-variant(@background-color-error);
}

View File

@@ -0,0 +1,29 @@
@import "ui-variables";
@import "ui-mixins";
.editor.mini {
background-color: @input-background-color;
border: 1px solid rgba(0, 0, 0, 0.5);
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
border-right: 1px solid rgba(255, 255, 255, 0.05);
}
.editor.editor-colors.mini.is-focused {
background-color: lighten(@input-background-color, 5%);
}
// FIXME: these should go in syntax themes?
.editor .gutter.drop-shadow {
-webkit-box-shadow: -2px 0 10px 2px #222;
}
@-webkit-keyframes highlight {
from { background-color: rgba(100, 255, 100, 0.7); }
to { background-color: null; }
}
.editor .highlighted.selection .region {
-webkit-animation-name: highlight;
-webkit-animation-duration: 1s;
-webkit-animation-iteration-count: 1;
}

View File

@@ -0,0 +1,9 @@
@import "ui-mixins";
@import "ui-variables";
.status { .text(normal); }
.status-added { .text(info); }
.status-ignored { .text(subtle); }
.status-modified { .text(warning); }
.status-removed { .text(error); }
.status-renamed { .text(success); }

View File

@@ -0,0 +1,107 @@
@import "ui-variables";
@import "ui-mixins";
@import "octicon-mixins";
.list-group, .list-tree {
li:not(.list-nested-item),
li.list-nested-item > .list-item {
.text(normal);
}
.generate-list-item-text-color(@class) {
li:not(.list-nested-item).text-@{class},
li.list-nested-item.text-@{class} > .list-item {
.text(@class);
}
}
.generate-list-item-text-color(subtle);
.generate-list-item-text-color(info);
.generate-list-item-text-color(success);
.generate-list-item-text-color(warning);
.generate-list-item-text-color(error);
.generate-list-item-text-color(selected);
.generate-list-item-status-color(@textClass, @status) {
li:not(.list-nested-item).status-@{status},
li.list-nested-item.status-@{status} > .list-item {
.text(@textClass);
}
}
.generate-list-item-status-color(subtle, ignored);
.generate-list-item-status-color(info, added);
.generate-list-item-status-color(success, renamed);
.generate-list-item-status-color(warning, modified);
.generate-list-item-status-color(error, removed);
li:not(.list-nested-item):hover,
li.list-nested-item:hover > .list-item, // i.e. highlight directory when hover child file
li.list-nested-item .list-item:hover,
li.list-nested-item .list-item:hover .disclosure-arrow,
.selected > .list-nested-item > .list-item .disclosure-arrow,
.selected > .list-nested-item > .list-item:hover .disclosure-arrow {
.text(highlight);
}
}
&.select-list ol.list-group, .select-list ol.list-group {
li.two-lines {
.secondary-line { color: @text-color-subtle; }
&.selected .secondary-line { color: lighten(@text-color-subtle, 10%); }
}
// We want to highlight the background of the list items because we dont
// know their size.
li.selected {
background-color: @background-color-highlight;
&:before{ display: none; }
}
&.mark-active{
@active-icon-size: 14px;
// pad in front of the text where the icon would be We'll pad the non-
// active items with a 'fake' icon so other classes can pad the item
// without worrying about the icon padding.
li:before {
content: '';
background-color: transparent;
position: static;
display: inline-block;
left: auto; right: auto;
height: @active-icon-size;
width: @active-icon-size;
}
> li:not(.active):before {
margin-right: @component-icon-padding;
}
li.active {
.octicon(check, @active-icon-size);
&:before {
margin-right: @component-icon-padding;
color: @text-color-success;
}
}
}
}
.select-list.popover-list {
background-color: @overlay-background-color;
-webkit-box-shadow: 0 0 3px 3px @base-border-color;
padding: @component-padding/2;
border-radius: @component-border-radius;
border: 1px solid @overlay-border-color;
.editor {
margin-bottom: @component-padding/2;
}
.list-group li {
padding-left: @component-padding/2;
}
}

View File

@@ -0,0 +1,20 @@
@import "ui-variables";
@import "ui-mixins";
.loading-spinner(@size) {
width: @size;
height: @size;
display: block;
background-image: url(images/octocat-spinner-128.gif);
background-repeat: no-repeat;
background-size: cover;
}
.loading-spinner-medium {
.loading-spinner(64px);
}
.loading-spinner-small {
.loading-spinner(32px);
}

View File

@@ -0,0 +1,35 @@
@import "ui-variables";
.overlay {
color: @text-color;
background-color: @overlay-background-color;
padding: @component-padding;
border: 1px solid @overlay-border-color;
box-shadow: 0 0 10px @base-border-color;
border-radius: @component-border-radius;
.editor.mini {
margin-bottom: @component-padding;
}
&.select-list ol.list-group, .select-list ol.list-group {
background-color: lighten(@overlay-background-color, 3%);
li {
padding: @component-padding;
border-bottom: 1px solid @overlay-background-color;
&.two-lines { padding: @component-padding/2 @component-padding; }
.status.icon {
float: right;
margin-left: @component-icon-padding;
&:before {
margin-right: 0;
}
}
}
}
}

View File

@@ -0,0 +1,14 @@
'stylesheets': [
'atom'
'utilities'
'text'
'git'
'sites'
'loading'
'buttons'
'panels'
'lists'
'editor'
'tabs'
'overlays'
]

View File

@@ -0,0 +1,66 @@
@import "ui-mixins";
@import "ui-variables";
@import "buttons";
.tool-panel {
.text(normal);
position: relative;
opacity: 0.8;
background-color: @tool-panel-background-color;
&:focus {
opacity: 1;
}
&.panel-bottom {
border-top: 1px solid @tool-panel-border-color;
}
&.panel-left {
border-right: 1px solid @tool-panel-border-color;
}
.inset-panel {
border-radius: @component-border-radius;
border: 1px solid @tool-panel-border-color;
}
}
.inset-panel {
position: relative;
background-color: @inset-panel-background-color;
}
.is-blurred {
.tool-panel, .inset-panel {
opacity: 0.6;
}
}
.panel-heading {
margin: 0;
border-bottom: none;
padding: @component-padding - 2px @component-padding;
font-size: @font-size;
line-height: 1;
background-color: transparent;
background-image: -webkit-linear-gradient(@panel-heading-background-color, darken(@panel-heading-background-color, 10%));
border-radius: @component-border-radius @component-border-radius 0 0;
.btn {
padding: 1px 5px;
font-size: 10px;
position: relative; top: -1px;
@bg: lighten(@button-background-color, 10%);
@hover: lighten(@button-background-color-hover, 10%);
@selected: lighten(@button-background-color-selected, 10%);
@text: lighten(@text-color, 10%);
.btn-background(@bg, @hover, @selected, @text);
}
}

View File

@@ -0,0 +1,14 @@
@import "ui-mixins";
@import "ui-variables";
.ui-site(@num, @color) {
.ui-site-@{num} {
background-color: @color;
}
}
.ui-site(1, @ui-site-color-1);
.ui-site(2, @ui-site-color-2);
.ui-site(3, @ui-site-color-3);
.ui-site(4, @ui-site-color-4);
.ui-site(5, @ui-site-color-5);

View File

@@ -0,0 +1,43 @@
@import "ui-variables";
.tab-bar {
height: @tab-height + 5px;
border-bottom: 4px solid @tab-border-color;
box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.2), 0 1px 0 rgba(0, 0, 0, 0.5);
margin-bottom: 1px;
background-color: darken(@tool-panel-background-color, 5%);
}
.tab {
height: @tab-height;
line-height: @tab-height;
color: @text-color;
margin: 0 0 1px 1px;
background-image: -webkit-linear-gradient(@tab-background-color, darken(@tab-background-color, 10%));
box-shadow:
inset 0 2px 0 rgba(255, 255, 255, 0.1),
inset 0 1px 0 rgba(0, 0, 0, 1),
inset 1px 0 0 @background-color-highlight,
inset -1px 0 0 @background-color-highlight;
}
.tab:hover {
color: @text-color-highlight;
}
.tab.active {
height: @tab-height + 1px;
background-image: -webkit-linear-gradient(@tab-background-color-active, @tab-border-color);
color: @text-color-highlight;
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
z-index: 2;
box-shadow:
inset 0 1px 0 rgba(0, 0, 0, 0.5),
inset 0 2px 0 rgba(255, 255, 255, 0.1),
inset 1px 0 0 rgba(255, 255, 255, 0.1),
inset -1px 0 0 rgba(255, 255, 255, 0.1)
}
.tab.active:hover .close-icon {
color: @text-color-highlight;
}

View File

@@ -0,0 +1,70 @@
@import "ui-mixins";
@import "ui-variables";
h1, h2, h3 {
line-height: 1em;
margin-bottom: 15px
}
h1 { font-size: 2em; }
h2 { font-size: 1.5em; }
h3 { font-size: 1.2em; }
p {
line-height: 1.6;
margin-bottom: 15px;
}
label {
font-weight: normal;
}
pre {
box-shadow: none;
color: @text-color;
background: @inset-panel-background-color;
border-radius: @component-border-radius;
border: none;
margin: 0;
}
code {
.text(highlight);
background: @background-color-highlight;
border-radius: @component-border-radius;
}
.selected { .text(highlight); }
.text-smaller { font-size: 0.9em; }
.text-subtle { .text(subtle); }
.text-highlight { .text(highlight); }
.text-info { .text(info); }
.text-warning { .text(warning); }
.text-success { .text(success); }
.text-error { .text(error); }
.highlight {
color: @text-color-highlight;
font-weight: bold;
text-shadow: none;
background-color: @background-color-highlight;
border-radius: @component-border-radius;
padding: 1px 3px;
}
.highlight-color(@name, @color) {
.highlight-@{name} {
color: @text-color-highlight;
font-weight: bold;
text-shadow: none;
background-color: @color;
border-radius: @component-border-radius;
padding: 1px 3px;
}
}
.highlight-color(info, @background-color-info);
.highlight-color(warning, @background-color-warning);
.highlight-color(error, @background-color-error);
.highlight-color(success, @background-color-success);

View File

@@ -0,0 +1,39 @@
@import "ui-variables";
// Pattern matching; ish is cray.
// http://lesscss.org/#-pattern-matching-and-guard-expressions
.text(normal) {
font-weight: normal;
color: @text-color;
text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
}
.text(subtle) {
font-weight: normal;
color: @text-color-subtle;
text-shadow: none;
}
.text(highlight) {
font-weight: normal;
color: @text-color-highlight;
text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
}
.text(selected) {
.text(highlight)
}
.text(info) {
color: @text-color-info;
text-shadow: none;
}
.text(success) {
color: @text-color-success;
text-shadow: none;
}
.text(warning) {
color: @text-color-warning;
text-shadow: none;
}
.text(error) {
color: @text-color-error;
text-shadow: none;
}

View File

@@ -0,0 +1,66 @@
// Colors
@text-color: #444;
@text-color-subtle: #999;
@text-color-highlight: #111;
@text-color-info: #5293d8;
@text-color-success: #1fe977;
@text-color-warning: #f78a46;
@text-color-error: #c00;
@background-color-info: #0098ff;
@background-color-success: #17ca65;
@background-color-warning: #ff4800;
@background-color-error: #c00;
@background-color-highlight: rgba(255, 255, 255, 0.4);
@app-background-color: #ccc;
@base-background-color: #f4f4f4;
@base-border-color: rgba(0, 0, 0, 0.25);
@input-background-color: #fff;
@input-border-color: @base-border-color;
@tool-panel-background-color: @base-background-color;
@tool-panel-border-color: @base-border-color;
@inset-panel-background-color: #fff;
@inset-panel-border-color: @base-border-color;
@panel-heading-background-color: #c3c3c3;
@panel-heading-border-color: transparent;
@overlay-background-color: #ececec;
@overlay-border-color: @base-border-color;
@button-background-color: #43484d;
@button-background-color-hover: lighten(@button-background-color, 5%);
@button-background-color-selected: #5c6064;
@button-border-color: @base-border-color;
@tab-background-color: darken(@tab-background-color-active, 10%);
@tab-background-color-active: @base-background-color;
@tab-border-color: darken(@tab-background-color-active, 15%);
@ui-site-color-1: @background-color-success; // green
@ui-site-color-2: @background-color-info; // blue
@ui-site-color-3: @background-color-warning; // orange
@ui-site-color-4: #db2ff4; // purple
@ui-site-color-5: #f5e11d; // yellow
// Sizes
@font-size: 12px;
@disclosure-arrow-size: 12px;
@component-padding: 10px;
@component-icon-padding: 5px;
@component-icon-size: 16px;
@component-line-height: 25px;
@component-border-radius: 2px;
@tab-height: 30px;

View File

@@ -0,0 +1,19 @@
@import "ui-mixins";
@import "ui-variables";
.key-binding {
background: -webkit-linear-gradient(
rgba(100, 100, 100, 0.5),
rgba(70,70,70, 0.5));
-webkit-box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.1);
display: inline-block;
line-height: 100%;
padding: 1px 3px;
border-radius: @component-border-radius;
margin-left: @component-icon-padding;
}
.badge {
.text(highlight);
background: @background-color-highlight;
}