card 1.15.pre2 → 1.15.0

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.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/card.gemspec +2 -1
  4. data/db/bootstrap/card_actions.yml +476 -518
  5. data/db/bootstrap/card_acts.yml +1 -1
  6. data/db/bootstrap/card_changes.yml +1937 -2172
  7. data/db/bootstrap/card_references.yml +2771 -2862
  8. data/db/bootstrap/cards.yml +1665 -1887
  9. data/db/migrate_core_cards/data/bootstrap_layout.json +1 -1
  10. data/lib/card/reference.rb +1 -1
  11. data/mod/01_core/set/all/collection.rb +1 -2
  12. data/mod/01_history/set/all/history.rb +76 -67
  13. data/mod/02_basic_types/set/all/all_css.rb +1 -1
  14. data/mod/03_machines/lib/javascript/{ace.js → script_ace.js} +0 -0
  15. data/mod/03_machines/lib/javascript/{wagn_menu.js → script_card_menu.js} +0 -0
  16. data/mod/03_machines/lib/javascript/{html5shiv-printshiv.js → script_html5shiv_printshiv.js} +0 -0
  17. data/mod/03_machines/lib/javascript/{jquery.js → script_jquery.js} +0 -0
  18. data/mod/03_machines/lib/javascript/{tinymce.js → script_tinymce.js} +0 -0
  19. data/mod/03_machines/lib/javascript/wagn.js.coffee +1 -4
  20. data/mod/03_machines/lib/stylesheets/style_cards.scss +2 -4
  21. data/mod/03_machines/lib/stylesheets/{jquery-ui-smoothness.css → style_jquery_ui_smoothness.css} +0 -0
  22. data/mod/03_machines/set/self/script_ace.rb +7 -3
  23. data/mod/03_machines/set/self/script_card_menu.rb +2 -7
  24. data/mod/03_machines/set/self/script_html5shiv_printshiv.rb +2 -7
  25. data/mod/03_machines/set/self/script_jquery.rb +2 -8
  26. data/mod/03_machines/set/self/script_jquery_helper.rb +1 -3
  27. data/mod/03_machines/set/self/script_slot.rb +1 -3
  28. data/mod/03_machines/set/self/script_tinymce.rb +2 -8
  29. data/mod/03_machines/set/self/style_bootstrap_compatible.rb +1 -5
  30. data/mod/03_machines/set/self/style_cards.rb +1 -3
  31. data/mod/03_machines/set/self/style_jquery_ui_smoothness.rb +2 -7
  32. data/mod/03_machines/set/type/css.rb +10 -6
  33. data/mod/03_machines/set/type/scss.rb +1 -2
  34. data/mod/04_settings/set/type/setting.rb +1 -1
  35. data/mod/05_email/set/self/follow_defaults.rb +1 -1
  36. data/mod/05_standard/file/favicon/icon-image.png +0 -0
  37. data/mod/05_standard/file/favicon/large-image.png +0 -0
  38. data/mod/05_standard/file/favicon/medium-image.png +0 -0
  39. data/mod/05_standard/file/favicon/original-image.png +0 -0
  40. data/mod/05_standard/file/favicon/small-image.png +0 -0
  41. data/mod/05_standard/set/all/attach.rb +1 -1
  42. data/mod/05_standard/set/all/rich_html/content.rb +1 -1
  43. data/mod/05_standard/set/all/rich_html/editing.rb +4 -4
  44. data/mod/05_standard/set/rstar/rules.rb +2 -2
  45. data/mod/05_standard/set/self/head.rb +3 -4
  46. data/mod/05_standard/set/self/signin.rb +2 -2
  47. data/mod/05_standard/set/type/signup.rb +2 -2
  48. data/mod/05_standard/set/type/user.rb +1 -1
  49. data/mod/06_bootstrap/lib/stylesheets/bootstrap_cards.scss +16 -1
  50. data/mod/06_bootstrap/lib/stylesheets/bootstrap_css.css +1 -1
  51. data/mod/06_bootstrap/lib/stylesheets/bootswatch_mixins.scss +282 -0
  52. data/mod/06_bootstrap/lib/stylesheets/theme_cerulean.css +3227 -2399
  53. data/mod/06_bootstrap/lib/stylesheets/theme_cosmo.css +2 -2
  54. data/mod/06_bootstrap/lib/stylesheets/theme_cyborg.css +2 -2
  55. data/mod/06_bootstrap/lib/stylesheets/theme_darkly.css +2 -2
  56. data/mod/06_bootstrap/lib/stylesheets/theme_flatly.css +2 -2
  57. data/mod/06_bootstrap/lib/stylesheets/theme_journal.css +2 -2
  58. data/mod/06_bootstrap/lib/stylesheets/theme_lumen.css +2 -2
  59. data/mod/06_bootstrap/lib/stylesheets/theme_paper.css +2 -2
  60. data/mod/06_bootstrap/lib/stylesheets/theme_readable.css +2 -2
  61. data/mod/06_bootstrap/lib/stylesheets/theme_sandstone.css +2 -2
  62. data/mod/06_bootstrap/lib/stylesheets/theme_simplex.css +2 -2
  63. data/mod/06_bootstrap/lib/stylesheets/theme_slate.css +2 -2
  64. data/mod/06_bootstrap/lib/stylesheets/theme_spacelab.css +2 -2
  65. data/mod/06_bootstrap/lib/stylesheets/theme_superhero.css +2 -2
  66. data/mod/06_bootstrap/lib/stylesheets/theme_united.css +2 -2
  67. data/mod/06_bootstrap/lib/stylesheets/theme_yeti.css +2 -2
  68. data/mod/06_bootstrap/set/all/bootstrap/form.rb +6 -7
  69. data/mod/06_bootstrap/set/all/rich_bootstrap.rb +2 -2
  70. data/mod/06_bootstrap/set/self/bootstrap_js.rb +1 -3
  71. data/mod/06_bootstrap/set/self/bootswatch_mixins.rb +9 -0
  72. data/mod/06_bootstrap/set/self/theme_cerulean.rb +9 -2
  73. data/mod/06_bootstrap/set/self/theme_cosmo.rb +2 -2
  74. data/mod/06_bootstrap/set/self/theme_cyborg.rb +2 -2
  75. data/mod/06_bootstrap/set/self/theme_darkly.rb +2 -2
  76. data/mod/06_bootstrap/set/self/theme_flatly.rb +2 -2
  77. data/mod/06_bootstrap/set/self/theme_journal.rb +2 -2
  78. data/mod/06_bootstrap/set/self/theme_lumen.rb +2 -2
  79. data/mod/06_bootstrap/set/self/theme_paper.rb +2 -2
  80. data/mod/06_bootstrap/set/self/theme_readable.rb +2 -2
  81. data/mod/06_bootstrap/set/self/theme_sandstone.rb +2 -2
  82. data/mod/06_bootstrap/set/self/theme_simplex.rb +2 -2
  83. data/mod/06_bootstrap/set/self/theme_slate.rb +2 -2
  84. data/mod/06_bootstrap/set/self/theme_spacelab.rb +2 -2
  85. data/mod/06_bootstrap/set/self/theme_superhero.rb +2 -2
  86. data/mod/06_bootstrap/set/self/theme_united.rb +2 -2
  87. data/mod/06_bootstrap/set/self/theme_yeti.rb +2 -2
  88. data/spec/lib/card/log_spec.rb +1 -1
  89. data/spec/lib/card/query_spec.rb +3 -3
  90. data/test/fixtures/card_actions.yml +1124 -1166
  91. data/test/fixtures/card_acts.yml +101 -101
  92. data/test/fixtures/card_changes.yml +5093 -5405
  93. data/test/fixtures/card_references.yml +3224 -3315
  94. data/test/fixtures/cards.yml +2287 -2586
  95. metadata +18 -17
  96. data/mod/05_standard/file/favicon/icon-image.ico +0 -0
  97. data/mod/05_standard/file/favicon/large-image.ico +0 -0
  98. data/mod/05_standard/file/favicon/medium-image.ico +0 -0
  99. data/mod/05_standard/file/favicon/original-image.ico +0 -0
  100. data/mod/05_standard/file/favicon/small-image.ico +0 -0
  101. data/mod/06_bootstrap/lib/stylesheets/theme_amelia.css +0 -5871
  102. data/mod/06_bootstrap/lib/stylesheets/theme_holo.css +0 -183
@@ -1,8 +1,2 @@
1
-
2
- view :raw do |args|
3
- File.read "#{Cardio.gem_root}/mod/03_machines/lib/javascript/tinymce.js"
4
- end
5
-
6
- view :editor do |args|
7
- "Content is stored in file and can't be edited."
8
- end
1
+ format { include ScriptAce::Format }
2
+ format(:html) { include ScriptAce::HtmlFormat }
@@ -2,8 +2,4 @@ view :raw do |args|
2
2
  File.read "#{Cardio.gem_root}/mod/03_machines/lib/stylesheets/#{card.codename}.css"
3
3
  end
4
4
 
5
- format :html do
6
- view :editor do |args|
7
- "Content is stored in file and can't be edited."
8
- end
9
- end
5
+ format(:html) { include ScriptAce::HtmlFormat }
@@ -3,6 +3,4 @@ view :raw do |args|
3
3
  File.read "#{Cardio.gem_root}/mod/03_machines/lib/stylesheets/style_cards.scss"
4
4
  end
5
5
 
6
- view :editor do |args|
7
- "Content is stored in file and can't be edited."
8
- end
6
+ format(:html) { include ScriptAce::HtmlFormat }
@@ -1,8 +1,3 @@
1
+ format { include StyleBootstrapCompatible::Format }
2
+ format(:html) { include ScriptAce::HtmlFormat }
1
3
 
2
- view :raw do |args|
3
- File.read "#{Cardio.gem_root}/mod/03_machines/lib/stylesheets/jquery-ui-smoothness.css"
4
- end
5
-
6
- view :editor do |args|
7
- "Content is stored in file and can't be edited."
8
- end
@@ -5,7 +5,7 @@ include MachineInput
5
5
 
6
6
  store_machine_output :filetype => "css"
7
7
 
8
- machine_input do
8
+ machine_input do
9
9
  compress_css format(:format => :css)._render_core
10
10
  end
11
11
 
@@ -15,28 +15,32 @@ def compress_css input
15
15
  rescue => e
16
16
  raise Card::Oops, "Stylesheet Error:\n#{ e.message }"
17
17
  end
18
- end
18
+ end
19
19
 
20
20
  def clean_html?
21
21
  false
22
22
  end
23
23
 
24
- format do
25
- def chunk_list #turn off autodetection of uri's
24
+ format do
25
+ def chunk_list #turn off autodetection of uri's
26
26
  :references
27
27
  end
28
28
  end
29
29
 
30
30
 
31
31
  format :html do
32
+ def get_inclusion_defaults nested_card
33
+ { :view => :closed }
34
+ end
35
+
32
36
  view :editor, :mod=>PlainText::HtmlFormat
33
-
37
+
34
38
  view :core do |args|
35
39
  # FIXME: scan must happen before process for inclusion interactions to work, but this will likely cause
36
40
  # problems with including other css?
37
41
  process_content ::CodeRay.scan( _render_raw, :css ).div, :size=>:icon
38
42
  end
39
-
43
+
40
44
  view :content_changes, :mod=>CoffeeScript::HtmlFormat
41
45
  end
42
46
 
@@ -4,12 +4,11 @@ def diff_args
4
4
  {:format=>:text}
5
5
  end
6
6
 
7
-
8
7
  format do
9
8
  include Css::Format
10
9
 
11
10
  view :core do |args|
12
- process_content compile_scss(_render_raw)
11
+ compile_scss(process_content _render_raw)
13
12
  end
14
13
 
15
14
  def compile_scss scss, style=:expanded
@@ -72,7 +72,7 @@ view :core do |args|
72
72
  end
73
73
 
74
74
  view :rule_help do |args|
75
- %{<div class="alert alert-info">#{process_content_object "{{+*right+*help}}"}</div>}
75
+ %{<div class="alert alert-info">#{process_content_object "{{+*right+*help|content}}"}</div>}
76
76
  end
77
77
 
78
78
 
@@ -57,7 +57,7 @@ format :html do
57
57
  :card => { :update_all_users => false }
58
58
  )
59
59
  args[:buttons] = %{
60
- #{ button_tag 'Submit and update all users', :disable_with=>'Updating', :class=>'follow-updater' }
60
+ #{ button_tag 'Submit and update all users', :disable_with=>'Updating', :class=>'follow-updater', :situation=>'primary' }
61
61
  #{ button_tag 'Submit', :class=>'follow' }
62
62
  #{ button_tag 'Cancel', :class=>'slotter', :type=>'button', :href=>path(:view=>:edit, :id=>card.id)}
63
63
  }
@@ -1,5 +1,5 @@
1
1
 
2
- require 'RMagick'
2
+ require 'rmagick'
3
3
  require 'paperclip'
4
4
 
5
5
  def attach_array
@@ -40,7 +40,7 @@ format :html do
40
40
  view :titled, :tags=>:comment do |args|
41
41
  wrap args do
42
42
  [
43
- _render_header( args.reverse_merge :optional_menu=>:hide ),
43
+ _render_header( args ),
44
44
  wrap_body( :content=>true ) { _render_core args },
45
45
  optional_render( :comment_box, args )
46
46
  ]
@@ -55,7 +55,7 @@ format :html do
55
55
  end
56
56
 
57
57
  args[:buttons] ||= %{
58
- #{ button_tag 'Submit', :class=>'create-submit-button', :disable_with=>'Submitting' }
58
+ #{ button_tag 'Submit', :class=>'create-submit-button', :disable_with=>'Submitting', :situation=>'primary' }
59
59
  #{ button_tag 'Cancel', :type=>'button', :class=>"create-cancel-button #{cancel[:class]}", :href=>cancel[:href] }
60
60
  }
61
61
 
@@ -75,7 +75,7 @@ format :html do
75
75
  args[:optional_help] = :show
76
76
 
77
77
  args[:buttons] = %{
78
- #{ button_tag 'Submit', :class=>'submit-button', :disable_with=>'Submitting' }
78
+ #{ button_tag 'Submit', :class=>'submit-button', :disable_with=>'Submitting', :situation=>'primary' }
79
79
  #{ button_tag 'Cancel', :class=>'cancel-button slotter', :href=>path, :type=>'button' }
80
80
  }
81
81
  end
@@ -117,7 +117,7 @@ format :html do
117
117
  :card => { :update_referencers => false }
118
118
  )
119
119
  args[:buttons] = %{
120
- #{ button_tag 'Rename and Update', :disable_with=>'Renaming', :class=>'renamer-updater' }
120
+ #{ button_tag 'Rename and Update', :disable_with=>'Renaming', :class=>'renamer-updater', :situation=>'primary' }
121
121
  #{ button_tag 'Rename', :disable_with=>'Renaming', :class=>'renamer' }
122
122
  #{ button_tag 'Cancel', :class=>'slotter', :type=>'button', :href=>path(:view=>:edit, :id=>card.id)}
123
123
  }
@@ -139,7 +139,7 @@ format :html do
139
139
  args[:variety] = :edit #YUCK!
140
140
  args[:hidden] ||= { :view=>:edit }
141
141
  args[:buttons] = %{
142
- #{ button_tag 'Submit', :disable_with=>'Submitting' }
142
+ #{ button_tag 'Submit', :disable_with=>'Submitting', :situation=>'primary' }
143
143
  #{ button_tag 'Cancel', :href=>path(:view=>:edit), :type=>'button', :class=>'slotter' }
144
144
  }
145
145
  end
@@ -65,7 +65,7 @@ format :html do
65
65
  </div>
66
66
 
67
67
  <div class="alert alert-info rule-instruction">
68
- #{ process_content "{{#{setting_name}+*right+*help}}" }
68
+ #{ process_content "{{#{setting_name}+*right+*help|content}}" }
69
69
  </div>
70
70
 
71
71
  <div class="card-body">
@@ -208,7 +208,7 @@ format :html do
208
208
  wrap_with( :div, :class=>'button-area' ) do
209
209
  [
210
210
  delete_button,
211
- button_tag( 'Submit', :class=>'rule-submit-button' ),
211
+ button_tag( 'Submit', :class=>'rule-submit-button', :situation=>'primary' ),
212
212
  button_tag( 'Cancel', :class=>'rule-cancel-button slotter', :type=>'button',
213
213
  :href=>cancel_path, :success=>true )
214
214
  ]
@@ -4,10 +4,10 @@ format :html do
4
4
  %(
5
5
  <meta charset="UTF-8">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
7
- #{ head_title }
7
+ #{ head_title }
8
8
  #{ head_buttons }
9
9
  #{ head_stylesheets }
10
- #{ head_javascript }
10
+ #{ head_javascript }
11
11
  )
12
12
  end
13
13
 
@@ -30,7 +30,7 @@ format :html do
30
30
  bits = []
31
31
  [:favicon, :logo].each do |name|
32
32
  if c = Card[name] and c.type_id == ImageID and !c.db_content.blank?
33
- bits << %{<link rel="shortcut icon" href="#{ subformat(c)._render_source :size=>:icon }" />}
33
+ bits << %{<link rel="shortcut icon" href="#{ subformat(c)._render_source :size=>:small }" />}
34
34
  break
35
35
  end
36
36
  end
@@ -55,7 +55,6 @@ format :html do
55
55
  manual_style = params[:style]
56
56
  style_card = Card[manual_style] if manual_style
57
57
  style_card ||= root.card.rule_card :style
58
-
59
58
  @css_path = if params[:debug] == 'style'
60
59
  page_path( style_card.cardname, :item => :import, :format => :css)
61
60
  elsif style_card
@@ -20,7 +20,7 @@ format :html do
20
20
  end
21
21
 
22
22
  def default_core_args args={}
23
- args[:buttons] = button_tag 'Sign in'
23
+ args[:buttons] = button_tag 'Sign in', :situation=>'primary'
24
24
  if Card.new(:type_id=>Card::SignupID).ok? :create
25
25
  args[:buttons] += link_to( '...or sign up!', card_path("account/signup"))
26
26
  end
@@ -53,7 +53,7 @@ format :html do
53
53
  args.merge!( {
54
54
  :title=>'Forgot Password',
55
55
  :optional_help=>:hide,
56
- :buttons => button_tag( 'Reset my password' ),
56
+ :buttons => button_tag( 'Reset my password', :situation=>'primary' ),
57
57
  :structure => true,
58
58
  :hidden => {
59
59
  :reset_password => true,
@@ -5,7 +5,7 @@ format :html do
5
5
  super args
6
6
  args.merge!(
7
7
  :optional_help => :show, #, :optional_menu=>:never
8
- :buttons => button_tag( 'Submit', :disable_with=>'Submitting' ),
8
+ :buttons => button_tag( 'Submit', :disable_with=>'Submitting', :situation=>'primary' ),
9
9
  :account => card.fetch( :trait=>:account, :new=>{} ),
10
10
  :title => 'Sign up',
11
11
  :hidden => {
@@ -16,7 +16,7 @@ format :html do
16
16
 
17
17
  if Auth.signed_in? and args[:account].confirm_ok?
18
18
  args[:title] = 'Invite'
19
- args[:buttons] = button_tag 'Send Invitation'
19
+ args[:buttons] = button_tag 'Send Invitation', :situation=>'primary'
20
20
  args[:hidden][:success] = '_self'
21
21
  end
22
22
  end
@@ -15,7 +15,7 @@ format :html do
15
15
  :optional_help=>:show,
16
16
  :optional_menu=>:never,
17
17
  :help_text=>help_text,
18
- :buttons => button_tag( 'Set up', :disable_with=>'Setting up' ),
18
+ :buttons => button_tag( 'Set up', :disable_with=>'Setting up', :situation=>'primary' ),
19
19
  :hidden => {
20
20
  :success => "REDIRECT: #{ Card.path_setting '/' }",
21
21
  'card[type_id]' => Card.default_accounted_type_id,
@@ -80,6 +80,18 @@ body.mceContentBody {
80
80
  }
81
81
 
82
82
 
83
+ /*---------- Card menu ------------*/
84
+
85
+ .card-slot > .card-header .card-menu-link {
86
+ display: none;
87
+ }
88
+ .card-slot.closed-view,
89
+ .card-slot:hover {
90
+ > .card-header .card-menu-link {
91
+ display: inline-block;
92
+ }
93
+ }
94
+
83
95
  /*----------- Change View ---------*/
84
96
 
85
97
  .change-view {
@@ -93,7 +105,10 @@ body.mceContentBody {
93
105
  }
94
106
  }
95
107
 
96
-
108
+ .titled-view > .card-header {
109
+ font-size: 1.3em;
110
+ margin: 3px 0
111
+ }
97
112
 
98
113
  /*---------- ( Richtext )-------------*/
99
114
 
@@ -1054,7 +1054,7 @@ th {
1054
1054
  content: "\e259";
1055
1055
  }
1056
1056
  .glyphicon-menu-up:before {
1057
- content: "\e260";
1057
+ content: "\e260";
1058
1058
  }
1059
1059
  * {
1060
1060
  -webkit-box-sizing: border-box;
@@ -0,0 +1,282 @@
1
+ // Gradients
2
+
3
+
4
+
5
+ // Horizontal gradient, from left to right
6
+ //
7
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
8
+ // Color stops are not available in IE9 and below.
9
+ @mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
10
+ background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
11
+ background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
12
+ background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
13
+ background-repeat: repeat-x;
14
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
15
+ }
16
+
17
+ // Vertical gradient, from top to bottom
18
+ //
19
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
20
+ // Color stops are not available in IE9 and below.
21
+ @mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
22
+ background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
23
+ background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Opera 12
24
+ background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
25
+ background-repeat: repeat-x;
26
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
27
+ }
28
+
29
+ @mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
30
+ background-repeat: repeat-x;
31
+ background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
32
+ background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
33
+ background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
34
+ }
35
+ @mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
36
+ background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
37
+ background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
38
+ background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
39
+ background-repeat: no-repeat;
40
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
41
+ }
42
+ @mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
43
+ background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
44
+ background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
45
+ background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
46
+ background-repeat: no-repeat;
47
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
48
+ }
49
+ @mixin gradient-radial($inner-color: #555, $outer-color: #333) {
50
+ background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
51
+ background-image: radial-gradient(circle, $inner-color, $outer-color);
52
+ background-repeat: no-repeat;
53
+ }
54
+ @mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
55
+ background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
56
+ background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
57
+ background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
58
+ }
59
+
60
+
61
+ // Vendor Prefixes
62
+ //
63
+ // All vendor mixins are deprecated as of v3.2.0 due to the introduction of
64
+ // Autoprefixer in our Gruntfile. They will be removed in v4.
65
+
66
+ // - Animations
67
+ // - Backface visibility
68
+ // - Box shadow
69
+ // - Box sizing
70
+ // - Content columns
71
+ // - Hyphens
72
+ // - Placeholder text
73
+ // - Transformations
74
+ // - Transitions
75
+ // - User Select
76
+
77
+
78
+ // Animations
79
+ @mixin animation($animation) {
80
+ -webkit-animation: $animation;
81
+ -o-animation: $animation;
82
+ animation: $animation;
83
+ }
84
+ @mixin animation-name($name) {
85
+ -webkit-animation-name: $name;
86
+ animation-name: $name;
87
+ }
88
+ @mixin animation-duration($duration) {
89
+ -webkit-animation-duration: $duration;
90
+ animation-duration: $duration;
91
+ }
92
+ @mixin animation-timing-function($timing-function) {
93
+ -webkit-animation-timing-function: $timing-function;
94
+ animation-timing-function: $timing-function;
95
+ }
96
+ @mixin animation-delay($delay) {
97
+ -webkit-animation-delay: $delay;
98
+ animation-delay: $delay;
99
+ }
100
+ @mixin animation-iteration-count($iteration-count) {
101
+ -webkit-animation-iteration-count: $iteration-count;
102
+ animation-iteration-count: $iteration-count;
103
+ }
104
+ @mixin animation-direction($direction) {
105
+ -webkit-animation-direction: $direction;
106
+ animation-direction: $direction;
107
+ }
108
+ @mixin animation-fill-mode($fill-mode) {
109
+ -webkit-animation-fill-mode: $fill-mode;
110
+ animation-fill-mode: $fill-mode;
111
+ }
112
+
113
+ // Backface visibility
114
+ // Prevent browsers from flickering when using CSS 3D transforms.
115
+ // Default value is `visible`, but can be changed to `hidden`
116
+
117
+ @mixin backface-visibility($visibility){
118
+ -webkit-backface-visibility: $visibility;
119
+ -moz-backface-visibility: $visibility;
120
+ backface-visibility: $visibility;
121
+ }
122
+
123
+ // Drop shadows
124
+ //
125
+ // Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
126
+ // supported browsers that have box shadow capabilities now support it.
127
+
128
+ @mixin box-shadow($shadow...) {
129
+ -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
130
+ box-shadow: $shadow;
131
+ }
132
+
133
+ // Box sizing
134
+ @mixin box-sizing($boxmodel) {
135
+ -webkit-box-sizing: $boxmodel;
136
+ -moz-box-sizing: $boxmodel;
137
+ box-sizing: $boxmodel;
138
+ }
139
+
140
+ // CSS3 Content Columns
141
+ @mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
142
+ -webkit-column-count: $column-count;
143
+ -moz-column-count: $column-count;
144
+ column-count: $column-count;
145
+ -webkit-column-gap: $column-gap;
146
+ -moz-column-gap: $column-gap;
147
+ column-gap: $column-gap;
148
+ }
149
+
150
+ // Optional hyphenation
151
+ @mixin hyphens($mode: auto) {
152
+ word-wrap: break-word;
153
+ -webkit-hyphens: $mode;
154
+ -moz-hyphens: $mode;
155
+ -ms-hyphens: $mode; // IE10+
156
+ -o-hyphens: $mode;
157
+ hyphens: $mode;
158
+ }
159
+
160
+ // Placeholder text
161
+ @mixin placeholder($color: $input-color-placeholder) {
162
+ // Firefox
163
+ &::-moz-placeholder {
164
+ color: $color;
165
+ opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
166
+ }
167
+ &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
168
+ &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
169
+ }
170
+
171
+ // Transformations
172
+ @mixin scale($ratio...) {
173
+ -webkit-transform: scale($ratio);
174
+ -ms-transform: scale($ratio); // IE9 only
175
+ -o-transform: scale($ratio);
176
+ transform: scale($ratio);
177
+ }
178
+
179
+ @mixin scaleX($ratio) {
180
+ -webkit-transform: scaleX($ratio);
181
+ -ms-transform: scaleX($ratio); // IE9 only
182
+ -o-transform: scaleX($ratio);
183
+ transform: scaleX($ratio);
184
+ }
185
+ @mixin scaleY($ratio) {
186
+ -webkit-transform: scaleY($ratio);
187
+ -ms-transform: scaleY($ratio); // IE9 only
188
+ -o-transform: scaleY($ratio);
189
+ transform: scaleY($ratio);
190
+ }
191
+ @mixin skew($x, $y) {
192
+ -webkit-transform: skewX($x) skewY($y);
193
+ -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
194
+ -o-transform: skewX($x) skewY($y);
195
+ transform: skewX($x) skewY($y);
196
+ }
197
+ @mixin translate($x, $y) {
198
+ -webkit-transform: translate($x, $y);
199
+ -ms-transform: translate($x, $y); // IE9 only
200
+ -o-transform: translate($x, $y);
201
+ transform: translate($x, $y);
202
+ }
203
+ @mixin translate3d($x, $y, $z) {
204
+ -webkit-transform: translate3d($x, $y, $z);
205
+ transform: translate3d($x, $y, $z);
206
+ }
207
+ @mixin rotate($degrees) {
208
+ -webkit-transform: rotate($degrees);
209
+ -ms-transform: rotate($degrees); // IE9 only
210
+ -o-transform: rotate($degrees);
211
+ transform: rotate($degrees);
212
+ }
213
+ @mixin rotateX($degrees) {
214
+ -webkit-transform: rotateX($degrees);
215
+ -ms-transform: rotateX($degrees); // IE9 only
216
+ -o-transform: rotateX($degrees);
217
+ transform: rotateX($degrees);
218
+ }
219
+ @mixin rotateY($degrees) {
220
+ -webkit-transform: rotateY($degrees);
221
+ -ms-transform: rotateY($degrees); // IE9 only
222
+ -o-transform: rotateY($degrees);
223
+ transform: rotateY($degrees);
224
+ }
225
+ @mixin perspective($perspective) {
226
+ -webkit-perspective: $perspective;
227
+ -moz-perspective: $perspective;
228
+ perspective: $perspective;
229
+ }
230
+ @mixin perspective-origin($perspective) {
231
+ -webkit-perspective-origin: $perspective;
232
+ -moz-perspective-origin: $perspective;
233
+ perspective-origin: $perspective;
234
+ }
235
+ @mixin transform-origin($origin) {
236
+ -webkit-transform-origin: $origin;
237
+ -moz-transform-origin: $origin;
238
+ -ms-transform-origin: $origin; // IE9 only
239
+ transform-origin: $origin;
240
+ }
241
+
242
+
243
+ // Transitions
244
+
245
+ @mixin transition($transition...) {
246
+ -webkit-transition: $transition;
247
+ -o-transition: $transition;
248
+ transition: $transition;
249
+ }
250
+ @mixin transition-property($transition-property...) {
251
+ -webkit-transition-property: $transition-property;
252
+ transition-property: $transition-property;
253
+ }
254
+ @mixin transition-delay($transition-delay) {
255
+ -webkit-transition-delay: $transition-delay;
256
+ transition-delay: $transition-delay;
257
+ }
258
+ @mixin transition-duration($transition-duration...) {
259
+ -webkit-transition-duration: $transition-duration;
260
+ transition-duration: $transition-duration;
261
+ }
262
+ @mixin transition-timing-function($timing-function) {
263
+ -webkit-transition-timing-function: $timing-function;
264
+ transition-timing-function: $timing-function;
265
+ }
266
+ @mixin transition-transform($transition...) {
267
+ -webkit-transition: -webkit-transform $transition;
268
+ -moz-transition: -moz-transform $transition;
269
+ -o-transition: -o-transform $transition;
270
+ transition: transform $transition;
271
+ }
272
+
273
+
274
+ // User select
275
+ // For selecting text on the page
276
+
277
+ @mixin user-select($select) {
278
+ -webkit-user-select: $select;
279
+ -moz-user-select: $select;
280
+ -ms-user-select: $select; // IE10+
281
+ user-select: $select;
282
+ }