tungsten 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/tungsten/_form_helpers.js +21 -0
- data/app/assets/javascripts/tungsten/code.js +20 -0
- data/app/assets/javascripts/tungsten/tungsten.js +4 -20
- data/app/assets/stylesheets/tungsten/_code-color.scss +0 -0
- data/app/assets/stylesheets/tungsten/_colors.yml +68 -4
- data/app/assets/stylesheets/tungsten/_index.scss +5 -0
- data/app/assets/stylesheets/tungsten/code/_codemirror.scss +56 -0
- data/app/assets/stylesheets/tungsten/code/_color.scss +58 -0
- data/app/assets/stylesheets/tungsten/code/_highlighted.scss +64 -0
- data/app/assets/stylesheets/tungsten/code/_index.scss +3 -0
- data/app/assets/stylesheets/tungsten/core/_buttons.scss +144 -0
- data/app/assets/stylesheets/tungsten/core/_cards.scss +90 -0
- data/app/assets/stylesheets/tungsten/core/_colors.scss +20 -0
- data/app/assets/stylesheets/tungsten/core/_globals.scss +172 -0
- data/app/assets/stylesheets/tungsten/core/_grid.scss +164 -0
- data/app/assets/stylesheets/tungsten/core/_index.scss +7 -13
- data/app/assets/stylesheets/tungsten/core/_layout.scss +47 -0
- data/app/assets/stylesheets/tungsten/core/_text.scss +219 -0
- data/app/assets/stylesheets/tungsten/form/_base.scss +235 -0
- data/app/assets/stylesheets/tungsten/form/_check-radio.scss +154 -0
- data/app/assets/stylesheets/tungsten/form/_check-switch.scss +104 -0
- data/app/assets/stylesheets/tungsten/form/_index.scss +4 -0
- data/app/assets/stylesheets/tungsten/form/_label-placeholder.scss +98 -0
- data/app/assets/stylesheets/tungsten/tungsten.scss +1 -3
- data/app/helpers/tungsten/card_helper.rb +76 -0
- data/app/helpers/tungsten/deployments_helper.rb +59 -0
- data/app/helpers/tungsten/form_helper.rb +509 -0
- data/app/helpers/tungsten/layout_helper.rb +7 -0
- data/app/helpers/tungsten/toggle_nav_helper.rb +84 -0
- data/app/views/layouts/tungsten/default.html.slim +47 -0
- data/app/views/shared/tungsten/_defs.html.slim +6 -0
- data/app/views/shared/tungsten/_footer.html.slim +2 -0
- data/app/views/shared/tungsten/_header.html.slim +2 -0
- data/config/data/deployments.yml +110 -0
- data/lib/tungsten.rb +26 -2
- data/lib/tungsten/helper.rb +4 -0
- data/lib/tungsten/version.rb +1 -1
- data/public/{tungsten-0.1.0.js → code-0.1.1.js} +43 -69
- data/public/code-0.1.1.js.gz +0 -0
- data/public/code-0.1.1.map.json +1 -0
- data/public/tungsten-0.1.1.css +1523 -0
- data/public/tungsten-0.1.1.css.gz +0 -0
- data/public/tungsten-0.1.1.js +79 -0
- data/public/tungsten-0.1.1.js.gz +0 -0
- data/public/tungsten-0.1.1.map.json +1 -0
- metadata +120 -16
- data/app/helpers/tungsten/application_helper.rb +0 -4
- data/app/views/layouts/tungsten/default.html.erb +0 -17
- data/public/tungsten-0.1.0.css +0 -17
- data/public/tungsten-0.1.0.css.gz +0 -0
- data/public/tungsten-0.1.0.js.gz +0 -0
- data/public/tungsten-0.1.0.map.json +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06c81130859fa7bd4a0673370e233d1b8fd8ad45
|
4
|
+
data.tar.gz: a9c421d5a3b3fddbd49d266ab96e36e2ea311bea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12014325939bb67a71482ffb2d5f1d6ebf55b1dbdd786a4daaa543aa4f36f42e4c56f85130e9fe592a99e491025bd912ecdb60c7f65e6ee565670e39b2a5b870
|
7
|
+
data.tar.gz: 477692ad0379c819068b6302d54392f289ca497c9747eef41c1623993054adb5563f640c5caf9d140772a3cbc0653f5813b6f9a0289b0f50e52474b7c0381a5f
|
@@ -0,0 +1,21 @@
|
|
1
|
+
var toolbox = require( 'compose-toolbox' )
|
2
|
+
var Event = toolbox.event
|
3
|
+
var textSelectors = 'textarea, input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=hidden]):not([type=submit]):not([type=image]):not([type=reset])'
|
4
|
+
|
5
|
+
function syncValue( input ) {
|
6
|
+
|
7
|
+
// Allow calling from event handler
|
8
|
+
input = ( input.target || input )
|
9
|
+
|
10
|
+
// If element is empty (or contains only whitespace)
|
11
|
+
// Add empty class
|
12
|
+
input.classList.toggle( 'empty', !input.value.trim().length )
|
13
|
+
}
|
14
|
+
|
15
|
+
// Initialize input state
|
16
|
+
Event.change( function() {
|
17
|
+
toolbox.each( document.querySelectorAll( textSelectors ), syncValue )
|
18
|
+
})
|
19
|
+
|
20
|
+
// Set input state on keyup (debounced)
|
21
|
+
Event.on( document, 'input', textSelectors, syncValue )
|
@@ -0,0 +1,20 @@
|
|
1
|
+
var event = require( 'compose-toolbox' ).event
|
2
|
+
var highlighter = require( 'compose-code-highlighter' )
|
3
|
+
|
4
|
+
require( 'codemirror/mode/htmlmixed/htmlmixed' )
|
5
|
+
require( 'codemirror/mode/slim/slim' )
|
6
|
+
require( 'codemirror/mode/javascript/javascript' )
|
7
|
+
require( 'codemirror/mode/css/css' )
|
8
|
+
require( 'codemirror/mode/sql/sql' )
|
9
|
+
require( 'codemirror/mode/php/php' )
|
10
|
+
require( 'codemirror/mode/ruby/ruby' )
|
11
|
+
require( 'codemirror/mode/shell/shell' )
|
12
|
+
require( 'codemirror/mode/go/go' )
|
13
|
+
require( 'codemirror/mode/python/python' )
|
14
|
+
require( 'codemirror/mode/yaml/yaml' )
|
15
|
+
require( 'codemirror/mode/clike/clike' )
|
16
|
+
require( 'codemirror/addon/runmode/runmode' )
|
17
|
+
require( 'codemirror/addon/edit/matchbrackets' )
|
18
|
+
|
19
|
+
|
20
|
+
event.change( highlighter.highlight )
|
@@ -1,30 +1,14 @@
|
|
1
1
|
var toggler = require('compose-toggler')
|
2
2
|
var formUp = require( 'compose-form-up' )
|
3
3
|
var toolbox = require( 'compose-toolbox' )
|
4
|
-
var event = toolbox.event
|
5
4
|
var ajax = require( 'superagent' )
|
6
|
-
var
|
7
|
-
var loader = require( 'compose-loader' )
|
8
|
-
|
9
|
-
require( 'codemirror/mode/htmlmixed/htmlmixed' )
|
10
|
-
require( 'codemirror/mode/slim/slim' )
|
11
|
-
require( 'codemirror/mode/javascript/javascript' )
|
12
|
-
require( 'codemirror/mode/css/css' )
|
13
|
-
require( 'codemirror/mode/sql/sql' )
|
14
|
-
require( 'codemirror/mode/php/php' )
|
15
|
-
require( 'codemirror/mode/ruby/ruby' )
|
16
|
-
require( 'codemirror/mode/shell/shell' )
|
17
|
-
require( 'codemirror/mode/go/go' )
|
18
|
-
require( 'codemirror/mode/python/python' )
|
19
|
-
require( 'codemirror/mode/yaml/yaml' )
|
20
|
-
require( 'codemirror/mode/clike/clike' )
|
21
|
-
require( 'codemirror/addon/runmode/runmode' )
|
22
|
-
require( 'codemirror/addon/edit/matchbrackets' )
|
5
|
+
var event = toolbox.event
|
23
6
|
|
24
7
|
event.scroll.disablePointer() // disable pointer events on scroll for performance (to avoid extra repaints)
|
25
8
|
|
26
|
-
require('compose-slider')
|
27
|
-
require('./_icons')
|
9
|
+
require('compose-slider') // Our slider (range input) component
|
10
|
+
require('./_icons') // Import svg icons (from Esvg)
|
11
|
+
require( './_form_helpers' )
|
28
12
|
|
29
13
|
// Public API object
|
30
14
|
var tungsten = toolbox.merge( {
|
File without changes
|
@@ -1,5 +1,69 @@
|
|
1
1
|
_colors:
|
2
|
-
#
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
white: '#fff' # carbon: ui-01
|
3
|
+
gray-01: '#f7fafb' # ratchet: cirrus
|
4
|
+
gray-02: '#f5f7fa' # carbon: ui-02
|
5
|
+
gray-03: '#f0f3f6' # carbon: ui-03
|
6
|
+
gray-04: '#dfe3e6' # carbon: ui-04
|
7
|
+
gray-05: '#d6dde7' # ratchet: isabella
|
8
|
+
gray-06: '#c3cdda' # ratchet: alabaster
|
9
|
+
gray-07: '#b4c1d2' # ratchet: dolphin
|
10
|
+
gray-08: '#8c9ba5' # carbon: ui-05
|
11
|
+
gray-09: '#5a6872' # carbon: text-02
|
12
|
+
gray-10: '#152934' # carbon: text-01
|
13
|
+
gray-11: '#0f212e' # carbon: nav-01
|
14
|
+
|
15
|
+
blue-01: '#5aaafa' # carbon: support-04
|
16
|
+
blue-02: '#5596e6' # carbon: brand-02
|
17
|
+
blue-03: '#0094fd' # ratchet: azure
|
18
|
+
blue-04: '#006dff' # ratchet: cobalt
|
19
|
+
blue-05: '#3d70b2' # carbon: brand-01
|
20
|
+
|
21
|
+
purple-01: '#ba8ff7' # carbon: nav-03
|
22
|
+
purple-02: '#a346ce' # ratchet: orchid
|
23
|
+
purple-03: '#734098' # carbon: nav-04
|
24
|
+
|
25
|
+
sea-01: '#41d6c3' # carbon: brand-03
|
26
|
+
sea-02: '#00b4a0' # carbon: nav-05
|
27
|
+
sea-03: '#008571' # carbon: nav-06
|
28
|
+
|
29
|
+
green-01: '#2ac84f' # ratchet: grass
|
30
|
+
green-02: '#5aa700' # carbon: support-02
|
31
|
+
|
32
|
+
yellow-01: '#efc100' # carbon: support-03
|
33
|
+
|
34
|
+
orange-01: '#f69523' # ratchet: gold
|
35
|
+
orange-02: '#f96623' # ratchet: tangelo
|
36
|
+
|
37
|
+
red-01: '#dd2f41' # ratchet: rusty
|
38
|
+
red-02: '#A81C27' # ratchet: terracotta
|
39
|
+
|
40
|
+
code:
|
41
|
+
base03: '#002b36'
|
42
|
+
base02: '#073642'
|
43
|
+
base01: '#586e75'
|
44
|
+
base00: '#657b83'
|
45
|
+
base0: '#839496'
|
46
|
+
base1: '#93a1a1'
|
47
|
+
base2: '#eee8d5'
|
48
|
+
base3: '#fbfbfb'
|
49
|
+
yellow: '#b58900'
|
50
|
+
orange: '#cb4b16'
|
51
|
+
red: '#dc322f'
|
52
|
+
magenta: '#d33682'
|
53
|
+
violet: '#6c71c4'
|
54
|
+
blue: '#268bd2'
|
55
|
+
cyan: '#2aa198'
|
56
|
+
green: '#859900'
|
57
|
+
|
58
|
+
gradients:
|
59
|
+
postgresql: ['#0094fd', '#625ff9']
|
60
|
+
elasticsearch: ['#625ff9', '#8f52ea']
|
61
|
+
rethinkdb: ['#0094fd', '#25c894']
|
62
|
+
mysql: ['#0094fd', '#8f52ea']
|
63
|
+
rabbitmq: ['#f69523', '#f96623']
|
64
|
+
redis: ['#f96623', '#dd2f41']
|
65
|
+
etcd: ['#c60ca5', '#dd2f41']
|
66
|
+
scylladb: ['#c60ca5', '#8f52ea']
|
67
|
+
mongodb: ['#25c894', '#2ac84f']
|
68
|
+
janusgraph: ['#869ebc', '#25c894']
|
69
|
+
compose: ['#0FA7DB', '#0094fd']
|
@@ -0,0 +1,56 @@
|
|
1
|
+
div.CodeMirror {
|
2
|
+
//background: $softwhite;
|
3
|
+
//border: 1px solid $page-border;
|
4
|
+
border-radius: 4px;
|
5
|
+
padding: 5px;
|
6
|
+
font-family: $mono-font;
|
7
|
+
|
8
|
+
pre {
|
9
|
+
color: $code_base0;
|
10
|
+
font-size: 14px;
|
11
|
+
cursor: text;
|
12
|
+
}
|
13
|
+
.CodeMirror-cursor {
|
14
|
+
border-left: 2px solid #43baff;
|
15
|
+
}
|
16
|
+
.CodeMirror-cursor {
|
17
|
+
border-left: 2px solid #43baff;
|
18
|
+
}
|
19
|
+
span.CodeMirror-matchingbracket {
|
20
|
+
color: $blue-04; font-weight: bold;
|
21
|
+
}
|
22
|
+
span.CodeMirror-nonmatchingbracket {
|
23
|
+
color: $code_red;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
.CodeMirror-scroll {
|
28
|
+
height: 100%;
|
29
|
+
overflow-y: hidden;
|
30
|
+
overflow-x: auto;
|
31
|
+
min-height: 250px;
|
32
|
+
padding-bottom: 0;
|
33
|
+
margin-bottom: 0;
|
34
|
+
}
|
35
|
+
|
36
|
+
.code-editor, .code-editor-content {
|
37
|
+
height: 100%;
|
38
|
+
.CodeMirror {
|
39
|
+
height: 100%;
|
40
|
+
max-height: 100%;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
div.CodeMirror-focused {
|
45
|
+
border-color: hsl(203, 47%, 65%);
|
46
|
+
background-color: #fff;
|
47
|
+
box-shadow: 0 0 0 2px hsl(203, 47%, 65%) inset;
|
48
|
+
}
|
49
|
+
|
50
|
+
.document-view {
|
51
|
+
pre { cursor: default; }
|
52
|
+
.CodeMirror-cursor { display: none; }
|
53
|
+
}
|
54
|
+
|
55
|
+
div.CodeMirror-selected { background: desaturate($code-selected-bg, 100); }
|
56
|
+
.CodeMirror-focused div.CodeMirror-selected { background: $code-selected-bg; }
|
@@ -0,0 +1,58 @@
|
|
1
|
+
$code_base03: map-get($code, base3);
|
2
|
+
$code_base02: map-get($code, base2);
|
3
|
+
$code_base01: map-get($code, base1);
|
4
|
+
$code_base00: map-get($code, base0);
|
5
|
+
$code_base0: map-get($code, base00);
|
6
|
+
$code_base1: map-get($code, base01);
|
7
|
+
$code_base2: map-get($code, base02);
|
8
|
+
$code_base3: map-get($code, base03);
|
9
|
+
$code_yellow: map-get($code, yellow);
|
10
|
+
$code_orange: map-get($code, orange);
|
11
|
+
$code_red: map-get($code, red);
|
12
|
+
$code_magenta: map-get($code, magenta);
|
13
|
+
$code_violet: map-get($code, violet);
|
14
|
+
$code_blue: map-get($code, blue);
|
15
|
+
$code_cyan: map-get($code, cyan);
|
16
|
+
$code_green: map-get($code, green);
|
17
|
+
|
18
|
+
$code-selected-bg: #BDE1FF;
|
19
|
+
|
20
|
+
.cm-s-default {
|
21
|
+
.cm-keyword {color: $code_blue;}
|
22
|
+
.cm-atom {color: $code_yellow;}
|
23
|
+
.cm-number {color: $code_cyan;}
|
24
|
+
.cm-def {color: $code_magenta; font-weight: bold;}
|
25
|
+
.cm-variable {color: $code_orange;}
|
26
|
+
.cm-variable-2 {color: $code_blue;}
|
27
|
+
.cm-variable-3 {color: $code_green;}
|
28
|
+
.cm-property {color: $code_base1;}
|
29
|
+
.cm-operator {color: $code_base1;}
|
30
|
+
.cm-comment {color: $code_base01;}
|
31
|
+
.cm-string {color: $code_cyan;}
|
32
|
+
.cm-string-2 {color: $code_green;}
|
33
|
+
.cm-meta {color: #555;}
|
34
|
+
.cm-error {color: $code_red;}
|
35
|
+
.cm-qualifier {color: #555;}
|
36
|
+
.cm-builtin {color: #30a;}
|
37
|
+
.cm-bracket {color: #997;}
|
38
|
+
.cm-tag {color: $code_blue; font-weight: bold;}
|
39
|
+
.cm-attribute {color: $code_base1;}
|
40
|
+
.cm-header {color: blue;}
|
41
|
+
.cm-quote {color: #090;}
|
42
|
+
.cm-hr {color: #999;}
|
43
|
+
.cm-link {color: $code_violet;}
|
44
|
+
.cm-qualifier.cm-attribute {color: $code_orange;}
|
45
|
+
.cm-error {color: #f00;}
|
46
|
+
}
|
47
|
+
|
48
|
+
.static-code {
|
49
|
+
.cm-variable {color: $code_base1;}
|
50
|
+
}
|
51
|
+
|
52
|
+
.cm-negative {color: #d44;}
|
53
|
+
.cm-positive {color: #292;}
|
54
|
+
.cm-header, .cm-strong {font-weight: bold;}
|
55
|
+
.cm-em {font-style: italic;}
|
56
|
+
.cm-link {text-decoration: underline;}
|
57
|
+
|
58
|
+
.cm-invalidchar {color: #f00;}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
/* Set up the basic look and feel */
|
2
|
+
|
3
|
+
code,
|
4
|
+
kbd,
|
5
|
+
samp {
|
6
|
+
color: inherit;
|
7
|
+
background-color: rgba(#fff, .3);//$code_base03;
|
8
|
+
border: 1px solid rgba(#000, .1);
|
9
|
+
font-family: Consolas, "Liberation Mono", Courier, monospace;
|
10
|
+
font-size: .95em;
|
11
|
+
border-radius: 3px;
|
12
|
+
&:before, &:after {
|
13
|
+
content: "\00a0";
|
14
|
+
letter-spacing: -0.2em;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
pre[class*=lang-]{
|
19
|
+
padding: 1em;
|
20
|
+
}
|
21
|
+
|
22
|
+
pre.box-content {
|
23
|
+
margin-top: 0;
|
24
|
+
}
|
25
|
+
|
26
|
+
.highlighted {
|
27
|
+
border: 1px solid #e5e5e5;
|
28
|
+
position: relative;
|
29
|
+
background-color: $code_base03;
|
30
|
+
color: $code_base0;
|
31
|
+
line-height: inherit;
|
32
|
+
overflow-y: scroll;
|
33
|
+
font-size: 14px;
|
34
|
+
max-width: 100%;
|
35
|
+
word-break: normal;
|
36
|
+
word-wrap: normal;
|
37
|
+
transition: none;
|
38
|
+
}
|
39
|
+
|
40
|
+
.highlighted-code {
|
41
|
+
font-family: $mono-font;
|
42
|
+
background: none;
|
43
|
+
direction: ltr;
|
44
|
+
display: block;
|
45
|
+
-webkit-hyphens: none;
|
46
|
+
-moz-hyphens: none;
|
47
|
+
-ms-hyphens: none;
|
48
|
+
hyphens: none;
|
49
|
+
tab-size: 2;
|
50
|
+
text-align: left;
|
51
|
+
word-spacing: normal;
|
52
|
+
line-height: inherit;
|
53
|
+
word-break: normal;
|
54
|
+
word-wrap: normal;
|
55
|
+
overflow-x: scroll;
|
56
|
+
|
57
|
+
display: block;
|
58
|
+
border: none;
|
59
|
+
font-size: inherit;
|
60
|
+
|
61
|
+
&:before, &:after {
|
62
|
+
content: none;
|
63
|
+
}
|
64
|
+
}
|
@@ -0,0 +1,144 @@
|
|
1
|
+
/* ========================================================================== *
|
2
|
+
* Button module
|
3
|
+
* -------------------------------------------------------------------------- */
|
4
|
+
|
5
|
+
// Universal
|
6
|
+
.button {
|
7
|
+
display: inline-flex;
|
8
|
+
align-items: center;
|
9
|
+
justify-content: center;
|
10
|
+
width: auto;
|
11
|
+
line-height: 1;
|
12
|
+
font-size: 14px;
|
13
|
+
font-weight: 500;
|
14
|
+
text-align: center;
|
15
|
+
text-decoration: none;
|
16
|
+
border: 0;
|
17
|
+
padding: 12px 15px;
|
18
|
+
background: $white;
|
19
|
+
border-radius: $radius;
|
20
|
+
transition:
|
21
|
+
color $duration,
|
22
|
+
background $duration,
|
23
|
+
box-shadow $duration;
|
24
|
+
|
25
|
+
// Smaller padding in tight contexts
|
26
|
+
table &,
|
27
|
+
.card &,
|
28
|
+
.button-group &,
|
29
|
+
&.small {
|
30
|
+
padding: 8px 12px;
|
31
|
+
}
|
32
|
+
|
33
|
+
// Normal state
|
34
|
+
@include normal {
|
35
|
+
color: inherit;
|
36
|
+
box-shadow:
|
37
|
+
0 0 0 1px rgba($gray-11, .1),
|
38
|
+
0 1px 3px rgba($gray-11, .15);
|
39
|
+
}
|
40
|
+
|
41
|
+
// Active state
|
42
|
+
@include active {
|
43
|
+
color: $blue-03;
|
44
|
+
box-shadow:
|
45
|
+
0 0 0 1px rgba($gray-11, .2),
|
46
|
+
0 1px 3px rgba($gray-11, .25);
|
47
|
+
}
|
48
|
+
|
49
|
+
// Disabled
|
50
|
+
&[disabled] {
|
51
|
+
color: $gray-05 !important;
|
52
|
+
background: $gray-01 !important;
|
53
|
+
cursor: not-allowed !important;
|
54
|
+
box-shadow:
|
55
|
+
0 0 0 1px rgba($gray-11, .1),
|
56
|
+
0 1px 3px rgba($gray-11, .15) !important;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
// Grouped buttons
|
61
|
+
.button-group {
|
62
|
+
display: flex;
|
63
|
+
align-items: flex-start;
|
64
|
+
|
65
|
+
.button {
|
66
|
+
|
67
|
+
& + .button {
|
68
|
+
margin: 0;
|
69
|
+
}
|
70
|
+
|
71
|
+
&:not(:first-child):not(:last-child) {
|
72
|
+
border-radius: 0;
|
73
|
+
}
|
74
|
+
|
75
|
+
&:first-child {
|
76
|
+
border-radius: $radius 0 0 $radius;
|
77
|
+
}
|
78
|
+
|
79
|
+
&:last-child {
|
80
|
+
border-radius: 0 $radius $radius 0;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
// Destructive action
|
86
|
+
.button.destructive {
|
87
|
+
|
88
|
+
// Normal state
|
89
|
+
@include normal {
|
90
|
+
color: $red-01;
|
91
|
+
}
|
92
|
+
|
93
|
+
// Active state
|
94
|
+
@include active {
|
95
|
+
color: $red-02;
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
// Primary action
|
100
|
+
.button.primary {
|
101
|
+
|
102
|
+
// Normal state
|
103
|
+
@include normal {
|
104
|
+
color: $white;
|
105
|
+
background: $blue-03;
|
106
|
+
box-shadow:
|
107
|
+
0 0 0 1px darken($blue-03, 5),
|
108
|
+
0 1px 3px rgba($gray-11, .15);
|
109
|
+
}
|
110
|
+
|
111
|
+
// Active state
|
112
|
+
@include active {
|
113
|
+
color: $white;
|
114
|
+
background: $blue-04;
|
115
|
+
box-shadow:
|
116
|
+
0 0 0 1px $blue-04,
|
117
|
+
0 1px 3px rgba($gray-11, .15);
|
118
|
+
}
|
119
|
+
}
|
120
|
+
|
121
|
+
.primary.destructive {
|
122
|
+
|
123
|
+
// Normal state
|
124
|
+
@include normal {
|
125
|
+
background: $red-01;
|
126
|
+
box-shadow:
|
127
|
+
0 0 0 1px darken($red-01, 5),
|
128
|
+
0 1px 3px rgba($gray-11, .15);
|
129
|
+
}
|
130
|
+
|
131
|
+
// Active state
|
132
|
+
@include active {
|
133
|
+
color: $white;
|
134
|
+
background: $red-02;
|
135
|
+
box-shadow:
|
136
|
+
0 0 0 1px $red-02,
|
137
|
+
0 1px 3px rgba($gray-11, .15);
|
138
|
+
}
|
139
|
+
}
|
140
|
+
|
141
|
+
// Siblings need their space
|
142
|
+
.button + .button {
|
143
|
+
margin-left: 10px;
|
144
|
+
}
|