1 /* Famsite CSS */
2
3 /* Optional Emoji font to support clients without good system Emoji font
4 * support. You can remove this to shave 300Kb from the total payload of
5 * Famsite.
6 ***********************************************************************
7 */
8 @font-face {
9 font-family: 'Twemoji';
10 src: url("twemoji-subset.woff2") format("woff2");
11 }
12 .postbox textarea, .post .txt, #fc_popup, .emoji, .control-row
13 { font-family: "Twemoji", serif !important; }
14 span.picked-emoji { font-family: "Twemoji"; }
15 /*
16 * End of optional Emoji font declarations.
17 ***********************************************************************
18 */
19
20 html { margin: 0; padding: 0; height: 100%; }
21 body {
22 margin: 0; padding: 0;
23 font-size: 1.2em;
24 background: #fefeee;
25 color: #222;
26 }
27 a, a:visited { color: #538; }
28
29 header {
30 background: #679;
31 padding: 5px;
32 color: #FFF;
33 display: flex;
34 align-items: center;
35 gap: 20px;
36 }
37 header a, header a:visited {
38 color: #ffd045;
39 background: #444e64;
40 padding: 3px;
41 text-decoration: none;
42 }
43 header a:hover { filter: drop-shadow(3px 3px #000); }
44 header a:active { filter: drop-shadow(-1px -1px #000); }
45 header .avatar-container { display: flex; align-items: center; }
46 header .avatar { width: 30px; height: 30px; margin-right: 5px; }
47
48 .avatar {
49 width: 46px; height: 46px;
50 border: 2px solid #ffd87c; border-radius: 10px;
51 }
52
53 #timeline {
54 max-width: 770px;
55 margin: auto;
56 }
57
58 /* Post Box (Submit new post) */
59 .postbox {
60 max-width: 650px;
61 margin: 35px;
62 }
63 input[name='image'] { display: none; }
64 .control-row {
65 width: 100%;
66 padding: 15px;
67 display: flex;
68 justify-content: space-between;
69 align-items: center;
70 }
71 .postbox textarea {
72 border: 2px solid #86B; border-radius: 15px;
73 background: #FEC;
74 width: 100%; height: 120px;
75 font-family: "Twemoji", serif;
76 font-size: 1em;
77 padding: 15px;
78 }
79 #image-preview img {
80 max-width: 200px;
81 max-height: 200px;
82 margin: 10px;
83 }
84 .postbox a:hover {
85 background: #e7d8ff;
86 color: #9700ff;
87 }
88 .postbox button {
89 font-size: 1.1em;
90 background: #86B;
91 color: #FFF;
92 border: 2px solid #000;
93 border-radius: 15px;
94 padding: 10px;
95 }
96 .postbox button:hover {
97 filter: drop-shadow(5px 5px #000);
98 top: -3px; left: -3px;
99 }
100 .postbox button:active {
101 filter: drop-shadow(-2px -2px #000);
102 top: 2px; left: 2px;
103 }
104 .postbox button.cancel {
105 background-color: #ff5371;
106 margin-right: 10px;
107 }
108
109
110 /* Popups */
111 #fc_popup { z-index: 2; }
112 .popup {
113 position: absolute;
114 display: flex;
115 padding: 5px;
116 border: 2px solid #FFF;
117 border-radius: 10px;
118 filter: drop-shadow(10px 10px 10px #000);
119 gap: 5px;
120 z-index: 1;
121 }
122 .popup.spoiler-pop { background: #000; }
123 .popup.reaction-pop { background: #00ceff; }
124 .popup .picked-emoji { font-size: 1.2em; }
125 .popup button {
126 border: 2px solid white;
127 border-radius: 5px;
128 font-size: 1.1em;
129 }
130 .popup button.cancel { background-color: #ff5371; color: white; }
131 .popup button.add { background-color: #649951; color: white; }
132 .popup button.pick { background-color: #cbf5ff; }
133 .popup input {
134 flex: 1;
135 background: #FEC;
136 font-size: 1em;
137 }
138
139
140 /* Animations */
141 .whee {
142 border: 1px solid black;
143 animation: whee-anim 2s infinite;
144 }
145 @keyframes whee-anim {
146 0% { background: #D55; }
147 50% { background: #FD8; }
148 100% { background: #D55; }
149 }
150
151 /* Display Post */
152 h2.day {
153 font-size: 2em;
154 color: #ADE;
155 border-bottom: 6px dotted;
156 }
157 .posts { margin-left: 20px; }
158 .post { max-width: 700px; margin-bottom: 30px; }
159 .post .avatar { }
160 .post .image { margin-left: 4em; }
161 .post .info {
162 display: flex; gap: 10px;
163 color: #888;
164 font-size: 0.9em;
165 margin: 10px 0;
166 background-image: linear-gradient(to right, #F5F5E2FF , #F5F5E200);
167 }
168 .post .info a, .post .info a:visited {
169 color: #999;
170 padding: 5px;
171 margin-left: 1em;
172 }
173 .post .info a:hover { color: #538; }
174 .post > .txt { margin-left: 60px; }
175 .spoiler { background: #d7bcff; color: #86b0; }
176 .spoiler:hover { background: #efe5ff; color: #000; cursor: pointer; }
177 .post .add_reaction:hover { background: #b3f7e4; }
178 .post .edit-link:hover { background: #f7d6b3; }
179 .reactions {
180 color: #555;
181 margin-left: 60px;
182 border-top: 1px solid #555;
183 margin-top: 5px;
184 padding-top: 5px;
185 }
186 .reactions .emoji { font-size: 1.2em; margin-right: 5px; }
187 .reactions .user { font-size: 0.8em; margin-right: 5px; }
188 .reactions .txt { font-size: 0.8em; }
189 .post a.edit-link { margin-left: 1em; }
190
191
192 /* "Special" posts group together horizontally */
193 .special {
194 display: flex; gap: 20px;
195 border-width: 2px 2px 2px 16px;
196 border-radius: 20px;
197 border-style: solid;
198 padding: 10px;
199 }
200 .special .post { flex: 1; max-width: 350px; }
201 .special .info a { margin-left: 5px; }
202 .special1 { /* wordplay */ border-color: #87c037; }
203 .special2 { /* connections */ border-color: #bc70c4; }
204 .special .post .txt { margin-left: 0; }
205 .special .reactions { margin-left: 0; }
206 .special .control-row { display: flex; flex-direction: column; }
207 .special .control-row .buttons { display: flex; flex-direction: column; }
208 .special .control-row .buttons button { margin: 10px; }
209 /* swap order of submit and cancel */
210 .special .control-row .buttons .cancel { order: 2; }
211
212 .small { font-size: 0.9em; }