maily 0.7.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +3 -1
- data/app/assets/stylesheets/maily/application.scss +2 -1
- data/app/controllers/maily/emails_controller.rb +1 -1
- data/app/views/maily/shared/_sidebar.html.erb +2 -2
- data/lib/generators/maily/install_generator.rb +5 -19
- data/lib/maily.rb +4 -1
- data/lib/maily/email.rb +7 -8
- data/lib/maily/generator.rb +26 -0
- data/lib/maily/mailer.rb +8 -0
- data/lib/maily/version.rb +1 -1
- data/screenshot.png +0 -0
- data/spec/dummy/app/mailers/notifier.rb +8 -0
- data/spec/dummy/app/views/notifier/multipart.html.erb +1 -0
- data/spec/dummy/app/views/notifier/multipart.text.erb +1 -0
- data/spec/dummy/app/views/notifier/with_slim_template.html.slim +1 -0
- data/spec/email_spec.rb +21 -1
- data/spec/generator_spec.rb +14 -0
- data/spec/mailer_spec.rb +19 -2
- data/spec/maily_spec.rb +11 -9
- metadata +11 -3
- data/app/assets/stylesheets/maily/normalize.css +0 -341
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 50e254d6048356a08a30e2175e4bc1809c9cccc7
|
4
|
+
data.tar.gz: 799e7de87f596fe17ed4981f8025ee1156639e4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c870ea516edd08cfb71cb46519784009e0945b905ff6e85fdb559468042bffae144bf7c8227e9555cb4415164481f6b3c3d76f22124a7bc61905db3ad91236f
|
7
|
+
data.tar.gz: 17dd9afc7e7b4024bb1789771c07a0946e32d8a70b150560b1ec365c31b4cb46661bcb3a87d11ce10e595bbfd814e9dfd5f4f8de01d12c97d2a34d04bd2d7560
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
+
## [0.7.2]
|
6
|
+
|
7
|
+
- Definitive fix for newer apps using `webpacker` and without `sass-rails` (#22)
|
8
|
+
- Fix regression in generator, from v0.7.0 (#24)
|
9
|
+
- Allow to edit emails with different templates engines: Slim, Haml, ... (#25)
|
10
|
+
|
5
11
|
## [0.7.1]
|
6
12
|
|
7
13
|
- Fix assets pipeline integration for applications using `webpacker` instead of `sprockets` (#22)
|
@@ -79,6 +85,7 @@ All notable changes to this project will be documented in this file.
|
|
79
85
|
|
80
86
|
- First real usable release :tada:
|
81
87
|
|
88
|
+
[0.7.2]: https://github.com/markets/maily/compare/v0.7.1...v0.7.2
|
82
89
|
[0.7.1]: https://github.com/markets/maily/compare/v0.7.0...v0.7.1
|
83
90
|
[0.7.0]: https://github.com/markets/maily/compare/v0.6.3...v0.7.0
|
84
91
|
[0.6.3]: https://github.com/markets/maily/compare/v0.6.2...v0.6.3
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Maily
|
2
2
|
|
3
|
-
[![Gem Version](https://badge.fury.io/rb/maily.svg)](http://badge.fury.io/rb/maily)
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/maily.svg)](http://badge.fury.io/rb/maily)
|
4
|
+
[![Build Status](https://travis-ci.org/markets/maily.svg?branch=master)](https://travis-ci.org/markets/maily)
|
5
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/fff01b2137fd73070b14/maintainability)](https://codeclimate.com/github/markets/maily/maintainability)
|
4
6
|
|
5
7
|
Maily is a Rails Engine to manage, test and navigate through all your email templates of your app, being able to preview them directly in your browser.
|
6
8
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<aside class="sidebar">
|
2
|
-
<% @mailers.
|
2
|
+
<% @mailers.each do |mailer| %>
|
3
3
|
<section class="nav_list">
|
4
4
|
<h3 class="nav_title"><%= "#{mailer.name.humanize} (#{mailer.total_emails})" %></h3>
|
5
5
|
<ul>
|
6
|
-
<% mailer.
|
6
|
+
<% mailer.emails_list.each do |email| %>
|
7
7
|
<li><%= link_to email.name.humanize, maily_email_path(mailer: mailer.name, email: email.name), class: sidebar_class(mailer, email) %></li>
|
8
8
|
<% end %>
|
9
9
|
</ul>
|
@@ -5,9 +5,11 @@ module Maily
|
|
5
5
|
source_root File.expand_path("../../templates", __FILE__)
|
6
6
|
|
7
7
|
def install
|
8
|
+
puts "==> Installing Maily components ..."
|
8
9
|
generate_routing
|
9
|
-
|
10
|
+
copy_initializer
|
10
11
|
build_hooks
|
12
|
+
puts "Ready! You can now access Maily at /maily"
|
11
13
|
end
|
12
14
|
|
13
15
|
private
|
@@ -16,29 +18,13 @@ module Maily
|
|
16
18
|
route "mount Maily::Engine, at: '/maily'"
|
17
19
|
end
|
18
20
|
|
19
|
-
def
|
21
|
+
def copy_initializer
|
20
22
|
template 'initializer.rb', 'config/initializers/maily.rb'
|
21
23
|
end
|
22
24
|
|
23
25
|
def build_hooks
|
24
|
-
Maily.init!
|
25
|
-
|
26
|
-
fixtures = []
|
27
|
-
hooks = []
|
28
|
-
|
29
|
-
Maily::Mailer.all.each do |mailer|
|
30
|
-
hooks << "\nMaily.hooks_for('#{mailer.name.classify}') do |mailer|"
|
31
|
-
mailer.emails.each do |email|
|
32
|
-
if email.require_hook?
|
33
|
-
fixtures << email.required_arguments
|
34
|
-
hooks << " mailer.register_hook(:#{email.name}, #{email.required_arguments.join(', ')})"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
hooks << "end"
|
38
|
-
end
|
39
|
-
|
40
26
|
create_file "lib/maily_hooks.rb" do
|
41
|
-
|
27
|
+
Maily::Generator.run
|
42
28
|
end
|
43
29
|
end
|
44
30
|
end
|
data/lib/maily.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
require 'maily/engine'
|
2
1
|
require 'maily/version'
|
2
|
+
require 'maily/engine'
|
3
3
|
require 'maily/mailer'
|
4
4
|
require 'maily/email'
|
5
|
+
require 'maily/generator'
|
5
6
|
|
6
7
|
module Maily
|
7
8
|
class << self
|
@@ -33,6 +34,8 @@ module Maily
|
|
33
34
|
|
34
35
|
def hooks_for(mailer_name)
|
35
36
|
mailer = Maily::Mailer.find(mailer_name.underscore)
|
37
|
+
return unless mailer
|
38
|
+
|
36
39
|
yield(mailer) if block_given?
|
37
40
|
end
|
38
41
|
|
data/lib/maily/email.rb
CHANGED
@@ -76,18 +76,17 @@ module Maily
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def base_path(part)
|
79
|
-
"#{Rails.root}/app/views/#{template_path}/#{template_name}.#{part}.
|
79
|
+
Dir["#{Rails.root}/app/views/#{template_path}/#{template_name}.#{part}.*"].first
|
80
80
|
end
|
81
81
|
|
82
82
|
def path(part = nil)
|
83
|
-
if part
|
84
|
-
|
83
|
+
return base_path(part) if part
|
84
|
+
|
85
|
+
html_part = base_path('html')
|
86
|
+
if html_part && File.exist?(html_part)
|
87
|
+
html_part
|
85
88
|
else
|
86
|
-
|
87
|
-
base_path('html')
|
88
|
-
else
|
89
|
-
base_path('text')
|
90
|
-
end
|
89
|
+
base_path('text')
|
91
90
|
end
|
92
91
|
end
|
93
92
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Maily
|
2
|
+
module Generator
|
3
|
+
def self.run
|
4
|
+
Maily.init!
|
5
|
+
|
6
|
+
fixtures = []
|
7
|
+
hooks = []
|
8
|
+
|
9
|
+
Maily::Mailer.list.each do |mailer|
|
10
|
+
hooks << "\nMaily.hooks_for('#{mailer.name.classify}') do |mailer|"
|
11
|
+
mailer.emails_list.each do |email|
|
12
|
+
if email.require_hook?
|
13
|
+
fixtures << email.required_arguments
|
14
|
+
hooks << " mailer.register_hook(:#{email.name}, #{email.required_arguments.join(', ')})"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
hooks << "end"
|
18
|
+
end
|
19
|
+
|
20
|
+
fixtures = fixtures.flatten.uniq.map { |f| "#{f.to_s} = ''" }.join("\n")
|
21
|
+
hooks = hooks.join("\n")
|
22
|
+
|
23
|
+
fixtures + "\n" + hooks + "\n"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/maily/mailer.rb
CHANGED
@@ -19,6 +19,10 @@ module Maily
|
|
19
19
|
collection
|
20
20
|
end
|
21
21
|
|
22
|
+
def self.list
|
23
|
+
all.values.sort_by(&:name)
|
24
|
+
end
|
25
|
+
|
22
26
|
def self.find(mailer_name)
|
23
27
|
all[mailer_name]
|
24
28
|
end
|
@@ -27,6 +31,10 @@ module Maily
|
|
27
31
|
emails[email_name.to_s]
|
28
32
|
end
|
29
33
|
|
34
|
+
def emails_list
|
35
|
+
emails.values.sort_by(&:name)
|
36
|
+
end
|
37
|
+
|
30
38
|
def total_emails
|
31
39
|
emails.size
|
32
40
|
end
|
data/lib/maily/version.rb
CHANGED
data/screenshot.png
CHANGED
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<h1>Multipart HTML</h1>
|
@@ -0,0 +1 @@
|
|
1
|
+
Multipart plain text
|
@@ -0,0 +1 @@
|
|
1
|
+
p Hi from a Slim template
|
data/spec/email_spec.rb
CHANGED
@@ -31,6 +31,7 @@ describe Maily::Email do
|
|
31
31
|
|
32
32
|
it 'should handle not lazy arguments successfully' do
|
33
33
|
allow(email).to receive(:email).and_return('foo@foo.com')
|
34
|
+
|
34
35
|
expect(email.arguments).to be_present
|
35
36
|
expect(email.arguments.size).to eq(email.required_arguments.size)
|
36
37
|
end
|
@@ -42,20 +43,23 @@ describe Maily::Email do
|
|
42
43
|
|
43
44
|
it "should handle template_path via hook" do
|
44
45
|
email = mailer.find_email('recommendation')
|
46
|
+
|
45
47
|
expect(email.template_path).to eq('notifications')
|
46
48
|
end
|
47
49
|
|
48
50
|
it "should handle template_name via hook" do
|
49
51
|
email = mailer.find_email('custom_template_name')
|
52
|
+
|
50
53
|
expect(email.template_name).to eq('invitation')
|
51
54
|
end
|
52
55
|
|
53
56
|
it "should handle description via hook" do
|
54
57
|
email = mailer.find_email('recommendation')
|
58
|
+
|
55
59
|
expect(email.description).to eq('description')
|
56
60
|
end
|
57
61
|
|
58
|
-
describe 'validate_arguments' do
|
62
|
+
describe '#validate_arguments' do
|
59
63
|
it 'emails with no arguments required' do
|
60
64
|
email = mailer.find_email('welcome')
|
61
65
|
expect(email.validate_arguments).to eq [true, nil]
|
@@ -72,4 +76,20 @@ describe Maily::Email do
|
|
72
76
|
expect(email.validate_arguments[1]).to eq("recommendation email requires at least 1 arguments, passed 0")
|
73
77
|
end
|
74
78
|
end
|
79
|
+
|
80
|
+
describe '#path' do
|
81
|
+
it 'with a multipart email defaults to html' do
|
82
|
+
email = mailer.find_email('multipart')
|
83
|
+
|
84
|
+
expect(email.path).to include('multipart.html.erb')
|
85
|
+
expect(email.path('text')).to include('multipart.text.erb')
|
86
|
+
expect(email.path('foo')).to eq nil
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'with other template engines (e.g. Slim)' do
|
90
|
+
email = mailer.find_email('with_slim_template')
|
91
|
+
|
92
|
+
expect(email.path).to include('with_slim_template.html.slim')
|
93
|
+
end
|
94
|
+
end
|
75
95
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Maily::Generator do
|
4
|
+
it '.run generates valid fixtures and hooks for current application' do
|
5
|
+
expect(Maily::Generator.run).to eq <<-HOOKS.strip_heredoc
|
6
|
+
email = ''
|
7
|
+
|
8
|
+
Maily.hooks_for('Notifier') do |mailer|
|
9
|
+
mailer.register_hook(:invitation, email)
|
10
|
+
mailer.register_hook(:recommendation, email)
|
11
|
+
end
|
12
|
+
HOOKS
|
13
|
+
end
|
14
|
+
end
|
data/spec/mailer_spec.rb
CHANGED
@@ -2,12 +2,13 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Maily::Mailer do
|
4
4
|
it "should load mailers" do
|
5
|
-
expect(Maily::Mailer.all.
|
5
|
+
expect(Maily::Mailer.all.keys).to eq(['notifier'])
|
6
6
|
end
|
7
7
|
|
8
8
|
it "should build emails" do
|
9
9
|
mailer = Maily::Mailer.find('notifier')
|
10
|
-
|
10
|
+
|
11
|
+
expect(mailer.emails.size).to eq(6)
|
11
12
|
end
|
12
13
|
|
13
14
|
it "should find mailers by name" do
|
@@ -16,11 +17,27 @@ describe Maily::Mailer do
|
|
16
17
|
|
17
18
|
it "should find emails by name" do
|
18
19
|
mailer = Maily::Mailer.find('notifier')
|
20
|
+
|
19
21
|
expect(mailer.find_email('welcome').name).to eq('welcome')
|
20
22
|
end
|
21
23
|
|
22
24
|
it "allows to hide email" do
|
23
25
|
mailer = Maily::Mailer.find('notifier')
|
26
|
+
|
24
27
|
expect(mailer.find_email('hidden')).to be nil
|
25
28
|
end
|
29
|
+
|
30
|
+
it ".list returns an array with all mailers" do
|
31
|
+
list = Maily::Mailer.list
|
32
|
+
|
33
|
+
expect(list).to be_an_instance_of(Array)
|
34
|
+
expect(list.sample).to be_an_instance_of(Maily::Mailer)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "#emails_list returns an array with all emails" do
|
38
|
+
mailer = Maily::Mailer.find('notifier')
|
39
|
+
|
40
|
+
expect(mailer.emails_list).to be_an_instance_of(Array)
|
41
|
+
expect(mailer.emails_list.sample).to be_an_instance_of(Maily::Email)
|
42
|
+
end
|
26
43
|
end
|
data/spec/maily_spec.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Maily do
|
4
|
-
it "should initialize with some defaults if no block is provided" do
|
4
|
+
it "#setup should initialize with some defaults if no block is provided" do
|
5
5
|
Maily.setup
|
6
6
|
|
7
7
|
expect(Maily.enabled).to be true
|
@@ -12,16 +12,18 @@ describe Maily do
|
|
12
12
|
expect(Maily.http_authorization).to be nil
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
describe '#allowed_action?' do
|
16
|
+
it "should not allow edition if edition is disabled" do
|
17
|
+
Maily.allow_edition = false
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
|
19
|
+
expect(Maily.allowed_action?(:edit)).to be false
|
20
|
+
expect(Maily.allowed_action?(:update)).to be false
|
21
|
+
end
|
21
22
|
|
22
|
-
|
23
|
-
|
23
|
+
it "should not allow delivery if delivery is disabled" do
|
24
|
+
Maily.allow_delivery = false
|
24
25
|
|
25
|
-
|
26
|
+
expect(Maily.allowed_action?(:deliver)).to be false
|
27
|
+
end
|
26
28
|
end
|
27
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maily
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- markets
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -103,7 +103,6 @@ files:
|
|
103
103
|
- app/assets/javascripts/maily/application.js
|
104
104
|
- app/assets/stylesheets/maily/_variables.scss
|
105
105
|
- app/assets/stylesheets/maily/application.scss
|
106
|
-
- app/assets/stylesheets/maily/normalize.css
|
107
106
|
- app/controllers/maily/application_controller.rb
|
108
107
|
- app/controllers/maily/emails_controller.rb
|
109
108
|
- app/helpers/maily/application_helper.rb
|
@@ -126,6 +125,7 @@ files:
|
|
126
125
|
- lib/maily.rb
|
127
126
|
- lib/maily/email.rb
|
128
127
|
- lib/maily/engine.rb
|
128
|
+
- lib/maily/generator.rb
|
129
129
|
- lib/maily/mailer.rb
|
130
130
|
- lib/maily/version.rb
|
131
131
|
- maily.gemspec
|
@@ -145,7 +145,10 @@ files:
|
|
145
145
|
- spec/dummy/app/views/layouts/application.html.erb
|
146
146
|
- spec/dummy/app/views/notifications/recommendation.html.erb
|
147
147
|
- spec/dummy/app/views/notifier/invitation.html.erb
|
148
|
+
- spec/dummy/app/views/notifier/multipart.html.erb
|
149
|
+
- spec/dummy/app/views/notifier/multipart.text.erb
|
148
150
|
- spec/dummy/app/views/notifier/welcome.html.erb
|
151
|
+
- spec/dummy/app/views/notifier/with_slim_template.html.slim
|
149
152
|
- spec/dummy/bin/bundle
|
150
153
|
- spec/dummy/bin/rails
|
151
154
|
- spec/dummy/bin/rake
|
@@ -173,6 +176,7 @@ files:
|
|
173
176
|
- spec/dummy/public/500.html
|
174
177
|
- spec/dummy/public/favicon.ico
|
175
178
|
- spec/email_spec.rb
|
179
|
+
- spec/generator_spec.rb
|
176
180
|
- spec/mailer_spec.rb
|
177
181
|
- spec/maily_spec.rb
|
178
182
|
- spec/spec_helper.rb
|
@@ -216,7 +220,10 @@ test_files:
|
|
216
220
|
- spec/dummy/app/views/layouts/application.html.erb
|
217
221
|
- spec/dummy/app/views/notifications/recommendation.html.erb
|
218
222
|
- spec/dummy/app/views/notifier/invitation.html.erb
|
223
|
+
- spec/dummy/app/views/notifier/multipart.html.erb
|
224
|
+
- spec/dummy/app/views/notifier/multipart.text.erb
|
219
225
|
- spec/dummy/app/views/notifier/welcome.html.erb
|
226
|
+
- spec/dummy/app/views/notifier/with_slim_template.html.slim
|
220
227
|
- spec/dummy/bin/bundle
|
221
228
|
- spec/dummy/bin/rails
|
222
229
|
- spec/dummy/bin/rake
|
@@ -244,6 +251,7 @@ test_files:
|
|
244
251
|
- spec/dummy/public/500.html
|
245
252
|
- spec/dummy/public/favicon.ico
|
246
253
|
- spec/email_spec.rb
|
254
|
+
- spec/generator_spec.rb
|
247
255
|
- spec/mailer_spec.rb
|
248
256
|
- spec/maily_spec.rb
|
249
257
|
- spec/spec_helper.rb
|
@@ -1,341 +0,0 @@
|
|
1
|
-
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
|
2
|
-
|
3
|
-
/* Document
|
4
|
-
========================================================================== */
|
5
|
-
|
6
|
-
/**
|
7
|
-
* 1. Correct the line height in all browsers.
|
8
|
-
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
9
|
-
*/
|
10
|
-
|
11
|
-
html {
|
12
|
-
line-height: 1.15; /* 1 */
|
13
|
-
-webkit-text-size-adjust: 100%; /* 2 */
|
14
|
-
}
|
15
|
-
|
16
|
-
/* Sections
|
17
|
-
========================================================================== */
|
18
|
-
|
19
|
-
/**
|
20
|
-
* Remove the margin in all browsers.
|
21
|
-
*/
|
22
|
-
|
23
|
-
body {
|
24
|
-
margin: 0;
|
25
|
-
}
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Correct the font size and margin on `h1` elements within `section` and
|
29
|
-
* `article` contexts in Chrome, Firefox, and Safari.
|
30
|
-
*/
|
31
|
-
|
32
|
-
h1 {
|
33
|
-
font-size: 2em;
|
34
|
-
margin: 0.67em 0;
|
35
|
-
}
|
36
|
-
|
37
|
-
/* Grouping content
|
38
|
-
========================================================================== */
|
39
|
-
|
40
|
-
/**
|
41
|
-
* 1. Add the correct box sizing in Firefox.
|
42
|
-
* 2. Show the overflow in Edge and IE.
|
43
|
-
*/
|
44
|
-
|
45
|
-
hr {
|
46
|
-
box-sizing: content-box; /* 1 */
|
47
|
-
height: 0; /* 1 */
|
48
|
-
overflow: visible; /* 2 */
|
49
|
-
}
|
50
|
-
|
51
|
-
/**
|
52
|
-
* 1. Correct the inheritance and scaling of font size in all browsers.
|
53
|
-
* 2. Correct the odd `em` font sizing in all browsers.
|
54
|
-
*/
|
55
|
-
|
56
|
-
pre {
|
57
|
-
font-family: monospace, monospace; /* 1 */
|
58
|
-
font-size: 1em; /* 2 */
|
59
|
-
}
|
60
|
-
|
61
|
-
/* Text-level semantics
|
62
|
-
========================================================================== */
|
63
|
-
|
64
|
-
/**
|
65
|
-
* Remove the gray background on active links in IE 10.
|
66
|
-
*/
|
67
|
-
|
68
|
-
a {
|
69
|
-
background-color: transparent;
|
70
|
-
}
|
71
|
-
|
72
|
-
/**
|
73
|
-
* 1. Remove the bottom border in Chrome 57-
|
74
|
-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
75
|
-
*/
|
76
|
-
|
77
|
-
abbr[title] {
|
78
|
-
border-bottom: none; /* 1 */
|
79
|
-
text-decoration: underline; /* 2 */
|
80
|
-
text-decoration: underline dotted; /* 2 */
|
81
|
-
}
|
82
|
-
|
83
|
-
/**
|
84
|
-
* Add the correct font weight in Chrome, Edge, and Safari.
|
85
|
-
*/
|
86
|
-
|
87
|
-
b,
|
88
|
-
strong {
|
89
|
-
font-weight: bolder;
|
90
|
-
}
|
91
|
-
|
92
|
-
/**
|
93
|
-
* 1. Correct the inheritance and scaling of font size in all browsers.
|
94
|
-
* 2. Correct the odd `em` font sizing in all browsers.
|
95
|
-
*/
|
96
|
-
|
97
|
-
code,
|
98
|
-
kbd,
|
99
|
-
samp {
|
100
|
-
font-family: monospace, monospace; /* 1 */
|
101
|
-
font-size: 1em; /* 2 */
|
102
|
-
}
|
103
|
-
|
104
|
-
/**
|
105
|
-
* Add the correct font size in all browsers.
|
106
|
-
*/
|
107
|
-
|
108
|
-
small {
|
109
|
-
font-size: 80%;
|
110
|
-
}
|
111
|
-
|
112
|
-
/**
|
113
|
-
* Prevent `sub` and `sup` elements from affecting the line height in
|
114
|
-
* all browsers.
|
115
|
-
*/
|
116
|
-
|
117
|
-
sub,
|
118
|
-
sup {
|
119
|
-
font-size: 75%;
|
120
|
-
line-height: 0;
|
121
|
-
position: relative;
|
122
|
-
vertical-align: baseline;
|
123
|
-
}
|
124
|
-
|
125
|
-
sub {
|
126
|
-
bottom: -0.25em;
|
127
|
-
}
|
128
|
-
|
129
|
-
sup {
|
130
|
-
top: -0.5em;
|
131
|
-
}
|
132
|
-
|
133
|
-
/* Embedded content
|
134
|
-
========================================================================== */
|
135
|
-
|
136
|
-
/**
|
137
|
-
* Remove the border on images inside links in IE 10.
|
138
|
-
*/
|
139
|
-
|
140
|
-
img {
|
141
|
-
border-style: none;
|
142
|
-
}
|
143
|
-
|
144
|
-
/* Forms
|
145
|
-
========================================================================== */
|
146
|
-
|
147
|
-
/**
|
148
|
-
* 1. Change the font styles in all browsers.
|
149
|
-
* 2. Remove the margin in Firefox and Safari.
|
150
|
-
*/
|
151
|
-
|
152
|
-
button,
|
153
|
-
input,
|
154
|
-
optgroup,
|
155
|
-
select,
|
156
|
-
textarea {
|
157
|
-
font-family: inherit; /* 1 */
|
158
|
-
font-size: 100%; /* 1 */
|
159
|
-
line-height: 1.15; /* 1 */
|
160
|
-
margin: 0; /* 2 */
|
161
|
-
}
|
162
|
-
|
163
|
-
/**
|
164
|
-
* Show the overflow in IE.
|
165
|
-
* 1. Show the overflow in Edge.
|
166
|
-
*/
|
167
|
-
|
168
|
-
button,
|
169
|
-
input { /* 1 */
|
170
|
-
overflow: visible;
|
171
|
-
}
|
172
|
-
|
173
|
-
/**
|
174
|
-
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
175
|
-
* 1. Remove the inheritance of text transform in Firefox.
|
176
|
-
*/
|
177
|
-
|
178
|
-
button,
|
179
|
-
select { /* 1 */
|
180
|
-
text-transform: none;
|
181
|
-
}
|
182
|
-
|
183
|
-
/**
|
184
|
-
* Correct the inability to style clickable types in iOS and Safari.
|
185
|
-
*/
|
186
|
-
|
187
|
-
button,
|
188
|
-
[type="button"],
|
189
|
-
[type="reset"],
|
190
|
-
[type="submit"] {
|
191
|
-
-webkit-appearance: button;
|
192
|
-
}
|
193
|
-
|
194
|
-
/**
|
195
|
-
* Remove the inner border and padding in Firefox.
|
196
|
-
*/
|
197
|
-
|
198
|
-
button::-moz-focus-inner,
|
199
|
-
[type="button"]::-moz-focus-inner,
|
200
|
-
[type="reset"]::-moz-focus-inner,
|
201
|
-
[type="submit"]::-moz-focus-inner {
|
202
|
-
border-style: none;
|
203
|
-
padding: 0;
|
204
|
-
}
|
205
|
-
|
206
|
-
/**
|
207
|
-
* Restore the focus styles unset by the previous rule.
|
208
|
-
*/
|
209
|
-
|
210
|
-
button:-moz-focusring,
|
211
|
-
[type="button"]:-moz-focusring,
|
212
|
-
[type="reset"]:-moz-focusring,
|
213
|
-
[type="submit"]:-moz-focusring {
|
214
|
-
outline: 1px dotted ButtonText;
|
215
|
-
}
|
216
|
-
|
217
|
-
/**
|
218
|
-
* Correct the padding in Firefox.
|
219
|
-
*/
|
220
|
-
|
221
|
-
fieldset {
|
222
|
-
padding: 0.35em 0.75em 0.625em;
|
223
|
-
}
|
224
|
-
|
225
|
-
/**
|
226
|
-
* 1. Correct the text wrapping in Edge and IE.
|
227
|
-
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
228
|
-
* 3. Remove the padding so developers are not caught out when they zero out
|
229
|
-
* `fieldset` elements in all browsers.
|
230
|
-
*/
|
231
|
-
|
232
|
-
legend {
|
233
|
-
box-sizing: border-box; /* 1 */
|
234
|
-
color: inherit; /* 2 */
|
235
|
-
display: table; /* 1 */
|
236
|
-
max-width: 100%; /* 1 */
|
237
|
-
padding: 0; /* 3 */
|
238
|
-
white-space: normal; /* 1 */
|
239
|
-
}
|
240
|
-
|
241
|
-
/**
|
242
|
-
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
243
|
-
*/
|
244
|
-
|
245
|
-
progress {
|
246
|
-
vertical-align: baseline;
|
247
|
-
}
|
248
|
-
|
249
|
-
/**
|
250
|
-
* Remove the default vertical scrollbar in IE 10+.
|
251
|
-
*/
|
252
|
-
|
253
|
-
textarea {
|
254
|
-
overflow: auto;
|
255
|
-
}
|
256
|
-
|
257
|
-
/**
|
258
|
-
* 1. Add the correct box sizing in IE 10.
|
259
|
-
* 2. Remove the padding in IE 10.
|
260
|
-
*/
|
261
|
-
|
262
|
-
[type="checkbox"],
|
263
|
-
[type="radio"] {
|
264
|
-
box-sizing: border-box; /* 1 */
|
265
|
-
padding: 0; /* 2 */
|
266
|
-
}
|
267
|
-
|
268
|
-
/**
|
269
|
-
* Correct the cursor style of increment and decrement buttons in Chrome.
|
270
|
-
*/
|
271
|
-
|
272
|
-
[type="number"]::-webkit-inner-spin-button,
|
273
|
-
[type="number"]::-webkit-outer-spin-button {
|
274
|
-
height: auto;
|
275
|
-
}
|
276
|
-
|
277
|
-
/**
|
278
|
-
* 1. Correct the odd appearance in Chrome and Safari.
|
279
|
-
* 2. Correct the outline style in Safari.
|
280
|
-
*/
|
281
|
-
|
282
|
-
[type="search"] {
|
283
|
-
-webkit-appearance: textfield; /* 1 */
|
284
|
-
outline-offset: -2px; /* 2 */
|
285
|
-
}
|
286
|
-
|
287
|
-
/**
|
288
|
-
* Remove the inner padding in Chrome and Safari on macOS.
|
289
|
-
*/
|
290
|
-
|
291
|
-
[type="search"]::-webkit-search-decoration {
|
292
|
-
-webkit-appearance: none;
|
293
|
-
}
|
294
|
-
|
295
|
-
/**
|
296
|
-
* 1. Correct the inability to style clickable types in iOS and Safari.
|
297
|
-
* 2. Change font properties to `inherit` in Safari.
|
298
|
-
*/
|
299
|
-
|
300
|
-
::-webkit-file-upload-button {
|
301
|
-
-webkit-appearance: button; /* 1 */
|
302
|
-
font: inherit; /* 2 */
|
303
|
-
}
|
304
|
-
|
305
|
-
/* Interactive
|
306
|
-
========================================================================== */
|
307
|
-
|
308
|
-
/*
|
309
|
-
* Add the correct display in Edge, IE 10+, and Firefox.
|
310
|
-
*/
|
311
|
-
|
312
|
-
details {
|
313
|
-
display: block;
|
314
|
-
}
|
315
|
-
|
316
|
-
/*
|
317
|
-
* Add the correct display in all browsers.
|
318
|
-
*/
|
319
|
-
|
320
|
-
summary {
|
321
|
-
display: list-item;
|
322
|
-
}
|
323
|
-
|
324
|
-
/* Misc
|
325
|
-
========================================================================== */
|
326
|
-
|
327
|
-
/**
|
328
|
-
* Add the correct display in IE 10+.
|
329
|
-
*/
|
330
|
-
|
331
|
-
template {
|
332
|
-
display: none;
|
333
|
-
}
|
334
|
-
|
335
|
-
/**
|
336
|
-
* Add the correct display in IE 10.
|
337
|
-
*/
|
338
|
-
|
339
|
-
[hidden] {
|
340
|
-
display: none;
|
341
|
-
}
|