jekyll-theme-mastodon 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/_includes/analytics.html +36 -0
  3. data/_includes/analytics/amplitude.js +35 -0
  4. data/_includes/analytics/gtag.js +9 -0
  5. data/_includes/analytics/gtm.js +5 -0
  6. data/_includes/analytics/hotjar.js +8 -0
  7. data/_includes/analytics/matomo.js +10 -0
  8. data/_includes/analytics/quantcast.js +12 -0
  9. data/_includes/footer.html +28 -0
  10. data/_includes/head.html +41 -0
  11. data/_includes/header.html +18 -0
  12. data/_includes/resources.html +20 -0
  13. data/_layouts/about.html +71 -0
  14. data/_layouts/default.html +15 -0
  15. data/_layouts/error.html +31 -0
  16. data/_layouts/none.html +4 -0
  17. data/_layouts/page.html +15 -0
  18. data/_layouts/post.html +56 -0
  19. data/_layouts/profile.html +199 -0
  20. data/_layouts/redirect.html +18 -0
  21. data/_layouts/rss.html +29 -0
  22. data/_layouts/sitemap.html +29 -0
  23. data/_layouts/tags.html +32 -0
  24. data/_sass/_about.scss +905 -0
  25. data/_sass/_accounts.scss +327 -0
  26. data/_sass/_admin.scss +918 -0
  27. data/_sass/_basics.scss +272 -0
  28. data/_sass/_boost.scss +32 -0
  29. data/_sass/_compact_header.scss +34 -0
  30. data/_sass/_components.scss +7363 -0
  31. data/_sass/_containers.scss +903 -0
  32. data/_sass/_dashboard.scss +78 -0
  33. data/_sass/_font-montserrat.scss +19 -0
  34. data/_sass/_font-roboto.scss +47 -0
  35. data/_sass/_font-robotomono.scss +11 -0
  36. data/_sass/_footer.scss +137 -0
  37. data/_sass/_forms.scss +1009 -0
  38. data/_sass/_highlights.scss +146 -0
  39. data/_sass/_introduction.scss +154 -0
  40. data/_sass/_lists.scss +19 -0
  41. data/_sass/_mixins.scss +56 -0
  42. data/_sass/_modal.scss +35 -0
  43. data/_sass/_polls.scss +274 -0
  44. data/_sass/_reset.scss +108 -0
  45. data/_sass/_rtl.scss +468 -0
  46. data/_sass/_statuses.scss +191 -0
  47. data/_sass/_tables.scss +293 -0
  48. data/_sass/_variables.scss +58 -0
  49. data/_sass/_widgets.scss +619 -0
  50. data/assets/404.gif +0 -0
  51. data/assets/avatar.png +0 -0
  52. data/assets/banner.png +0 -0
  53. data/assets/fonts/montserrat/Montserrat-Medium.ttf +0 -0
  54. data/assets/fonts/montserrat/Montserrat-Regular.ttf +0 -0
  55. data/assets/fonts/montserrat/Montserrat-Regular.woff +0 -0
  56. data/assets/fonts/montserrat/Montserrat-Regular.woff2 +0 -0
  57. data/assets/fonts/roboto/roboto-bold-webfont.svg +16273 -0
  58. data/assets/fonts/roboto/roboto-bold-webfont.ttf +0 -0
  59. data/assets/fonts/roboto/roboto-bold-webfont.woff +0 -0
  60. data/assets/fonts/roboto/roboto-bold-webfont.woff2 +0 -0
  61. data/assets/fonts/roboto/roboto-italic-webfont.svg +15513 -0
  62. data/assets/fonts/roboto/roboto-italic-webfont.ttf +0 -0
  63. data/assets/fonts/roboto/roboto-italic-webfont.woff +0 -0
  64. data/assets/fonts/roboto/roboto-italic-webfont.woff2 +0 -0
  65. data/assets/fonts/roboto/roboto-medium-webfont.svg +16273 -0
  66. data/assets/fonts/roboto/roboto-medium-webfont.ttf +0 -0
  67. data/assets/fonts/roboto/roboto-medium-webfont.woff +0 -0
  68. data/assets/fonts/roboto/roboto-medium-webfont.woff2 +0 -0
  69. data/assets/fonts/roboto/roboto-regular-webfont.svg +15513 -0
  70. data/assets/fonts/roboto/roboto-regular-webfont.ttf +0 -0
  71. data/assets/fonts/roboto/roboto-regular-webfont.woff +0 -0
  72. data/assets/fonts/roboto/roboto-regular-webfont.woff2 +0 -0
  73. data/assets/fonts/robotomono/robotomono-regular-webfont.svg +1051 -0
  74. data/assets/fonts/robotomono/robotomono-regular-webfont.ttf +0 -0
  75. data/assets/fonts/robotomono/robotomono-regular-webfont.woff +0 -0
  76. data/assets/fonts/robotomono/robotomono-regular-webfont.woff2 +0 -0
  77. data/assets/hero.png +0 -0
  78. data/assets/mastodon.scss +34 -0
  79. data/license +661 -0
  80. data/readme.md +3 -0
  81. metadata +136 -0
@@ -0,0 +1,199 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class=container>
6
+ <div class=public-account-header>
7
+ <div class=public-account-header__image {% if site.banner == nil %} style="background-color: #191b22;" {% endif %}>
8
+ {% if page.banner %}<img class=parallax src="{{ page.banner | relative_url }}" alt="Header Image">{% endif %}
9
+ </div>
10
+ <div class=public-account-header__bar>
11
+ <div class=avatar>
12
+ <img id=profile_page_avatar src='{{ page.avatar.path | relative_url }}' alt="Avatar Image">
13
+ </div>
14
+ <div class=public-account-header__tabs>
15
+ <div class=public-account-header__tabs__name>
16
+ <h1>
17
+ {{ page.author.name }}
18
+ <small>
19
+ @{{ page.author.handle }}@{{ site.host }}
20
+ </small>
21
+ </h1>
22
+ </div>
23
+ <div class=public-account-header__tabs__tabs>
24
+ <div class=details-counters>
25
+ <div class="counter active">
26
+ <span class="u-url u-uid">
27
+ <span class=counter-number>{%- for post in site.posts -%}{% if post.author.handle == page.author.handle %}{% assign var = var | plus: 1 %}{% endif %}{%- endfor -%}{{ var | default: "0" }}</span>
28
+ <span class=counter-label>Toots</span>
29
+ </span>
30
+ </div>
31
+ </div>
32
+ <div class=spacer></div>
33
+ <div class=public-account-header__tabs__tabs__buttons>
34
+ <a class="button logo-button modal-button" target=_new href="{{ '/feed.xml' | relative_url }}">Subscribe to RSS</a>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <div class="public-account-header__extra sf-hidden"></div>
39
+ </div>
40
+ </div>
41
+ <div class=grid>
42
+ <div class=column-0>
43
+ <div class=h-feed>
44
+ <data class=p-name value="ethanmcbloxxer on mastodon.online">
45
+ <div class="activity-stream activity-stream--under-tabs">
46
+ {% assign pinnedcontent = content | strip %}
47
+ {% if pinnedcontent != "" %}
48
+ <div class="entry h-entry">
49
+ <div class="status__prepend" style="margin-left: 50px;">
50
+ <div class="status__prepend-icon-wrapper">
51
+ <i class="fa fa-thumbtack fa-fw" title="Pinned"></i>
52
+ </div>
53
+ <span>&nbsp;</span>
54
+ </div>
55
+ <div class="status status-public">
56
+ <div class=status__info>
57
+ <div class="p-author h-card">
58
+ <div class=status__avatar>
59
+ <div>
60
+ <img alt class="u-photo account__avatar" src="{{ page.avatar.path | relative_url }}">
61
+ </div>
62
+ </div>
63
+ <span class=display-name>
64
+ <bdi>
65
+ <strong class="display-name__html p-name">{{ page.author.name }}</strong>
66
+ </bdi>
67
+ <span class=display-name__account style="color: #606984">@{{ page.author.handle }}@{{ site.host }}</span>
68
+ </span>
69
+ </div>
70
+ </div>
71
+ <div class="status__content">
72
+ <div class=e-content>
73
+ {% if page.truncate %}
74
+ {% assign truncate = page.truncate %}
75
+ {{ content | truncatewords: truncate }}
76
+ {% assign truncate = nil %}
77
+ {% else %}
78
+ {{ content }}
79
+ {% endif %}
80
+ {% for tag in post.tags %}
81
+ <a href="{{ '/tags/' | append: "#" | append: tag | relative_url }}" style="color: #9baec8">#{{ tag }}</a>
82
+ {% endfor %}
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ {% endif %}
88
+ {% assign pinnedcontent = nil %}
89
+
90
+ {% for post in site.posts reversed %}
91
+ {% if post.author.handle == page.author.handle %}
92
+ <div class="entry h-entry">
93
+ <div class="status status-public">
94
+ <div class=status__info>
95
+ <a class="status__relative-time u-url u-uid" rel="noopener noreferrer" href="{{ post.url | relative_url }}">
96
+ <time class=time-ago datetime="{{ post.date | date_to_xmlschema }}" title="{{ post.date | date: '%B %-d, %Y'}}">{{ post.date | date: '%b %-d, %Y'}}</time>
97
+ </a>
98
+ <data class=dt-published value=2021-02-23T18:57:11+00:00></data>
99
+ <div class="p-author h-card">
100
+ <span class="status__display-name u-url">
101
+ <div class=status__avatar>
102
+ <div>
103
+ <img alt class="u-photo account__avatar" src="{{ page.avatar.path | relative_url }}">
104
+ </div>
105
+ </div>
106
+ <span class=display-name>
107
+ <a href="{{ post.url | relative_url }}" style="text-decoration: none;">
108
+ <bdi>
109
+ <strong class="display-name__html p-name">{{ page.author.name }}</strong>
110
+ </bdi>
111
+ </a>
112
+ <span class=display-name__account>@{{ page.author.handle }}@{{ site.host }}</span>
113
+ </span>
114
+ </span>
115
+ </div>
116
+ </div>
117
+ <div class="status__content">
118
+ <div class=e-content>
119
+ {% if post.truncate %}
120
+ {% assign truncate = page.truncate %}
121
+ {{ post.content | truncatewords: truncate }}
122
+ {% assign truncate = nil %}
123
+ {% else %}
124
+ {{ post.content }}
125
+ {% endif %}
126
+ {% for tag in post.tags %}
127
+ <a href="{{ '/tags/' | append: "#" | append: tag | relative_url }}" style="color: #9baec8">#{{ tag }}</a>
128
+ {% endfor %}
129
+ {% if post.media %}
130
+ <div data-component="MediaGallery">
131
+ <div class="media-gallery" style="height: 30rem;">
132
+ <div class="media-gallery__item standalone" style="inset: auto; width: 100%; height: 100%;">
133
+ <canvas class="media-gallery__preview media-gallery__preview--hidden" width="32" height="32"></canvas>
134
+ <a class="media-gallery__item-thumbnail" href="{{ post.media }}" target="_blank" rel="noopener noreferrer">
135
+ <img src="{{ post.media }}" style="object-position: 50% 50%;">
136
+ </a>
137
+ </div>
138
+ </div>
139
+ </div>
140
+ {% endif %}
141
+ </div>
142
+ </div>
143
+ <div class=status__action-bar>
144
+ <a class="status__action-bar-button icon-button modal-button" href="{{ post.url | append: '#comments' | relative_url }}" title="Reply" aria-label="Reply"><i class="fa fa-reply fa-fw"></i></a>
145
+ <a class="status__action-bar-button icon-button modal-button" href="{{ post.url | relative_url }}" title="Permanent Link" aria-label="Bookmark"><i class="fa fa-bookmark fa-fw"></i></a>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ {% endif %}
150
+ {% endfor %}
151
+ </div>
152
+ </data>
153
+ </div>
154
+ </div>
155
+ <div class=column-1>
156
+ <div class=public-account-bio>
157
+ <div class="account__header__fields">
158
+ {% for table in page.fields %}<dl>
159
+ <dt>{{ table.name | markdownify }}</dt>
160
+ <dd title="{{- table.content | markdownify | strip_html -}}">
161
+ {{ table.content | markdownify }}
162
+ </dd>
163
+ </dl>{% endfor %}
164
+ </div>
165
+ {% if page.role or page.admin or page.moderator %}<div class="roles">
166
+ {% if page.admin %}<div class="account-role admin">Admin</div>{% endif %}
167
+ {% if page.moderator %}<div class="account-role moderator">Moderator</div>{% endif %}
168
+ {% if page.role %}<div class="account-role">{{ page.role }}</div>{% endif %}
169
+ </div>{% endif %}
170
+ <div class="account__header__content">
171
+ {{ page.bio | markdownify | smartify }}
172
+ </div>
173
+ <div class=public-account-bio__extra>
174
+ Last generated {{ "now" | date: "%B %e, %Y" }}
175
+ </div>
176
+ </div>
177
+ <div class=hero-widget>
178
+ <div class=hero-widget__img>
179
+ <img src="{{ '/assets/hero.png' | relative_url }}" alt="Mastodon in Rio">
180
+ </div>
181
+ <div class=hero-widget__text>
182
+ <p>This website uses <a href=https://github.com/EthanMcBloxxer/jekyll-theme-mastodon/>jekyll-theme-mastodon</a>, a Jekyll theme created by EthanMcBloxxer using the <a href=https://github.com/tootsuite/mastodon>Mastodon source code</a> and the <a href=https://mastodon.online/>official public instance's HTML.</a>
183
+ <ul>
184
+ <li>Jekyll v{{ jekyll.version }}</li>
185
+ </ul>
186
+ </p>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ {% if site.amplitude %}
192
+ {% assign key = site.amplitude %}
193
+ {% include analytics.html key=key %}
194
+ <script type="text/javascript">
195
+ amplitude.getInstance().logEvent("Profile View", {handle: "{{ page.author.handle }}"});
196
+ </script>
197
+ {% assign key = nil %}
198
+ {% endif %}
199
+ </div>
@@ -0,0 +1,18 @@
1
+ ---
2
+ ---
3
+
4
+ {% if page.redirect %}
5
+ <!DOCTYPE html>
6
+ <html lang="en">
7
+ <head>
8
+ <meta charset="utf-8">
9
+ <script>document.location.href = "{{ page.redirect }}";</script>
10
+ <meta http-equiv="Refresh" content="0; url='{{ page.redirect }}'">
11
+ <title>Redirecting...</title>
12
+ </head>
13
+ <body>
14
+ <h1>this page has been moved to <a href="{{ page.redirect }}">{{ page.redirect }}</h1>
15
+ <script>document.location.href = "{{ page.redirect }}";</script>
16
+ </body>
17
+ </html>
18
+ {% endif %}
data/_layouts/rss.html ADDED
@@ -0,0 +1,29 @@
1
+ ---
2
+ ---
3
+
4
+ <?xml version="1.0" encoding="UTF-8"?>
5
+ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
6
+ <channel>
7
+ <title>{{ page.title | xml_escape }}</title>
8
+ <description>{{ page.description | xml_escape }}</description>
9
+ <link>{{ site.url }}{{ site.baseurl }}/</link>
10
+ <atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
11
+ <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
12
+ <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
13
+ <generator>Jekyll v{{ jekyll.version }}</generator>
14
+ {% if page.limit %}{% assign limit = page.limit %}{% else %}{% assign limit = "20" %}{% endif %}
15
+ {% for post in site.posts limit:limit %}
16
+ <item>
17
+ <title>{{ post.title | xml_escape }}</title>
18
+ <description>{{ post.content | xml_escape }}</description>
19
+ <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
20
+ <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
21
+ <guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
22
+ {% for tag in post.tags %}
23
+ <category>{{ tag | xml_escape }}</category>
24
+ <author>{{ post.author.handle }}@{{ site.host }}</author>
25
+ {% endfor %}
26
+ </item>
27
+ {% endfor %}
28
+ </channel>
29
+ </rss>
@@ -0,0 +1,29 @@
1
+ ---
2
+ ---
3
+
4
+ <?xml version="1.0" encoding="UTF-8"?>
5
+ <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
6
+ {% for page in site.pages %}
7
+ {% if page.url contains '.xml' or page.url contains 'assets' %}{% else %}
8
+ <url>
9
+ <loc>{{ site.url }}{{ page.url }}</loc>
10
+ <changefreq>monthly</changefreq>
11
+ <priority>1.0</priority>
12
+ </url>
13
+ {% endif %}
14
+ {% endfor %}
15
+ {% for page in site.posts %}
16
+ <url>
17
+ <loc>{{ site.url }}{{ page.url | replace: 'index.html', '' }}</loc>
18
+ <changefreq>monthly</changefreq>
19
+ <priority>1.0</priority>
20
+ </url>
21
+ {% endfor %}
22
+ {% for page in site.without-plugin %}
23
+ <url>
24
+ <loc>{{ site.url }}{{ page.url | replace: 'index.html', '' }}</loc>
25
+ <changefreq>monthly</changefreq>
26
+ <priority>1.0</priority>
27
+ </url>
28
+ {% endfor %}
29
+ </urlset>
@@ -0,0 +1,32 @@
1
+ ---
2
+ layout: page
3
+ ---
4
+
5
+ <h1>Hashtag Index</h1>
6
+
7
+ {% assign date_format = "%b %-d, %Y" %}
8
+
9
+ {%- capture site_tags -%}
10
+ {%- for tag in site.tags -%}
11
+ {{- tag | first -}}{%- unless forloop.last -%},{%- endunless -%}
12
+ {%- endfor -%}
13
+ {%- endcapture -%}
14
+ {%- assign tags_list = site_tags | split:',' | sort -%}
15
+
16
+ <div id="full-tags-list">
17
+ {%- for tag in tags_list -%}
18
+ <h2 id="{{- tag -}}" class="linked-section" style="margin: 0">
19
+ <i class="fas fa-tag" aria-hidden="true" style="font-size: 0.65em;"></i>
20
+ &nbsp;{{- tag -}}&nbsp;({{site.tags[tag].size}})
21
+ </h2>
22
+ <div class="post-list">
23
+ {%- for post in site.tags[tag] -%}
24
+ <div class="tag-entry">
25
+ <a href="{{ post.url | relative_url }}">{{- post.title -}}</a>
26
+ <div class="entry-date">
27
+ <time datetime="{{- post.date | date_to_xmlschema -}}">{{- post.date | date: date_format -}}</time>
28
+ </div>
29
+ </div>
30
+ {%- endfor -%}
31
+ </div>
32
+ {%- endfor -%}
data/_sass/_about.scss ADDED
@@ -0,0 +1,905 @@
1
+ $maximum-width: 1235px;
2
+ $fluid-breakpoint: $maximum-width + 20px;
3
+ $column-breakpoint: 700px;
4
+ $small-breakpoint: 960px;
5
+
6
+ .container {
7
+ box-sizing: border-box;
8
+ max-width: $maximum-width;
9
+ margin: 0 auto;
10
+ position: relative;
11
+
12
+ @media screen and (max-width: $fluid-breakpoint) {
13
+ width: 100%;
14
+ padding: 0 10px;
15
+ }
16
+ }
17
+
18
+ .rich-formatting {
19
+ font-family: $font-sans-serif, sans-serif;
20
+ font-size: 14px;
21
+ font-weight: 400;
22
+ line-height: 1.7;
23
+ word-wrap: break-word;
24
+ color: $darker-text-color;
25
+
26
+ a {
27
+ color: $highlight-text-color;
28
+ text-decoration: underline;
29
+
30
+ &:hover,
31
+ &:focus,
32
+ &:active {
33
+ text-decoration: none;
34
+ }
35
+ }
36
+
37
+ p,
38
+ li {
39
+ color: $darker-text-color;
40
+ }
41
+
42
+ p {
43
+ margin-top: 0;
44
+ margin-bottom: .85em;
45
+
46
+ &:last-child {
47
+ margin-bottom: 0;
48
+ }
49
+ }
50
+
51
+ strong {
52
+ font-weight: 700;
53
+ color: $secondary-text-color;
54
+ }
55
+
56
+ em {
57
+ font-style: italic;
58
+ color: $secondary-text-color;
59
+ }
60
+
61
+ code {
62
+ font-size: 0.85em;
63
+ border-radius: 4px;
64
+ }
65
+
66
+ h1,
67
+ h2,
68
+ h3,
69
+ h4,
70
+ h5,
71
+ h6 {
72
+ font-family: $font-display, sans-serif;
73
+ margin-top: 1.275em;
74
+ margin-bottom: .85em;
75
+ font-weight: 500;
76
+ color: $secondary-text-color;
77
+ }
78
+
79
+ h1 {
80
+ font-size: 2em;
81
+ }
82
+
83
+ h2 {
84
+ font-size: 1.75em;
85
+ }
86
+
87
+ h3 {
88
+ font-size: 1.5em;
89
+ }
90
+
91
+ h4 {
92
+ font-size: 1.25em;
93
+ }
94
+
95
+ h5,
96
+ h6 {
97
+ font-size: 1em;
98
+ }
99
+
100
+ ul {
101
+ list-style: disc;
102
+ }
103
+
104
+ ol {
105
+ list-style: decimal;
106
+ }
107
+
108
+ ul,
109
+ ol {
110
+ margin: 0;
111
+ padding: 0;
112
+ padding-left: 2em;
113
+ margin-bottom: 0.85em;
114
+
115
+ &[type='a'] {
116
+ list-style-type: lower-alpha;
117
+ }
118
+
119
+ &[type='i'] {
120
+ list-style-type: lower-roman;
121
+ }
122
+ }
123
+
124
+ hr {
125
+ width: 100%;
126
+ height: 0;
127
+ border: 0;
128
+ border-bottom: 1px solid lighten($ui-base-color, 4%);
129
+ margin: 1.7em 0;
130
+
131
+ &.spacer {
132
+ height: 1px;
133
+ border: 0;
134
+ }
135
+ }
136
+
137
+ table {
138
+ width: 100%;
139
+ border-collapse: collapse;
140
+ break-inside: auto;
141
+ margin-top: 24px;
142
+ margin-bottom: 32px;
143
+
144
+ thead tr,
145
+ tbody tr {
146
+ border-bottom: 1px solid lighten($ui-base-color, 4%);
147
+ font-size: 1em;
148
+ line-height: 1.625;
149
+ font-weight: 400;
150
+ text-align: left;
151
+ color: $darker-text-color;
152
+ }
153
+
154
+ thead tr {
155
+ border-bottom-width: 2px;
156
+ line-height: 1.5;
157
+ font-weight: 500;
158
+ color: $dark-text-color;
159
+ }
160
+
161
+ th,
162
+ td {
163
+ padding: 8px;
164
+ align-self: start;
165
+ align-items: start;
166
+ word-break: break-all;
167
+
168
+ &.nowrap {
169
+ width: 25%;
170
+ position: relative;
171
+
172
+ &::before {
173
+ content: '&nbsp;';
174
+ visibility: hidden;
175
+ }
176
+
177
+ span {
178
+ position: absolute;
179
+ left: 8px;
180
+ right: 8px;
181
+ white-space: nowrap;
182
+ overflow: hidden;
183
+ text-overflow: ellipsis;
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ & > :first-child {
190
+ margin-top: 0;
191
+ }
192
+ }
193
+
194
+ .information-board {
195
+ background: darken($ui-base-color, 4%);
196
+ padding: 20px 0;
197
+
198
+ .container-alt {
199
+ position: relative;
200
+ padding-right: 280px + 15px;
201
+ }
202
+
203
+ &__sections {
204
+ display: flex;
205
+ justify-content: space-between;
206
+ flex-wrap: wrap;
207
+ }
208
+
209
+ &__section {
210
+ flex: 1 0 0;
211
+ font-family: $font-sans-serif, sans-serif;
212
+ font-size: 16px;
213
+ line-height: 28px;
214
+ color: $primary-text-color;
215
+ text-align: right;
216
+ padding: 10px 15px;
217
+
218
+ span,
219
+ strong {
220
+ display: block;
221
+ }
222
+
223
+ span {
224
+ &:last-child {
225
+ color: $secondary-text-color;
226
+ }
227
+ }
228
+
229
+ strong {
230
+ font-family: $font-display, sans-serif;
231
+ font-weight: 500;
232
+ font-size: 32px;
233
+ line-height: 48px;
234
+ }
235
+
236
+ @media screen and (max-width: $column-breakpoint) {
237
+ text-align: center;
238
+ }
239
+ }
240
+
241
+ .panel {
242
+ position: absolute;
243
+ width: 280px;
244
+ box-sizing: border-box;
245
+ background: darken($ui-base-color, 8%);
246
+ padding: 20px;
247
+ padding-top: 10px;
248
+ border-radius: 4px 4px 0 0;
249
+ right: 0;
250
+ bottom: -40px;
251
+
252
+ .panel-header {
253
+ font-family: $font-display, sans-serif;
254
+ font-size: 14px;
255
+ line-height: 24px;
256
+ font-weight: 500;
257
+ color: $darker-text-color;
258
+ padding-bottom: 5px;
259
+ margin-bottom: 15px;
260
+ border-bottom: 1px solid lighten($ui-base-color, 4%);
261
+ text-overflow: ellipsis;
262
+ white-space: nowrap;
263
+ overflow: hidden;
264
+
265
+ a,
266
+ span {
267
+ font-weight: 400;
268
+ color: darken($darker-text-color, 10%);
269
+ }
270
+
271
+ a {
272
+ text-decoration: none;
273
+ }
274
+ }
275
+ }
276
+
277
+ .owner {
278
+ text-align: center;
279
+
280
+ .avatar {
281
+ width: 80px;
282
+ height: 80px;
283
+ margin: 0 auto;
284
+ margin-bottom: 15px;
285
+
286
+ img {
287
+ display: block;
288
+ width: 80px;
289
+ height: 80px;
290
+ border-radius: 48px;
291
+ }
292
+ }
293
+
294
+ .name {
295
+ font-size: 14px;
296
+
297
+ a {
298
+ display: block;
299
+ color: $primary-text-color;
300
+ text-decoration: none;
301
+
302
+ &:hover {
303
+ .display_name {
304
+ text-decoration: underline;
305
+ }
306
+ }
307
+ }
308
+
309
+ .username {
310
+ display: block;
311
+ color: $darker-text-color;
312
+ }
313
+ }
314
+ }
315
+ }
316
+
317
+ .landing-page {
318
+ p,
319
+ li {
320
+ font-family: $font-sans-serif, sans-serif;
321
+ font-size: 16px;
322
+ font-weight: 400;
323
+ font-size: 16px;
324
+ line-height: 30px;
325
+ margin-bottom: 12px;
326
+ color: $darker-text-color;
327
+
328
+ a {
329
+ color: $highlight-text-color;
330
+ text-decoration: underline;
331
+ }
332
+ }
333
+
334
+ em {
335
+ display: inline;
336
+ margin: 0;
337
+ padding: 0;
338
+ font-weight: 700;
339
+ background: transparent;
340
+ font-family: inherit;
341
+ font-size: inherit;
342
+ line-height: inherit;
343
+ color: lighten($darker-text-color, 10%);
344
+ }
345
+
346
+ h1 {
347
+ font-family: $font-display, sans-serif;
348
+ font-size: 26px;
349
+ line-height: 30px;
350
+ font-weight: 500;
351
+ margin-bottom: 20px;
352
+ color: $secondary-text-color;
353
+
354
+ small {
355
+ font-family: $font-sans-serif, sans-serif;
356
+ display: block;
357
+ font-size: 18px;
358
+ font-weight: 400;
359
+ color: lighten($darker-text-color, 10%);
360
+ }
361
+ }
362
+
363
+ h2 {
364
+ font-family: $font-display, sans-serif;
365
+ font-size: 22px;
366
+ line-height: 26px;
367
+ font-weight: 500;
368
+ margin-bottom: 20px;
369
+ color: $secondary-text-color;
370
+ }
371
+
372
+ h3 {
373
+ font-family: $font-display, sans-serif;
374
+ font-size: 18px;
375
+ line-height: 24px;
376
+ font-weight: 500;
377
+ margin-bottom: 20px;
378
+ color: $secondary-text-color;
379
+ }
380
+
381
+ h4 {
382
+ font-family: $font-display, sans-serif;
383
+ font-size: 16px;
384
+ line-height: 24px;
385
+ font-weight: 500;
386
+ margin-bottom: 20px;
387
+ color: $secondary-text-color;
388
+ }
389
+
390
+ h5 {
391
+ font-family: $font-display, sans-serif;
392
+ font-size: 14px;
393
+ line-height: 24px;
394
+ font-weight: 500;
395
+ margin-bottom: 20px;
396
+ color: $secondary-text-color;
397
+ }
398
+
399
+ h6 {
400
+ font-family: $font-display, sans-serif;
401
+ font-size: 12px;
402
+ line-height: 24px;
403
+ font-weight: 500;
404
+ margin-bottom: 20px;
405
+ color: $secondary-text-color;
406
+ }
407
+
408
+ ul,
409
+ ol {
410
+ margin-left: 20px;
411
+
412
+ &[type='a'] {
413
+ list-style-type: lower-alpha;
414
+ }
415
+
416
+ &[type='i'] {
417
+ list-style-type: lower-roman;
418
+ }
419
+ }
420
+
421
+ ul {
422
+ list-style: disc;
423
+ }
424
+
425
+ ol {
426
+ list-style: decimal;
427
+ }
428
+
429
+ li > ol,
430
+ li > ul {
431
+ margin-top: 6px;
432
+ }
433
+
434
+ hr {
435
+ width: 100%;
436
+ height: 0;
437
+ border: 0;
438
+ border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
439
+ margin: 20px 0;
440
+
441
+ &.spacer {
442
+ height: 1px;
443
+ border: 0;
444
+ }
445
+ }
446
+
447
+ &__information,
448
+ &__forms {
449
+ padding: 20px;
450
+ }
451
+
452
+ &__call-to-action {
453
+ background: $ui-base-color;
454
+ border-radius: 4px;
455
+ padding: 25px 40px;
456
+ overflow: hidden;
457
+ box-sizing: border-box;
458
+
459
+ .row {
460
+ width: 100%;
461
+ display: flex;
462
+ flex-direction: row-reverse;
463
+ flex-wrap: nowrap;
464
+ justify-content: space-between;
465
+ align-items: center;
466
+ }
467
+
468
+ .row__information-board {
469
+ display: flex;
470
+ justify-content: flex-end;
471
+ align-items: flex-end;
472
+
473
+ .information-board__section {
474
+ flex: 1 0 auto;
475
+ padding: 0 10px;
476
+ }
477
+
478
+ @media screen and (max-width: $no-gap-breakpoint) {
479
+ width: 100%;
480
+ justify-content: space-between;
481
+ }
482
+ }
483
+
484
+ .row__mascot {
485
+ flex: 1;
486
+ margin: 10px -50px 0 0;
487
+
488
+ @media screen and (max-width: $no-gap-breakpoint) {
489
+ display: none;
490
+ }
491
+ }
492
+ }
493
+
494
+ &__logo {
495
+ margin-right: 20px;
496
+
497
+ img {
498
+ height: 50px;
499
+ width: auto;
500
+ mix-blend-mode: lighten;
501
+ }
502
+ }
503
+
504
+ &__information {
505
+ padding: 45px 40px;
506
+ margin-bottom: 10px;
507
+
508
+ &:last-child {
509
+ margin-bottom: 0;
510
+ }
511
+
512
+ strong {
513
+ font-weight: 500;
514
+ color: lighten($darker-text-color, 10%);
515
+ }
516
+
517
+ .account {
518
+ border-bottom: 0;
519
+ padding: 0;
520
+
521
+ &__display-name {
522
+ align-items: center;
523
+ display: flex;
524
+ margin-right: 5px;
525
+ }
526
+
527
+ div.account__display-name {
528
+ &:hover {
529
+ .display-name strong {
530
+ text-decoration: none;
531
+ }
532
+ }
533
+
534
+ .account__avatar {
535
+ cursor: default;
536
+ }
537
+ }
538
+
539
+ &__avatar-wrapper {
540
+ margin-left: 0;
541
+ flex: 0 0 auto;
542
+ }
543
+
544
+ .display-name {
545
+ font-size: 15px;
546
+
547
+ &__account {
548
+ font-size: 14px;
549
+ }
550
+ }
551
+ }
552
+
553
+ @media screen and (max-width: $small-breakpoint) {
554
+ .contact {
555
+ margin-top: 30px;
556
+ }
557
+ }
558
+
559
+ @media screen and (max-width: $column-breakpoint) {
560
+ padding: 25px 20px;
561
+ }
562
+ }
563
+
564
+ &__information,
565
+ &__forms,
566
+ #mastodon-timeline {
567
+ box-sizing: border-box;
568
+ background: $ui-base-color;
569
+ border-radius: 4px;
570
+ box-shadow: 0 0 6px rgba($black, 0.1);
571
+ }
572
+
573
+ &__mascot {
574
+ height: 104px;
575
+ position: relative;
576
+ left: -40px;
577
+ bottom: 25px;
578
+
579
+ img {
580
+ height: 190px;
581
+ width: auto;
582
+ }
583
+ }
584
+
585
+ &__short-description {
586
+ .row {
587
+ display: flex;
588
+ flex-wrap: wrap;
589
+ align-items: center;
590
+ margin-bottom: 40px;
591
+ }
592
+
593
+ @media screen and (max-width: $column-breakpoint) {
594
+ .row {
595
+ margin-bottom: 20px;
596
+ }
597
+ }
598
+
599
+ p a {
600
+ color: $secondary-text-color;
601
+ }
602
+
603
+ h1 {
604
+ font-weight: 500;
605
+ color: $primary-text-color;
606
+ margin-bottom: 0;
607
+
608
+ small {
609
+ color: $darker-text-color;
610
+
611
+ span {
612
+ color: $secondary-text-color;
613
+ }
614
+ }
615
+ }
616
+
617
+ p:last-child {
618
+ margin-bottom: 0;
619
+ }
620
+ }
621
+
622
+ &__hero {
623
+ margin-bottom: 10px;
624
+
625
+ img {
626
+ display: block;
627
+ margin: 0;
628
+ max-width: 100%;
629
+ height: auto;
630
+ border-radius: 4px;
631
+ }
632
+ }
633
+
634
+ @media screen and (max-width: 840px) {
635
+ .information-board {
636
+ .container-alt {
637
+ padding-right: 20px;
638
+ }
639
+
640
+ .panel {
641
+ position: static;
642
+ margin-top: 20px;
643
+ width: 100%;
644
+ border-radius: 4px;
645
+
646
+ .panel-header {
647
+ text-align: center;
648
+ }
649
+ }
650
+ }
651
+ }
652
+
653
+ @media screen and (max-width: 675px) {
654
+ .header-wrapper {
655
+ padding-top: 0;
656
+
657
+ &.compact {
658
+ padding-bottom: 0;
659
+ }
660
+
661
+ &.compact .hero .heading {
662
+ text-align: initial;
663
+ }
664
+ }
665
+
666
+ .header .container-alt,
667
+ .features .container-alt {
668
+ display: block;
669
+ }
670
+ }
671
+
672
+ .cta {
673
+ margin: 20px;
674
+ }
675
+ }
676
+
677
+ .landing {
678
+ margin-bottom: 100px;
679
+
680
+ @media screen and (max-width: 738px) {
681
+ margin-bottom: 0;
682
+ }
683
+
684
+ &__brand {
685
+ display: flex;
686
+ justify-content: center;
687
+ align-items: center;
688
+ padding: 50px;
689
+
690
+ svg {
691
+ fill: $primary-text-color;
692
+ height: 52px;
693
+ }
694
+
695
+ @media screen and (max-width: $no-gap-breakpoint) {
696
+ padding: 0;
697
+ margin-bottom: 30px;
698
+ }
699
+ }
700
+
701
+ .directory {
702
+ margin-top: 30px;
703
+ background: transparent;
704
+ box-shadow: none;
705
+ border-radius: 0;
706
+ }
707
+
708
+ .hero-widget {
709
+ margin-top: 30px;
710
+ margin-bottom: 0;
711
+
712
+ h4 {
713
+ padding: 10px;
714
+ text-transform: uppercase;
715
+ font-weight: 700;
716
+ font-size: 13px;
717
+ color: $darker-text-color;
718
+ }
719
+
720
+ &__text {
721
+ border-radius: 0;
722
+ padding-bottom: 0;
723
+ }
724
+
725
+ &__footer {
726
+ background: $ui-base-color;
727
+ padding: 10px;
728
+ border-radius: 0 0 4px 4px;
729
+ display: flex;
730
+
731
+ &__column {
732
+ flex: 1 1 50%;
733
+ overflow-x: hidden;
734
+ }
735
+ }
736
+
737
+ .account {
738
+ padding: 10px 0;
739
+ border-bottom: 0;
740
+
741
+ .account__display-name {
742
+ display: flex;
743
+ align-items: center;
744
+ }
745
+ }
746
+
747
+ &__counters__wrapper {
748
+ display: flex;
749
+ }
750
+
751
+ &__counter {
752
+ padding: 10px;
753
+ width: 50%;
754
+
755
+ strong {
756
+ font-family: $font-display, sans-serif;
757
+ font-size: 15px;
758
+ font-weight: 700;
759
+ display: block;
760
+ }
761
+
762
+ span {
763
+ font-size: 14px;
764
+ color: $darker-text-color;
765
+ }
766
+ }
767
+ }
768
+
769
+ .simple_form .user_agreement .label_input > label {
770
+ font-weight: 400;
771
+ color: $darker-text-color;
772
+ }
773
+
774
+ .simple_form p.lead {
775
+ color: $darker-text-color;
776
+ font-size: 15px;
777
+ line-height: 20px;
778
+ font-weight: 400;
779
+ margin-bottom: 25px;
780
+ }
781
+
782
+ &__grid {
783
+ max-width: 960px;
784
+ margin: 0 auto;
785
+ display: grid;
786
+ grid-template-columns: minmax(0, 50%) minmax(0, 50%);
787
+ grid-gap: 30px;
788
+
789
+ @media screen and (max-width: 738px) {
790
+ grid-template-columns: minmax(0, 100%);
791
+ grid-gap: 10px;
792
+
793
+ &__column-login {
794
+ grid-row: 1;
795
+ display: flex;
796
+ flex-direction: column;
797
+
798
+ .box-widget {
799
+ order: 2;
800
+ flex: 0 0 auto;
801
+ }
802
+
803
+ .hero-widget {
804
+ margin-top: 0;
805
+ margin-bottom: 10px;
806
+ order: 1;
807
+ flex: 0 0 auto;
808
+ }
809
+ }
810
+
811
+ &__column-registration {
812
+ grid-row: 2;
813
+ }
814
+
815
+ .directory {
816
+ margin-top: 10px;
817
+ }
818
+ }
819
+
820
+ @media screen and (max-width: $no-gap-breakpoint) {
821
+ grid-gap: 0;
822
+
823
+ .hero-widget {
824
+ display: block;
825
+ margin-bottom: 0;
826
+ box-shadow: none;
827
+
828
+ &__img,
829
+ &__img img,
830
+ &__footer {
831
+ border-radius: 0;
832
+ }
833
+ }
834
+
835
+ .hero-widget,
836
+ .box-widget,
837
+ .directory__tag {
838
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
839
+ }
840
+
841
+ .directory {
842
+ margin-top: 0;
843
+
844
+ &__tag {
845
+ margin-bottom: 0;
846
+
847
+ & > a,
848
+ & > div {
849
+ border-radius: 0;
850
+ box-shadow: none;
851
+ }
852
+
853
+ &:last-child {
854
+ border-bottom: 0;
855
+ }
856
+ }
857
+ }
858
+ }
859
+ }
860
+ }
861
+
862
+ .brand {
863
+ position: relative;
864
+ text-decoration: none;
865
+ }
866
+
867
+ .brand__tagline {
868
+ display: block;
869
+ position: absolute;
870
+ bottom: -10px;
871
+ left: 50px;
872
+ width: 300px;
873
+ color: $ui-primary-color;
874
+ text-decoration: none;
875
+ font-size: 14px;
876
+
877
+ @media screen and (max-width: $no-gap-breakpoint) {
878
+ position: static;
879
+ width: auto;
880
+ margin-top: 20px;
881
+ color: $dark-text-color;
882
+ }
883
+ }
884
+
885
+ .rules-list {
886
+ background: darken($ui-base-color, 2%);
887
+ border: 1px solid darken($ui-base-color, 8%);
888
+ border-radius: 4px;
889
+ padding: 0.5em 2.5em !important;
890
+ margin-top: 1.85em !important;
891
+
892
+ li {
893
+ border-bottom: 1px solid lighten($ui-base-color, 4%);
894
+ color: $dark-text-color;
895
+ padding: 1em;
896
+
897
+ &:last-child {
898
+ border-bottom: 0;
899
+ }
900
+ }
901
+
902
+ &__text {
903
+ color: $primary-text-color;
904
+ }
905
+ }