gnu-social/public/assets/css/base.css
Eliseu Amaro d12f97c623
[BASE][CSS] Snappier and consistent animations.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:11 +01:00

380 lines
9.9 KiB
CSS

:root {
/* FONTS */
--display-font: 'Manrope-ExtraBold', sans-serif;
--main-font: 'Inter', sans-serif;
/* UNITS
* unit size - every element should be a multiplier of this
* main size - used for headers and icons
* medium size - same as above, except that the element in question is contained in something else
* small size - used in common text, borders
*/
--unit-size: 0.5rem;
--main-size: 1.5rem;
--medium-size: 1.125rem;
--small-size: 1rem;
/* colours and shadows */
--black: #040506;
--bg1: #383E51;
--bg2: #434A60;
--bg3: #5C6684;
--translucent: #00000033;
--translucent-light: #FFFFFF33;
--white: #EEDFD4;
--accent-blue: #8E8DBE;
--accent-red: #FF6666;
--accent-green: #2EC4B6;
--shadow: 0px 0px 16px 0px #383E51;
--shadow-light: 0px 0px 16px 0px #8E8DBE;
/* transitions and animations */
--cubic-transition: all 200ms cubic-bezier(0, 0.55, 0.45, 1);
--fade-in: fadeIn 200ms cubic-bezier(0, 0.55, 0.45, 1);
--fade-out: fadeOut 200ms cubic-bezier(0, 0.55, 0.45, 1);
}
/* TYPOGRAPHY */
html {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
h1 {
font-family: var(--display-font);
font-size: var(--main-size);
font-weight: 900;
opacity: 1.00;
letter-spacing: -0.40px;
word-spacing: 4.00px;
}
h2 {
font-family: var(--display-font);
font-size: var(--medium-size);
font-weight: 800;
letter-spacing: -0.75px;
word-spacing: 3.00px;
text-transform: none;
}
h3 {
font-family: var(--display-font);
font-size: var(--medium-size);
font-weight: 600;
line-height: 1.00;
letter-spacing: -0.20px;
word-spacing: 1.00px;
text-transform: none;
}
p {
font-family: var(--main-font);
font-size: var(--medium-size);
font-weight: 400;
letter-spacing: -0.30px;
word-spacing: -0.10px;
margin-bottom: var(--small-size) !important;
text-transform: none;
}
ul {
text-decoration: none;
margin: 0;
padding: 0;
list-style: none;
}
li {
margin: 0;
padding: 0;
}
a:link {
text-decoration: none;
color: var(--white);
outline: 0;
}
a:visited {
text-decoration: none;
color: var(--white);
outline: 0;
margin: 0;
padding: 0;
}
a:focus,
a:hover {
border-radius: var(--unit-size) !important;
background: var(--white) !important;
color: var(--bg1) !important;
padding: 0 var(--unit-size) 0 var(--unit-size) !important;
transition: var(--cubic-transition);
}
#instance:focus svg,
#instance:hover svg {
fill: var(--bg1);
transition: all 0.4s ease;
}
summary:hover > svg,
summary:focus > svg {
border-radius: var(--unit-size);
padding: var(--unit-size) !important;
background: var(--white) !important;
fill: var(--bg1) !important;
transition: var(--cubic-transition);
}
hr {
all: unset;
display: block;
height: 2px;
background-image: linear-gradient(to right, var(--bg1), transparent 90%);
}
/* DEFAULTS */
body,
html {
color: var(--white);
font-family: var(--main-font);
/* BLENDING BANDING IN FIREFOX */
background-image: radial-gradient(ellipse at 50% 5%, var(--bg1), var(--bg2)),
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAElBMVEUAAACUkpSEhoSMioyMjoyEgoRr6djFAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAU1JREFUKJEVUcl1xTAIpAVLSgECXIAYUoCAX0Bi919LlCPLm5ValiOUUe2+ZRVFuYpKXFsUX9aIp0V6GtC8VRhNL0X2fikvswhKrNDhes7pbpPkufFAtI0B76LEjfc2bgdHDk6RX4A/sjt6LCylfoYpNYYJx/9COhIugsjluzN9VGZ/Hnl51jIH2ba+Ywsy2RJCFdoDe8Obw61TXGAv+ewExMRJs7gd7YcimPuk42uMqY2VJ1fK+bDL32rb7kwok/la/u7Mrz7Xf0DTssSP2Btp1ZS0zw35tM/SsJKgWNLcRh+/th1QqntwtM3Tx0LNosoBYbM3qjJFiMeLsMH2i5BcQdU3n9sJHOE1Hoqn1GA/bm4s0YkVB/y4r0PbltF32FpljXmdlOOwbDvFWkoDYLppSG4pnM6UxX3Src1lhXeU36FOu3o+R2vNaHME/wESUl9/3zMniwAAAABJRU5ErkJggg==);
background-blend-mode: multiply;
background-attachment: fixed;
}
#header {
font-size: var(--main-size);
display: flex;
justify-content: space-between;
position: fixed;
top: 0;
padding: var(--unit-size);
box-sizing: border-box;
width: 100vw;
max-width: 100%;
align-items: center;
background-image: radial-gradient(ellipse at 50% 5%, var(--bg1), var(--accent-blue)),
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAElBMVEUAAACUkpSEhoSMioyMjoyEgoRr6djFAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAU1JREFUKJEVUcl1xTAIpAVLSgECXIAYUoCAX0Bi919LlCPLm5ValiOUUe2+ZRVFuYpKXFsUX9aIp0V6GtC8VRhNL0X2fikvswhKrNDhes7pbpPkufFAtI0B76LEjfc2bgdHDk6RX4A/sjt6LCylfoYpNYYJx/9COhIugsjluzN9VGZ/Hnl51jIH2ba+Ywsy2RJCFdoDe8Obw61TXGAv+ewExMRJs7gd7YcimPuk42uMqY2VJ1fK+bDL32rb7kwok/la/u7Mrz7Xf0DTssSP2Btp1ZS0zw35tM/SsJKgWNLcRh+/th1QqntwtM3Tx0LNosoBYbM3qjJFiMeLsMH2i5BcQdU3n9sJHOE1Hoqn1GA/bm4s0YkVB/y4r0PbltF32FpljXmdlOOwbDvFWkoDYLppSG4pnM6UxX3Src1lhXeU36FOu3o+R2vNaHME/wESUl9/3zMniwAAAABJRU5ErkJggg==);
background-blend-mode: multiply;
background-attachment: fixed;
box-shadow: var(--shadow);
}
#instance {
display: flex;
align-items: center;
}
.icon-logo {
margin-right: var(--small-size);
fill: var(--white);
}
/* CONTAINS ALL ELEMENTS BESIDES HEADER */
.container {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
margin-top: calc(3 * var(--small-size) + var(--main-size));
}
/* THE FOCUSED (middle) DIV */
.content {
display: flex;
flex-direction: column;
margin-left: calc(100% / 5);
margin-right: calc(100% / 5);
padding: var(--small-size);
width: 100%;
max-width: calc(3 * (100% / 5));
}
/* NOTES */
.h-feed,
.notes {
margin-top: var(--main-size);
}
.h-feed,
.notes hr {
margin-top: var(--unit-size);
margin-bottom: var(--main-size);
}
.h-entry,
.note {
background-image: radial-gradient(ellipse at 10% 10%, var(--bg3), var(--accent-blue)),
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAElBMVEUAAACUkpSEhoSMioyMjoyEgoRr6djFAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAU1JREFUKJEVUcl1xTAIpAVLSgECXIAYUoCAX0Bi919LlCPLm5ValiOUUe2+ZRVFuYpKXFsUX9aIp0V6GtC8VRhNL0X2fikvswhKrNDhes7pbpPkufFAtI0B76LEjfc2bgdHDk6RX4A/sjt6LCylfoYpNYYJx/9COhIugsjluzN9VGZ/Hnl51jIH2ba+Ywsy2RJCFdoDe8Obw61TXGAv+ewExMRJs7gd7YcimPuk42uMqY2VJ1fK+bDL32rb7kwok/la/u7Mrz7Xf0DTssSP2Btp1ZS0zw35tM/SsJKgWNLcRh+/th1QqntwtM3Tx0LNosoBYbM3qjJFiMeLsMH2i5BcQdU3n9sJHOE1Hoqn1GA/bm4s0YkVB/y4r0PbltF32FpljXmdlOOwbDvFWkoDYLppSG4pnM6UxX3Src1lhXeU36FOu3o+R2vNaHME/wESUl9/3zMniwAAAABJRU5ErkJggg==);
background-blend-mode: multiply;
border-radius: var(--unit-size);
}
.note-info {
display: flex;
border-radius: var(--unit-size);
box-sizing: border-box;
background-color: var(--translucent);
font-size: var(--main-size);
padding: var(--unit-size);
}
.note-info .avatar {
width: auto;
height: var(--main-size);
}
.note-content {
padding: var(--small-size);
}
.note-content p {
font-size: var(--medium-size);
padding-left: var(--small-size);
padding-right: var(--small-size);
}
.note-attachments {
display: flex;
}
.note-attachments > div {
margin: var(--small-size) 0 0 0;
border-radius: var(--unit-size);
background-color: var(--translucent);
}
.note-attachments > div figure {
display: flex;
flex-direction: column;
margin: 0;
padding: var(--small-size);
}
.note-attachments > div figure figcaption {
display: flex;
padding-top: var(--small-size);
}
.note-attachments > div figure img,
.note-attachments > div figure video {
width: 100%;
height: auto;
}
figcaption a:link {
font-size: var(--small-size);
color: var(--white);
}
/* SIDE PANELS */
.panel {
font-size: var(--main-size);
}
.panel aside {
animation: var(--fade-in);
}
.icon-left,
.icon-right {
display: none;
}
/* MEDIA RESIZE */
@media (min-width: 1200px) {
.panel aside {
padding: var(--unit-size);
box-sizing: border-box;
width: calc(100% / 5);
height: border-box;
display: flex !important;
flex-direction: column !important;
position: absolute !important;
top: 100% !important;
}
}
@media (max-width: 1200px) {
.icon-left,
.icon-right {
display: flex;
padding: var(--unit-size);
}
.content {
margin: unset;
max-width: 100% !important;
}
.panel aside {
display: none;
}
.panel[open] {
width: 100%;
font-size: var(--main-size);
}
.panel[open] {
all: unset;
display: block;
}
.panel[open] aside {
padding: var(--unit-size);
box-sizing: border-box;
width: 100%;
height: border-box;
display: flex !important;
flex-direction: column !important;
position: absolute !important;
top: 100% !important;
left: 0 !important;
background-image: radial-gradient(ellipse at 50% 5%, var(--bg1), var(--bg2)),
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAElBMVEUAAACUkpSEhoSMioyMjoyEgoRr6djFAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAU1JREFUKJEVUcl1xTAIpAVLSgECXIAYUoCAX0Bi919LlCPLm5ValiOUUe2+ZRVFuYpKXFsUX9aIp0V6GtC8VRhNL0X2fikvswhKrNDhes7pbpPkufFAtI0B76LEjfc2bgdHDk6RX4A/sjt6LCylfoYpNYYJx/9COhIugsjluzN9VGZ/Hnl51jIH2ba+Ywsy2RJCFdoDe8Obw61TXGAv+ewExMRJs7gd7YcimPuk42uMqY2VJ1fK+bDL32rb7kwok/la/u7Mrz7Xf0DTssSP2Btp1ZS0zw35tM/SsJKgWNLcRh+/th1QqntwtM3Tx0LNosoBYbM3qjJFiMeLsMH2i5BcQdU3n9sJHOE1Hoqn1GA/bm4s0YkVB/y4r0PbltF32FpljXmdlOOwbDvFWkoDYLppSG4pnM6UxX3Src1lhXeU36FOu3o+R2vNaHME/wESUl9/3zMniwAAAABJRU5ErkJggg==);
background-blend-mode: multiply;
background-attachment: fixed;
}
}
/* ANIMATIONS */
@keyframes fadeIn {
0% {
opacity: 0;
transform: translateY(-10px);
}
100% {
opacity: unset;
transform: none;
}
}
@keyframes fadeOut {
100% {
opacity: 0;
transform: translateY(-10px);
}
0% {
opacity: unset;
transform: none;
}
}