metanorma-nist 1.1.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +0 -1
  3. data/.github/workflows/ubuntu.yml +10 -7
  4. data/.github/workflows/windows.yml +0 -1
  5. data/Rakefile +2 -0
  6. data/lib/asciidoctor/nist/boilerplate.rb +2 -2
  7. data/lib/asciidoctor/nist/cleanup.rb +34 -4
  8. data/lib/asciidoctor/nist/converter.rb +7 -4
  9. data/lib/asciidoctor/nist/front.rb +37 -42
  10. data/lib/asciidoctor/nist/front_id.rb +1 -1
  11. data/lib/asciidoctor/nist/isodoc.rng +12 -6
  12. data/lib/asciidoctor/nist/validate.rb +16 -9
  13. data/lib/isodoc/nist/base_convert.rb +5 -66
  14. data/lib/isodoc/nist/html/_coverpage.css +243 -0
  15. data/lib/isodoc/nist/html/_coverpage.scss +1 -1
  16. data/lib/isodoc/nist/html/html_nist_titlepage.html +1 -1
  17. data/lib/isodoc/nist/html/htmlstyle.css +955 -0
  18. data/lib/isodoc/nist/html/nist.css +1055 -0
  19. data/lib/isodoc/nist/html/nist.scss +0 -1
  20. data/lib/isodoc/nist/html/nist_cswp.css +996 -0
  21. data/lib/isodoc/nist/html/nist_cswp.scss +0 -1
  22. data/lib/isodoc/nist/html/wordstyle.css +1440 -0
  23. data/lib/isodoc/nist/html/wordstyle.scss +0 -1
  24. data/lib/isodoc/nist/html/wordstyle_cswp.css +1119 -0
  25. data/lib/isodoc/nist/html/wordstyle_cswp.scss +0 -1
  26. data/lib/isodoc/nist/html_convert.rb +4 -5
  27. data/lib/isodoc/nist/i18n-en.yaml +3 -0
  28. data/lib/isodoc/nist/i18n.rb +10 -0
  29. data/lib/isodoc/nist/init.rb +37 -0
  30. data/lib/isodoc/nist/metadata_id.rb +1 -1
  31. data/lib/isodoc/nist/nist.cswp.xsl +2200 -2318
  32. data/lib/isodoc/nist/nist.sp.xsl +2981 -2886
  33. data/lib/isodoc/nist/pdf_convert.rb +0 -1
  34. data/lib/isodoc/nist/presentation_xml_convert.rb +71 -1
  35. data/lib/isodoc/nist/refs.rb +8 -19
  36. data/lib/isodoc/nist/render.rb +2 -1
  37. data/lib/isodoc/nist/render_dates.rb +0 -25
  38. data/lib/isodoc/nist/section.rb +9 -6
  39. data/lib/isodoc/nist/word_convert.rb +7 -15
  40. data/lib/isodoc/nist/word_convert_toc.rb +2 -2
  41. data/lib/isodoc/nist/xref.rb +1 -24
  42. data/lib/metanorma/nist/processor.rb +0 -4
  43. data/lib/metanorma/nist/version.rb +1 -1
  44. data/metanorma-nist.gemspec +3 -2
  45. metadata +28 -6
@@ -1,6 +1,4 @@
1
1
  require "isodoc"
2
- require_relative "metadata"
3
- require_relative "xref"
4
2
  require_relative "refs"
5
3
  require_relative "section"
6
4
  require "fileutils"
@@ -8,26 +6,11 @@ require "fileutils"
8
6
  module IsoDoc
9
7
  module NIST
10
8
  module BaseConvert
11
- def metadata_init(lang, script, labels)
12
- @meta = Metadata.new(lang, script, labels)
9
+ def keywords(docxml, out)
10
+ f = docxml.at(ns("//preface/clause[@type = 'keywords']")) || return
11
+ intro_clause(f, out)
13
12
  end
14
13
 
15
- def xref_init(lang, script, klass, labels, options)
16
- @xrefs = Xref.new(lang, script, klass, labels, options)
17
- end
18
-
19
- def keywords(_docxml, out)
20
- kw = @meta.get[:keywords]
21
- kw.empty? and return
22
- out.div **{ class: "Section3" } do |div|
23
- clause_name(nil, "Keywords", div, class: "IntroTitle")
24
- div.p kw.sort.join("; ")
25
- end
26
- end
27
-
28
- FRONT_CLAUSE = "//*[parent::preface][not(local-name() = 'abstract' or "\
29
- "local-name() = 'foreword')]".freeze
30
-
31
14
  def skip_render(c, isoxml)
32
15
  return false unless c.name == "reviewernote"
33
16
  status = isoxml&.at(ns("//bibdata/status/stage"))&.text
@@ -35,10 +18,6 @@ module IsoDoc
35
18
  /^final/.match status
36
19
  end
37
20
 
38
- def fileloc(loc)
39
- File.join(File.dirname(__FILE__), loc)
40
- end
41
-
42
21
  def requirement_cleanup(docxml)
43
22
  docxml.xpath("//div[@class = 'recommend' or @class = 'require' "\
44
23
  "or @class = 'permission']").each do |d|
@@ -152,33 +131,6 @@ module IsoDoc
152
131
  super
153
132
  end
154
133
 
155
- def wrap_brackets(txt)
156
- return txt if /^\[.*\]$/.match txt
157
- "[#{txt}]"
158
- end
159
-
160
- def get_linkend(node)
161
- link = anchor_linkend(node, docid_l10n(node["target"] ||
162
- wrap_brackets(node['citeas'])))
163
- link += eref_localities(node.xpath(ns("./locality | ./localityStack")),
164
- link)
165
- contents = node.children.select do |c|
166
- !%w{locality localityStack}.include? c.name
167
- end
168
- return link if contents.nil? || contents.empty?
169
- Nokogiri::XML::NodeSet.new(node.document, contents).to_xml
170
- end
171
-
172
- def load_yaml(lang, script)
173
- y = if @i18nyaml then YAML.load_file(@i18nyaml)
174
- elsif lang == "en"
175
- YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
176
- else
177
- YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
178
- end
179
- super.merge(y)
180
- end
181
-
182
134
  def terms_parse(node, out)
183
135
  out.div **attr_code(id: node["id"]) do |div|
184
136
  node.at(ns("./title")) and
@@ -218,29 +170,16 @@ module IsoDoc
218
170
  def term_rest_parse(node, dd)
219
171
  set_termdomain("")
220
172
  node.children.each do |n|
221
- parse(n, dd) unless %w(preferred termsource).include?(n.name)
173
+ parse(n, dd) unless %w(preferred termsource name).include?(n.name)
222
174
  end
223
175
  end
224
176
 
225
177
  def modification_parse(node, out)
226
- out << @modified_lbl
178
+ out << @i18n.modified
227
179
  node.at(ns("./p[text()[normalize-space() != '']]")) and
228
180
  out << " &mdash; "
229
181
  node.at(ns("./p")).children.each { |n| parse(n, out) }
230
182
  end
231
-
232
- def annex_name(annex, name, div)
233
- div.h1 **{ class: "Annex" } do |t|
234
- t << "#{@xrefs.anchor(annex['id'], :label)} &mdash; "
235
- t.b do |b|
236
- if @bibliographycount == 1 && annex.at(ns("./references"))
237
- b << "References"
238
- else
239
- name&.children&.each { |c2| parse(c2, b) }
240
- end
241
- end
242
- end
243
- end
244
183
  end
245
184
  end
246
185
  end
@@ -0,0 +1,243 @@
1
+ .coverpage-maturity, .coverpage-stage {
2
+ font-family: 'Source Sans Pro', sans-serif;
3
+ font-weight: 400;
4
+ font-size: 1em;
5
+ margin: 0 0 2em 0;
6
+ text-transform: uppercase; }
7
+
8
+ .coverpage-maturity {
9
+ font-family: {{bodyfont}};
10
+ font-weight: 400;
11
+ font-size: 1em;
12
+ margin: 0 0 2em 0;
13
+ text-transform: uppercase; }
14
+
15
+ .coverpage-warning {
16
+ border: #f36f36 solid 2px;
17
+ color: #f36f36 !important;
18
+ margin: 50px 100px;
19
+ color: #2e81c2;
20
+ padding: 10px;
21
+ border-radius: 25px;
22
+ text-align: center;
23
+ font-size: 14px; }
24
+ .coverpage-warning p {
25
+ margin: 0;
26
+ line-height: 1.6; }
27
+ .coverpage-warning .title, .coverpage-warning .authority6 h1, .coverpage-warning .authority6 h2 {
28
+ margin-top: 0em;
29
+ font-family: 'Source Sans Pro', sans-serif;
30
+ font-weight: 300;
31
+ text-transform: uppercase;
32
+ font-size: 1.2em; }
33
+
34
+ .logo-wrapper {
35
+ margin-left: 3em;
36
+ margin-top: 100px;
37
+ margin-bottom: 100px;
38
+ float: right; }
39
+
40
+ img#NIST-logo {
41
+ width: 300px;
42
+ height: auto;
43
+ padding-top: 3m;
44
+ margin-right: 50px; }
45
+
46
+ .logo-info {
47
+ margin-left: 3em;
48
+ margin-bottom: 1.5em; }
49
+
50
+ .logo-info p {
51
+ margin: 0; }
52
+
53
+ #commerce-logo {
54
+ width: 150px;
55
+ height: auto; }
56
+
57
+ .authors-container, .currency {
58
+ margin-top: 2em; }
59
+
60
+ .affiliation {
61
+ font-style: italic;
62
+ margin-bottom: 1em; }
63
+
64
+ .main-section {
65
+ word-wrap: break-word; }
66
+
67
+ .coverpage-title {
68
+ font-family: {{headerfont}}; }
69
+ .coverpage-title span {
70
+ font-family: {{headerfont}};
71
+ font-size: 1.1em;
72
+ line-height: 1; }
73
+
74
+ .wrapper-top {
75
+ background: #fff;
76
+ color: #141115;
77
+ padding: 7em 0;
78
+ margin-left: 3em; }
79
+
80
+ .doc-number {
81
+ font-size: 20px;
82
+ font-family: {{bodyfont}};
83
+ line-height: 1.6;
84
+ margin: 1.5em 0; }
85
+
86
+ .title-second {
87
+ font-style: italic;
88
+ font-size: 15px;
89
+ line-height: 1.6;
90
+ margin-bottom: 1.5em; }
91
+
92
+ .download-info {
93
+ margin-top: 2em; }
94
+
95
+ .category {
96
+ color: #2677ea;
97
+ margin-top: 4em;
98
+ margin-right: 2em;
99
+ padding: 0.7em 1em;
100
+ text-align: center;
101
+ border-top: solid 1px #2677ea;
102
+ border-bottom: solid 1px #2677ea;
103
+ text-transform: uppercase; }
104
+
105
+ .banner {
106
+ border-top: 1px solid #2677ea;
107
+ border-bottom: 1px solid #2677ea;
108
+ margin-right: 50px;
109
+ margin-top: 100px; }
110
+ #inactive-draft.banner {
111
+ display: none; }
112
+ .banner p {
113
+ text-transform: uppercase;
114
+ font-weight: 300;
115
+ font-size: 16px;
116
+ letter-spacing: 5px;
117
+ text-align: center;
118
+ color: #2677ea;
119
+ font-family: {{monospacefont}}; }
120
+
121
+ .WordSection11 {
122
+ padding: 0 2em 0 3em; }
123
+
124
+ .info-section {
125
+ padding: 0; }
126
+
127
+ .prefatory-section {
128
+ padding: 0 3em 0 6em; }
129
+
130
+ .zzSTDTitle1, .MsoCommentText {
131
+ display: none; }
132
+
133
+ .coverpage {
134
+ text-align: left;
135
+ padding-left: 1.5em; }
136
+
137
+ .coverpage-logo span, .coverpage-tc-name span {
138
+ font-family: {{bodyfont}};
139
+ text-transform: none;
140
+ font-weight: 300; }
141
+
142
+ .coverpage-logo span {
143
+ display: block;
144
+ float: left; }
145
+
146
+ .coverpage-tc-name {
147
+ font-size: 1.2em;
148
+ line-height: 1.2em;
149
+ margin: 0.25em 0; }
150
+
151
+ .coverpage-doc-identity {
152
+ font-size: 2em;
153
+ line-height: 1.5em;
154
+ margin-bottom: 150px; }
155
+
156
+ .coverpage-stage-block {
157
+ font-family: 'Source Sans Pro', sans-serif;
158
+ font-weight: 600;
159
+ font-size: 1.25em;
160
+ margin: 2em 0em 2em 0em;
161
+ text-transform: uppercase; }
162
+
163
+ .copyright {
164
+ padding: 1em;
165
+ font-size: 0.9em;
166
+ text-align: left; }
167
+
168
+ table.coverpage-table {
169
+ max-width: 500px;
170
+ font-size: 14px; }
171
+
172
+ .more-info {
173
+ margin-right: 50px; }
174
+ .more-info h2 {
175
+ text-align: center;
176
+ color: #2e81c2;
177
+ font-size: 20px;
178
+ font-family: 'Source Sans Pro', sans-serif;
179
+ font-weight: 300;
180
+ text-transform: uppercase; }
181
+ .more-info p {
182
+ font-size: 14px; }
183
+
184
+ .contact-info, .authority5 {
185
+ padding: 2em;
186
+ margin-top: 5em;
187
+ text-align: left;
188
+ color: #2677ea !important;
189
+ background-color: #f1f8ff;
190
+ border-radius: 25px; }
191
+ .contact-info a, .contact-info a:hover, .authority5 a, .authority5 a:hover {
192
+ color: #2677ea; }
193
+
194
+ .authority5 h2 {
195
+ text-align: center; }
196
+
197
+ .authority3 {
198
+ border: solid;
199
+ padding: 1em; }
200
+
201
+ .contact-info {
202
+ width: 280px; }
203
+ .contact-info a:hover {
204
+ text-decoration: underline;
205
+ background: none;
206
+ box-shadow: 0 0 0 0; }
207
+ .contact-info p, .contact-info a {
208
+ font-family: {{monospacefont}};
209
+ font-variant-ligatures: none;
210
+ font-weight: 400; }
211
+ .contact-info .name {
212
+ font-weight: 700;
213
+ font-size: 14px;
214
+ margin-bottom: 5px; }
215
+ .contact-info .address {
216
+ font-size: 12px;
217
+ line-height: 1.3em;
218
+ margin-top: 0; }
219
+
220
+ .draft-state-container {
221
+ margin-bottom: 30px;
222
+ margin-top: -30px; }
223
+
224
+ .draft-state {
225
+ font-size: 20px;
226
+ color: #f36f36; }
227
+ #inactive-draft.draft-state {
228
+ color: #7e0d13; }
229
+ #inactive-final.draft-state {
230
+ color: #750697; }
231
+
232
+ .draft-description {
233
+ font-size: 14px; }
234
+ .draft-description p {
235
+ margin-top: 10px;
236
+ margin-bottom: 0; }
237
+
238
+ #retired-draft {
239
+ color: #7e0d13; }
240
+
241
+ @media print {
242
+ .coverpage {
243
+ height: 23cm; } }
@@ -66,7 +66,7 @@ img#NIST-logo {
66
66
  height: auto;
67
67
  }
68
68
 
69
- .authors-container {
69
+ .authors-container, .currency {
70
70
  margin-top: 2em;
71
71
  }
72
72
 
@@ -163,7 +163,7 @@
163
163
 
164
164
 
165
165
  {% unless unpublished %}
166
- <div class="coverpage-logo">
166
+ <div class="currency">
167
167
  <span>{{ issueddate_monthyear }}</span>
168
168
  {%if confirmeddate and confirmeddate != "XXX" %}
169
169
  <br/>Publication is current as of {{ confirmeddate_MMMddyyyy }}
@@ -0,0 +1,955 @@
1
+ html, body, div, span, applet, object, iframe,
2
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
3
+ a, abbr, acronym, address, big, cite, code,
4
+ del, dfn, em, img, ins, kbd, q, s, samp,
5
+ small, strike, strong, sub, sup, tt, var,
6
+ b, u, i, center,
7
+ ol, ul, li,
8
+ fieldset, form, label, legend,
9
+ table, caption, tbody, tfoot, thead, tr, th, td,
10
+ article, aside, canvas, details, embed,
11
+ figure, figcaption, footer, header, hgroup,
12
+ menu, nav, output, ruby, section, summary,
13
+ time, mark, audio, video {
14
+ margin: 0;
15
+ padding: 0; }
16
+
17
+ html, body, div, span, applet, object, iframe,
18
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
19
+ a, abbr, acronym, address, big, cite, code,
20
+ del, dfn, em, img, ins, kbd, q, s, samp,
21
+ small, strike, strong, sub, sup, tt, var,
22
+ b, u, i, center,
23
+ dl, dt, dd, ol, ul, li,
24
+ fieldset, form, label, legend,
25
+ table, caption, tbody, tfoot, thead, tr, th, td,
26
+ article, aside, canvas, details, embed,
27
+ figure, figcaption, footer, header, hgroup,
28
+ menu, nav, output, ruby, section, summary,
29
+ time, mark, audio, video {
30
+ border: 0;
31
+ font-size: 100%; }
32
+
33
+ html, body, div, span, applet, object, iframe,
34
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
35
+ a, abbr, acronym, address, big, cite, code,
36
+ del, dfn, em, img, ins, kbd, q, s, samp,
37
+ small, strike, strong, tt, var,
38
+ b, u, i, center,
39
+ dl, dd, ol, ul, li,
40
+ fieldset, form, label, legend,
41
+ table, caption, tbody, tfoot, thead, tr, th, td,
42
+ article, aside, canvas, details, embed,
43
+ figure, figcaption, footer, header, hgroup,
44
+ menu, nav, output, ruby, section, summary,
45
+ time, mark, audio, video {
46
+ vertical-align: baseline; }
47
+
48
+ html, body, div, span, applet, object, iframe,
49
+ p, blockquote,
50
+ a, abbr, acronym, address, big, cite,
51
+ del, dfn, em, img, ins, q, s,
52
+ small, strike, strong, sub, sup, var,
53
+ b, u, i, center,
54
+ dl, dt, dd, ol, ul, li,
55
+ fieldset, form, label, legend,
56
+ table, caption, tbody, tfoot, thead, tr, th, td,
57
+ article, aside, canvas, details, embed,
58
+ figure, figcaption, footer, header, hgroup,
59
+ menu, nav, output, ruby, section, summary,
60
+ time, mark, audio, video {
61
+ font-family: {{bodyfont}}; }
62
+
63
+ code, pre, tt, kbd, samp {
64
+ font-family: {{monospacefont}};
65
+ font-variant-ligatures: none; }
66
+
67
+ code *, pre *, tt *, kbd *, samp * {
68
+ font-family: {{monospacefont}} !important;
69
+ font-variant-ligatures: none; }
70
+
71
+ article, aside, details, figcaption, figure,
72
+ footer, header, hgroup, menu, nav, section {
73
+ display: block; }
74
+
75
+ table {
76
+ border-collapse: collapse;
77
+ border-spacing: 0; }
78
+
79
+ h1, h2, h3, h4, h5, h6 {
80
+ font-family: {{headerfont}}; }
81
+
82
+ blockquote, q {
83
+ quotes: none; }
84
+ blockquote:before, blockquote:after, q:before, q:after {
85
+ content: '';
86
+ content: none; }
87
+
88
+ .h2Annex {
89
+ font-family: {{headerfont}}; }
90
+
91
+ dl {
92
+ display: grid;
93
+ grid-template-columns: max-content auto; }
94
+ dl dt p, dl dd p {
95
+ margin-top: 0; }
96
+ dl dt {
97
+ grid-column-start: 1; }
98
+ dl dd {
99
+ grid-column-start: 2; }
100
+
101
+ b, strong {
102
+ font-weight: bold; }
103
+
104
+ div.document-stage-band, div.document-type-band {
105
+ background-color: #333333; }
106
+
107
+ #nist-sp-band {
108
+ background-color: #d8eca8; }
109
+
110
+ #nist-sp {
111
+ border-bottom: solid 3px #d8eca8; }
112
+
113
+ #nist-cswp-band {
114
+ background-color: #b2da54; }
115
+
116
+ #nist-cswp {
117
+ border-bottom: solid 3px #b2da54; }
118
+
119
+ #standard-band {
120
+ background-color: #9ABD48; }
121
+
122
+ #standard {
123
+ border-bottom: solid 3px #9ABD48; }
124
+
125
+ #final-band {
126
+ background-color: #d8eca8; }
127
+
128
+ #final {
129
+ border-bottom: solid 3px #d8eca8; }
130
+
131
+ #proposal-band {
132
+ background-color: #F7803C; }
133
+
134
+ #proposal {
135
+ border-bottom: solid 3px #F7803C; }
136
+
137
+ #internal-draft-band {
138
+ background-color: #F7803C; }
139
+
140
+ #internal-draft {
141
+ border-bottom: solid 3px #F7803C; }
142
+
143
+ #public-draft-band {
144
+ background-color: #fd06fd; }
145
+
146
+ #public-draft {
147
+ border-bottom: solid 3px #fd06fd; }
148
+
149
+ #initial-public-draft-band {
150
+ background-color: #fd06fd; }
151
+
152
+ #initial-public-draft {
153
+ border-bottom: solid 3px #fd06fd; }
154
+
155
+ #final-public-draft-band {
156
+ background-color: #fd06fd; }
157
+
158
+ #final-public-draft {
159
+ border-bottom: solid 3px #fd06fd; }
160
+
161
+ #withdrawal-pending-band {
162
+ background-color: #750697; }
163
+
164
+ #withdrawal-pending {
165
+ border-bottom: solid 3px #750697; }
166
+
167
+ #retired-draft-band {
168
+ background-color: #7e0d13; }
169
+
170
+ #retired-draft {
171
+ border-bottom: solid 3px #7e0d13; }
172
+
173
+ #withdrawn-band {
174
+ background-color: #7e0d13; }
175
+
176
+ #withdrawn {
177
+ border-bottom: solid 3px #7e0d13; }
178
+
179
+ dl {
180
+ grid-template-columns: 25% 75%; }
181
+ dl.glossary dt {
182
+ font-weight: bold; }
183
+
184
+ body {
185
+ margin-left: auto;
186
+ margin-right: auto;
187
+ max-width: 100%;
188
+ font-size: 14px;
189
+ font-weight: 400;
190
+ line-height: 1.6em;
191
+ color: #141115;
192
+ background-color: #fff; }
193
+ body main {
194
+ margin: 0 3em 0 6em; }
195
+
196
+ .rule {
197
+ width: 100%;
198
+ height: 1px;
199
+ background-color: #2677ea;
200
+ margin: 2em 0; }
201
+
202
+ .rule-2 {
203
+ width: 100%;
204
+ height: 1px;
205
+ background-color: #2677ea; }
206
+
207
+ .rule-thick {
208
+ width: 100%;
209
+ height: 3px;
210
+ background-color: #2677ea;
211
+ margin: 3em 0 0 0; }
212
+
213
+ #toc {
214
+ font-family: 'Source Sans Pro', sans-serif; }
215
+ #toc ul {
216
+ margin: 0;
217
+ padding: 0;
218
+ list-style: none; }
219
+ #toc ul li a {
220
+ padding: 5px 10px; }
221
+ #toc ul a {
222
+ color: #141115;
223
+ text-decoration: none;
224
+ display: block; }
225
+ #toc ul a:hover {
226
+ box-shadow: none;
227
+ color: white; }
228
+ #toc .h2 {
229
+ padding-left: 30px; }
230
+ #toc .h3 {
231
+ padding-left: 50px; }
232
+ #toc .toc-active, #toc li:hover {
233
+ background: #006494;
234
+ box-shadow: inset -5px 0px 10px -5px #006494 !important; }
235
+ #toc .toc-active a, #toc li:hover a {
236
+ color: white; }
237
+ @media print {
238
+ #toc .toc-active, #toc li:hover {
239
+ background: white;
240
+ box-shadow: none !important; }
241
+ #toc .toc-active a {
242
+ color: #141115; }
243
+ #toc li:hover a {
244
+ color: black; } }
245
+ #toc li a {
246
+ font-size: 14px; }
247
+ #toc li:before {
248
+ content: " ";
249
+ display: none; }
250
+
251
+ @media screen and (min-width: 768px) {
252
+ nav {
253
+ position: fixed;
254
+ top: 0;
255
+ bottom: 0;
256
+ left: 0;
257
+ width: 323px;
258
+ font-size: 0.9em;
259
+ overflow: auto;
260
+ padding: 0 0 0 45px;
261
+ background-color: white; } }
262
+
263
+ @media print {
264
+ nav {
265
+ position: relative;
266
+ width: auto;
267
+ font-size: 0.9em;
268
+ overflow: auto;
269
+ padding: 0;
270
+ margin-right: 0;
271
+ background-color: white; } }
272
+
273
+ nav #toc {
274
+ font-family: {{bodyfont}};
275
+ font-weight: 400; }
276
+ @media screen and (max-width: 768px) {
277
+ nav #toc {
278
+ padding: 0 1.5em;
279
+ overflow: visible; } }
280
+ @media screen and (min-width: 768px) {
281
+ #toggle {
282
+ position: fixed;
283
+ height: 100%;
284
+ width: 30px;
285
+ background-color: #006494;
286
+ color: white !important;
287
+ cursor: pointer;
288
+ z-index: 100; }
289
+ #toggle span {
290
+ text-align: center;
291
+ width: 100%;
292
+ position: absolute;
293
+ top: 50%;
294
+ transform: translate(0, -50%); } }
295
+
296
+ @media screen and (max-width: 768px) {
297
+ #toggle {
298
+ display: none; } }
299
+
300
+ @media print {
301
+ #toggle {
302
+ display: none; } }
303
+
304
+ @media screen and (min-width: 768px) {
305
+ .container {
306
+ padding-left: 360px; } }
307
+
308
+ @media print {
309
+ .container {
310
+ padding-left: 0; } }
311
+
312
+ @media screen and (min-width: 768px) {
313
+ .rule.toc {
314
+ display: none; } }
315
+
316
+ span.nistvariable {
317
+ font-family: {{bodyfont}};
318
+ font-style: italic; }
319
+
320
+ /* Document bands */
321
+ .document-stage-band {
322
+ left: 0;
323
+ top: 0;
324
+ height: 100%;
325
+ position: fixed;
326
+ display: block;
327
+ z-index: 101;
328
+ box-shadow: -5px 0px 10px #1d1d1d; }
329
+ .document-stage-band > :first-child {
330
+ position: relative;
331
+ width: 25px;
332
+ font-family: 'Source Sans Pro', sans-serif;
333
+ font-weight: 300;
334
+ height: 160px;
335
+ color: #7ba812;
336
+ text-transform: uppercase;
337
+ font-size: 0.9em;
338
+ font-weight: 400;
339
+ letter-spacing: 0.05em;
340
+ margin: 0;
341
+ margin-left: 6px;
342
+ writing-mode: tb-rl;
343
+ -webkit-transform: rotate(180deg);
344
+ -moz-transform: rotate(180deg);
345
+ -o-transform: rotate(180deg);
346
+ white-space: nowrap;
347
+ display: block;
348
+ bottom: 0; }
349
+ @media print {
350
+ .document-stage-band {
351
+ display: none; } }
352
+ .document-type-band {
353
+ left: 0;
354
+ top: 180px;
355
+ height: 100%;
356
+ position: fixed;
357
+ display: block;
358
+ z-index: 102; }
359
+ .document-type-band > :first-child {
360
+ position: relative;
361
+ width: 25px;
362
+ font-family: 'Source Sans Pro', sans-serif;
363
+ font-weight: 400;
364
+ color: #7ba812;
365
+ text-transform: uppercase;
366
+ font-size: 0.9em;
367
+ font-weight: 400;
368
+ letter-spacing: 0.05em;
369
+ margin: 0;
370
+ margin-left: 6px;
371
+ writing-mode: tb-rl;
372
+ -webkit-transform: rotate(180deg);
373
+ -moz-transform: rotate(180deg);
374
+ -o-transform: rotate(180deg);
375
+ white-space: nowrap;
376
+ display: block;
377
+ bottom: 0; }
378
+ @media print {
379
+ .document-type-band {
380
+ display: none; } }
381
+ .document-type-band .document-type {
382
+ top: 20px; }
383
+
384
+ #governance-band p.document-type {
385
+ height: 230px !important; }
386
+
387
+ #standard-band p {
388
+ height: 270px !important; }
389
+
390
+ #proposal-band p {
391
+ height: 150px !important; }
392
+
393
+ #standard, #final {
394
+ color: #9ABD48; }
395
+
396
+ .coverpage-maturity, .coverpage-stage {
397
+ font-family: 'Source Sans Pro', sans-serif;
398
+ font-weight: 400;
399
+ font-size: 1em;
400
+ margin: 0 0 2em 0;
401
+ text-transform: uppercase; }
402
+
403
+ .coverpage-maturity {
404
+ font-family: {{bodyfont}};
405
+ font-weight: 400;
406
+ font-size: 1em;
407
+ margin: 0 0 2em 0;
408
+ text-transform: uppercase; }
409
+
410
+ .coverpage-warning {
411
+ border: #f36f36 solid 2px;
412
+ color: #f36f36 !important;
413
+ margin: 50px 100px;
414
+ color: #2e81c2;
415
+ padding: 10px;
416
+ border-radius: 25px;
417
+ text-align: center;
418
+ font-size: 14px; }
419
+ .coverpage-warning p {
420
+ margin: 0;
421
+ line-height: 1.6; }
422
+ .coverpage-warning .title, .coverpage-warning .authority6 h1, .coverpage-warning .authority6 h2 {
423
+ margin-top: 0em;
424
+ font-family: 'Source Sans Pro', sans-serif;
425
+ font-weight: 300;
426
+ text-transform: uppercase;
427
+ font-size: 1.2em; }
428
+
429
+ .logo-wrapper {
430
+ margin-left: 3em;
431
+ margin-top: 100px;
432
+ margin-bottom: 100px;
433
+ float: right; }
434
+
435
+ img#NIST-logo {
436
+ width: 300px;
437
+ height: auto;
438
+ padding-top: 3m;
439
+ margin-right: 50px; }
440
+
441
+ .logo-info {
442
+ margin-left: 3em;
443
+ margin-bottom: 1.5em; }
444
+
445
+ .logo-info p {
446
+ margin: 0; }
447
+
448
+ #commerce-logo {
449
+ width: 150px;
450
+ height: auto; }
451
+
452
+ .authors-container, .currency {
453
+ margin-top: 2em; }
454
+
455
+ .affiliation {
456
+ font-style: italic;
457
+ margin-bottom: 1em; }
458
+
459
+ .main-section {
460
+ word-wrap: break-word; }
461
+
462
+ .coverpage-title {
463
+ font-family: {{headerfont}}; }
464
+ .coverpage-title span {
465
+ font-family: {{headerfont}};
466
+ font-size: 1.1em;
467
+ line-height: 1; }
468
+
469
+ .wrapper-top {
470
+ background: #fff;
471
+ color: #141115;
472
+ padding: 7em 0;
473
+ margin-left: 3em; }
474
+
475
+ .doc-number {
476
+ font-size: 20px;
477
+ font-family: {{bodyfont}};
478
+ line-height: 1.6;
479
+ margin: 1.5em 0; }
480
+
481
+ .title-second {
482
+ font-style: italic;
483
+ font-size: 15px;
484
+ line-height: 1.6;
485
+ margin-bottom: 1.5em; }
486
+
487
+ .download-info {
488
+ margin-top: 2em; }
489
+
490
+ .category {
491
+ color: #2677ea;
492
+ margin-top: 4em;
493
+ margin-right: 2em;
494
+ padding: 0.7em 1em;
495
+ text-align: center;
496
+ border-top: solid 1px #2677ea;
497
+ border-bottom: solid 1px #2677ea;
498
+ text-transform: uppercase; }
499
+
500
+ .banner {
501
+ border-top: 1px solid #2677ea;
502
+ border-bottom: 1px solid #2677ea;
503
+ margin-right: 50px;
504
+ margin-top: 100px; }
505
+ #inactive-draft.banner {
506
+ display: none; }
507
+ .banner p {
508
+ text-transform: uppercase;
509
+ font-weight: 300;
510
+ font-size: 16px;
511
+ letter-spacing: 5px;
512
+ text-align: center;
513
+ color: #2677ea;
514
+ font-family: {{monospacefont}}; }
515
+
516
+ .WordSection11 {
517
+ padding: 0 2em 0 3em; }
518
+
519
+ .info-section {
520
+ padding: 0; }
521
+
522
+ .prefatory-section {
523
+ padding: 0 3em 0 6em; }
524
+
525
+ .zzSTDTitle1, .MsoCommentText {
526
+ display: none; }
527
+
528
+ .coverpage {
529
+ text-align: left;
530
+ padding-left: 1.5em; }
531
+
532
+ .coverpage-logo span, .coverpage-tc-name span {
533
+ font-family: {{bodyfont}};
534
+ text-transform: none;
535
+ font-weight: 300; }
536
+
537
+ .coverpage-logo span {
538
+ display: block;
539
+ float: left; }
540
+
541
+ .coverpage-tc-name {
542
+ font-size: 1.2em;
543
+ line-height: 1.2em;
544
+ margin: 0.25em 0; }
545
+
546
+ .coverpage-doc-identity {
547
+ font-size: 2em;
548
+ line-height: 1.5em;
549
+ margin-bottom: 150px; }
550
+
551
+ .coverpage-stage-block {
552
+ font-family: 'Source Sans Pro', sans-serif;
553
+ font-weight: 600;
554
+ font-size: 1.25em;
555
+ margin: 2em 0em 2em 0em;
556
+ text-transform: uppercase; }
557
+
558
+ .copyright {
559
+ padding: 1em;
560
+ font-size: 0.9em;
561
+ text-align: left; }
562
+
563
+ table.coverpage-table {
564
+ max-width: 500px;
565
+ font-size: 14px; }
566
+
567
+ .more-info {
568
+ margin-right: 50px; }
569
+ .more-info h2 {
570
+ text-align: center;
571
+ color: #2e81c2;
572
+ font-size: 20px;
573
+ font-family: 'Source Sans Pro', sans-serif;
574
+ font-weight: 300;
575
+ text-transform: uppercase; }
576
+ .more-info p {
577
+ font-size: 14px; }
578
+
579
+ .contact-info, .authority5 {
580
+ padding: 2em;
581
+ margin-top: 5em;
582
+ text-align: left;
583
+ color: #2677ea !important;
584
+ background-color: #f1f8ff;
585
+ border-radius: 25px; }
586
+ .contact-info a, .contact-info a:hover, .authority5 a, .authority5 a:hover {
587
+ color: #2677ea; }
588
+
589
+ .authority5 h2 {
590
+ text-align: center; }
591
+
592
+ .authority3 {
593
+ border: solid;
594
+ padding: 1em; }
595
+
596
+ .contact-info {
597
+ width: 280px; }
598
+ .contact-info a:hover {
599
+ text-decoration: underline;
600
+ background: none;
601
+ box-shadow: 0 0 0 0; }
602
+ .contact-info p, .contact-info a {
603
+ font-family: {{monospacefont}};
604
+ font-variant-ligatures: none;
605
+ font-weight: 400; }
606
+ .contact-info .name {
607
+ font-weight: 700;
608
+ font-size: 14px;
609
+ margin-bottom: 5px; }
610
+ .contact-info .address {
611
+ font-size: 12px;
612
+ line-height: 1.3em;
613
+ margin-top: 0; }
614
+
615
+ .draft-state-container {
616
+ margin-bottom: 30px;
617
+ margin-top: -30px; }
618
+
619
+ .draft-state {
620
+ font-size: 20px;
621
+ color: #f36f36; }
622
+ #inactive-draft.draft-state {
623
+ color: #7e0d13; }
624
+ #inactive-final.draft-state {
625
+ color: #750697; }
626
+
627
+ .draft-description {
628
+ font-size: 14px; }
629
+ .draft-description p {
630
+ margin-top: 10px;
631
+ margin-bottom: 0; }
632
+
633
+ #retired-draft {
634
+ color: #7e0d13; }
635
+
636
+ @media print {
637
+ .coverpage {
638
+ height: 23cm; } }
639
+
640
+ .recommend {
641
+ background-color: #ccffcc;
642
+ padding: 1.2em;
643
+ margin: 2em 0 1em 0; }
644
+
645
+ .recommend .RecommendationTitle {
646
+ font-weight: 700;
647
+ font-size: 1em;
648
+ text-align: center; }
649
+
650
+ .require .RecommendationTitle {
651
+ font-weight: 700;
652
+ font-size: 1em;
653
+ text-align: center; }
654
+
655
+ .permission .RecommendationTitle {
656
+ font-weight: 700;
657
+ font-size: 1em;
658
+ text-align: center; }
659
+
660
+ /* TYPOGRAPHY */
661
+ h1, h2, h3, h4, h5, h6 {
662
+ font-weight: 400;
663
+ margin-top: 1.6em;
664
+ margin-bottom: 0.3em; }
665
+
666
+ h1 {
667
+ font-size: 1.4em;
668
+ text-transform: uppercase;
669
+ margin-top: 2em; }
670
+ h1#content {
671
+ margin-top: 2em; }
672
+
673
+ h2 {
674
+ margin-top: 1.7em;
675
+ font-size: 1.3em;
676
+ font-weight: 300; }
677
+ h2 p {
678
+ display: inline; }
679
+ h2.TermNum {
680
+ margin-bottom: 0; }
681
+
682
+ h3 {
683
+ margin-top: 1.5em;
684
+ font-size: 1.2em;
685
+ font-weight: 100; }
686
+
687
+ h4 {
688
+ font-size: 1em; }
689
+
690
+ .TermNum, .Terms, .AltTerms {
691
+ font-weight: 300; }
692
+
693
+ p {
694
+ margin-top: 1em;
695
+ margin-bottom: 1em; }
696
+ p.AltTerms {
697
+ font-size: 20px;
698
+ margin-top: 1em; }
699
+
700
+ /* Links, selection */
701
+ a, a:visited {
702
+ text-decoration: none;
703
+ color: #2677EA; }
704
+
705
+ a:hover {
706
+ color: white;
707
+ background: #2677EA;
708
+ box-shadow: 3px 0 0 #2677EA, -3px 0 0 #2677EA; }
709
+
710
+ ::selection,
711
+ ::-moz-selection {
712
+ background: #2677EA;
713
+ color: white; }
714
+
715
+ /* Lists */
716
+ ul, ol {
717
+ margin-left: 1.2em; }
718
+
719
+ ul > li:first-child {
720
+ margin-top: 1em; }
721
+
722
+ ul > li p:first-child {
723
+ display: inline; }
724
+
725
+ /* Bibliograhy */
726
+ p.Biblio, p.NormRef {
727
+ margin-top: 1em;
728
+ margin-left: 2em; }
729
+
730
+ /* Blocks */
731
+ .figure {
732
+ line-height: 1.6em;
733
+ padding: 1.5em;
734
+ margin: 2em 0 1em 0;
735
+ overflow: auto;
736
+ font-family: {{monospacefont}};
737
+ font-variant-ligatures: none;
738
+ font-size: 0.8em;
739
+ background-color: #f6f6f6; }
740
+ .figure .FigureTitle, .figure .figure-title {
741
+ font-weight: 700;
742
+ font-size: 1em;
743
+ text-align: center; }
744
+ .figure > img {
745
+ margin-left: auto;
746
+ margin-right: auto;
747
+ display: block;
748
+ max-width: 100%;
749
+ height: auto; }
750
+
751
+ .SourceTitle {
752
+ font-weight: 700;
753
+ font-size: 1em;
754
+ text-align: center; }
755
+
756
+ pre {
757
+ font-family: {{monospacefont}};
758
+ font-variant-ligatures: none;
759
+ background-color: #f6f6f6;
760
+ font-size: 0.8em;
761
+ line-height: 1.6em;
762
+ padding: 1.5em;
763
+ margin: 2em 0 1em 0;
764
+ overflow-y: auto;
765
+ overflow-x: scroll; }
766
+
767
+ .pseudocode {
768
+ background-color: #f6f6f6;
769
+ font-size: 0.8em;
770
+ line-height: 1.6em;
771
+ padding: 1.5em;
772
+ margin: 2em 0 1em 0;
773
+ overflow: auto; }
774
+ .pseudocode .SourceTitle {
775
+ font-weight: 700;
776
+ font-size: 1em;
777
+ text-align: center; }
778
+
779
+ .Note {
780
+ background-color: #ffca3a;
781
+ color: #141115;
782
+ padding: 1.2em;
783
+ margin: 1em 0 1em 0; }
784
+ .Note p {
785
+ margin: 0; }
786
+
787
+ .Admonition {
788
+ background-color: #ffcccc;
789
+ color: #47430c;
790
+ padding: 1.2em;
791
+ margin: 1em 0 1em 0; }
792
+ .Admonition .AdmonitionTitle {
793
+ font-weight: 700;
794
+ font-size: 1em;
795
+ text-align: center; }
796
+ .Admonition p {
797
+ margin: 0; }
798
+
799
+ .Quote {
800
+ background-color: #f6f6f6;
801
+ font-style: italic;
802
+ width: 80%;
803
+ padding: 1.5em;
804
+ margin-top: 2em;
805
+ margin-left: auto;
806
+ margin-right: auto; }
807
+
808
+ p.blockQuote {
809
+ padding-left: 20px; }
810
+
811
+ .formula {
812
+ background-color: #f6f6f6;
813
+ padding: 1.5em;
814
+ margin-top: 2em;
815
+ text-align: center; }
816
+
817
+ /* Examples */
818
+ .example {
819
+ background-color: #e1eef1;
820
+ padding: 1.2em;
821
+ margin: 2em 0 1em 0;
822
+ padding-left: 2em; }
823
+ .example pre, .example .pseudocode {
824
+ background: none; }
825
+ .example .example-title {
826
+ font-weight: 700;
827
+ text-transform: uppercase;
828
+ margin-top: 0;
829
+ margin-left: -1.5em; }
830
+
831
+ .pseudocode {
832
+ background-color: #dddddd;
833
+ padding: 1.2em;
834
+ margin: 2em 0 1em 0;
835
+ padding-left: 2em; }
836
+ .pseudocode .example-title {
837
+ font-weight: 700;
838
+ text-transform: uppercase;
839
+ text-align: center;
840
+ margin-top: 0;
841
+ margin-left: -1.5em; }
842
+
843
+ .example pre, .example .pseudocode {
844
+ background: none; }
845
+
846
+ /* Tables */
847
+ table {
848
+ width: 100%;
849
+ font-weight: 300;
850
+ margin: 1em 0 2em 0;
851
+ margin-left: auto;
852
+ margin-right: auto;
853
+ padding-right: 2em;
854
+ color: #141115; }
855
+ table, table th, table td {
856
+ border: none !important;
857
+ font-size: 0.95em; }
858
+ table th, table td {
859
+ padding: 1em; }
860
+ table td.header {
861
+ font-weigth: 400; }
862
+ table tr:nth-child(even) {
863
+ background: #f1f8ff; }
864
+ table tr:nth-child(odd) {
865
+ background: #f6f8fa; }
866
+
867
+ p.TableTitle {
868
+ text-align: center;
869
+ margin-top: 2.5em;
870
+ font-weight: 400; }
871
+
872
+ /* Footnotes */
873
+ a.footnote-number {
874
+ vertical-align: super;
875
+ font-size: 0.8em; }
876
+
877
+ .footnote {
878
+ font-size: 0.9em; }
879
+
880
+ /* Keywords */
881
+ span.keyword {
882
+ font-weight: 600; }
883
+
884
+ /* To top button */
885
+ #myBtn {
886
+ font-family: {{monospacefont}};
887
+ font-variant-ligatures: none;
888
+ display: none;
889
+ position: fixed;
890
+ bottom: 20px;
891
+ right: 30px;
892
+ z-index: 99;
893
+ font-size: 12px;
894
+ border: none;
895
+ outline: none;
896
+ background-color: #2677ea;
897
+ opacity: 0.15;
898
+ color: white;
899
+ cursor: pointer;
900
+ padding: 10px 15px 10px 15px;
901
+ border-radius: 4px;
902
+ text-transform: uppercase; }
903
+ #myBtn:hover {
904
+ opacity: 1; }
905
+ @media print {
906
+ #myBtn {
907
+ display: none; } }
908
+ @media print {
909
+ #myBtn {
910
+ background-color: white; } }
911
+ .anchorjs-link:hover {
912
+ background: none;
913
+ color: #2e81ca;
914
+ box-shadow: none; }
915
+
916
+ @page {
917
+ margin: 2cm 1cm; }
918
+
919
+ @media print {
920
+ .document-info, nav, .copyright {
921
+ page-break-before: always; }
922
+ nav {
923
+ page-break-after: always; }
924
+ h1, h2, h3, h4 {
925
+ page-break-after: avoid;
926
+ margin-top: 1.2em; }
927
+ .note, .figure, pre, .pseudocode, table {
928
+ page-break-inside: avoid; }
929
+ .info-section {
930
+ display: none; }
931
+ .wrapper-top {
932
+ top: 0;
933
+ padding-top: 4cm;
934
+ padding-bottom: 4cm; }
935
+ .wrapper-top-bottom {
936
+ display: none; }
937
+ h1 {
938
+ font-size: 1.5em;
939
+ line-height: 1.5; }
940
+ h1.content {
941
+ margin-top: 2em;
942
+ line-height: 2.5em; }
943
+ h2 {
944
+ font-size: 1.2em; }
945
+ h3 {
946
+ font-size: 1em; }
947
+ .Note {
948
+ background-color: #fff495;
949
+ color: #47430c;
950
+ padding: 5px;
951
+ margin: 2em 0 1em 0; }
952
+ .Note p {
953
+ padding: 0 5px 0 5px; }
954
+ nav {
955
+ line-height: 1; } }