kosmos 0.0.1 → 0.0.2.pre.test2
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/Gemfile +3 -0
- data/README.md +109 -8
- data/bin/kosmos +6 -79
- data/kosmos.gemspec +4 -1
- data/lib/kosmos.rb +18 -4
- data/lib/kosmos/download_url.rb +4 -0
- data/lib/kosmos/git_adapter.rb +5 -3
- data/lib/kosmos/package.rb +41 -57
- data/lib/kosmos/package_attrs.rb +79 -0
- data/lib/kosmos/package_downloads.rb +80 -0
- data/lib/kosmos/packages/achievements.rb +8 -0
- data/lib/kosmos/packages/active_texture_management.rb +1 -1
- data/lib/kosmos/packages/advanced_animator.rb +9 -0
- data/lib/kosmos/packages/advanced_jet_engine.rb +9 -0
- data/lib/kosmos/packages/aerojet_kerbodyne.rb +9 -0
- data/lib/kosmos/packages/aies_aerospace.rb +9 -0
- data/lib/kosmos/packages/ambient_light_adjustment.rb +9 -0
- data/lib/kosmos/packages/amok_dynamics.rb +9 -0
- data/lib/kosmos/packages/antenna_range.rb +10 -0
- data/lib/kosmos/packages/asmis_eclss_mod.rb +9 -0
- data/lib/kosmos/packages/astronomers_visual_pack.rb +5 -0
- data/lib/kosmos/packages/atmospheric_sound_enhancement.rb +9 -0
- data/lib/kosmos/packages/auto_asparagus.rb +9 -0
- data/lib/kosmos/packages/aviation_lights.rb +9 -0
- data/lib/kosmos/packages/b9_aerospace_pack.rb +11 -0
- data/lib/kosmos/packages/b9_cockpit_extended.rb +9 -0
- data/lib/kosmos/packages/b9_iva_extension.rb +9 -0
- data/lib/kosmos/packages/baha_extraplanetary_parts.rb +9 -0
- data/lib/kosmos/packages/better_rove_mates.rb +9 -0
- data/lib/kosmos/packages/better_than_starting_manned.rb +9 -0
- data/lib/kosmos/packages/bob_catind_soviet_american_packs.rb +10 -0
- data/lib/kosmos/packages/bolt_on_mission_probe.rb +9 -0
- data/lib/kosmos/packages/cargo_transfer_bagsand_tanks.rb +9 -0
- data/lib/kosmos/packages/celestial_body_science_multiplier_editor.rb +9 -0
- data/lib/kosmos/packages/celss_greenhouse.rb +9 -0
- data/lib/kosmos/packages/chatterer.rb +9 -0
- data/lib/kosmos/packages/coffee_industries_modular_airliner.rb +9 -0
- data/lib/kosmos/packages/conics_configurator.rb +9 -0
- data/lib/kosmos/packages/connected_living_space_api.rb +9 -0
- data/lib/kosmos/packages/constellation_essentials.rb +9 -0
- data/lib/kosmos/packages/cross_feed_enabler.rb +9 -0
- data/lib/kosmos/packages/custom_asteroids.rb +9 -0
- data/lib/kosmos/packages/dang_it.rb +9 -0
- data/lib/kosmos/packages/dark_multi_player.rb +10 -0
- data/lib/kosmos/packages/davon_supply.rb +9 -0
- data/lib/kosmos/packages/davon_throttle_controlsystems.rb +9 -0
- data/lib/kosmos/packages/dmagic_orbital_science.rb +9 -0
- data/lib/kosmos/packages/down_under_aerospace.rb +9 -0
- data/lib/kosmos/packages/editor_extensions.rb +9 -0
- data/lib/kosmos/packages/editor_part_highlighter.rb +9 -0
- data/lib/kosmos/packages/engine_ignitor.rb +9 -0
- data/lib/kosmos/packages/fasa.rb +18 -0
- data/lib/kosmos/packages/flight_managerfor_reusable_stages.rb +9 -0
- data/lib/kosmos/packages/fus_tek_station_parts.rb +9 -0
- data/lib/kosmos/packages/fusebox.rb +9 -0
- data/lib/kosmos/packages/gimbal_auto_trim.rb +9 -0
- data/lib/kosmos/packages/ginger_corp_station_hubs.rb +9 -0
- data/lib/kosmos/packages/glow_strips.rb +9 -0
- data/lib/kosmos/packages/habitat_pack.rb +9 -0
- data/lib/kosmos/packages/hangar_extender.rb +9 -0
- data/lib/kosmos/packages/home_grown_rockets.rb +10 -0
- data/lib/kosmos/packages/hooligan_labs.rb +26 -0
- data/lib/kosmos/packages/hullcam_vds.rb +8 -0
- data/lib/kosmos/packages/kerbal_attachment_system.rb +1 -1
- data/lib/kosmos/packages/kerbal_engineer_redux.rb +11 -0
- data/lib/kosmos/packages/launch_countdown.rb +9 -0
- data/lib/kosmos/packages/remote_tech.rb +1 -11
- data/lib/kosmos/packages/void.rb +9 -0
- data/lib/kosmos/user_interface.rb +120 -0
- data/lib/kosmos/util.rb +5 -1
- data/lib/kosmos/version.rb +1 -1
- data/lib/kosmos/versioner.rb +3 -3
- data/lib/kosmos/web/app.rb +36 -0
- data/lib/kosmos/web/public/css/main.css +69 -0
- data/lib/kosmos/web/public/css/normalize.css +527 -0
- data/lib/kosmos/web/public/index.html +107 -0
- data/lib/kosmos/web/public/js/main.js +125 -0
- data/lib/kosmos/web/public/js/plugins.js +24 -0
- data/lib/kosmos/web/public/js/vendor/jquery-1.10.2.min.js +6 -0
- data/lib/kosmos/web/public/js/vendor/modernizr-2.6.2.min.js +4 -0
- data/lib/kosmos/web/public/js/vendor/underscore.js +5 -0
- data/package_generator.rb +197 -0
- data/spec/package_spec.rb +32 -1
- data/spec/spec_helper.rb +6 -0
- data/spec/versioner_spec.rb +2 -21
- metadata +113 -6
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
class String
|
|
2
|
+
def undent
|
|
3
|
+
gsub(/^.{#{slice(/^ +/).length}}/, '')
|
|
4
|
+
end
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
module Kosmos
|
|
8
|
+
module UserInterface
|
|
9
|
+
class << self
|
|
10
|
+
def init(args)
|
|
11
|
+
ksp_path = args.shift
|
|
12
|
+
|
|
13
|
+
Util.log "Initializing Kosmos into #{ksp_path} (This will take a sec) ..."
|
|
14
|
+
|
|
15
|
+
Kosmos::Versioner.init_repo(ksp_path)
|
|
16
|
+
Kosmos.save_ksp_path(ksp_path)
|
|
17
|
+
|
|
18
|
+
Util.log <<-EOS.undent
|
|
19
|
+
Done! You're ready to begin installing mods.
|
|
20
|
+
|
|
21
|
+
Install your first mod by running the command:
|
|
22
|
+
|
|
23
|
+
kosmos install [name-of-the-mod]
|
|
24
|
+
EOS
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def install(args)
|
|
28
|
+
ksp_path = Kosmos.load_ksp_path
|
|
29
|
+
|
|
30
|
+
packages = load_packages(args)
|
|
31
|
+
check_installed_packages(ksp_path, packages)
|
|
32
|
+
|
|
33
|
+
Util.log "Kosmos is about to install #{packages.count} package(s):"
|
|
34
|
+
pretty_print_list(packages.map(&:title))
|
|
35
|
+
|
|
36
|
+
packages.each do |package|
|
|
37
|
+
Util.log "Installing package #{package.title} ..."
|
|
38
|
+
package.new.install!(ksp_path)
|
|
39
|
+
Util.log "Done!"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def uninstall(args)
|
|
44
|
+
ksp_path = Kosmos.load_ksp_path
|
|
45
|
+
|
|
46
|
+
package_name = args.shift
|
|
47
|
+
unless package_name
|
|
48
|
+
Util.log <<-EOS.undent
|
|
49
|
+
Error: You need to specify what package to uninstall. Example:
|
|
50
|
+
kosmos uninstall name-of-the-mod"
|
|
51
|
+
EOS
|
|
52
|
+
|
|
53
|
+
exit
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
package = Kosmos::Package.find(package_name)
|
|
57
|
+
|
|
58
|
+
if package
|
|
59
|
+
Util.log "Preparing to uninstall #{package.title} ..."
|
|
60
|
+
Kosmos::Versioner.uninstall_package(ksp_path, package)
|
|
61
|
+
Util.log "Done! Just uninstalled: #{package.title}."
|
|
62
|
+
else
|
|
63
|
+
Util.log "Error: Kosmos couldn't find any packages with the name #{package_name.inspect}."
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def list(args)
|
|
68
|
+
ksp_path = Kosmos.load_ksp_path
|
|
69
|
+
|
|
70
|
+
packages = Kosmos::Versioner.installed_packages(ksp_path)
|
|
71
|
+
Util.log "You have installed #{packages.length} mod(s) using Kosmos:"
|
|
72
|
+
pretty_print_list(packages)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def server(args)
|
|
76
|
+
Web::App.start!
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
private
|
|
80
|
+
|
|
81
|
+
def pretty_print_list(list)
|
|
82
|
+
list.each { |value| Util.log " * #{value}" }
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def load_packages(package_names)
|
|
86
|
+
packages = Hash[package_names.map do |name|
|
|
87
|
+
[name, Kosmos::Package.find(name)]
|
|
88
|
+
end]
|
|
89
|
+
|
|
90
|
+
unknown_packages = packages.select { |_, package| package.nil? }
|
|
91
|
+
package_suggestions = unknown_packages.map do |name, _|
|
|
92
|
+
best_guess = Kosmos::Package.search(name).normalized_title
|
|
93
|
+
"#{name} (Maybe you meant: #{best_guess.inspect}?)"
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
if unknown_packages.any?
|
|
97
|
+
Util.log "Error: Kosmos couldn't find any packages with the following names:"
|
|
98
|
+
pretty_print_list(package_suggestions)
|
|
99
|
+
exit
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
packages.values
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def check_installed_packages(ksp_path, packages)
|
|
106
|
+
installed_titles = Kosmos::Versioner.installed_packages(ksp_path)
|
|
107
|
+
|
|
108
|
+
installed_packages = packages.select do |package|
|
|
109
|
+
installed_titles.include?(package.title)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
if installed_packages.any?
|
|
113
|
+
Util.log "Error: You have already installed the following packages using Kosmos:"
|
|
114
|
+
pretty_print_list(installed_packages.map(&:title))
|
|
115
|
+
exit
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
data/lib/kosmos/util.rb
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
module Kosmos
|
|
2
2
|
module Util
|
|
3
3
|
def self.log(msg)
|
|
4
|
-
|
|
4
|
+
Kosmos.config.output_method.call(msg) if Kosmos.config.verbose
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.run_post_processors!(ksp_path)
|
|
8
|
+
Kosmos.config.post_processors.each { |p| p.post_process(ksp_path) }
|
|
5
9
|
end
|
|
6
10
|
end
|
|
7
11
|
end
|
data/lib/kosmos/version.rb
CHANGED
data/lib/kosmos/versioner.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'rugged'
|
|
2
|
-
|
|
3
1
|
module Kosmos
|
|
4
2
|
class Versioner
|
|
5
3
|
class << self
|
|
@@ -44,7 +42,9 @@ module Kosmos
|
|
|
44
42
|
commit.post? && commit.subject == package.title
|
|
45
43
|
end
|
|
46
44
|
|
|
47
|
-
GitAdapter.revert_commit(path, to_revert
|
|
45
|
+
GitAdapter.revert_commit(path, to_revert)
|
|
46
|
+
Util.run_post_processors!(path)
|
|
47
|
+
GitAdapter.commit_everything(path, uninstall_message(package))
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
private
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'sinatra'
|
|
2
|
+
|
|
3
|
+
module Kosmos
|
|
4
|
+
module Web
|
|
5
|
+
class App < Sinatra::Application
|
|
6
|
+
set server: 'thin', connection: nil
|
|
7
|
+
|
|
8
|
+
get '/' do
|
|
9
|
+
send_file(File.join(settings.public_folder, 'index.html'))
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
get '/stream', provides: 'text/event-stream' do
|
|
13
|
+
stream :keep_open do |out|
|
|
14
|
+
settings.connection = out
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
post '/' do
|
|
19
|
+
Kosmos.configure do |config|
|
|
20
|
+
config.output_method = Proc.new do |str|
|
|
21
|
+
settings.connection << "data: #{str}\n\n"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
kosmos_params = params[:params].split(' ')
|
|
26
|
+
kosmos_command = %w(init install uninstall list).find do |command|
|
|
27
|
+
command == params[:command]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
UserInterface.send(kosmos_command, kosmos_params)
|
|
31
|
+
|
|
32
|
+
204
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
.main-container {
|
|
2
|
+
text-align: center;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.big-brand h1 {
|
|
6
|
+
font-size: 63px;
|
|
7
|
+
margin-bottom: 0px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.big-brand h2 {
|
|
11
|
+
margin-top: 5px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.underline {
|
|
15
|
+
text-decoration: underline;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.options-row {
|
|
19
|
+
margin-top: 10px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.kosmos-option .btn {
|
|
23
|
+
width: 100%;
|
|
24
|
+
|
|
25
|
+
font-size: 20px;
|
|
26
|
+
font-family: 'Ubuntu Mono';
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.kosmos-option p {
|
|
30
|
+
font-size: 18px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
#cli-row {
|
|
34
|
+
text-align: left;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
#cli-explain {
|
|
38
|
+
font-size: 17px;
|
|
39
|
+
font-style: italic;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#cli {
|
|
43
|
+
font-family: 'Ubuntu Mono';
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
#cli #cli-input {
|
|
47
|
+
font-size: 35px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#cli #cli-input #prompt {
|
|
51
|
+
color: #308EA1;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#cli #cli-input #awaiting-user-input {
|
|
55
|
+
font-style: italic;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
#cli #cli-input #cli-args-input {
|
|
59
|
+
font-size: 30px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
#output-row {
|
|
63
|
+
margin-top: 20px;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#output {
|
|
67
|
+
text-align: left;
|
|
68
|
+
font-size: 15px;
|
|
69
|
+
}
|
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
/*! normalize.css v1.1.3 | MIT License | git.io/normalize */
|
|
2
|
+
|
|
3
|
+
/* ==========================================================================
|
|
4
|
+
HTML5 display definitions
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
article,
|
|
12
|
+
aside,
|
|
13
|
+
details,
|
|
14
|
+
figcaption,
|
|
15
|
+
figure,
|
|
16
|
+
footer,
|
|
17
|
+
header,
|
|
18
|
+
hgroup,
|
|
19
|
+
main,
|
|
20
|
+
nav,
|
|
21
|
+
section,
|
|
22
|
+
summary {
|
|
23
|
+
display: block;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
audio,
|
|
31
|
+
canvas,
|
|
32
|
+
video {
|
|
33
|
+
display: inline-block;
|
|
34
|
+
*display: inline;
|
|
35
|
+
*zoom: 1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Prevent modern browsers from displaying `audio` without controls.
|
|
40
|
+
* Remove excess height in iOS 5 devices.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
audio:not([controls]) {
|
|
44
|
+
display: none;
|
|
45
|
+
height: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
|
|
50
|
+
* Known issue: no IE 6 support.
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
[hidden] {
|
|
54
|
+
display: none;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* ==========================================================================
|
|
58
|
+
Base
|
|
59
|
+
========================================================================== */
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
|
|
63
|
+
* `em` units.
|
|
64
|
+
* 2. Prevent iOS text size adjust after orientation change, without disabling
|
|
65
|
+
* user zoom.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
html {
|
|
69
|
+
font-size: 100%; /* 1 */
|
|
70
|
+
-ms-text-size-adjust: 100%; /* 2 */
|
|
71
|
+
-webkit-text-size-adjust: 100%; /* 2 */
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Address `font-family` inconsistency between `textarea` and other form
|
|
76
|
+
* elements.
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
html,
|
|
80
|
+
button,
|
|
81
|
+
input,
|
|
82
|
+
select,
|
|
83
|
+
textarea {
|
|
84
|
+
font-family: sans-serif;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Address margins handled incorrectly in IE 6/7.
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
body {
|
|
92
|
+
margin: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* ==========================================================================
|
|
96
|
+
Links
|
|
97
|
+
========================================================================== */
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Address `outline` inconsistency between Chrome and other browsers.
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
a:focus {
|
|
104
|
+
outline: thin dotted;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Improve readability when focused and also mouse hovered in all browsers.
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
a:active,
|
|
112
|
+
a:hover {
|
|
113
|
+
outline: 0;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* ==========================================================================
|
|
117
|
+
Typography
|
|
118
|
+
========================================================================== */
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Address font sizes and margins set differently in IE 6/7.
|
|
122
|
+
* Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
|
|
123
|
+
* and Chrome.
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
h1 {
|
|
127
|
+
font-size: 2em;
|
|
128
|
+
margin: 0.67em 0;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
h2 {
|
|
132
|
+
font-size: 1.5em;
|
|
133
|
+
margin: 0.83em 0;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
h3 {
|
|
137
|
+
font-size: 1.17em;
|
|
138
|
+
margin: 1em 0;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
h4 {
|
|
142
|
+
font-size: 1em;
|
|
143
|
+
margin: 1.33em 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
h5 {
|
|
147
|
+
font-size: 0.83em;
|
|
148
|
+
margin: 1.67em 0;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
h6 {
|
|
152
|
+
font-size: 0.67em;
|
|
153
|
+
margin: 2.33em 0;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Address styling not present in IE 7/8/9, Safari 5, and Chrome.
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
abbr[title] {
|
|
161
|
+
border-bottom: 1px dotted;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
|
|
166
|
+
*/
|
|
167
|
+
|
|
168
|
+
b,
|
|
169
|
+
strong {
|
|
170
|
+
font-weight: bold;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
blockquote {
|
|
174
|
+
margin: 1em 40px;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Address styling not present in Safari 5 and Chrome.
|
|
179
|
+
*/
|
|
180
|
+
|
|
181
|
+
dfn {
|
|
182
|
+
font-style: italic;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Address differences between Firefox and other browsers.
|
|
187
|
+
* Known issue: no IE 6/7 normalization.
|
|
188
|
+
*/
|
|
189
|
+
|
|
190
|
+
hr {
|
|
191
|
+
-moz-box-sizing: content-box;
|
|
192
|
+
box-sizing: content-box;
|
|
193
|
+
height: 0;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Address styling not present in IE 6/7/8/9.
|
|
198
|
+
*/
|
|
199
|
+
|
|
200
|
+
mark {
|
|
201
|
+
background: #ff0;
|
|
202
|
+
color: #000;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Address margins set differently in IE 6/7.
|
|
207
|
+
*/
|
|
208
|
+
|
|
209
|
+
p,
|
|
210
|
+
pre {
|
|
211
|
+
margin: 1em 0;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
|
|
216
|
+
*/
|
|
217
|
+
|
|
218
|
+
code,
|
|
219
|
+
kbd,
|
|
220
|
+
pre,
|
|
221
|
+
samp {
|
|
222
|
+
font-family: monospace, serif;
|
|
223
|
+
_font-family: 'courier new', monospace;
|
|
224
|
+
font-size: 1em;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Improve readability of pre-formatted text in all browsers.
|
|
229
|
+
*/
|
|
230
|
+
|
|
231
|
+
pre {
|
|
232
|
+
white-space: pre;
|
|
233
|
+
white-space: pre-wrap;
|
|
234
|
+
word-wrap: break-word;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Address CSS quotes not supported in IE 6/7.
|
|
239
|
+
*/
|
|
240
|
+
|
|
241
|
+
q {
|
|
242
|
+
quotes: none;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Address `quotes` property not supported in Safari 4.
|
|
247
|
+
*/
|
|
248
|
+
|
|
249
|
+
q:before,
|
|
250
|
+
q:after {
|
|
251
|
+
content: '';
|
|
252
|
+
content: none;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Address inconsistent and variable font size in all browsers.
|
|
257
|
+
*/
|
|
258
|
+
|
|
259
|
+
small {
|
|
260
|
+
font-size: 80%;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
|
265
|
+
*/
|
|
266
|
+
|
|
267
|
+
sub,
|
|
268
|
+
sup {
|
|
269
|
+
font-size: 75%;
|
|
270
|
+
line-height: 0;
|
|
271
|
+
position: relative;
|
|
272
|
+
vertical-align: baseline;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
sup {
|
|
276
|
+
top: -0.5em;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
sub {
|
|
280
|
+
bottom: -0.25em;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* ==========================================================================
|
|
284
|
+
Lists
|
|
285
|
+
========================================================================== */
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Address margins set differently in IE 6/7.
|
|
289
|
+
*/
|
|
290
|
+
|
|
291
|
+
dl,
|
|
292
|
+
menu,
|
|
293
|
+
ol,
|
|
294
|
+
ul {
|
|
295
|
+
margin: 1em 0;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
dd {
|
|
299
|
+
margin: 0 0 0 40px;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Address paddings set differently in IE 6/7.
|
|
304
|
+
*/
|
|
305
|
+
|
|
306
|
+
menu,
|
|
307
|
+
ol,
|
|
308
|
+
ul {
|
|
309
|
+
padding: 0 0 0 40px;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Correct list images handled incorrectly in IE 7.
|
|
314
|
+
*/
|
|
315
|
+
|
|
316
|
+
nav ul,
|
|
317
|
+
nav ol {
|
|
318
|
+
list-style: none;
|
|
319
|
+
list-style-image: none;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/* ==========================================================================
|
|
323
|
+
Embedded content
|
|
324
|
+
========================================================================== */
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
|
|
328
|
+
* 2. Improve image quality when scaled in IE 7.
|
|
329
|
+
*/
|
|
330
|
+
|
|
331
|
+
img {
|
|
332
|
+
border: 0; /* 1 */
|
|
333
|
+
-ms-interpolation-mode: bicubic; /* 2 */
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Correct overflow displayed oddly in IE 9.
|
|
338
|
+
*/
|
|
339
|
+
|
|
340
|
+
svg:not(:root) {
|
|
341
|
+
overflow: hidden;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
/* ==========================================================================
|
|
345
|
+
Figures
|
|
346
|
+
========================================================================== */
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
|
|
350
|
+
*/
|
|
351
|
+
|
|
352
|
+
figure {
|
|
353
|
+
margin: 0;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/* ==========================================================================
|
|
357
|
+
Forms
|
|
358
|
+
========================================================================== */
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* Correct margin displayed oddly in IE 6/7.
|
|
362
|
+
*/
|
|
363
|
+
|
|
364
|
+
form {
|
|
365
|
+
margin: 0;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Define consistent border, margin, and padding.
|
|
370
|
+
*/
|
|
371
|
+
|
|
372
|
+
fieldset {
|
|
373
|
+
border: 1px solid #c0c0c0;
|
|
374
|
+
margin: 0 2px;
|
|
375
|
+
padding: 0.35em 0.625em 0.75em;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* 1. Correct color not being inherited in IE 6/7/8/9.
|
|
380
|
+
* 2. Correct text not wrapping in Firefox 3.
|
|
381
|
+
* 3. Correct alignment displayed oddly in IE 6/7.
|
|
382
|
+
*/
|
|
383
|
+
|
|
384
|
+
legend {
|
|
385
|
+
border: 0; /* 1 */
|
|
386
|
+
padding: 0;
|
|
387
|
+
white-space: normal; /* 2 */
|
|
388
|
+
*margin-left: -7px; /* 3 */
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* 1. Correct font size not being inherited in all browsers.
|
|
393
|
+
* 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
|
|
394
|
+
* and Chrome.
|
|
395
|
+
* 3. Improve appearance and consistency in all browsers.
|
|
396
|
+
*/
|
|
397
|
+
|
|
398
|
+
button,
|
|
399
|
+
input,
|
|
400
|
+
select,
|
|
401
|
+
textarea {
|
|
402
|
+
font-size: 100%; /* 1 */
|
|
403
|
+
margin: 0; /* 2 */
|
|
404
|
+
vertical-align: baseline; /* 3 */
|
|
405
|
+
*vertical-align: middle; /* 3 */
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Address Firefox 3+ setting `line-height` on `input` using `!important` in
|
|
410
|
+
* the UA stylesheet.
|
|
411
|
+
*/
|
|
412
|
+
|
|
413
|
+
button,
|
|
414
|
+
input {
|
|
415
|
+
line-height: normal;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Address inconsistent `text-transform` inheritance for `button` and `select`.
|
|
420
|
+
* All other form control elements do not inherit `text-transform` values.
|
|
421
|
+
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
|
|
422
|
+
* Correct `select` style inheritance in Firefox 4+ and Opera.
|
|
423
|
+
*/
|
|
424
|
+
|
|
425
|
+
button,
|
|
426
|
+
select {
|
|
427
|
+
text-transform: none;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
|
432
|
+
* and `video` controls.
|
|
433
|
+
* 2. Correct inability to style clickable `input` types in iOS.
|
|
434
|
+
* 3. Improve usability and consistency of cursor style between image-type
|
|
435
|
+
* `input` and others.
|
|
436
|
+
* 4. Remove inner spacing in IE 7 without affecting normal text inputs.
|
|
437
|
+
* Known issue: inner spacing remains in IE 6.
|
|
438
|
+
*/
|
|
439
|
+
|
|
440
|
+
button,
|
|
441
|
+
html input[type="button"], /* 1 */
|
|
442
|
+
input[type="reset"],
|
|
443
|
+
input[type="submit"] {
|
|
444
|
+
-webkit-appearance: button; /* 2 */
|
|
445
|
+
cursor: pointer; /* 3 */
|
|
446
|
+
*overflow: visible; /* 4 */
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* Re-set default cursor for disabled elements.
|
|
451
|
+
*/
|
|
452
|
+
|
|
453
|
+
button[disabled],
|
|
454
|
+
html input[disabled] {
|
|
455
|
+
cursor: default;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* 1. Address box sizing set to content-box in IE 8/9.
|
|
460
|
+
* 2. Remove excess padding in IE 8/9.
|
|
461
|
+
* 3. Remove excess padding in IE 7.
|
|
462
|
+
* Known issue: excess padding remains in IE 6.
|
|
463
|
+
*/
|
|
464
|
+
|
|
465
|
+
input[type="checkbox"],
|
|
466
|
+
input[type="radio"] {
|
|
467
|
+
box-sizing: border-box; /* 1 */
|
|
468
|
+
padding: 0; /* 2 */
|
|
469
|
+
*height: 13px; /* 3 */
|
|
470
|
+
*width: 13px; /* 3 */
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
|
|
475
|
+
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
|
|
476
|
+
* (include `-moz` to future-proof).
|
|
477
|
+
*/
|
|
478
|
+
|
|
479
|
+
input[type="search"] {
|
|
480
|
+
-webkit-appearance: textfield; /* 1 */
|
|
481
|
+
-moz-box-sizing: content-box;
|
|
482
|
+
-webkit-box-sizing: content-box; /* 2 */
|
|
483
|
+
box-sizing: content-box;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Remove inner padding and search cancel button in Safari 5 and Chrome
|
|
488
|
+
* on OS X.
|
|
489
|
+
*/
|
|
490
|
+
|
|
491
|
+
input[type="search"]::-webkit-search-cancel-button,
|
|
492
|
+
input[type="search"]::-webkit-search-decoration {
|
|
493
|
+
-webkit-appearance: none;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Remove inner padding and border in Firefox 3+.
|
|
498
|
+
*/
|
|
499
|
+
|
|
500
|
+
button::-moz-focus-inner,
|
|
501
|
+
input::-moz-focus-inner {
|
|
502
|
+
border: 0;
|
|
503
|
+
padding: 0;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
/**
|
|
507
|
+
* 1. Remove default vertical scrollbar in IE 6/7/8/9.
|
|
508
|
+
* 2. Improve readability and alignment in all browsers.
|
|
509
|
+
*/
|
|
510
|
+
|
|
511
|
+
textarea {
|
|
512
|
+
overflow: auto; /* 1 */
|
|
513
|
+
vertical-align: top; /* 2 */
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/* ==========================================================================
|
|
517
|
+
Tables
|
|
518
|
+
========================================================================== */
|
|
519
|
+
|
|
520
|
+
/**
|
|
521
|
+
* Remove most spacing between table cells.
|
|
522
|
+
*/
|
|
523
|
+
|
|
524
|
+
table {
|
|
525
|
+
border-collapse: collapse;
|
|
526
|
+
border-spacing: 0;
|
|
527
|
+
}
|