decidim-theme 0.1.4

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 (186) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE-AGPLv3.txt +661 -0
  3. data/README.md +104 -0
  4. data/Rakefile +9 -0
  5. data/app/cells/decidim/meetings/meeting_cell.rb +65 -0
  6. data/app/cells/decidim/meetings/meeting_s_overrides/show.erb +25 -0
  7. data/app/cells/decidim/meetings/meeting_s_overrides_cell.rb +53 -0
  8. data/app/controllers/decidim/theme/admin/application_controller.rb +15 -0
  9. data/app/controllers/decidim/theme/application_controller.rb +13 -0
  10. data/app/helpers/decidim/theme/application_helper.rb +10 -0
  11. data/app/models/decidim/theme/application_record.rb +10 -0
  12. data/app/overrides/insert_javascript_tag.rb +6 -0
  13. data/app/overrides/language_chooser_icon.rb +4 -0
  14. data/app/overrides/layouts/decidim/_main_footer/replace_content.html.erb.deface +96 -0
  15. data/app/overrides/layouts/decidim/_mini_footer/replace_content.html.erb.deface +25 -0
  16. data/app/overrides/mailer_styles.rb +36 -0
  17. data/app/overrides/prefix_body.rb +10 -0
  18. data/app/overrides/prefix_classes.rb +63 -0
  19. data/app/overrides/prefix_processes_wrapper.rb +10 -0
  20. data/app/packs/entrypoints/decidim_theme_email.js +1 -0
  21. data/app/packs/entrypoints/decidim_theme_email.scss +2 -0
  22. data/app/packs/entrypoints/decidim_theme_polyfill.js +5 -0
  23. data/app/packs/fonts/decidim/Inter-Black.woff +0 -0
  24. data/app/packs/fonts/decidim/Inter-Black.woff2 +0 -0
  25. data/app/packs/fonts/decidim/Inter-BlackItalic.woff +0 -0
  26. data/app/packs/fonts/decidim/Inter-BlackItalic.woff2 +0 -0
  27. data/app/packs/fonts/decidim/Inter-Bold.woff +0 -0
  28. data/app/packs/fonts/decidim/Inter-Bold.woff2 +0 -0
  29. data/app/packs/fonts/decidim/Inter-BoldItalic.woff +0 -0
  30. data/app/packs/fonts/decidim/Inter-BoldItalic.woff2 +0 -0
  31. data/app/packs/fonts/decidim/Inter-ExtraBold.woff +0 -0
  32. data/app/packs/fonts/decidim/Inter-ExtraBold.woff2 +0 -0
  33. data/app/packs/fonts/decidim/Inter-ExtraBoldItalic.woff +0 -0
  34. data/app/packs/fonts/decidim/Inter-ExtraBoldItalic.woff2 +0 -0
  35. data/app/packs/fonts/decidim/Inter-ExtraLight.woff +0 -0
  36. data/app/packs/fonts/decidim/Inter-ExtraLight.woff2 +0 -0
  37. data/app/packs/fonts/decidim/Inter-ExtraLightItalic.woff +0 -0
  38. data/app/packs/fonts/decidim/Inter-ExtraLightItalic.woff2 +0 -0
  39. data/app/packs/fonts/decidim/Inter-Italic.woff +0 -0
  40. data/app/packs/fonts/decidim/Inter-Italic.woff2 +0 -0
  41. data/app/packs/fonts/decidim/Inter-Light.woff +0 -0
  42. data/app/packs/fonts/decidim/Inter-Light.woff2 +0 -0
  43. data/app/packs/fonts/decidim/Inter-LightItalic.woff +0 -0
  44. data/app/packs/fonts/decidim/Inter-LightItalic.woff2 +0 -0
  45. data/app/packs/fonts/decidim/Inter-Medium.woff +0 -0
  46. data/app/packs/fonts/decidim/Inter-Medium.woff2 +0 -0
  47. data/app/packs/fonts/decidim/Inter-MediumItalic.woff +0 -0
  48. data/app/packs/fonts/decidim/Inter-MediumItalic.woff2 +0 -0
  49. data/app/packs/fonts/decidim/Inter-Regular.woff +0 -0
  50. data/app/packs/fonts/decidim/Inter-Regular.woff2 +0 -0
  51. data/app/packs/fonts/decidim/Inter-SemiBold.woff +0 -0
  52. data/app/packs/fonts/decidim/Inter-SemiBold.woff2 +0 -0
  53. data/app/packs/fonts/decidim/Inter-SemiBoldItalic.woff +0 -0
  54. data/app/packs/fonts/decidim/Inter-SemiBoldItalic.woff2 +0 -0
  55. data/app/packs/fonts/decidim/Inter-Thin.woff +0 -0
  56. data/app/packs/fonts/decidim/Inter-Thin.woff2 +0 -0
  57. data/app/packs/fonts/decidim/Inter-ThinItalic.woff +0 -0
  58. data/app/packs/fonts/decidim/Inter-ThinItalic.woff2 +0 -0
  59. data/app/packs/fonts/decidim/Inter-italic.var.woff2 +0 -0
  60. data/app/packs/fonts/decidim/Inter-roman.var.woff2 +0 -0
  61. data/app/packs/fonts/decidim/Inter.var.woff2 +0 -0
  62. data/app/packs/images/decidim/cc-by-sa-4.svg +8 -0
  63. data/app/packs/images/decidim/decidim-initial.svg +9 -0
  64. data/app/packs/images/decidim/theme/icon.svg +1 -0
  65. data/app/packs/javascripts/empty.polyfill.js +7 -0
  66. data/app/packs/javascripts/has.polyfill.js +30 -0
  67. data/app/packs/stylesheets/decidim/theme/_font_face.scss +180 -0
  68. data/app/packs/stylesheets/decidim/theme/_theme.scss +121 -0
  69. data/app/packs/stylesheets/decidim/theme/_theme_settings.scss +923 -0
  70. data/app/packs/stylesheets/decidim/theme/_theme_variables.scss +80 -0
  71. data/app/packs/stylesheets/decidim/theme/atoms/Buttons/_Generic.scss +98 -0
  72. data/app/packs/stylesheets/decidim/theme/atoms/Buttons/_Misc.scss +115 -0
  73. data/app/packs/stylesheets/decidim/theme/atoms/Buttons/_Navigation.scss +83 -0
  74. data/app/packs/stylesheets/decidim/theme/atoms/Typography/_Body.scss +88 -0
  75. data/app/packs/stylesheets/decidim/theme/atoms/Typography/_Headline.scss +98 -0
  76. data/app/packs/stylesheets/decidim/theme/atoms/Typography/_mixins.scss +109 -0
  77. data/app/packs/stylesheets/decidim/theme/email.scss +41 -0
  78. data/app/packs/stylesheets/decidim/theme/molecules/Callouts/_default.scss +41 -0
  79. data/app/packs/stylesheets/decidim/theme/molecules/Cards/_card_process.scss +24 -0
  80. data/app/packs/stylesheets/decidim/theme/molecules/Cards/_data-item.scss +31 -0
  81. data/app/packs/stylesheets/decidim/theme/molecules/Cards/_documents.scss +46 -0
  82. data/app/packs/stylesheets/decidim/theme/molecules/Cards/_extra.scss +32 -0
  83. data/app/packs/stylesheets/decidim/theme/molecules/Cards/_upcoming_meetings.scss +47 -0
  84. data/app/packs/stylesheets/decidim/theme/organisms/_account.scss +129 -0
  85. data/app/packs/stylesheets/decidim/theme/organisms/_accountability.scss +119 -0
  86. data/app/packs/stylesheets/decidim/theme/organisms/_assembly.scss +5 -0
  87. data/app/packs/stylesheets/decidim/theme/organisms/_authorizations.scss +25 -0
  88. data/app/packs/stylesheets/decidim/theme/organisms/_blog.scss +77 -0
  89. data/app/packs/stylesheets/decidim/theme/organisms/_budgets.scss +221 -0
  90. data/app/packs/stylesheets/decidim/theme/organisms/_cookie_warning.scss +6 -0
  91. data/app/packs/stylesheets/decidim/theme/organisms/_debate.scss +65 -0
  92. data/app/packs/stylesheets/decidim/theme/organisms/_footer.scss +145 -0
  93. data/app/packs/stylesheets/decidim/theme/organisms/_groups.scss +49 -0
  94. data/app/packs/stylesheets/decidim/theme/organisms/_logins.scss +45 -0
  95. data/app/packs/stylesheets/decidim/theme/organisms/_meetings.scss +214 -0
  96. data/app/packs/stylesheets/decidim/theme/organisms/_members.scss +6 -0
  97. data/app/packs/stylesheets/decidim/theme/organisms/_messaging.scss +118 -0
  98. data/app/packs/stylesheets/decidim/theme/organisms/_metrics.scss +31 -0
  99. data/app/packs/stylesheets/decidim/theme/organisms/_notifications.scss +20 -0
  100. data/app/packs/stylesheets/decidim/theme/organisms/_processes.scss +12 -0
  101. data/app/packs/stylesheets/decidim/theme/organisms/_proposals.scss +150 -0
  102. data/app/packs/stylesheets/decidim/theme/organisms/_search.scss +12 -0
  103. data/app/packs/stylesheets/decidim/theme/organisms/_sortitions.scss +65 -0
  104. data/app/packs/stylesheets/decidim/theme/organisms/_surveys.scss +65 -0
  105. data/app/packs/stylesheets/decidim/theme/organisms/_text_page.scss +115 -0
  106. data/app/packs/stylesheets/decidim/theme/organisms/_user_conversations.scss +7 -0
  107. data/app/packs/stylesheets/decidim/theme/reset/_author.scss +36 -0
  108. data/app/packs/stylesheets/decidim/theme/reset/_author_avatar.scss +182 -0
  109. data/app/packs/stylesheets/decidim/theme/reset/_badges.scss +159 -0
  110. data/app/packs/stylesheets/decidim/theme/reset/_base.scss +543 -0
  111. data/app/packs/stylesheets/decidim/theme/reset/_budget-list.scss +202 -0
  112. data/app/packs/stylesheets/decidim/theme/reset/_budget-meter.scss +85 -0
  113. data/app/packs/stylesheets/decidim/theme/reset/_buttons.scss +538 -0
  114. data/app/packs/stylesheets/decidim/theme/reset/_callout.scss +37 -0
  115. data/app/packs/stylesheets/decidim/theme/reset/_card.scss +1480 -0
  116. data/app/packs/stylesheets/decidim/theme/reset/_categories.scss +130 -0
  117. data/app/packs/stylesheets/decidim/theme/reset/_collapsible.scss +59 -0
  118. data/app/packs/stylesheets/decidim/theme/reset/_columns.scss +8 -0
  119. data/app/packs/stylesheets/decidim/theme/reset/_comments.scss +320 -0
  120. data/app/packs/stylesheets/decidim/theme/reset/_conversation.scss +158 -0
  121. data/app/packs/stylesheets/decidim/theme/reset/_data-consent.scss +133 -0
  122. data/app/packs/stylesheets/decidim/theme/reset/_data-picker.scss +243 -0
  123. data/app/packs/stylesheets/decidim/theme/reset/_definition_data.scss +93 -0
  124. data/app/packs/stylesheets/decidim/theme/reset/_docs-manager.scss +16 -0
  125. data/app/packs/stylesheets/decidim/theme/reset/_dropdown_menu.scss +312 -0
  126. data/app/packs/stylesheets/decidim/theme/reset/_errors.scss +87 -0
  127. data/app/packs/stylesheets/decidim/theme/reset/_extra.scss +56 -0
  128. data/app/packs/stylesheets/decidim/theme/reset/_filters.scss +224 -0
  129. data/app/packs/stylesheets/decidim/theme/reset/_floating_helper.scss +133 -0
  130. data/app/packs/stylesheets/decidim/theme/reset/_form.scss +176 -0
  131. data/app/packs/stylesheets/decidim/theme/reset/_home.scss +416 -0
  132. data/app/packs/stylesheets/decidim/theme/reset/_home_section.scss +23 -0
  133. data/app/packs/stylesheets/decidim/theme/reset/_horizontal-tabs.scss +130 -0
  134. data/app/packs/stylesheets/decidim/theme/reset/_icons.scss +3 -0
  135. data/app/packs/stylesheets/decidim/theme/reset/_inline-filters.scss +77 -0
  136. data/app/packs/stylesheets/decidim/theme/reset/_label.scss +79 -0
  137. data/app/packs/stylesheets/decidim/theme/reset/_labels.scss +53 -0
  138. data/app/packs/stylesheets/decidim/theme/reset/_layout.scss +82 -0
  139. data/app/packs/stylesheets/decidim/theme/reset/_lines_breadcrumb.scss +38 -0
  140. data/app/packs/stylesheets/decidim/theme/reset/_login.scss +3 -0
  141. data/app/packs/stylesheets/decidim/theme/reset/_logo_wrapper.scss +28 -0
  142. data/app/packs/stylesheets/decidim/theme/reset/_main_container.scss +96 -0
  143. data/app/packs/stylesheets/decidim/theme/reset/_metric-chart.scss +25 -0
  144. data/app/packs/stylesheets/decidim/theme/reset/_navbar.scss +763 -0
  145. data/app/packs/stylesheets/decidim/theme/reset/_opinion_toggle.scss +55 -0
  146. data/app/packs/stylesheets/decidim/theme/reset/_order-by.scss +34 -0
  147. data/app/packs/stylesheets/decidim/theme/reset/_org-chart.scss +6 -0
  148. data/app/packs/stylesheets/decidim/theme/reset/_pagination.scss +195 -0
  149. data/app/packs/stylesheets/decidim/theme/reset/_process.scss +20 -0
  150. data/app/packs/stylesheets/decidim/theme/reset/_process_header.scss +97 -0
  151. data/app/packs/stylesheets/decidim/theme/reset/_process_header_phase.scss +13 -0
  152. data/app/packs/stylesheets/decidim/theme/reset/_process_nav.scss +317 -0
  153. data/app/packs/stylesheets/decidim/theme/reset/_progress_bar.scss +89 -0
  154. data/app/packs/stylesheets/decidim/theme/reset/_quill.scss +47 -0
  155. data/app/packs/stylesheets/decidim/theme/reset/_result_per_page.scss +82 -0
  156. data/app/packs/stylesheets/decidim/theme/reset/_results.scss +158 -0
  157. data/app/packs/stylesheets/decidim/theme/reset/_reveal.scss +210 -0
  158. data/app/packs/stylesheets/decidim/theme/reset/_scope-picker.scss +10 -0
  159. data/app/packs/stylesheets/decidim/theme/reset/_select.scss +92 -0
  160. data/app/packs/stylesheets/decidim/theme/reset/_signup.scss +179 -0
  161. data/app/packs/stylesheets/decidim/theme/reset/_statistics.scss +42 -0
  162. data/app/packs/stylesheets/decidim/theme/reset/_switch.scss +272 -0
  163. data/app/packs/stylesheets/decidim/theme/reset/_tabs.scss +4 -0
  164. data/app/packs/stylesheets/decidim/theme/reset/_tags.scss +47 -0
  165. data/app/packs/stylesheets/decidim/theme/reset/_thumbnail.scss +66 -0
  166. data/app/packs/stylesheets/decidim/theme/reset/_timeline.scss +183 -0
  167. data/app/packs/stylesheets/decidim/theme/reset/_title_bar.scss +89 -0
  168. data/app/packs/stylesheets/decidim/theme/reset/_toggle.scss +14 -0
  169. data/app/packs/stylesheets/decidim/theme/reset/_tooltip.scss +173 -0
  170. data/app/packs/stylesheets/decidim/theme/reset/_typography.scss +283 -0
  171. data/app/packs/stylesheets/decidim/theme/reset/_upload_modal.scss +140 -0
  172. data/app/packs/stylesheets/decidim/theme/reset/_user-form.scss +15 -0
  173. data/app/packs/stylesheets/decidim/theme/reset/_user.scss +184 -0
  174. data/app/packs/stylesheets/decidim/theme/reset/_versions.scss +82 -0
  175. data/app/packs/stylesheets/decidim/theme/reset/_wrapper.scss +3 -0
  176. data/config/assets.rb +17 -0
  177. data/config/i18n-tasks.yml +10 -0
  178. data/config/locales/en.yml +62 -0
  179. data/config/locales/fr.yml +11 -0
  180. data/lib/decidim/theme/admin.rb +10 -0
  181. data/lib/decidim/theme/admin_engine.rb +27 -0
  182. data/lib/decidim/theme/engine.rb +29 -0
  183. data/lib/decidim/theme/test/factories.rb +13 -0
  184. data/lib/decidim/theme/version.rb +13 -0
  185. data/lib/decidim/theme.rb +12 -0
  186. metadata +271 -0
@@ -0,0 +1,543 @@
1
+ // Foundation for Sites
2
+ // https://get.foundation
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group typography-base
7
+ ////
8
+
9
+ // Base Typography
10
+ // - - - - - - - - - - - - - - -
11
+ // These are styles applied to basic HTML tags, including:
12
+ // - Paragraphs <p>
13
+ // - Bold/italics <b> <strong> <i> <em>
14
+ // - Small text <small>
15
+ // - Headings <h1>-<h6>
16
+ // - Anchors <a>
17
+ // - Dividers <hr>
18
+ // - Lists <ul> <ol> <dl>
19
+ // - Blockquotes <blockquote>
20
+ // - Code blocks <code>
21
+ // - Abbreviations <abbr>
22
+ // - Citations <cite>
23
+ // - Keystrokes <kbd>
24
+
25
+ body {
26
+ background-color: $body-background;
27
+ }
28
+
29
+ #content {
30
+ background-color: $body-background;
31
+ }
32
+
33
+ .off-canvas-wrapper {
34
+ background-color: $body-background;
35
+ }
36
+
37
+ /// Font family for header elements.
38
+ /// @type String | List
39
+ $header-font-family: $body-font-family;
40
+
41
+ /// Font weight of headers.
42
+ /// @type String
43
+ $header-font-weight: $global-weight-normal;
44
+
45
+ /// Font style (e.g. italicized) of headers.
46
+ /// @type String
47
+ $header-font-style: normal;
48
+
49
+ /// Font stack used for elements that use monospaced type, such as code samples
50
+ /// @type String | List
51
+ $font-family-monospace: Consolas, "Liberation Mono", Courier, monospace;
52
+
53
+ /// Color of headers.
54
+ /// @type Color
55
+ $header-color: inherit;
56
+
57
+ /// Line height of headers.
58
+ /// @type Number
59
+ $header-lineheight: 1.4;
60
+
61
+ /// Bottom margin of headers.
62
+ /// @type Number
63
+ $header-margin-bottom: 0.5rem;
64
+
65
+ /// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.
66
+ /// @type Map
67
+ $header-styles: (
68
+ small: (
69
+ "h1": (
70
+ "font-size": 24px,
71
+ ),
72
+ "h2": (
73
+ "font-size": 20px,
74
+ ),
75
+ "h3": (
76
+ "font-size": 19px,
77
+ ),
78
+ "h4": (
79
+ "font-size": 18px,
80
+ ),
81
+ "h5": (
82
+ "font-size": 17px,
83
+ ),
84
+ "h6": (
85
+ "font-size": 16px,
86
+ ),
87
+ ),
88
+ medium: (
89
+ "h1": (
90
+ "font-size": 48px,
91
+ ),
92
+ "h2": (
93
+ "font-size": 40px,
94
+ ),
95
+ "h3": (
96
+ "font-size": 31px,
97
+ ),
98
+ "h4": (
99
+ "font-size": 25px,
100
+ ),
101
+ "h5": (
102
+ "font-size": 20px,
103
+ ),
104
+ "h6": (
105
+ "font-size": 16px,
106
+ ),
107
+ ),
108
+ );
109
+
110
+ // $header-styles map is built from $header-sizes in order to ensure downward compatibility
111
+ // when $header-sizes is depreciated, $header-styles needs to get values like settings.scss
112
+ @function build-from-header-sizes($header-sizes) {
113
+ @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';
114
+ $header-styles: ();
115
+ @each $size, $headers in $header-sizes {
116
+ $header-map: ();
117
+ @each $header, $font-size in $headers {
118
+ $header-map: map-merge(
119
+ $header-map,
120
+ (
121
+ $header: (
122
+ "font-size": $font-size,
123
+ ),
124
+ )
125
+ );
126
+ }
127
+ $header-styles: map-merge(
128
+ $header-styles,
129
+ (
130
+ $size: $header-map,
131
+ )
132
+ );
133
+ }
134
+ @return $header-styles;
135
+ }
136
+
137
+ // If it exists $headers-sizes is used to build $header-styles. See the documentation.
138
+ @if variable-exists(header-sizes) {
139
+ $header-styles: build-from-header-sizes($header-sizes);
140
+ }
141
+
142
+ /// Text rendering method of headers.
143
+ /// @type String
144
+ $header-text-rendering: optimizeLegibility;
145
+
146
+ /// Font size of `<small>` elements.
147
+ /// @type Number
148
+ $small-font-size: 100%;
149
+
150
+ /// Color of `<small>` elements when placed inside headers.
151
+ /// @type Color
152
+ $header-small-font-color: $medium-gray;
153
+
154
+ /// Line height of text inside `<p>` elements.
155
+ /// @type Number
156
+ $paragraph-lineheight: 1.6;
157
+
158
+ /// Bottom margin of paragraphs.
159
+ /// @type Number
160
+ $paragraph-margin-bottom: 1rem;
161
+
162
+ /// Text rendering method for paragraph text.
163
+ /// @type String
164
+ $paragraph-text-rendering: optimizeLegibility;
165
+
166
+ /// Use the `.code-inline` component as default for `<code>` elements.
167
+ /// @type Boolean
168
+ $enable-code-inline: true;
169
+
170
+ /// Default color for links.
171
+ /// @type Color
172
+ $anchor-color: var(--primary);
173
+
174
+ /// Default color for links on hover.
175
+ /// @type Color
176
+ $anchor-color-hover: var(--primary);
177
+
178
+ /// Default text decoration for links.
179
+ /// @type String
180
+ $anchor-text-decoration: none;
181
+
182
+ /// Default text decoration for links on hover.
183
+ /// @type String
184
+ $anchor-text-decoration-hover: underline;
185
+
186
+ /// Maximum width of a divider.
187
+ /// @type Number
188
+ $hr-width: $global-width;
189
+
190
+ /// Default border for a divider.
191
+ /// @type List
192
+ $hr-border: 1px solid var(--grey2);
193
+
194
+ /// Default margin for a divider.
195
+ /// @type Number | List
196
+ $hr-margin: rem-calc(20) auto;
197
+
198
+ /// Line height for items in a list.
199
+ /// @type Number
200
+ $list-lineheight: $paragraph-lineheight;
201
+
202
+ /// Bottom margin for items in a list.
203
+ /// @type Number
204
+ $list-margin-bottom: $paragraph-margin-bottom;
205
+
206
+ /// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).
207
+ /// @type String
208
+ $list-style-type: disc;
209
+
210
+ /// Positioning for bullets on unordered list items.
211
+ /// @type String
212
+ $list-style-position: outside;
213
+
214
+ /// Left (or right) margin for lists.
215
+ /// @type Number
216
+ $list-side-margin: 1.25rem;
217
+
218
+ /// Left (or right) margin for a list inside a list.
219
+ /// @type Number
220
+ $list-nested-side-margin: 1.25rem;
221
+
222
+ /// Bottom margin for `<dl>` elements.
223
+ /// @type Number
224
+ $defnlist-margin-bottom: 1rem;
225
+
226
+ /// Font weight for `<dt>` elements.
227
+ /// @type String
228
+ $defnlist-term-weight: $global-weight-bold;
229
+
230
+ /// Spacing between `<dt>` and `<dd>` elements.
231
+ /// @type Number
232
+ $defnlist-term-margin-bottom: 0.3rem;
233
+
234
+ /// Text color of `<blockquote>` elements.
235
+ /// @type Color
236
+ $blockquote-color: $dark-gray;
237
+
238
+ /// Padding inside a `<blockquote>` element.
239
+ /// @type Number | List
240
+ $blockquote-padding: rem-calc(9 20 0 19);
241
+
242
+ /// Side border for `<blockquote>` elements.
243
+ /// @type List
244
+ $blockquote-border: 1px solid $medium-gray;
245
+
246
+ /// Use the `.cite-block` component as default for `<cite>` elements.
247
+ /// @type Boolean
248
+ $enable-cite-block: true;
249
+
250
+ /// Font family for `<kbd>` elements.
251
+ /// @type String | List
252
+ $keystroke-font: $font-family-monospace;
253
+
254
+ /// Text color for `<kbd>` elements.
255
+ /// @type Color
256
+ $keystroke-color: $black;
257
+
258
+ /// Background color for `<kbd>` elements.
259
+ /// @type Color
260
+ $keystroke-background: $light-gray;
261
+
262
+ /// Padding for `<kbd>` elements.
263
+ /// @type Number | List
264
+ $keystroke-padding: rem-calc(2 4 0);
265
+
266
+ /// Border radius for `<kbd>` elements.
267
+ /// @type Number | List
268
+ $keystroke-radius: $global-radius;
269
+
270
+ /// Bottom border style for `<abbr>` elements.
271
+ /// @type List
272
+ $abbr-underline: 1px dotted $black;
273
+
274
+ @mixin foundation-typography-base {
275
+ // Typography resets
276
+ div,
277
+ dl,
278
+ dt,
279
+ dd,
280
+ ul,
281
+ ol,
282
+ li,
283
+ h1,
284
+ h2,
285
+ h3,
286
+ h4,
287
+ h5,
288
+ h6,
289
+ pre,
290
+ form,
291
+ p,
292
+ blockquote,
293
+ th,
294
+ td {
295
+ margin: 0;
296
+ padding: 0;
297
+ }
298
+
299
+ // Paragraphs
300
+ p {
301
+ margin-bottom: $paragraph-margin-bottom;
302
+
303
+ font-size: inherit;
304
+ line-height: $paragraph-lineheight;
305
+ text-rendering: $paragraph-text-rendering;
306
+ }
307
+
308
+ // Emphasized text
309
+ em,
310
+ i {
311
+ font-style: italic;
312
+ line-height: inherit;
313
+ }
314
+
315
+ // Strong text
316
+ strong,
317
+ b {
318
+ font-weight: var(--font-weight-medium);
319
+ line-height: inherit;
320
+ }
321
+
322
+ // Small text
323
+ small {
324
+ font-size: 100%;
325
+ line-height: inherit;
326
+ }
327
+
328
+ // Headings
329
+ h1,
330
+ .h1,
331
+ h2,
332
+ .h2,
333
+ h3,
334
+ .h3,
335
+ h4,
336
+ .h4,
337
+ h5,
338
+ .h5,
339
+ h6,
340
+ .h6 {
341
+ font-family: $header-font-family;
342
+ font-style: $header-font-style;
343
+ font-weight: $header-font-weight;
344
+ color: $header-color;
345
+ text-rendering: $header-text-rendering;
346
+
347
+ small {
348
+ line-height: 0;
349
+ color: $header-small-font-color;
350
+ }
351
+ }
352
+
353
+ // Heading styles
354
+ @each $size, $headers in $header-styles {
355
+ @include breakpoint($size) {
356
+ @each $header, $header-defs in $headers {
357
+ $font-size-temp: 1rem;
358
+ #{$header},
359
+ .#{$header} {
360
+ @if map-has-key($header-defs, font-size) {
361
+ $font-size-temp: rem-calc(map-get($header-defs, font-size));
362
+ font-size: $font-size-temp;
363
+ } @else if map-has-key($header-defs, fs) {
364
+ $font-size-temp: rem-calc(map-get($header-defs, fs));
365
+ font-size: $font-size-temp;
366
+ } @else if $size == $-zf-zero-breakpoint {
367
+ font-size: $font-size-temp;
368
+ }
369
+ @if map-has-key($header-defs, line-height) {
370
+ line-height: unitless-calc(
371
+ map-get($header-defs, line-height),
372
+ $font-size-temp
373
+ );
374
+ } @else if map-has-key($header-defs, lh) {
375
+ line-height: unitless-calc(
376
+ map-get($header-defs, lh),
377
+ $font-size-temp
378
+ );
379
+ } @else if $size == $-zf-zero-breakpoint {
380
+ line-height: unitless-calc($header-lineheight, $font-size-temp);
381
+ }
382
+
383
+ @if map-has-key($header-defs, margin-top) {
384
+ margin-top: rem-calc(map-get($header-defs, margin-top));
385
+ } @else if map-has-key($header-defs, mt) {
386
+ margin-top: rem-calc(map-get($header-defs, mt));
387
+ } @else if $size == $-zf-zero-breakpoint {
388
+ margin-top: 0;
389
+ }
390
+ @if map-has-key($header-defs, margin-bottom) {
391
+ margin-bottom: rem-calc(map-get($header-defs, margin-bottom));
392
+ } @else if map-has-key($header-defs, mb) {
393
+ margin-bottom: rem-calc(map-get($header-defs, mb));
394
+ } @else if $size == $-zf-zero-breakpoint {
395
+ margin-bottom: rem-calc($header-margin-bottom);
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }
401
+
402
+ // Links
403
+ a {
404
+ line-height: inherit;
405
+ cursor: pointer;
406
+ @extend .body-4;
407
+ @extend .body-4-medium;
408
+ @extend .body-4-link;
409
+
410
+ img {
411
+ border: 0;
412
+ }
413
+ }
414
+
415
+ // Horizontal rule
416
+ hr {
417
+ clear: both;
418
+
419
+ max-width: $hr-width;
420
+ height: 0;
421
+ margin: $hr-margin;
422
+
423
+ border-top: 0;
424
+ border-right: 0;
425
+ border-bottom: $hr-border;
426
+ border-left: 0;
427
+ }
428
+
429
+ // Lists
430
+ ul,
431
+ ol,
432
+ dl {
433
+ margin-bottom: $list-margin-bottom;
434
+ list-style-position: $list-style-position;
435
+ line-height: $list-lineheight;
436
+ }
437
+
438
+ // List items
439
+ li {
440
+ font-size: unset;
441
+ list-style-position: outside;
442
+ }
443
+
444
+ // Unordered lists
445
+ ul {
446
+ margin-#{$global-left}: $list-side-margin;
447
+ list-style-position: outside;
448
+ list-style-type: $list-style-type;
449
+ }
450
+
451
+ // Ordered lists
452
+ ol {
453
+ margin-#{$global-left}: $list-side-margin;
454
+ }
455
+
456
+ // Nested unordered/ordered lists
457
+ ul,
458
+ ol {
459
+ & & {
460
+ margin-#{$global-left}: $list-nested-side-margin;
461
+ margin-bottom: 0;
462
+ }
463
+ }
464
+
465
+ // Definition lists
466
+ dl {
467
+ margin-bottom: $defnlist-margin-bottom;
468
+
469
+ dt {
470
+ margin-bottom: $defnlist-term-margin-bottom;
471
+ font-weight: $defnlist-term-weight;
472
+ }
473
+ }
474
+
475
+ // Blockquotes
476
+ blockquote {
477
+ margin: 0 0 $paragraph-margin-bottom;
478
+ padding: $blockquote-padding;
479
+ border-#{$global-left}: $blockquote-border;
480
+
481
+ &,
482
+ p {
483
+ line-height: $paragraph-lineheight;
484
+ color: $blockquote-color;
485
+ }
486
+ }
487
+
488
+ // Inline Citations
489
+ @if ($enable-cite-block == true) {
490
+ cite {
491
+ // Extending a class is not recommended.
492
+ // TODO: Break the typography-base/typography-helpers separation
493
+ @extend %cite-block;
494
+ }
495
+ }
496
+
497
+ // Abbreviations
498
+ abbr,
499
+ abbr[title] {
500
+ border-bottom: $abbr-underline;
501
+ cursor: help;
502
+ text-decoration: none;
503
+ }
504
+
505
+ // Figures
506
+ figure {
507
+ margin: 0;
508
+ }
509
+
510
+ // Code
511
+ @if ($enable-code-inline == true) {
512
+ code {
513
+ @extend %code-inline;
514
+ }
515
+ }
516
+
517
+ // Keystrokes
518
+ kbd {
519
+ margin: 0;
520
+ padding: $keystroke-padding;
521
+
522
+ background-color: $keystroke-background;
523
+
524
+ font-family: $keystroke-font;
525
+ color: $keystroke-color;
526
+
527
+ @if has-value($keystroke-radius) {
528
+ border-radius: $keystroke-radius;
529
+ }
530
+ }
531
+ }
532
+
533
+ .tech-info {
534
+ @extend .body-5;
535
+ margin-bottom: 1rem;
536
+ }
537
+ .share-link.link {
538
+ font-weight: normal;
539
+ }
540
+ .help-text,
541
+ .tos-text {
542
+ @extend .body-5;
543
+ }