X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=priv%2Fstatic%2Fstatic-fe%2Fstatic-fe.css;h=657556077f3a06687670005a6e7e389c29dbc746;hb=07a48b9293e4046c50b5d424d60a1bf16c7cc198;hp=db61ff2665ba2aef7f33dbfa8dbf29b7f6cdcba7;hpb=c3f1ce80ebc6caf85b2f874c31d6b98fd0ef5876;p=akkoma diff --git a/priv/static/static-fe/static-fe.css b/priv/static/static-fe/static-fe.css index db61ff266..657556077 100644 --- a/priv/static/static-fe/static-fe.css +++ b/priv/static/static-fe/static-fe.css @@ -1,59 +1,278 @@ +/* pleroma-light and pleroma-dark themes from pleroma-fe */ +:root { + --icon-filter: invert(38%) sepia(11%) saturate(209%) hue-rotate(179deg) brightness(99%) contrast(89%); + --wallpaper: rgba(11, 16, 23, 1); + --alertNeutral: rgba(185, 185, 186, 0.5); + --alertNeutralText: rgba(255, 255, 255, 1); + --avatarShadow: 0px 1px 8px 0px rgba(0, 0, 0, 0.7); + --loadPostsSelected: rgba(23, 34, 46, 1); + --loadPostsSelectedText: rgba(185, 185, 186, 1); + --profileBg: rgba(7, 12, 17, 1); + --profileTint: rgba(15, 22, 30, 0.5); + --btnText: rgba(185, 185, 186, 1); + --btn: rgba(21, 30, 43, 1); + --btnShadow: 0px 0px 2px 0px rgba(0, 0, 0, 1) , 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset; + --btnHoverShadow: 0px 0px 1px 2px rgba(185, 185, 186, 0.4) inset, 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset; + --lightText: rgba(236, 236, 236, 1); + --panelShadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5) , 0px 4px 6px 3px rgba(0, 0, 0, 0.3); + --panelHeaderShadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.4) , 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset; + --topBar: rgba(21, 30, 43, 1); + --topBarText: rgba(159, 159, 161, 1); + --topBarShadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.4) , 0px 2px 7px 0px rgba(0, 0, 0, 0.3); + --underlay: rgba(9, 14, 20, 0.6); + --background: rgba(15, 22, 30, 1); + --faint: rgba(185, 185, 186, 0.5); + --selectedPost: rgba(23, 34, 46, 1); + --link: rgba(226, 177, 136, 1); + --text: rgba(185, 185, 186, 1); + --border: rgba(26, 37, 53, 1); + --poll: rgba(99, 84, 72, 1); +} +@media (prefers-color-scheme: light) { + :root { + --icon-filter: invert(67%) sepia(7%) saturate(525%) hue-rotate(173deg) brightness(90%) contrast(92%);; + --wallpaper: rgba(248, 250, 252, 1); + --alertNeutral: rgba(48, 64, 85, 0.5); + --alertNeutralText: rgba(0, 0, 0, 1); + --avatarShadow: 0px 1px 8px 0px rgba(0, 0, 0, 0.7); + --loadPostsSelected: rgba(224, 233, 240, 1); + --loadPostsSelectedText: rgba(48, 64, 85, 1); + --profileBg: rgba(128, 137, 146, 1); + --profileTint: rgba(242, 246, 249, 0.5); + --btnText: rgba(48, 64, 85, 1); + --btn: rgba(214, 223, 237, 1); + --btnShadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.2) , 0px 1px 0px 0px rgba(255, 255, 255, 0.5) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset; + --btnHoverShadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.2) , 0px 0px 1px 2px rgba(255, 195, 159, 1) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset; + --lightText: rgba(11, 14, 19, 1); + --panelShadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.5) , 0px 3px 6px 1px rgba(0, 0, 0, 0.2); + --panelHeaderShadow: 0px 1px 0px 0px rgba(255, 255, 255, 0.5) inset, 0px 1px 3px 0px rgba(0, 0, 0, 0.3); + --topBar: rgba(214, 223, 237, 1); + --topBarText: rgba(48, 64, 85, 1); + --topBarShadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.6); + --underlay: rgba(93, 96, 134, 0.4); + --background: rgba(242, 246, 249, 1); + --faint: rgba(48, 64, 85, 0.5); + --selectedPost: rgba(224, 233, 240, 1); + --link: rgba(245, 91, 27, 1); + --text: rgba(48, 64, 85, 1); + --border: rgba(216, 230, 249, 1); + --poll: rgba(243, 184, 160, 1); + } +} + +html { + height: 100%; + overflow-y: auto; +} + body { - background-color: #282c37; + overflow: auto; + margin: 0; + height: 100%; font-family: sans-serif; - color: white; + color: var(--text); } -main { - margin: 50px auto; - max-width: 960px; - padding: 40px; - background-color: #313543; - border-radius: 4px; +.background-image { + position: fixed; + height: 100%; + top: 3.5em; + z-index: -1000; + left: 0; + right: -20px; + background-size: cover; + background-repeat: no-repeat; + background-color: var(--wallpaper); + background-image: var(--background-image); + background-position: 50%; } -header { - margin: 50px auto; - max-width: 960px; - padding: 40px; - background-color: #313543; - border-radius: 4px; +a { + text-decoration: none; + color: var(--link); } -.activity { - border-radius: 4px; - padding: 1em; - padding-bottom: 2em; - margin-bottom: 1em; +nav { + position: sticky; + top: 0; + width: 100%; + height: 3.5em; + background-color: var(--topBar); + box-shadow: var(--topBarShadow); + z-index: 2000; } -.avatar { - cursor: pointer; +.inner-nav { + padding: 0 1.2em; + margin: auto; + max-width: 1110px; } -.avatar img { - float: left; - border-radius: 4px; - margin-right: 4px; +.inner-nav a { + line-height: 3.5em; + color: var(--topBarText); +} + +.inner-nav img { + height: 28px; + vertical-align: middle; + padding-right: 5px +} + +body > .container { + display: grid; + grid-template-columns: minmax(25em, 45em) 25em; + grid-template-areas: "content sidebar"; + height: calc(100vh - 3.5em); + justify-content: center; +} + +.underlay { + grid-column-start: 1; + grid-column-end: span 2; + grid-row-start: 1; + grid-row-end: 1; + background-color: var(--underlay); + z-index: -1000; } -.activity-content img, video, audio { +.column { padding: 1em; - max-width: 800px; - max-height: 800px; + margin: -0.5em; +} + +.panel { + background-color: var(--background); + border-radius: 3px; + box-shadow: var(--panelShadow); +} + +.panel-heading { + background-color: var(--topBar); + font-size: 1.3em; + padding: 0.6em; + border-radius: 3px 3px 0 0; + box-shadow: var(--panelHeaderShadow); +} + +.about-content { + padding: 0.6em; +} + +.main { + grid-area: content; + position: relative; +} + +.sidebar { + grid-area: sidebar; + padding-left: 0.5em; +} + +.status-container, +.repeat-header, +.user-card { + display: flex; + padding: 0.75em; +} + +.left-side { + margin-right: 0.75em; +} + +.right-side { + flex: 1; + min-width: 0; +} + +.repeat-header { + padding: 0.4em 0.75em; + margin-bottom: -0.75em; +} + +.repeat-header .right-side { + color: var(--faint); +} +.repeat-header .u-photo { + height: 20px; + width: 20px; + margin-left: 28px; +} + +.status-heading { + margin-bottom: 0.5em; + line-height: 1.3; +} + +.status-heading a { + display: inline-block; + word-break: break-all; +} + +.heading-left { + display: flex; + flex: 1; + overflow: hidden; +} + +.heading-right { + display: flex; + align-items: center; +} + +.heading-name-row .account-name { + min-width: 1.6em; + margin-right: 0.4em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + flex: 1 1 0; +} + +.heading-name-row .username, +.repeat-header .username { + white-space: nowrap; + overflow: hidden; + max-width: 85%; + font-weight: bold; + flex-shrink: 1; + margin: 0; + margin-right: 0.4em; + text-overflow: ellipsis; +} + +.heading-name-row { + display: flex; + justify-content: space-between; +} + +.heading-edited-row, +.heading-reply-row { + font-size: 0.85em; + margin-top: 0.2em; +} + +.reply-to-link { + color: var(--faint); +} +.reply-to-link:hover { + text-decoration: underline; } #selected { - background-color: #1b2735; + background-color: var(--selectedPost); } -.counts dt, .counts dd { - float: left; - margin-left: 1em; +.timeago { + color: var(--faint); } -a { - color: white; +#selected .timeago { + color: var(--text); +} + +.timeago :hover { + text-decoration: underline; } .h-card { @@ -69,115 +288,340 @@ header a:hover, .h-card a:hover { text-decoration: underline; } -.display-name { - padding-top: 4px; - display: block; - text-overflow: ellipsis; - overflow: hidden; - color: white; +.attachments { + margin-top: 0.5em; + flex-direction: row; + display: flex; + flex-wrap: nowrap; + align-content: stretch; + max-height: 24em; +} + +.attachment { + border: 1px solid var(--border); + border-radius: 3px; + display: flex; + flex-grow: 1; + justify-content: center; + position: relative; + min-width: 0; +} + +.attachment > * { + width: 100%; + object-fit: contain; +} + +.attachment:not(:last-child) { + margin-right: 0.5em; +} + +.nsfw-banner { + position: absolute; + height: 100%; + display: flex; + align-items: center; +} +.nsfw-banner div { + width: 100%; + text-align: center; +} + +.nsfw-banner:not(:hover) { + background-color: var(--background); +} +.nsfw-banner:hover div { + display: none; } -/* keep emoji from being hilariously huge */ -.display-name img { - max-height: 1em; +.poll-option { + position: relative; + display: flex; + margin: 0.75em 0.5em; + padding: 0.1em 0.25em; + word-break: break-word; + z-index: 1; +} +.poll-option .percentage { + width: 3.5em; + flex-shrink: 0; +} +.poll-option .fill { + height: 100%; + position: absolute; + background-color: var(--poll); + border-radius: 3px; + top: 0; + left: 0; + z-index: -1; +} + +.status-actions { + position: relative; + width: 100%; + display: flex; + margin-top: 0.75em; +} +.status-actions > * { + max-width: 4em; + flex: 1; + display: flex; } -.display-name .nickname { - padding-top: 4px; +.status-summary { display: block; + font-style: italic; + padding-bottom: 0.5em; + margin-bottom: 0.5em; + border-style: solid; + border-width: 0 0 1px 0; + border-color: var(--border, #222); } -.nickname:hover { - text-decoration: none; +summary { + text-align: center; + color: var(--link); + cursor: pointer; } -.pull-right { - float: right; +.status-body { + word-wrap: break-word; + word-break: break-word; + line-height: 1.4; } -.collapse { - margin: 0; - width: auto; +.user-info { + padding: 0.5em 26px; } -h1 { +.user-info .container { + padding: 18px 0 6px 0; + display: flex; + align-items: flex-start; + max-height: 56px; +} + +.user-info a { + color: var(--lightText); +} + +.user-info .avatar img { + height: 56px; + width: 56px; +} + +.avatar img { + border-radius: 3px; + box-shadow: var(--avatarShadow); +} + +.user-summary { + display: block; + margin-left: 0.6em; + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + flex: 1 1 0; + z-index: 1; + line-height: 2em; + color: var(--lightText); +} + +.button-default { + user-select: none; + color: var(--btnText); + background-color: var(--btn); + border: none; + border-radius: 4px; + box-shadow: var(--btnShadow); + font-size: 1em; + min-height: 2em; +} + +.button-default:hover { + box-shadow: var(--btnHoverShadow); + cursor: pointer; +} + +.user-bio { + text-align: center; + display: block; + line-height: 1.3; + padding: 1em; margin: 0; } -h2 { - color: #9baec8; - font-weight: normal; - font-size: 20px; - margin-bottom: 40px; +.user-banner { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: linear-gradient(to bottom, var(--profileTint), var(--profileTint)), + var(--user-banner); + background-size: cover; + background-color: var(--profileBg); + -webkit-mask: linear-gradient(to top, white, transparent) bottom no-repeat, + linear-gradient(to top, white, white); + -webkit-mask-composite: xor; + -webkit-mask-size: 100% 60%; + z-index: -2; } -form { - width: 100%; +.user-header { + position: relative; + z-index: 1; } -input { - box-sizing: border-box; - width: 100%; - padding: 10px; - margin-top: 20px; - background-color: rgba(0,0,0,.1); - color: white; - border: 0; - border-bottom: 2px solid #9baec8; - font-size: 14px; +.user-role { + color: var(--alertNeutralText); + background-color: var(--alertNeutral); + margin: 0 0.35em; + padding: 0 0.25em; + border-radius: 2px; } -input:focus { - border-bottom: 2px solid #4b8ed8; +.user-profile-fields { + margin: 0 0.5em; } -input[type="checkbox"] { - width: auto; +.user-profile-field { + display: flex; + margin: 0.25em; + border: 1px solid var(--border, #222); + border-radius: 3px; + line-height: 1.3; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; } -button { +.user-profile-field dt { + padding: 0.5em 1.5em; box-sizing: border-box; - width: 100%; - color: white; - background-color: #419bdd; - border-radius: 4px; - border: none; - padding: 10px; - margin-top: 30px; - text-transform: uppercase; + flex: 0 1 30%; font-weight: 500; - font-size: 16px; + color: var(--lightText); + border-right: 1px solid var(--border); + text-align: right; } -.alert-danger { +.user-profile-field dd { + padding: 0.5em 1.5em; box-sizing: border-box; - width: 100%; - color: #D8000C; - background-color: #FFD2D2; - border-radius: 4px; - border: none; - padding: 10px; - margin-top: 20px; - font-weight: 500; - font-size: 16px; + flex: 1 1 30%; + margin: 0 0 0 0.25em; +} + +.user-counts { + display: flex; + line-height: 1em; + padding: 0.5em 1.5em 0 1.5em; + text-align: center; + justify-content: space-between; + color: var(--lightText); + flex-wrap: wrap; +} + +.user-count { + flex: 1 0 auto; + padding: 0.5em 0; + margin: 0 0.5em; +} + +.user-count h5 { + font-size: 1em; + font-weight: bolder; + margin: 0 0 0.25em; +} + +.tab-switcher { + display: flex; + padding-top: 5px; + overflow-x: auto; + overflow-y: hidden; + border-bottom: 1px solid var(--border); +} + +.tab-switcher::before, +.tab-switcher::after { + flex: 1 1 auto; + content: ''; +} + +.tab { + flex: 0 0 auto; + padding: 6px 1em; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.tab.active { + background: transparent; +} + +.profile .status-container { + border-bottom: 1px solid var(--border); } -.alert-info { +.bottom-line { + display: flex; +} + +.load-posts { + display: block; box-sizing: border-box; + height: 3.5em; + line-height: 3.5em; + padding: 0 1em; width: 100%; - color: #00529B; - background-color: #BDE5F8; - border-radius: 4px; - border: none; - padding: 10px; - margin-top: 20px; - font-weight: 500; - font-size: 16px; + text-align: center; +} + +.load-posts:hover { + background-color: var(--loadPostsSelected); + color: var(--loadPostsSelectedText); +} + + +.fa-icon { + height: 0.875em; + margin: 0 0.3em; + filter: var(--icon-filter); + align-self: center; +} + +.status-actions .fa-icon { + height: 1.1em; +} + +.reply-to-link .fa-icon { + transform: scale(-1, 1); +} + +@media (max-width: 800px) { + body > .container { + display: block; + } + + .column { + padding: 0; + margin: 0; + } + + .sidebar { + display: none; + } +} + +img:not(.u-photo, .fa-icon) { + width: 32px; + height: 32px; + padding: 0; + vertical-align: middle; } -img.emoji { - width: 32px; - height: 32px; - padding: 0; - vertical-align: middle; +.username img:not(.u-photo) { + width: 16px; + height: 16px; }