simple-page-compoents 0.0.1 → 0.0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/button_group.rb +59 -0
- data/lib/data_table.rb +130 -0
- data/lib/navbar.rb +169 -0
- data/lib/progress_bar.rb +41 -0
- data/lib/simple-page-compoents.rb +24 -56
- data/vendor/assets/images/compoents/glyphicons-halflings-white.png +0 -0
- data/vendor/assets/images/compoents/glyphicons-halflings.png +0 -0
- data/vendor/assets/stylesheets/buttons.scss +152 -0
- data/vendor/assets/stylesheets/form.scss +1 -39
- data/vendor/assets/stylesheets/icons.scss +574 -0
- data/vendor/assets/stylesheets/navbar.scss +134 -44
- data/vendor/assets/stylesheets/pagination.scss +58 -0
- data/vendor/assets/stylesheets/progress.scss +138 -0
- data/vendor/assets/stylesheets/simple-page-compoents.scss +6 -1
- data/vendor/assets/stylesheets/table.scss +84 -0
- metadata +12 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d5bf31f04aaf66c27168b79187a78b67a88ba35c
|
4
|
+
data.tar.gz: 1e9145991d9dedc42f924881ecc8d9374bfa59c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 016c1c3c4b51d95f22473dd1c472b02fb8a1af6b4de9ce63e2d2b4cb124b2e895514a37ef9ab1ce229cf0c8b4ab35c9c380b0f5f11f2efe6681b94701c0850bc
|
7
|
+
data.tar.gz: f97e3a70c6fa86c66c2614f29b552cabc61e0acb4e82e4c83914d081b2ac921b842a7c4fbdfc9c2d5e9ceba6961145a8451d5c4c1a9131aad14581361af10542
|
data/lib/button_group.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module SimplePageCompoents
|
3
|
+
module ButtonGroup
|
4
|
+
class Button
|
5
|
+
attr_reader :text, :url, :button_group
|
6
|
+
|
7
|
+
def initialize(button_group, text, url, *args)
|
8
|
+
@view = button_group.view
|
9
|
+
@button_group = button_group
|
10
|
+
@text = text
|
11
|
+
@url = url
|
12
|
+
|
13
|
+
@primary = args.include? :primary
|
14
|
+
@info = args.include? :info
|
15
|
+
@success = args.include? :success
|
16
|
+
@warning = args.include? :warning
|
17
|
+
@danger = args.include? :danger
|
18
|
+
@inverse = args.include? :inverse
|
19
|
+
end
|
20
|
+
|
21
|
+
def css_class
|
22
|
+
c = ['btn']
|
23
|
+
c << 'primary' if @primary
|
24
|
+
c << 'info' if @info
|
25
|
+
c << 'success' if @success
|
26
|
+
c << 'warning' if @warning
|
27
|
+
c << 'danger' if @danger
|
28
|
+
c << 'inverse' if @inverse
|
29
|
+
c.join ' '
|
30
|
+
end
|
31
|
+
|
32
|
+
def render
|
33
|
+
@view.haml_tag 'a', text, :class => css_class, :href => url
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class Render
|
38
|
+
attr_reader :view, :buttons
|
39
|
+
|
40
|
+
def initialize(view, *args)
|
41
|
+
@view = view
|
42
|
+
@buttons = []
|
43
|
+
end
|
44
|
+
|
45
|
+
def add(text, url, *args)
|
46
|
+
button = Button.new(self, text, url, *args)
|
47
|
+
@buttons << button
|
48
|
+
end
|
49
|
+
|
50
|
+
def render
|
51
|
+
@view.haml_tag 'div.btn-group' do
|
52
|
+
@buttons.each do |button|
|
53
|
+
button.render
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/data_table.rb
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module SimplePageCompoents
|
3
|
+
module DataTable
|
4
|
+
class TableColumn
|
5
|
+
attr_reader :name
|
6
|
+
attr_accessor :table
|
7
|
+
|
8
|
+
def initialize(name, &block)
|
9
|
+
@name = name
|
10
|
+
@block = block
|
11
|
+
end
|
12
|
+
|
13
|
+
def table=(table)
|
14
|
+
@table = table
|
15
|
+
@view = table.view
|
16
|
+
end
|
17
|
+
|
18
|
+
def name_string
|
19
|
+
I18n.t "compoents.data_table.#{@table.name}.#{@name}"
|
20
|
+
end
|
21
|
+
|
22
|
+
def value_of(item)
|
23
|
+
value = @block.nil? ? item.send(@name) : @view.capture {@block.call(item)}
|
24
|
+
value.to_s
|
25
|
+
# 如果返回 symbol,将会不能显示
|
26
|
+
# bugfix: Issue #1
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class Render
|
31
|
+
attr_reader :view, :items, :columns, :name
|
32
|
+
|
33
|
+
def initialize(view, name, items = [], *args)
|
34
|
+
@view = view
|
35
|
+
@items = items
|
36
|
+
@name = name
|
37
|
+
|
38
|
+
@columns = []
|
39
|
+
@line_datas = []
|
40
|
+
|
41
|
+
# change color on mouse hover
|
42
|
+
@table_hover = args.include? :hover
|
43
|
+
|
44
|
+
# table lines with striped color
|
45
|
+
@striped = args.include? :striped
|
46
|
+
|
47
|
+
# table with cell border
|
48
|
+
@bordered = args.include? :bordered
|
49
|
+
end
|
50
|
+
|
51
|
+
def css_class
|
52
|
+
c = [
|
53
|
+
"page-data-table", @name
|
54
|
+
]
|
55
|
+
c << 'table-hover' if @table_hover
|
56
|
+
c << 'striped' if @striped
|
57
|
+
c << 'bordered' if @bordered
|
58
|
+
c.join(' ')
|
59
|
+
end
|
60
|
+
|
61
|
+
def render
|
62
|
+
@view.haml_tag :table, :class => css_class do
|
63
|
+
_render_thead
|
64
|
+
_render_tbody
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def add_column(name, &block)
|
69
|
+
column = TableColumn.new(name.to_s, &block)
|
70
|
+
column.table = self
|
71
|
+
@columns << column
|
72
|
+
self
|
73
|
+
end
|
74
|
+
|
75
|
+
def add_line_data(name, &block)
|
76
|
+
@line_datas << name
|
77
|
+
self
|
78
|
+
end
|
79
|
+
|
80
|
+
private
|
81
|
+
def _render_thead
|
82
|
+
@view.haml_tag :thead do
|
83
|
+
@view.haml_tag :tr do
|
84
|
+
_render_ths
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def _render_ths
|
90
|
+
@columns.each do |column|
|
91
|
+
text = column.name_string
|
92
|
+
th_css_class = column.name
|
93
|
+
@view.haml_tag :th, text, :class => th_css_class
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def _render_tbody
|
98
|
+
@view.haml_tag :tbody do
|
99
|
+
@items.each do |item|
|
100
|
+
_render_line(item)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def _render_line(item)
|
106
|
+
tr_css_class = item.class.to_s.tableize.singularize
|
107
|
+
data = _render_line_data(item)
|
108
|
+
@view.haml_tag :tr, :data => data, :class => tr_css_class do
|
109
|
+
_render_tds(item)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def _render_line_data(item)
|
114
|
+
re = Hash.new ''
|
115
|
+
@line_datas.each { |data|
|
116
|
+
re[data] = item.send(data)
|
117
|
+
}
|
118
|
+
re
|
119
|
+
end
|
120
|
+
|
121
|
+
def _render_tds(item)
|
122
|
+
@columns.each do |column|
|
123
|
+
text = column.value_of item
|
124
|
+
td_css_class = column.name
|
125
|
+
@view.haml_tag :td, text, :class => td_css_class
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
data/lib/navbar.rb
ADDED
@@ -0,0 +1,169 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module SimplePageCompoents
|
3
|
+
module CanRenderNavUl
|
4
|
+
private
|
5
|
+
def _render_ul
|
6
|
+
@view.haml_tag :ul, :class => 'nav' do
|
7
|
+
@items.each { |item| item.render }
|
8
|
+
end if @items.present?
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class NavItem
|
13
|
+
include CanRenderNavUl
|
14
|
+
|
15
|
+
attr_accessor :text, :url
|
16
|
+
attr_accessor :parent, :view
|
17
|
+
attr_accessor :items
|
18
|
+
|
19
|
+
def initialize(text, url, options = {})
|
20
|
+
@option_class = options[:class] || ''
|
21
|
+
|
22
|
+
@parent = nil
|
23
|
+
@view = nil
|
24
|
+
|
25
|
+
@text = text
|
26
|
+
@url = url
|
27
|
+
|
28
|
+
@items = []
|
29
|
+
end
|
30
|
+
|
31
|
+
def is_active?
|
32
|
+
@view.request.path == @url
|
33
|
+
rescue
|
34
|
+
false
|
35
|
+
end
|
36
|
+
|
37
|
+
def css_class
|
38
|
+
c = [@option_class]
|
39
|
+
c << 'active' if is_active?
|
40
|
+
|
41
|
+
re = c.join(' ')
|
42
|
+
|
43
|
+
re.blank? ? nil : re
|
44
|
+
end
|
45
|
+
|
46
|
+
def render
|
47
|
+
@view.haml_tag :li, :class => self.css_class do
|
48
|
+
_render_a
|
49
|
+
_render_ul
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def add_item(text, url, options = {}, &block)
|
54
|
+
item = NavItem.new(text, url)
|
55
|
+
add_item_obj item
|
56
|
+
yield item if block_given?
|
57
|
+
self
|
58
|
+
end
|
59
|
+
|
60
|
+
# 此方法为预留钩子,一般不用
|
61
|
+
def add_item_obj(item)
|
62
|
+
item.parent = self
|
63
|
+
item.view = @view
|
64
|
+
@items << item
|
65
|
+
self
|
66
|
+
end
|
67
|
+
|
68
|
+
def with_icon?
|
69
|
+
@parent.with_icon?
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
def _render_a
|
74
|
+
if self.with_icon?
|
75
|
+
@view.haml_tag :a, :href => @url do
|
76
|
+
@view.haml_tag :i, '', :class => 'icon'
|
77
|
+
@view.haml_concat @text
|
78
|
+
end
|
79
|
+
return
|
80
|
+
end
|
81
|
+
@view.haml_tag :a, @text,:href => @url
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
class NavbarRender
|
86
|
+
include CanRenderNavUl
|
87
|
+
|
88
|
+
attr_accessor :view, :items
|
89
|
+
|
90
|
+
def initialize(view, *args)
|
91
|
+
@view = view
|
92
|
+
@items = []
|
93
|
+
@prepends = []
|
94
|
+
|
95
|
+
@fixed_top = args.include? :fixed_top
|
96
|
+
@fixed_bottom = args.include? :fixed_bottom
|
97
|
+
@color_inverse = args.include? :color_inverse
|
98
|
+
|
99
|
+
@as_list = args.include? :as_list
|
100
|
+
|
101
|
+
@with_icon = args.include? :with_icon
|
102
|
+
end
|
103
|
+
|
104
|
+
def css_class
|
105
|
+
if @as_list
|
106
|
+
return 'page-navlist'
|
107
|
+
end
|
108
|
+
|
109
|
+
c = ['page-navbar']
|
110
|
+
c << 'fixed-top' if @fixed_top
|
111
|
+
c << 'fixed-bottom' if @fixed_buttom
|
112
|
+
c << 'color-inverse' if @color_inverse
|
113
|
+
|
114
|
+
c.join(' ')
|
115
|
+
end
|
116
|
+
|
117
|
+
def inner_css_class
|
118
|
+
if @as_list
|
119
|
+
return 'navlist-inner'
|
120
|
+
end
|
121
|
+
|
122
|
+
'navbar-inner'
|
123
|
+
end
|
124
|
+
|
125
|
+
def add_item(text, url, options = {}, &block)
|
126
|
+
item = NavItem.new(text, url)
|
127
|
+
add_item_obj item
|
128
|
+
yield item if block_given?
|
129
|
+
self
|
130
|
+
end
|
131
|
+
|
132
|
+
# 此方法为预留钩子,一般不用
|
133
|
+
def add_item_obj(item)
|
134
|
+
item.parent = self
|
135
|
+
item.view = @view
|
136
|
+
@items << item
|
137
|
+
self
|
138
|
+
end
|
139
|
+
|
140
|
+
def with_icon?
|
141
|
+
@with_icon
|
142
|
+
end
|
143
|
+
|
144
|
+
def prepend(str = '', &block)
|
145
|
+
@prepends << str
|
146
|
+
self
|
147
|
+
end
|
148
|
+
|
149
|
+
def render
|
150
|
+
@view.haml_tag :div, :class => self.css_class do
|
151
|
+
@view.haml_tag :div, :class => self.inner_css_class do
|
152
|
+
_render_prepend
|
153
|
+
_render_ul
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
private
|
159
|
+
def _render_prepend
|
160
|
+
return if @prepends.blank?
|
161
|
+
@view.haml_tag :div, :class => 'navbar-prepend' do
|
162
|
+
@prepends.each do |p|
|
163
|
+
@view.haml_concat p
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
data/lib/progress_bar.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module SimplePageCompoents
|
3
|
+
module ProgressBar
|
4
|
+
class Render
|
5
|
+
attr_reader :view, :percent
|
6
|
+
|
7
|
+
def initialize(view, percent = 0, *args)
|
8
|
+
@view = view
|
9
|
+
@percent = percent
|
10
|
+
|
11
|
+
@striped = args.include? :striped
|
12
|
+
@active = args.include? :active
|
13
|
+
|
14
|
+
@info = args.include? :info
|
15
|
+
@success = args.include? :success
|
16
|
+
@warning = args.include? :warning
|
17
|
+
@danger = args.include? :danger
|
18
|
+
end
|
19
|
+
|
20
|
+
def css_class
|
21
|
+
c = ['page-progress']
|
22
|
+
|
23
|
+
c << 'striped' if @striped
|
24
|
+
c << 'active' if @active
|
25
|
+
|
26
|
+
c << 'info' if @info
|
27
|
+
c << 'success' if @success
|
28
|
+
c << 'warning' if @warning
|
29
|
+
c << 'danger' if @danger
|
30
|
+
|
31
|
+
c.join(' ')
|
32
|
+
end
|
33
|
+
|
34
|
+
def render
|
35
|
+
@view.haml_tag :div, :class => css_class do
|
36
|
+
@view.haml_tag :div, '', :class => :bar, :style => "width:#{@percent}%;"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -1,65 +1,32 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
@text = text
|
7
|
-
@url = url
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def initialize(view, *args)
|
12
|
-
@view = view
|
13
|
-
@items = []
|
14
|
-
@prepends = []
|
15
|
-
|
16
|
-
@fixed_top = args.include? :fixed_top
|
17
|
-
@fixed_bottom = args.include? :fixed_bottom
|
18
|
-
@color_inverse = args.include? :color_inverse
|
19
|
-
end
|
20
|
-
|
21
|
-
def add_item(text, url)
|
22
|
-
@items << NavItem.new(text, url)
|
23
|
-
self
|
24
|
-
end
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'navbar'
|
3
|
+
require 'data_table'
|
4
|
+
require 'progress_bar'
|
5
|
+
require 'button_group'
|
25
6
|
|
26
|
-
|
27
|
-
|
7
|
+
module SimplePageCompoents
|
8
|
+
module Helper
|
9
|
+
def page_navbar(*args, &block)
|
10
|
+
navbar = NavbarRender.new(self, *args)
|
11
|
+
yield navbar
|
12
|
+
capture {navbar.render}
|
28
13
|
end
|
29
14
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
c << 'color-inverse' if @color_inverse
|
35
|
-
|
36
|
-
c.join(' ')
|
15
|
+
def page_data_table(name, items, *args)
|
16
|
+
table = DataTable::Render.new(self, name, items, *args)
|
17
|
+
yield table
|
18
|
+
capture {table.render}
|
37
19
|
end
|
38
20
|
|
39
|
-
def
|
40
|
-
|
41
|
-
|
42
|
-
@view.haml_tag :div, :class => 'nav-prepend' do
|
43
|
-
@prepends.each do |p|
|
44
|
-
@view.haml_concat p
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
@view.haml_tag :ul, :class => 'nav' do
|
49
|
-
@items.each do |item|
|
50
|
-
@view.haml_tag :li do
|
51
|
-
@view.haml_tag :a, item.text,:href => item.url
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
21
|
+
def page_progress_bar(percent = 0, *args)
|
22
|
+
pb = ProgressBar::Render.new(self, percent, *args)
|
23
|
+
capture {pb.render}
|
57
24
|
end
|
58
|
-
end
|
59
25
|
|
60
|
-
|
61
|
-
|
62
|
-
|
26
|
+
def page_button_group(name, *args)
|
27
|
+
button_group = ButtonGroup::Render.new(self, name, *args)
|
28
|
+
yield button_group
|
29
|
+
capture {button_group.render}
|
63
30
|
end
|
64
31
|
end
|
65
32
|
|
@@ -73,4 +40,5 @@ module SimplePageCompoents
|
|
73
40
|
class Engine < ::Rails::Engine
|
74
41
|
end
|
75
42
|
end
|
76
|
-
end
|
43
|
+
end
|
44
|
+
|
Binary file
|
Binary file
|
@@ -0,0 +1,152 @@
|
|
1
|
+
.btn{
|
2
|
+
background-color:#f5f5f5;
|
3
|
+
@include gradient(#fff, #e6e6e6);
|
4
|
+
border-color:rgba(black, 0.1) rgba(black, 0.1) #b3b3b3;
|
5
|
+
border-image:none;
|
6
|
+
@include border-radius(3px);
|
7
|
+
border-style:solid;
|
8
|
+
border-width:1px;
|
9
|
+
@include box-shadow(
|
10
|
+
(0 1px 0 rgba(white, 0.2) inset, 0 1px 2px rgba(black, 0.05))
|
11
|
+
);
|
12
|
+
color:#333;
|
13
|
+
cursor:pointer;
|
14
|
+
display:inline-block;
|
15
|
+
font-size:14px;
|
16
|
+
line-height:20px;
|
17
|
+
margin-bottom:0;
|
18
|
+
padding:4px 12px;
|
19
|
+
text-align:center;
|
20
|
+
text-shadow:0 1px 1px rgba(white, 0.75);
|
21
|
+
vertical-align:middle;
|
22
|
+
&:hover, &:focus {
|
23
|
+
background-position:0 -15px;
|
24
|
+
color:#333;
|
25
|
+
text-decoration:none;
|
26
|
+
@include transition(background-position 0.1s linear 0s);
|
27
|
+
}
|
28
|
+
&:focus {
|
29
|
+
outline:thin dotted #333;
|
30
|
+
outline-offset:-2px;
|
31
|
+
@include box-shadow((0 2px 4px rgba(black, 0.15) inset, 0 1px 2px rgba(black, 0.05)));
|
32
|
+
}
|
33
|
+
&:active, &.active {
|
34
|
+
border-image:none;
|
35
|
+
outline:0 none;
|
36
|
+
}
|
37
|
+
|
38
|
+
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
|
39
|
+
background-color:#e6e6e6;
|
40
|
+
}
|
41
|
+
&.disabled, &[disabled] {
|
42
|
+
background-image:none;
|
43
|
+
@include box-shadow(none);
|
44
|
+
cursor:default;
|
45
|
+
opacity:0.65;
|
46
|
+
}
|
47
|
+
|
48
|
+
&.primary {
|
49
|
+
background-color: #006DCC;
|
50
|
+
background-image: linear-gradient(to bottom, #0088CC, #0044CC);
|
51
|
+
background-repeat: repeat-x;
|
52
|
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
53
|
+
color: #FFFFFF;
|
54
|
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
55
|
+
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
|
56
|
+
background-color: #0044CC;
|
57
|
+
color:#fff;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
&.info {
|
62
|
+
background-color: #49AFCD;
|
63
|
+
background-image: linear-gradient(to bottom, #5BC0DE, #2F96B4);
|
64
|
+
background-repeat: repeat-x;
|
65
|
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
66
|
+
color: #FFFFFF;
|
67
|
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
68
|
+
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
|
69
|
+
background-color: #2F96B4;
|
70
|
+
color:#fff;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
&.success {
|
75
|
+
background-color: #5BB75B;
|
76
|
+
background-image: linear-gradient(to bottom, #62C462, #51A351);
|
77
|
+
background-repeat: repeat-x;
|
78
|
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
79
|
+
color: #FFFFFF;
|
80
|
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
81
|
+
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
|
82
|
+
background-color: #51A351;
|
83
|
+
color:#fff;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
&.warning {
|
88
|
+
background-color: #FAA732;
|
89
|
+
background-image: linear-gradient(to bottom, #FBB450, #F89406);
|
90
|
+
background-repeat: repeat-x;
|
91
|
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
92
|
+
color: #FFFFFF;
|
93
|
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
94
|
+
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
|
95
|
+
background-color: #F89406;
|
96
|
+
color:#fff;
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
&.danger {
|
101
|
+
background-color: #DA4F49;
|
102
|
+
background-image: linear-gradient(to bottom, #EE5F5B, #BD362F);
|
103
|
+
background-repeat: repeat-x;
|
104
|
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
105
|
+
color: #FFFFFF;
|
106
|
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
107
|
+
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
|
108
|
+
background-color: #BD362F;
|
109
|
+
color:#fff;
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
&.inverse {
|
114
|
+
background-color: #363636;
|
115
|
+
background-image: linear-gradient(to bottom, #444444, #222222);
|
116
|
+
background-repeat: repeat-x;
|
117
|
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
118
|
+
color: #FFFFFF;
|
119
|
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
120
|
+
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
|
121
|
+
background-color: #222;
|
122
|
+
color:#fff;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
}
|
126
|
+
|
127
|
+
.btn-group {
|
128
|
+
display:inline-block;
|
129
|
+
font-size:0;
|
130
|
+
position:relative;
|
131
|
+
vertical-align:middle;
|
132
|
+
white-space:nowrap;
|
133
|
+
|
134
|
+
> .btn {
|
135
|
+
@include border-radius(0);
|
136
|
+
font-size:14px;
|
137
|
+
position:relative;
|
138
|
+
|
139
|
+
&:first-child {
|
140
|
+
@include border-radius(4px 0 0 4px);
|
141
|
+
margin-left:0;
|
142
|
+
}
|
143
|
+
|
144
|
+
&:last-child {
|
145
|
+
@include border-radius(0 4px 4px 0);
|
146
|
+
}
|
147
|
+
|
148
|
+
& + .btn {
|
149
|
+
margin-left:-1px;
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}
|
@@ -57,42 +57,4 @@ input[type="radio"],
|
|
57
57
|
input[type="checkbox"] {
|
58
58
|
line-height:normal;
|
59
59
|
margin-top:4px;
|
60
|
-
}
|
61
|
-
|
62
|
-
.btn{
|
63
|
-
background-color:#f5f5f5;
|
64
|
-
@include gradient(#fff, #e6e6e6);
|
65
|
-
border-color:rgba(black, 0.1) rgba(black, 0.1) #b3b3b3;
|
66
|
-
border-image:none;
|
67
|
-
@include border-radius(3px);
|
68
|
-
border-style:solid;
|
69
|
-
border-width:1px;
|
70
|
-
@include box-shadow(
|
71
|
-
(0 1px 0 rgba(white, 0.2) inset, 0 1px 2px rgba(black, 0.05))
|
72
|
-
);
|
73
|
-
color:#333;
|
74
|
-
cursor:pointer;
|
75
|
-
display:inline-block;
|
76
|
-
font-size:14px;
|
77
|
-
line-height:20px;
|
78
|
-
margin-bottom:0;
|
79
|
-
padding:4px 12px;
|
80
|
-
text-align:center;
|
81
|
-
text-shadow:0 1px 1px rgba(white, 0.75);
|
82
|
-
vertical-align:middle;
|
83
|
-
&:hover, &:focus{
|
84
|
-
background-position:0 -15px;
|
85
|
-
color:#333;
|
86
|
-
text-decoration:none;
|
87
|
-
@include transition(background-position 0.1s linear 0s);
|
88
|
-
}
|
89
|
-
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
|
90
|
-
background-color:#e6e6e6;
|
91
|
-
}
|
92
|
-
&.disabled, &[disabled] {
|
93
|
-
background-image:none;
|
94
|
-
@include box-shadow(none);
|
95
|
-
cursor:default;
|
96
|
-
opacity:0.65;
|
97
|
-
}
|
98
|
-
}
|
60
|
+
}
|