From 2761b56591594074461892911aa2839fa8d20777 Mon Sep 17 00:00:00 2001 From: Max Mehl Date: Wed, 6 May 2020 16:06:21 +0200 Subject: [PATCH] Update to latest share-buttons (#1361) --- build/xslt/sharebuttons.xsl | 56 +--- cgi-bin/share-config.php | 15 + cgi-bin/share.php | 133 +++++--- graphics/services/fediverse.png | Bin 0 -> 2044 bytes graphics/services/fediverse.svg | 159 ++++++++++ graphics/services/fediverse2.png | Bin 0 -> 1037 bytes graphics/services/fediverse2.svg | 76 +++++ graphics/services/fediverse2_large.png | Bin 0 -> 7920 bytes graphics/services/fediverse2_white.png | Bin 0 -> 696 bytes graphics/services/fediverse_large.png | Bin 0 -> 21233 bytes graphics/services/fediverse_white.png | Bin 0 -> 983 bytes look/elements/sharebuttons-services.less | 61 ++++ look/elements/sharebuttons.less | 381 +++++++++-------------- 13 files changed, 563 insertions(+), 318 deletions(-) create mode 100644 cgi-bin/share-config.php mode change 100755 => 100644 cgi-bin/share.php create mode 100644 graphics/services/fediverse.png create mode 100644 graphics/services/fediverse.svg create mode 100644 graphics/services/fediverse2.png create mode 100644 graphics/services/fediverse2.svg create mode 100644 graphics/services/fediverse2_large.png create mode 100644 graphics/services/fediverse2_white.png create mode 100644 graphics/services/fediverse_large.png create mode 100644 graphics/services/fediverse_white.png create mode 100644 look/elements/sharebuttons-services.less diff --git a/build/xslt/sharebuttons.xsl b/build/xslt/sharebuttons.xsl index 6737db0256..9524266d5f 100644 --- a/build/xslt/sharebuttons.xsl +++ b/build/xslt/sharebuttons.xsl @@ -20,7 +20,7 @@ /share GET - share-buttons bottom + share-buttons _blank return event.keyCode != 13;

@@ -55,70 +55,36 @@ Please do not put anything here - + - button share-diaspora + button share-fediverse - Diaspora + Fediverse - diaspora-share-bottom - Diaspora + fediverse-share + Fediverse radio popup - diaspora-share-bottom + fediverse-share - popup diaspora + popup fediverse no-share-popup text - diasporapod + fediversepod - Diaspora URL (diasp.tld) + Fediverse URL (fediverse.tld) submit service - diaspora - OK - - - - - - button share-mastodon - - - - - Mastodon - - mastodon-share-bottom - Mastodon - - - radio - popup - mastodon-share-bottom - - - popup mastodon - no-share-popup - - text - mastodonpod - - Mastodon URL (mastodon.tld) - - - submit - service - mastodon + fediverse OK diff --git a/cgi-bin/share-config.php b/cgi-bin/share-config.php new file mode 100644 index 0000000000..37b9ea226d --- /dev/null +++ b/cgi-bin/share-config.php @@ -0,0 +1,15 @@ + +*/ + +$config = [ + 'fediverseuser' => '@fsfe@mastodon.social', + 'diasporauser' => '@{fsfe@diasp.eu}', + 'twitteruser' => 'fsfe', + 'flattruser' => 'fsfe', + 'supporturl' => 'https://my.fsfe.org/donate?referrer=share' +] + +?> diff --git a/cgi-bin/share.php b/cgi-bin/share.php old mode 100755 new mode 100644 index b6ed84ab81..5efea710ac --- a/cgi-bin/share.php +++ b/cgi-bin/share.php @@ -1,68 +1,62 @@ +* SPDX-FileCopyrightText: 2018 Daniel Martin Gomez +* SPDX-License-Identifier: AGPL-3.0-or-later +* * share-buttons: Share buttons for many social networks and services -* Copyright (C) 2018 Max Mehl , Paul Hänsch -* -* This program is free software: you can redistribute it and/or modify it under -* the terms of the GNU Affero General Public License as published by the Free -* Software Foundation, either version 3 of the License, or (at your option) any -* later version. -* -* This program is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more -* details . +* Upstream: https://git.fsfe.org/FSFE/share-buttons */ -// Change these variables -$gnusocialuser = "@fsfe@quitter.no"; -$mastodonuser = "@fsfe@mastodon.social"; -$twitteruser = "fsfe"; -$flattruser = "fsfe"; -$supporturl = "https://my.fsfe.org/donate?referrer=share"; +/* load config. You normally don't want to edit something here */ +require_once 'share-config.php'; +$fediverseuser = $config['fediverseuser']; +$diasporauser = $config['diasporauser']; +$twitteruser = $config['twitteruser']; +$flattruser = $config['flattruser']; +$supporturl = $config['supporturl']; -// Don't change below here $service = isset($_GET['service']) ? $_GET['service'] : false; $url = isset($_GET['url']) ? $_GET['url'] : false; $title = isset($_GET['title']) ? $_GET['title'] : false; $ref = isset($_GET['ref']) ? $_GET['ref'] : false; -$diasporapod = isset($_GET['diasporapod']) ? $_GET['diasporapod'] : false; -$gnusocialpod = isset($_GET['gnusocialpod']) ? $_GET['gnusocialpod'] : false; -$mastodonpod = isset($_GET['mastodonpod']) ? $_GET['mastodonpod'] : false; +$fediversepod = isset($_GET['fediversepod']) ? $_GET['fediversepod'] : false; if(empty($service) || empty($url)) { echo 'At least one required variable is empty. You have to define at least service and url'; } else { $service = htmlspecialchars($service); - $diasporapod = htmlspecialchars($diasporapod); - $gnusocialpod = htmlspecialchars($gnusocialpod); - $mastodonpod = htmlspecialchars($mastodonpod); + $fediversepod = htmlspecialchars($fediversepod); $url = urlencode($url); $title = urlencode($title); - + /* Special referrers for FSFE campaigns */ if($ref == "pmpc-side" || $ref == "pmpc-spread") { - $via_gs = ""; - $via_ma = ""; + $via_fed = ""; $via_tw = ""; + $via_dia = ""; $supporturl = "https://fsfe.org/donate?pmpc"; } else { - $via_gs = " via " . $gnusocialuser; - $via_ma = " via " . $mastodonuser; + $via_fed = " via " . $fediverseuser; $via_tw = "&via=" . $twitteruser; + $via_dia = " via " . $diasporauser; } - - if ($service === "diaspora") { - $diasporapod = validateurl($diasporapod); - header("Location: " . $diasporapod . "/bookmarklet?url=" . $url . "&title=" . $title); - die(); - } elseif($service === "gnusocial") { - $gnusocialpod = validateurl($gnusocialpod); - header("Location: " . $gnusocialpod . "/notice/new?status_textarea=" . $title . " " . $url . $via_gs); - die(); - } elseif($service === "mastodon") { - $mastodonpod = validateurl($mastodonpod); - header("Location: " . $mastodonpod . "/share?text=" . $title . " " . $url . $via_ma); + + if ($service === "fediverse") { + $fediversepod = validateurl($fediversepod); + $fediverse = which_fediverse($fediversepod); + if($fediverse === "mastodon") { + // Mastodon + header("Location: " . $fediversepod . "/share?text=" . $title . " " . $url . $via_fed); + } elseif($fediverse === "diaspora") { + // Diaspora + header("Location: " . $fediversepod . "/bookmarklet?url=" . $url . "&title=" . $title . $via_dia); + } elseif($fediverse === "gnusocial") { + // GNU Social + header("Location: " . $fediversepod . "/notice/new?status_textarea=" . $title . " " . $url . $via_fed); + } else { + echo 'Your Fediverse instance is unknown. We cannot find out which service it belongs to, sorry.'; + } die(); } elseif($service === "reddit") { header("Location: https://reddit.com/submit?url=" . $url . "&title=" . $title); @@ -90,12 +84,63 @@ if(empty($service) || empty($url)) { } } -// If diaspora/GS/Mastodon pod has been typed without http(s):// prefix, add it +// Sanitise URLs function validateurl($url) { + // If Fediverse pod has been typed without http(s):// prefix, add it if (preg_match('#^https?://#i', $url) === 0) { - return 'https://' . $url; + $url = 'https://' . $url; + } + // remove trailing spaces and slashes + $url = trim($url, " /"); + + return $url; +} + +// Is $pod a Mastodon instance or a GNU Social server? +function getFediverseNetwork($pod) { +$curl = curl_init($pod . "/api/statusnet/version.xml"); +curl_exec($curl); +$code = curl_getinfo($curl, CURLINFO_HTTP_CODE); +curl_close($curl); +if ($code == 200) { + // GNU social server + return 0; +} else { + // Mastodon server + return 1; +} +} + +function which_fediverse($pod) { + if (check_httpstatus($pod . "/api/v1/instance")) { + // Mastodon + return "mastodon"; + } elseif (check_httpstatus($pod . "/api/statusnet/version.xml")) { + // GNU social + return "gnusocial"; + } elseif (check_httpstatus($pod . "/users/sign_in")) { + // Diaspora + return "diaspora"; } else { - return $url; + return "none"; + } +} + +function check_httpstatus($url) { + $headers = get_headers($url, 1); + // check up to 2 redirections + if (array_key_exists('2', $headers)) { + $httpstatus = $headers[2]; + } elseif (array_key_exists('1', $headers)) { + $httpstatus = $headers[1]; + } else { + $httpstatus = $headers[0]; + } + // check if HTTP status is 200 + if (strpos($httpstatus, '200 OK') !== false) { + return true; + } else { + return false; } } diff --git a/graphics/services/fediverse.png b/graphics/services/fediverse.png new file mode 100644 index 0000000000000000000000000000000000000000..97c8645cec863c8f0787a25917b9a2ebfb0e4313 GIT binary patch literal 2044 zcmVQ#&gU7&KiBVh9*?|u33;R?S+lYx=q70_qtv_& zwU!!YI5ib7TW39MG!!H0YORGs>9EXUU9IA!hIS^bno_BX3Z{`nEHlC(iG;}8^YZ&$ z`y)@XBtl!;u5*6pJook7_x1h$zSn(S_x*$a!t^-(HJdEWrc$%{L_ek9SB)X}4W7kA zI5-V-_>YrngkBQQV;OHbHS$JMAa_=L9Mj(z$BB@tR>u5oi(+ zD{DK;o{~$B=e{g~dv3zg`Lqjw=Rp?Y&$mF9g)X^p?7<$2q$zCu!!q}+Qj9(?M^qjQ zcUUh0mMRHdzUF=FiwGD13ULZ+6gDUfFP%@js`)GkKrVqS2RaC3siDJyQgz^^eZ8|3 zSp37wuK9Mc+lnYXS}+ z#%1Q1cH5hvBZ5-(iFQrEGY3bu72##-rAr?25k5<#06;~f09+BC6p&v5hM&Z=yD9*D zy%m2*Mfbo^ugiG1a3J{t=PcDcFmkI_c%u-y0lBe9uWko0gnU&Hh;9hritr?t7Pk>p zmo!o0?bZln1K(@mKks!(51>5|uMjUHsA;8x4h3)w@TOl#3P~?i%`3m}R;x>k=E>s-jA?umQDymiNd zt$EPcsLB;aNqs75U*`y)RAcWJRor33wR2$uUPWjNZ2Zybk#hvm+`+D3x9KPXTsDI- zL5a2HVD(ZY8qr>YL@PW*>!qEu{OOx6AiSwl;E3J-qw;jO;L$FC7g)VIi5yRZ(q5d9hsO2Z6y>13rr-3_~ zlR_VR!@yEozJZA<(NoVnd0^{f8RNucH=+qqefk4w-9a#5v4GwYOlVh!%-k2?xH@fQ zNix919Xo7RnQO9$4(Tv_=yf2hg#zaqTd}iq`31lSbo;c^+V)d&MrEjtaVT|&CKOe# zx~$5&m?KvYwjwbi6aa{7bV^E!F@D{l$yyrvxu9E6rhAJ9r2*b1;I#rtjRbn!87_j5U?`^a4XD=is|<|MVoIlRk5xmRQpGdsNr)1 zS3zH>_SW?%?4I#=6`rmr=`rKP;h(J9B)tBXaIqe%c~0`{U&o39$R6x^K$N5oj{Uz3 zGX6OYa09cp#T-aeR8W

pvVbVMAt)Q88k%zzv|SbpGomscYNg-RFnBx&MXHZY*nA zJ%FzLeE6E{O);CxsrXx}L<86@$3h?wI65Zhr#le+A>aXxox3FSxd|IGPiXx)5~C_z z8x)kVcXVgs>`xA!&gMmt~>dKa>Yn}o%^8HHm%oz~T6=fEHrA7+ChhKZ>`e!4+L-xXp8$MARg(n* zfW3W>79XFuE_0xYzFLY7_D?SltkNxm_WAymaCpQUg6O0pT?$YIF`@us_9u>3$Cp{DzXi5D6Gj?nXumN@DwPNoUfZU2W2-3dOQ|p02D32v4%6l2-3T<6;aubxu%ZRK?c8uK3^L7NF^o9SsUW{rWfw>u;6>;P z49o5t643&@KE9o2?)v()sDhs%3)Z4rZ4hfg;m?tJMNU!! + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/graphics/services/fediverse2.png b/graphics/services/fediverse2.png new file mode 100644 index 0000000000000000000000000000000000000000..7bef12b792065639e22041848d0fd79c9fcda7dc GIT binary patch literal 1037 zcmV+o1oHcdP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11ByvRK~z|UwN_1NTvZhQzWXMV&P=pbqoP(putiZ2HOZtZT6N=Q z6erWPB9%ZfnNf=1q8m2~?MD1TkeL`uv$EQfDYgjWLQ)rLlSxEW5TPI~u3~DdZSyv{+>;##H69^E)aLYf&ftd60Q^4==EC{fr+p8Jk+)rdEOfL2?`GY*o+Ia zF#w=Z1#yiyC9A*$3SYc_H^X*&3G6n|g97h`cpGV>SSDrM%E1DQ35S;(5}5gPFzR+X z1(iWzP(~?(`Jb+_Xl2D<&a3r}Hl0uJw&DjMZoPgiEdlr)20vQyWOP1u;^9}{|Ff29 z!{bbiWzrz_1GuGj04)fNRx9~dJemC{2v^g{AfCz%$NO@f7I=-|9E5oS69#yD8SQuW z^bN-Vthro4CGacQ)|Wd7;9%|D_1}$#83-cufKxVb+?EiqP!$7f84l{(l1}K&fDG;^ z92rX3kn=R8M`?H;WhZ+2hF@+uf$`CSODXHN43||H!MLR|7N#P92L|-;%GdX+c!Oye#A9qfYP&Y?baX!=z~@F@s5uU zY>IA-&Oy57Owo$E{>+ho#FN>3yz07vA{~*;YH$F!1}x;!N68K(!AT-il5Qxuil6o;3fbNd1z$`x5rbT%v515*u@|~e&U;f z$+4j=#@cVMwvx%-WOh$Y!?0a!<~7&!Je|+HU|@ceP#z*3^PXRTl@485H@Y7I2RI=9 zw@26Z`vnMHimjRRnkFFPVzmN)`2`4HoL_1=0Y~jSL7c6uE$Q3s9vd8Kia^~?IDIU= z%Yug?5JC<{XO=C$dn%Rtd9~eCK2zN+S~U}PCx^eJ%iL9}8HgW-sh_5fr4IxN-ZTLK zaE(2@dR-nqxUb4c`jx~twAfE#d(TVRkAo6uI7t?c3?&pYC%k$m?8dqhBMU)+{G?$9 zZro5jDX`>GUv33>AOiQlc<8cArUYC;dB&QRichuz902|WxC}vki@ay}00000NkvXX Hu0mjfA5zs3 literal 0 HcmV?d00001 diff --git a/graphics/services/fediverse2.svg b/graphics/services/fediverse2.svg new file mode 100644 index 0000000000..db25e05c22 --- /dev/null +++ b/graphics/services/fediverse2.svg @@ -0,0 +1,76 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/graphics/services/fediverse2_large.png b/graphics/services/fediverse2_large.png new file mode 100644 index 0000000000000000000000000000000000000000..e8afd949676759d2a80b5e321586fbf6683b94bc GIT binary patch literal 7920 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 V_htq3z*`UCzRE-85=G09{{ypXwZ8xW literal 0 HcmV?d00001 diff --git a/graphics/services/fediverse2_white.png b/graphics/services/fediverse2_white.png new file mode 100644 index 0000000000000000000000000000000000000000..976a33817b3b74574a4bb1819cee14e058500e8e GIT binary patch literal 696 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 literal 0 HcmV?d00001 diff --git a/graphics/services/fediverse_white.png b/graphics/services/fediverse_white.png new file mode 100644 index 0000000000000000000000000000000000000000..80760e5f1374bae1e04d4a4d869f0d049b1f70a0 GIT binary patch literal 983 zcmV;|11S87P)Q;q~*s zC#$*nzB&G8=9`%h#z^XTb))*bdRTp6tTDy{_M)fL3H7qk_%@sc-klYG0x;u01yg6L z9|C<9)d2AIXyc3oGDCeoT2@nEQFjM_QeCU=RWJEBAkFGq0ie1=y;XfzJ*F;EyVbVP zA5bqIDd+@sRb>0RdZYSI0n)9`4BJ~mzFmDf^mEje1>n#Xsv9cPwNLF+KUQZ~Y(EH_ zS?auaUmUs;uzrQ=Z=OlZ)TQct^*Z&OXkks=8h+P=?Ybh?OCkHBE}(j-0(4UCsmP9o ztfoGxE>c_64z;ZkZ%z2@Rh!iN27!}02Y4Ge59kNl0fF~`DZo_VIIt4f0^9~nEaLZ( zN540ohk^MK>j_{S@F(zaifkqVPXQN@7qkUfl~Q^x^gDq&fLQ@Btw>}V&;&FV3G58p z@rCSQBS1>&xOzP>7q|lG0+y)bfbGCtz^0Va{&3tMNh}Ahj^z4_1Zu$Dl`l5A?DgvC z_08&q>gU04P=8RTR-926hRvejTg(&tec?Yy8%xK>L%3kDwdz+Pd$kHw1Xq1o-5T#T zbxS0_$-GKy)N@P6*~If_4P|NbpOG z3R^?htahrq)E~|3b3+m9qp)wO3l>H{t6!=O=1cImc~>T>pQ*2@o1+TNXRRmf8Y>;@ z8WJcBKUM!y7lcE5$eYylYJbRgtM`U(UC6Et{*!3o^lJRZ3g1ay>YuenVXkJQlWl zfE~c2!0kW}a3p-EsFQ(vfXykT1H)Bylln_BQESydg5P7lG(<}Whvs?n)mMEcIy0a) zkJQ3$Pp1L3Rei9I?WJn(;Lw;yeVO```sPp=Wg9QA=o)}YK&Sd0a41^VOTK?|fe!LX zx*wPa>>}UL;YnRlsq7ndvH1^u%rmJL!%?fqSC6K$6~L*;_$aVErSvV(7Rj7XzJ28p zJ^`dk%;CS+*^+vdda6>{v;PZN06wH1QGZq2&3}rz^be9jgz;(yujl{(002ovPDHLk FV1hU<%Vq!o literal 0 HcmV?d00001 diff --git a/look/elements/sharebuttons-services.less b/look/elements/sharebuttons-services.less new file mode 100644 index 0000000000..72e885762f --- /dev/null +++ b/look/elements/sharebuttons-services.less @@ -0,0 +1,61 @@ +/* +* SPDX-FileCopyrightText: 2019 Free Software Foundation Europe e.V. +* SPDX-License-Identifier: AGPL-3.0-or-later +* +* share-buttons: Share buttons for many social networks and services +* Upstream: https://git.fsfe.org/FSFE/share-buttons +*/ + +/* This extra CSS file outsources the colors and paths of the service + * buttons and their images. This makes updating to a newer version + * of share-buttons easier if one is not using the default structure */ + +/* ******** + * SERVICES + * ********/ + +/* Single services with their colours and logos */ +.share-buttons .share-fediverse { + background-color: #2b90d9; + background-image: url("/graphics/services/fediverse_white.png"); +} + +.share-buttons .share-reddit { + background-color: #ff5700; + background-image: url("/graphics/services/reddit_white.png"); +} + +.share-buttons .share-flattr { + background-color: #7ea352; + background-image: url("/graphics/services/flattr_white.png"); +} + +.share-buttons .share-hnews { + background-color: #ff6600; + background-image: url("/graphics/services/hackernews_white.png"); +} + +.share-buttons .share-twitter { + background-color: #55acee; + background-image: url("/graphics/services/twitter_white.png"); +} + +.share-buttons .share-facebook { + background-color: #3b5998; + background-image: url("/graphics/services/facebook_white.png"); +} + +.share-buttons .share-gplus { + background-color: #d34836; + background-image: url("/graphics/services/gplus_white.png"); +} + +.share-buttons .share-mail { + background-color: #6e6e6e; + background-image: url("/graphics/services/mail_white.png"); +} + +.share-buttons .share-support { + background-color: #202d79; + background-image: url("/graphics/services/fsfe_white.png"); +} diff --git a/look/elements/sharebuttons.less b/look/elements/sharebuttons.less index 6c49be28ef..f838df398f 100644 --- a/look/elements/sharebuttons.less +++ b/look/elements/sharebuttons.less @@ -1,240 +1,163 @@ -/* SOCIAL NETWORK SHARE BUTTONS (below articles and pages) */ -.share-buttons.bottom { - margin: 4em 0 -2em 0; +/* +* SPDX-FileCopyrightText: 2019 Free Software Foundation Europe e.V. +* SPDX-License-Identifier: AGPL-3.0-or-later +* +* share-buttons: Share buttons for many social networks and services +* Upstream: https://git.fsfe.org/FSFE/share-buttons +*/ + +/* ******** + * GENERAL LOOK FOR ALL BUTTONS + * ********/ + +@import "sharebuttons-services"; + +.share-buttons { + font-size: .7em; + margin: 2em 0; } -.share-buttons-top { - align-items: center; - display: flex; - flex-wrap: wrap; +.share-buttons a.button, +.share-buttons button.button, +.share-buttons label.button { + background-position: left 5px center; + background-repeat: no-repeat; + background-size: 20px auto; + border: none; + border-radius: 3px; + box-sizing: content-box; + color: #fff; + cursor: pointer; + display: inline-block; + font-family: sans-serif; + font-size: 1em; + font-weight: normal; + height: 14px; + margin: 2.5px 5px 2.5px 0; + max-width: 110px; + min-width: 84px; + opacity: 0.9; + padding: 7px 7px 7px 20px; + text-align: center; + text-decoration: none; + transition: box-shadow 100ms linear; + vertical-align: top; } -.share-buttons-sidebar { - padding-left: 2rem; +/* Darken buttons on hover */ +.share-buttons .button { + box-shadow: none; } -.share-button-top, -.share-button-sidebar, -.share-buttons.bottom a.button, -.share-buttons.bottom button.button, -.share-buttons.bottom label.button { - display: inline-block; - margin: 2.5px 5px 2.5px 0; - color: #fff; - font-weight: normal; - font-size: 1em; - line-height: normal; - text-align: center; - text-decoration: none; - padding: 7px 7px 7px 20px; - width: 19%; - min-width: 100px; - max-width: 110px; - border: none; - border-radius: 3px; - background-position: left 5px center; - background-repeat: no-repeat; - background-size: 20px auto; - opacity: 0.9; - vertical-align: top; -} - -.share-buttons-inline button{ - vertical-align: middle; -} - -.share-button-top, -.share-buttons.bottom, -.share-buttons-inline, -.share-buttons-sidebar { - font-size: .7em; -} - -.share-buttons-top, -.share-buttons-sidebar, -.share-buttons-inline, -.share-buttons.bottom { - - a:hover { - text-decoration: none; - } - - .share-rss { - background-color: #f4a000; - background-image: url("/graphics/services/rss_white.png"); - } - - .share-rss:hover { - background-color: #f78200 !important; - } - - .share-mail { - background-color: #6e6e6e; - background-image: url("/graphics/services/mail_white.png"); - } - - .share-mail:hover { - background-color: #272727 !important; - } - - .share-mastodon { - background-color: #2b90d9; - background-image: url("/graphics/services/mastodon_white.png"); - } - - .share-mastodon:hover { - background-color: #1060a9 !important; - } - - .share-diaspora { - background-color: #404040; - background-image: url("/graphics/services/diaspora_white.png"); - } - - .share-diaspora:hover { - background-color: #101010 !important; - } - - .share-facebook { - background-color: #3b5998; - background-image: url("/graphics/services/facebook_white.png"); - } - - .share-facebook:hover { - background-color: #143271 !important; - } - - .share-twitter { - background-color: #55acee; - background-image: url("/graphics/services/twitter_white.png"); - } - - .share-twitter:hover { - background-color: #338acc !important; - } - - .share-podcast { - background-color: #9AB30E; - background-image: url("/graphics/services/podcast_white.png"); - } - - .share-podcast:hover { - background-color: #738607 !important; - } - - .share-support { - background-color: #9AB30E; - background-image: url("/graphics/services/fsfe_white.png"); - padding-left: 25px; - - &:hover { - background-color: #0a1763 !important; - } - } -} - -.share-buttons.bottom .share-gplus { - background-color: #d34836; - background-image: url("/graphics/services/gplus_white.png"); -} - -.share-buttons.bottom .share-gplus:hover { - background-color: #b12614 !important; -} - -.share-buttons.bottom .share-flattr { - background-color: #7ea352; - background-image: url("/graphics/services/flattr_white.png"); -} - -.share-buttons.bottom .share-flattr:hover { - background-color: #5a7f2e !important; -} - -.share-buttons.bottom .share-reddit { - background-color: #ff5700; - background-image: url("/graphics/services/reddit_white.png"); -} - -.share-buttons.bottom .share-reddit:hover { - background-color: #dd3500 !important; -} - -.share-buttons.bottom .share-gnusocial { - background-color: #a22430; - background-image: url("/graphics/services/gnusocial_white.png"); -} - -.share-buttons.bottom .share-gnusocial:hover { - background-color: #850713 !important; -} - -.share-buttons.bottom .share-hnews { - background-color: #ff6600; - background-image: url("/graphics/services/hackernews_white.png"); -} - -.share-buttons.bottom .share-hnews:hover { - background-color: #dd3500 !important; -} - -/* Share buttons form layout and behaviour hacks */ -.share-buttons input[type="radio"], -.share-buttons input[type="radio"] + span, -.share-buttons input[type="checkbox"], -.share-buttons input[type="checkbox"] + span { - display: none; -} - -.share-buttons input[type="radio"]:checked + span, -.share-buttons input[type="checkbox"]:checked + span { - position: absolute; - margin-top: 3.5em; - margin-left: -10em; - padding: .5em; - z-index: 3; - background-color: #333; - border-radius: .5em; - display: inline-block; -} - -.share-buttons input[type="radio"]:checked + span:before, -.share-buttons input[type="checkbox"]:checked + span:before { - content: ''; - position: absolute; - top: -1em; - height: 0em; - width: 0em; - border-bottom: 1em solid #333; - border-left: 1em solid transparent; - border-right: 1em solid transparent; - z-index: 3; -} - -.share-buttons input[type="radio"] + span > * { - vertical-align: middle; -} - -.share-buttons input[type="radio"] + span > button { - margin: 2.5px 0 2.5px 5px; - min-width: 4em; - padding: .25em; - font-weight: normal; - font-size: 1em; - line-height: normal; -} - -.share-buttons input[type="radio"] + span > label { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; - background-color: rgba(0, 0, 0, .5); +.share-buttons .button:hover { + box-shadow: inset 0 0 0 99999px rgba(0,0,0,0.2); } /* Separate share buttons form from possibly floating content */ form.share-buttons { - clear: both; + clear: both; +} + +/* Hide something */ +.n { + display: none; +} + +/* Share pop-up behaviour hacks */ +.share-buttons input[type="radio"], +.share-buttons input[type="radio"] + span, +.share-buttons input[type="checkbox"], +.share-buttons input[type="checkbox"] + span { + display: none; +} + +.share-buttons input[type="radio"]:checked + span, +.share-buttons input[type="checkbox"]:checked + span { + background-color: #333; + border-radius: .5em; + display: inline-block; + margin-left: -10em; + margin-top: 3.5em; + padding: .5em; + position: absolute; + z-index: 3; +} + +.share-buttons input[type="radio"]:checked + span:before, +.share-buttons input[type="checkbox"]:checked + span:before { + border-bottom: 1em solid #333; + border-left: 1em solid transparent; + border-right: 1em solid transparent; + content: ''; + height: 0; + position: absolute; + top: -1em; + width: 0; + z-index: 3; +} + +.share-buttons input[type="radio"] + span > * { + vertical-align: middle; +} + +.share-buttons input[type="radio"] + span > button { + font-size: 1em; + font-weight: normal; + line-height: normal; + margin: 2.5px 0 2.5px 5px; + min-width: 4em; + padding: .25em; +} + +.share-buttons input[type="radio"] + span > label { + background-color: rgba(0, 0, 0, .5); + bottom: 0; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: -1; +} + +/* ******** + * SIDEBAR BUTTONS + * ********/ + +form.share-buttons.side { + display: flex; + flex-direction: column; + left: 0; + padding: .1vh .5vh; + position: fixed; + top: 30%; + z-index: 10; +} + +@media (max-width: 767px) { + form.share-buttons.side { + display: none !important; + } +} + +.share-buttons.side a.button, +.share-buttons.side button.button, +.share-buttons.side label.button { + background-color: #474747; + background-position: center center; + background-repeat: no-repeat; + background-size: 2.7vh auto; + box-sizing: border-box; + color: #000; + font-size: 0; + height: 4vh; + min-width: 0; + width: 4vh; +} + +/* Share pop-up behaviour */ +.share-buttons.side input[type="radio"]:checked + span, +.share-buttons.side input[type="checkbox"]:checked + span { + margin-left: 0; + padding: .5em; + width: 300px; }